diff --git a/_maps/RandomRuins/SpaceRuins/skelter.dmm b/_maps/RandomRuins/SpaceRuins/skelter.dmm new file mode 100644 index 0000000000..f6e6584f10 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/skelter.dmm @@ -0,0 +1,5482 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space/basic, +/area/space) +"ab" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/crew_quarters/cafeteria) +"ac" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ad" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + icon_state = "plating"; + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"ae" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter) +"af" = ( +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ag" = ( +/turf/closed/wall/mineral/titanium, +/area/crew_quarters/cafeteria) +"ah" = ( +/turf/template_noop, +/area/template_noop) +"ai" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/crew) +"aj" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ak" = ( +/turf/closed/mineral, +/area/ruin/unpowered/no_grav) +"al" = ( +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"am" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Crew Quarters APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"an" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"ao" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"ap" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"aq" = ( +/obj/structure/bed, +/obj/item/bedsheet/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"ar" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"as" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine/upper) +"at" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/engine/upper) +"au" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"av" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"aw" = ( +/obj/structure/bed, +/obj/item/bedsheet/grey, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"ax" = ( +/obj/structure/bed, +/obj/item/bedsheet/green, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"ay" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "pile"; + dir = 8 + }, +/turf/template_noop, +/area/template_noop) +"az" = ( +/obj/structure/bed, +/obj/item/bedsheet/orange, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"aA" = ( +/turf/open/floor/plating/airless, +/area/crew_quarters/cafeteria) +"aB" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"aC" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"aD" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"aE" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Cafeteria APC"; + pixel_x = -25; + pixel_y = 1 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"aF" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Port Engine APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aG" = ( +/obj/machinery/light{ + icon_state = "tube"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aH" = ( +/obj/structure/shuttle/engine/large{ + icon_state = "large_engine"; + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"aI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aJ" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/crew) +"aK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/crew) +"aL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance/abandoned, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/crew) +"aM" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 6 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/corner{ + icon_state = "warninglinecorner"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"aS" = ( +/obj/item/stack/rods, +/turf/template_noop, +/area/template_noop) +"aT" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"aU" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"aV" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light{ + icon_state = "tube"; + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"aX" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"aY" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"aZ" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"ba" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "pile"; + dir = 4 + }, +/turf/template_noop, +/area/template_noop) +"bb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "North Hall"; + network = list("skelter") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bc" = ( +/obj/machinery/door/firedoor/closed, +/obj/machinery/door/airlock/public/glass{ + name = "Cafeteria" + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"bd" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"be" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"bf" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 1 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"bg" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/crew_quarters/cafeteria) +"bh" = ( +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 1 + }, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/upper) +"bi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 1 + }, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/upper) +"bj" = ( +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/upper) +"bk" = ( +/obj/item/trash/can, +/turf/template_noop, +/area/template_noop) +"bl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bo" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bp" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bq" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/template_noop, +/area/template_noop) +"br" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bs" = ( +/obj/structure/sign/departments/medbay{ + pixel_y = -32 + }, +/obj/effect/turf_decal/trimline/blue/corner, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bt" = ( +/obj/item/chair{ + icon_state = "chair_toppled"; + dir = 1 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"bu" = ( +/obj/effect/turf_decal/trimline/blue/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bv" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/reagent_containers/food/snacks/pizzaslice/margherita{ + pixel_x = -6; + pixel_y = 2 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"bw" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + icon_state = "trimline_corner"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/crew) +"bx" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter) +"by" = ( +/obj/structure/fluff/railing, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/upper) +"bz" = ( +/obj/structure/disposalpipe/broken, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/crew_quarters/cafeteria) +"bA" = ( +/obj/item/chair{ + icon_state = "chair_toppled"; + dir = 1 + }, +/turf/template_noop, +/area/template_noop) +"bB" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/fluff/railing, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/upper) +"bD" = ( +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 6 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/upper) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bF" = ( +/obj/structure/fluff/broken_flooring{ + dir = 4; + icon_state = "singular" + }, +/turf/template_noop, +/area/template_noop) +"bG" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/sec) +"bH" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/sec) +"bI" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/med) +"bJ" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/end{ + icon_state = "trimline_end_fill"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/medical{ + name = "Med Bay" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"bK" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/med) +"bL" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter) +"bM" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/space/has_grav/skelter) +"bN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner{ + icon_state = "warninglinecorner"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"bR" = ( +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"bS" = ( +/obj/machinery/computer/security{ + network = list("skelter") + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"bT" = ( +/obj/structure/table, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Security Office APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"bU" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"bV" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"bW" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"bX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/ruin/space/has_grav/skelter) +"bY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter) +"bZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter) +"ca" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/skelter) +"cb" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/nav) +"cc" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"cd" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ce" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/nav) +"cf" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine) +"cg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"ch" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/upper) +"ci" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"cj" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/space/syndicate/orange, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"ck" = ( +/obj/structure/chair/office/dark{ + icon_state = "officechair_dark"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"cl" = ( +/obj/item/shard{ + icon_state = "small" + }, +/turf/template_noop, +/area/template_noop) +"cm" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"cn" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/crew_quarters/cafeteria) +"co" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"cp" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/oxy) +"cq" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/oxy) +"cr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/closed, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Weapons" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"cs" = ( +/obj/machinery/door/firedoor/closed, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/engineering{ + name = "Weapons" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"ct" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/forehall) +"cu" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/nav) +"cv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Navigation APC"; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"cw" = ( +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"cx" = ( +/obj/machinery/computer, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/has_grav/skelter/nav) +"cy" = ( +/obj/machinery/computer, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"cz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"cA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"cB" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/afthall) +"cC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"cD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"cE" = ( +/obj/machinery/door/firedoor/closed, +/obj/machinery/door/airlock/public/glass{ + name = "Cafeteria" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"cF" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"cG" = ( +/obj/machinery/light/broken{ + icon_state = "tube-broken"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"cH" = ( +/obj/machinery/light{ + icon_state = "tube"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"cI" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"cJ" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/oxy) +"cK" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/crew_quarters/cafeteria) +"cL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "pipe11-2"; + dir = 10 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/oxy) +"cM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "O2 APC"; + pixel_x = -25; + pixel_y = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"cN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"cQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"cR" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/forehall) +"cS" = ( +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"cT" = ( +/obj/structure/chair/comfy/shuttle{ + icon_state = "shuttle_chair"; + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/has_grav/skelter/nav) +"cU" = ( +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"cV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"cW" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/engine) +"cX" = ( +/obj/machinery/light/broken{ + icon_state = "tube-broken"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"cY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"cZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"da" = ( +/obj/effect/turf_decal/trimline/blue/filled/end, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"db" = ( +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"dc" = ( +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/med) +"dd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map-2"; + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/oxy) +"de" = ( +/obj/machinery/atmospherics/components/binary/valve{ + icon_state = "mvalve_map-2"; + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/oxy) +"df" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/oxy) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos/abandoned{ + name = "02" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/oxy) +"dh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/light, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "East Hall"; + network = list("skelter") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Fore Hallway APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"do" = ( +/obj/item/shard, +/turf/template_noop, +/area/template_noop) +"dp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "Navigation" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"dq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"dr" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"ds" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 5 + }, +/obj/structure/chair/comfy/shuttle{ + icon_state = "shuttle_chair"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"dt" = ( +/obj/machinery/computer{ + icon_state = "computer"; + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/has_grav/skelter/nav) +"du" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"dv" = ( +/obj/effect/turf_decal/trimline/purple/line{ + icon_state = "trimline"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"dw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"dx" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Reactor Room APC"; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"dy" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine) +"dz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/purple/corner{ + icon_state = "trimline_corner"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Reactor Hall"; + dir = 5; + icon_state = "camera"; + network = list("skelter") + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"dA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/trimline/green/corner, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Aft Hallway APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"dB" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"dC" = ( +/obj/structure/table/wood, +/obj/item/pen/fountain{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"dD" = ( +/obj/structure/table/wood, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/paper_bin, +/obj/item/folder/yellow, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"dE" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"dF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/med) +"dG" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"dH" = ( +/obj/machinery/clonepod, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"dI" = ( +/obj/machinery/computer{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"dJ" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/med) +"dK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"dL" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/admin) +"dM" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"dN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"dO" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/admin) +"dP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/admin) +"dQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"dR" = ( +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/button{ + desc = "It appears to read 'EMERGENCY MEETING'."; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"dS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/admin) +"dT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/item/stack/cable_coil/cut/yellow, +/turf/template_noop, +/area/space/nearstation) +"dU" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/forehall) +"dV" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/forehall) +"dW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"dX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"dZ" = ( +/obj/effect/decal/cleanable/glass{ + icon_state = "tiny"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/crew_quarters/cafeteria) +"ea" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"eb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ec" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ed" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"ee" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/airlock/maintenance/external{ + name = "Navigation" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"ef" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"eg" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"eh" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/nav) +"ei" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless, +/area/crew_quarters/cafeteria) +"ej" = ( +/obj/machinery/power/port_gen/pacman/super, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"ek" = ( +/obj/effect/turf_decal/trimline/purple/corner{ + icon_state = "trimline_corner"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"el" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + icon_state = "scrub_map-2"; + dir = 4 + }, +/obj/item/trash/plate, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"em" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/obj/effect/turf_decal/trimline/purple/line, +/obj/effect/turf_decal/trimline/purple/line{ + icon_state = "trimline"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"en" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/crew_quarters/cafeteria) +"eo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/line, +/obj/effect/turf_decal/trimline/purple/line{ + icon_state = "trimline"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"ep" = ( +/obj/item/chair, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"eq" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"er" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 4 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"es" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research{ + name = "Reactor" + }, +/obj/effect/turf_decal/trimline/purple/end{ + icon_state = "trimline_end"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"et" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/purple/line{ + icon_state = "trimline"; + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"eu" = ( +/obj/effect/turf_decal/trimline/green/line{ + icon_state = "trimline"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"ev" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/abandoned{ + name = "Security" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"ew" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"ex" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"ey" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"ez" = ( +/obj/structure/table/wood, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"eA" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"eB" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/space/syndicate/blue{ + desc = "Wait, don't these normally come with a helmet?" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"eC" = ( +/obj/machinery/light{ + icon_state = "tube"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"eD" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Administration APC"; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"eE" = ( +/obj/machinery/computer, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"eF" = ( +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/admin) +"eG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map_on-2"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"eH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"eI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube"; + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"eJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"eL" = ( +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"eM" = ( +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/has_grav/skelter/nav) +"eN" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"eO" = ( +/obj/effect/turf_decal/trimline/purple/line{ + icon_state = "trimline"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/skelter/engine) +"eP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"eQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"eR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine) +"eS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + icon_state = "trimline_corner"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"eT" = ( +/obj/effect/turf_decal/trimline/green/corner{ + icon_state = "trimline_corner"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"eU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/sec) +"eV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"eW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"eX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"eY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/sec) +"eZ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fa" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/cafeteria) +"fb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Med Bay APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"ff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/admin) +"fg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Central Hall"; + network = list("skelter") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Administration" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"fp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"fq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"fr" = ( +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"fs" = ( +/obj/machinery/computer{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/has_grav/skelter/nav) +"ft" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"fu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"fv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"fw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"fx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"fy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fA" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/door/airlock/security{ + name = "Administration" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/admin) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fF" = ( +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"fI" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/forehall) +"fJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/space/has_grav/skelter/engine) +"fK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"fL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/afthall) +"fM" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"fN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"fO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/sec) +"fP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fQ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/space/syndicate{ + desc = "Wait, don't these normally come with a helmet?" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fR" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/ammo_casing/c45, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"fS" = ( +/obj/structure/disposalconstruct, +/turf/template_noop, +/area/template_noop) +"fT" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/storage) +"fU" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/storage) +"fV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Storage" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"fW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Storage" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"fX" = ( +/obj/machinery/door/firedoor/closed, +/obj/machinery/door/airlock/public/glass{ + name = "Cafeteria" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"fY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"fZ" = ( +/obj/structure/table/glass, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"ga" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"gb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/forehall) +"gc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/forehall) +"gd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/forehall) +"ge" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/forehall) +"gf" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/space/syndicate/orange{ + desc = "Wait, don't these normally come with a helmet?" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/forehall) +"gg" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/engine/lower) +"gh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"gi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"gj" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"gk" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/machinery/door/window/northleft{ + name = "Armory" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"gl" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/sec) +"gm" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"gn" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"go" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 8 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"gp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gq" = ( +/obj/structure/closet/crate, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Storage APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gr" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gs" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gt" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"gv" = ( +/obj/machinery/light, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"gw" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/space/syndicate/green{ + desc = "Wait, don't these normally come with a helmet?" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"gx" = ( +/obj/machinery/door/firedoor{ + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Shields" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/shields) +"gy" = ( +/obj/machinery/door/firedoor{ + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/engineering{ + name = "Shields" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/shields) +"gz" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/shields) +"gA" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/shields) +"gB" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/forehall) +"gC" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine/lower) +"gD" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Starboard Engine APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"gE" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"gF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"gG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + icon_state = "warninglinecorner"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"gH" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"gI" = ( +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/pistol/m1911, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"gJ" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"gK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"gL" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"gM" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gO" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gP" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"gQ" = ( +/obj/machinery/shieldgen, +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 6 + }, +/turf/open/floor/circuit, +/area/ruin/space/has_grav/skelter/shields) +"gR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"gS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"gT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Shield Room APC"; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"gU" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/shields) +"gV" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/forehall) +"gW" = ( +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 1 + }, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/lower) +"gX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 1 + }, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/lower) +"gY" = ( +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/lower) +"gZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"ha" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hb" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/ore_box, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"he" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hi" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hj" = ( +/obj/machinery/light{ + icon_state = "tube"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hl" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Shields" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/shields) +"hn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"ho" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"hp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"hq" = ( +/obj/machinery/shieldgen, +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 9 + }, +/turf/open/floor/circuit/airless, +/area/ruin/space/has_grav/skelter/shields) +"hr" = ( +/obj/structure/fluff/railing, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/lower) +"hs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/fluff/railing, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/lower) +"ht" = ( +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 6 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/lower) +"hu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hw" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hx" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hy" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hC" = ( +/obj/structure/closet/crate/critter, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/closet, +/obj/effect/turf_decal/bot, +/obj/item/circlegame, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hH" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hI" = ( +/obj/effect/turf_decal/trimline/blue/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hJ" = ( +/obj/effect/turf_decal/trimline/blue/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + icon_state = "trimline_corner"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"hL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Shields" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/shields) +"hM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"hN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"hO" = ( +/obj/machinery/shieldgen, +/obj/structure/fluff/railing{ + icon_state = "railing"; + dir = 8 + }, +/turf/open/floor/circuit/airless, +/area/ruin/space/has_grav/skelter/shields) +"hP" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hQ" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hR" = ( +/obj/effect/turf_decal/stripes/line{ + icon_state = "warningline"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hS" = ( +/obj/effect/turf_decal/stripes/corner{ + icon_state = "warninglinecorner"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "Engine Room" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"hU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 10 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Electrical" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"hX" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/storage) +"hY" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"hZ" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"ia" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"ib" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"ic" = ( +/obj/machinery/light{ + icon_state = "tube"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"id" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/broken{ + icon_state = "tube-broken"; + dir = 4 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ie" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"if" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/comms) +"ig" = ( +/obj/machinery/light/broken, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"ih" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/comms) +"ii" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/space/has_grav/skelter/comms) +"ij" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Communications" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"ik" = ( +/turf/open/floor/circuit, +/area/ruin/space/has_grav/skelter/shields) +"il" = ( +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"im" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"in" = ( +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"io" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"ip" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/has_grav/skelter/engine/lower) +"iq" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"ir" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + icon_state = "manifold-2"; + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"is" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"it" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + icon_state = "trimline_corner"; + dir = 4 + }, +/obj/machinery/light{ + icon_state = "tube"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iu" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + icon_state = "trimline"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iv" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + icon_state = "trimline_corner"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iw" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"ix" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iz" = ( +/obj/structure/closet/crate/freezer, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iA" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iC" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Electrical APC"; + pixel_x = 26 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iD" = ( +/obj/structure/table, +/obj/item/trash/waffles{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/crew_quarters/cafeteria) +"iE" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/uplink/old{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iH" = ( +/obj/machinery/computer{ + icon_state = "computer"; + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/has_grav/skelter/shields) +"iI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iJ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/corner, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iK" = ( +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iL" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + icon_state = "trimline_corner"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iM" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iN" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iO" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iP" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iR" = ( +/obj/machinery/door/airlock/medical{ + name = "Restroom" + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"iS" = ( +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iT" = ( +/obj/structure/disposalpipe/trunk{ + icon_state = "pipe-t"; + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/machinery/button/massdriver{ + id = "skeltermass"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "skelterdoor"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"iU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/telecomms/relay/preset/auto, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iV" = ( +/obj/structure/chair/comfy/teal, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iW" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/space/syndicate/black{ + desc = "Wait, don't these normally come with a helmet?" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iX" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"iY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter) +"iZ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"ja" = ( +/obj/structure/toilet{ + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"jb" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "pipe"; + dir = 6 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/storage) +"jc" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "pipe"; + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/storage) +"jd" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "pipe"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"je" = ( +/obj/machinery/door/window/eastright, +/obj/structure/disposalpipe/segment{ + icon_state = "pipe"; + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/storage) +"jf" = ( +/obj/effect/turf_decal/stripes/end{ + icon_state = "warn_end"; + dir = 1 + }, +/obj/machinery/mass_driver, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/storage) +"jg" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"jh" = ( +/obj/machinery/computer{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"ji" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ + icon_state = "inje_map-2"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/skelter/oxy) +"jj" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/skelter/storage) +"jk" = ( +/obj/machinery/door/poddoor, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/storage) +"jl" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/has_grav/skelter/comms) +"jm" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Communications APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"jn" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/telecomms/allinone, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) +"jo" = ( +/obj/item/stack/cable_coil/cut/yellow, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"jp" = ( +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"jq" = ( +/obj/effect/turf_decal/trimline/red/line{ + icon_state = "trimline"; + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/mineral/titanium, +/area/ruin/space/has_grav/skelter/nav) +"jr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"js" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"jt" = ( +/obj/machinery/light/small/broken{ + icon_state = "bulb-broken"; + dir = 4 + }, +/obj/item/stack/cable_coil/blue, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"ju" = ( +/obj/structure/table/glass, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + icon_state = "scrub_map_on-2"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/has_grav/skelter/admin) +"jv" = ( +/obj/structure/rack, +/obj/item/ammo_box/magazine/m45, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"jw" = ( +/turf/open/space/basic, +/area/space/nearstation) +"jx" = ( +/turf/open/space/basic, +/area/template_noop) + +(1,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cf +cf +cf +cf +cf +cf +cf +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(2,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +cf +cf +cU +du +ej +eN +cU +cf +cf +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(3,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +cf +cy +cU +dv +ek +eO +cU +cU +cf +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(4,1,1) = {" +ah +ah +ah +ah +ah +ah +aa +aH +ah +cf +cA +cV +dw +em +eP +ft +fJ +cf +ah +aa +aH +ah +ah +ah +ah +ah +ah +ah +"} +(5,1,1) = {" +ah +ah +ah +ah +as +as +as +as +as +cf +cf +cW +dx +eo +eQ +cW +cf +cf +gC +gC +gC +gC +gC +ah +ah +ah +ah +ah +"} +(6,1,1) = {" +ah +ah +ah +as +as +aM +bh +by +bN +at +cB +cf +dy +es +eR +cf +cB +gg +gD +gW +hr +hP +gC +gC +ah +ah +ah +ah +"} +(7,1,1) = {" +ah +ah +ae +at +aF +aN +bi +bC +bO +cg +cC +cX +dz +et +eS +fu +fK +gh +gE +gX +hs +hQ +in +gg +ae +ah +ah +ah +"} +(8,1,1) = {" +ah +ae +ae +as +aG +aO +bj +bD +bP +ch +cD +cY +dA +eu +eT +fv +fL +gi +gF +gY +ht +hR +io +gC +ae +ae +ah +ah +"} +(9,1,1) = {" +ah +ae +ae +at +aI +aP +bl +bE +bQ +bG +bH +bH +bH +ev +eU +bH +bH +bG +gG +gZ +hu +hS +ip +gg +ae +ae +ae +ah +"} +(10,1,1) = {" +ah +ai +ai +ai +aJ +aQ +bm +bG +bH +bH +cF +cF +dB +ew +eV +fw +fM +bG +bH +bG +hv +hT +gg +gC +ae +ae +ae +ah +"} +(11,1,1) = {" +ah +ai +al +au +aK +aR +bn +bH +bR +cj +cF +cF +cF +ex +eW +cF +fN +gj +jv +gl +hw +hU +iq +eA +iq +ae +ae +ah +"} +(12,1,1) = {" +ah +ai +am +av +aL +aT +bo +bH +bS +ck +cF +cF +dC +ey +eW +cF +fN +gk +gH +gl +hx +hV +ir +iI +iQ +iY +ji +jx +"} +(13,1,1) = {" +ah +ai +an +aw +ai +aV +bp +bH +bT +cm +cG +cm +dD +ez +eX +fx +fN +gj +gI +gl +hx +hx +is +hx +eA +ae +ae +ah +"} +(14,1,1) = {" +ah +ai +ao +ax +ai +aW +br +bH +bH +bH +bH +bH +bH +bG +eY +bG +fO +gl +gl +bG +fA +fA +it +iJ +iq +eA +eA +ah +"} +(15,1,1) = {" +ah +ai +ap +az +ai +aY +bs +bI +bU +bU +cH +cZ +dF +dF +eZ +fy +fP +gm +gJ +ha +hy +hW +iu +iK +iR +iZ +eA +ah +"} +(16,1,1) = {" +ah +ai +aq +aC +ai +bb +bu +bJ +bV +co +co +da +dH +bI +fb +fz +fQ +gn +gK +hb +hz +fA +iv +iL +eA +ja +eA +ah +"} +(17,1,1) = {" +ah +ai +ar +aD +ai +bd +bw +bI +bW +bU +cI +db +dI +bI +fc +fA +fR +go +gL +iC +fA +fA +iw +iM +eA +eA +eA +ah +"} +(18,1,1) = {" +ah +ai +ai +ai +aJ +cE +bc +bK +bI +bI +bI +dc +dJ +bI +fd +fA +jt +fA +fA +fA +fA +hX +hh +fV +hX +jb +jj +jw +"} +(19,1,1) = {" +ah +ag +ag +aE +aU +bB +af +af +ic +af +bI +bI +bI +eA +fd +fA +fA +fA +gM +gO +hA +hY +ix +gO +gO +jc +fU +ah +"} +(20,1,1) = {" +ah +ag +af +af +bt +dE +ea +ea +ec +ea +ea +fa +dK +eB +fe +dK +fT +gp +gN +hc +hB +hZ +iy +gO +gO +jd +fU +ah +"} +(21,1,1) = {" +ah +ab +aA +aX +bv +dG +dW +aj +el +bf +af +ag +dL +dL +ff +dL +fU +gq +gO +hd +hC +ia +iz +iA +gO +jd +fU +ah +"} +(22,1,1) = {" +ah +aZ +aZ +cn +af +ci +dQ +af +eq +af +af +bc +dM +eC +fg +dM +fV +gr +gO +he +hD +ib +iA +iA +gO +jd +fU +ah +"} +(23,1,1) = {" +ah +ba +ah +ad +bz +cz +dR +eb +er +eb +eb +fX +dN +dN +fh +fB +fW +gs +gP +hf +hE +ie +ie +ie +iS +je +fU +ah +"} +(24,1,1) = {" +ah +ah +ah +ah +aZ +cK +dQ +af +aB +af +ig +bg +dO +dO +fi +fC +fU +gt +gN +hg +hF +gO +iB +gO +iT +jf +jk +jw +"} +(25,1,1) = {" +ay +ah +bA +ah +cl +dT +dZ +af +iD +bf +af +ag +dO +dS +fj +fD +dS +dO +dS +hh +hG +if +ii +ii +ii +ii +hX +ah +"} +(26,1,1) = {" +ah +ah +ah +bF +ah +fS +aZ +ei +cd +af +af +ag +dO +eD +fk +fE +fY +gu +dO +hi +hH +ih +iG +iN +iU +ii +jl +ah +"} +(27,1,1) = {" +ah +bk +ah +ah +ah +be +ac +en +id +ep +cp +cp +dO +eE +fl +jr +fZ +gv +dO +hj +hI +ii +iE +iO +iV +jg +jl +ah +"} +(28,1,1) = {" +ah +ac +ak +ak +ak +ak +ak +bg +ag +cp +cp +dd +dO +eE +fm +js +ju +gw +dO +hk +hJ +ij +iF +iP +iW +jh +jl +ah +"} +(29,1,1) = {" +ah +ak +ak +ak +ak +ak +ak +bL +ae +cp +cJ +de +dO +eE +fl +fF +fF +fF +dO +hl +hK +ii +jm +jn +iX +ii +jl +ah +"} +(30,1,1) = {" +ah +ak +ak +ak +ak +ak +ak +ak +aZ +cp +cL +df +dP +eF +fn +fF +fF +dO +dS +hm +hL +if +ii +if +ii +ii +ae +ah +"} +(31,1,1) = {" +ah +ak +ak +ak +ak +ak +ak +ak +bX +cq +cp +dg +dS +dO +dO +dO +dO +dO +gQ +hn +hM +ik +iH +gA +bx +ae +ah +ah +"} +(32,1,1) = {" +ac +ac +ak +ak +ak +ak +ak +ak +bY +cr +cM +dh +dU +eG +fo +fG +ga +gx +gR +ho +hM +il +il +gA +ae +ah +ah +ah +"} +(33,1,1) = {" +ah +ac +ak +ak +ak +ak +ak +ak +bZ +cs +cN +di +dV +eH +fp +fH +gb +gy +gS +hp +hN +im +gA +gU +ah +ah +ah +ah +"} +(34,1,1) = {" +ah +ah +ak +ak +ak +ak +jo +bM +ca +ct +cO +dj +dV +eI +cO +cR +gc +gz +gT +hq +hO +gA +gU +ah +ah +ah +ah +ah +"} +(35,1,1) = {" +aS +ah +ac +cl +ak +ak +bx +bx +bx +ct +cP +dk +dX +eJ +cP +dV +gd +gA +gU +gU +gU +gU +ah +ah +ah +ah +ah +ah +"} +(36,1,1) = {" +ah +bq +ah +ah +ah +ae +ae +bx +bx +ct +cQ +dl +dY +eK +fq +fI +ge +gB +gV +jw +ah +ah +ah +ah +ah +ah +ah +ah +"} +(37,1,1) = {" +ah +ah +ah +ah +do +aZ +aZ +ae +bx +ct +cR +dm +cO +cR +dV +cR +gf +ct +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(38,1,1) = {" +ah +ah +ah +aS +ah +ah +aZ +aZ +ae +bx +ct +dn +ed +dV +bx +dV +ct +ct +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(39,1,1) = {" +ah +ah +aZ +ah +ah +aZ +aS +aZ +cb +cu +cb +dp +ee +cb +cu +cb +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(40,1,1) = {" +ah +ah +ah +ah +ah +aZ +ah +aZ +cc +cv +cS +dq +ef +eL +fr +cc +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(41,1,1) = {" +ah +ah +ah +aZ +ah +ah +ah +ah +cc +jp +cw +dr +eg +cw +jq +cc +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(42,1,1) = {" +ah +ah +ah +ah +ah +aS +ah +ah +ce +cx +cT +ds +eh +eM +fs +ce +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(43,1,1) = {" +ah +ah +ah +ah +ah +aZ +ah +ah +ce +ce +ce +dt +dt +ce +ce +ce +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(44,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ce +ce +ce +ce +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} diff --git a/_maps/RandomZLevels/away_mission/SnowCabin.dmm b/_maps/RandomZLevels/away_mission/SnowCabin.dmm index 249cb68b5d..844a134d27 100644 --- a/_maps/RandomZLevels/away_mission/SnowCabin.dmm +++ b/_maps/RandomZLevels/away_mission/SnowCabin.dmm @@ -428,7 +428,7 @@ /area/awaymission/cabin) "bm" = ( /obj/machinery/door/airlock/wood{ - id_tag = "snowdinbutworse5"; + id_tag = "snowdorm5"; name = "Cabin 5" }, /obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, @@ -3318,7 +3318,7 @@ /area/awaymission/cabin) "iV" = ( /obj/machinery/door/airlock/wood{ - id_tag = "snowdinbutworse1"; + id_tag = "snowdorm1"; name = "Cabin 1" }, /obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, @@ -3326,7 +3326,7 @@ /area/awaymission/cabin) "iW" = ( /obj/machinery/door/airlock/wood{ - id_tag = "snowdinbutworse2"; + id_tag = "snowdorm2"; name = "Cabin 2" }, /obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, @@ -3334,7 +3334,7 @@ /area/awaymission/cabin) "iX" = ( /obj/machinery/door/airlock/wood{ - id_tag = "snowdinbutworse3"; + id_tag = "snowdorm3"; name = "Cabin 3" }, /obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, @@ -3342,7 +3342,7 @@ /area/awaymission/cabin) "iY" = ( /obj/machinery/door/airlock/wood{ - id_tag = "snowdinbutworse4"; + id_tag = "snowdorm4"; name = "Cabin 4" }, /obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, @@ -3419,31 +3419,37 @@ /area/awaymission/cabin) "jg" = ( /obj/machinery/button/door{ - id = "snowdinbutworse2"; - name = "airlock button"; - pixel_y = -27 + id = "snowdorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 }, /turf/open/floor/wood, /area/awaymission/cabin) "jh" = ( /obj/machinery/button/door{ - id = "snowdinbutworse1"; - name = "airlock button"; - pixel_y = -27 + id = "snowdorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 }, /turf/open/floor/wood, /area/awaymission/cabin) "ji" = ( /obj/machinery/button/door{ - id = "snowdinbutworse3"; - name = "airlock button"; - pixel_y = -27 + id = "snowdorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 }, /turf/open/floor/wood, /area/awaymission/cabin) "jj" = ( /obj/machinery/button/door{ - id = "snowdinbutworse4"; + id = "snowdorm4"; name = "airlock button"; pixel_y = -27 }, @@ -3451,7 +3457,7 @@ /area/awaymission/cabin) "jk" = ( /obj/machinery/button/door{ - id = "snowdinbutworse5"; + id = "snowdorm5"; name = "airlock button"; pixel_y = -27 }, @@ -4024,8 +4030,8 @@ pixel_y = -2 }, /obj/item/clothing/head/christmashatg{ - pixel_y = 12; - pixel_x = 3 + pixel_x = 3; + pixel_y = 12 }, /turf/open/floor/plating/asteroid/snow, /area/awaymission/cabin/caves) diff --git a/_maps/lambdastation.json b/_maps/lambdastation.json index 737095c073..997f6b152e 100644 --- a/_maps/lambdastation.json +++ b/_maps/lambdastation.json @@ -1,11 +1,22 @@ { "map_name": "Lambda Station", "map_path": "map_files/LambdaStation", - "map_file": "lambda.dmm", + "map_file":[ + "lambda.dmm", + "dorms.dmm" + ], "shuttles": { - "cargo": "cargo_box", - "ferry": "ferry_fancy", - "whiteship": "whiteship_meta", - "emergency": "emergency_meta" - } + "cargo": "cargo_box", + "ferry": "ferry_fancy", + "whiteship": "whiteship_meta", + "emergency": "emergency_meta" + }, + "traits":[ + { + "Up":1 + }, + { + "Down":-1 + } + ] } diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index c0b4e6a88a..ce5539cee7 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1128,8 +1128,7 @@ /area/security/prison) "acI" = ( /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/atmospherics/pipe/simple/general/hidden, /obj/machinery/door/firedoor, @@ -1280,8 +1279,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/door/firedoor, /turf/open/floor/plating, @@ -1296,8 +1294,7 @@ "acZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/door/firedoor, /turf/open/floor/plating, @@ -21317,8 +21314,7 @@ name = "Privacy Shutters"; pixel_y = 24 }, -/obj/structure/rack, -/obj/item/storage/briefcase, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aYk" = ( @@ -46725,12 +46721,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"cjb" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engineering) "cjc" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -56119,7 +56109,6 @@ dir = 4 }, /obj/machinery/door/airlock/maintenance/abandoned{ - name = "maintenance access"; req_access_txt = "12" }, /obj/structure/barricade/wooden, @@ -58287,7 +58276,6 @@ }, /obj/machinery/computer/security/telescreen/toxins{ dir = 1; - network = list("toxins"); pixel_y = -28 }, /obj/structure/chair{ @@ -87415,8 +87403,8 @@ bVJ cay ccw cig -cjb -cjb +cSV +cSV cig cig cmG diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index 40a57135fd..9b260f0133 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -64,8 +64,8 @@ /turf/closed/wall, /area/maintenance/port/fore) "aam" = ( -/obj/structure/table, -/obj/item/storage/box/lights/mixed, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) @@ -90,15 +90,13 @@ /turf/open/floor/plasteel/airless/solarpanel, /area/solar/starboard/fore) "aap" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/crew_quarters/observatory) "aaq" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/emergency, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/observatory) "aar" = ( /obj/machinery/conveyor/auto{ dir = 8; @@ -664,14 +662,6 @@ }, /turf/open/floor/plating/airless, /area/router/aux) -"abF" = ( -/obj/machinery/mass_driver{ - dir = 8; - id = "sb_out"; - name = "Router Driver" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "abG" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -709,13 +699,6 @@ /obj/item/paper/fluff/cogstation/cluwne, /turf/open/floor/plating, /area/crew_quarters/theatre/clown) -"abJ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "sb_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "abK" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -819,17 +802,10 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"abZ" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "sb_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "aca" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 5; - id = "pb_off" + id = "pb" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -858,17 +834,9 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "ace" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "pb_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) -"acf" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "pb_out"; - name = "Router Driver" + id = "pb" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -898,9 +866,9 @@ name = "Medical Booth" }) "acj" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "solar_off" + id = "solar" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -973,8 +941,8 @@ /obj/structure/disposalpipe/junction{ dir = 4 }, -/obj/machinery/conveyor{ - id = "solar_off" +/obj/machinery/conveyor/auto{ + id = "solar" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -1052,25 +1020,10 @@ /obj/structure/rack, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) -"acz" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "sb_in"; - name = "Router Driver" - }, -/turf/open/floor/plating/airless, -/area/router/aux) -"acA" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "sb_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "acB" = ( /obj/machinery/conveyor{ dir = 6; - id = "sb_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -1109,9 +1062,9 @@ /turf/closed/wall, /area/crew_quarters/lounge) "acG" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "pb_off" + id = "pb" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -1142,8 +1095,8 @@ /area/crew_quarters/lounge) "acJ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/conveyor{ - id = "solar_off" +/obj/machinery/conveyor/auto{ + id = "solar" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -1297,18 +1250,11 @@ }, /turf/closed/wall/r_wall, /area/security/brig) -"adc" = ( -/obj/machinery/conveyor{ - id = "sb_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "add" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 6 }, -/turf/open/floor/plating, +/turf/closed/wall, /area/crew_quarters/observatory) "ade" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on, @@ -1332,11 +1278,10 @@ /turf/open/floor/plasteel, /area/crew_quarters/lounge) "adh" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 10 }, -/turf/open/floor/plating, +/turf/closed/wall, /area/crew_quarters/observatory) "adi" = ( /turf/open/floor/plasteel, @@ -1349,8 +1294,8 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/conveyor{ - id = "solar_off" +/obj/machinery/conveyor/auto{ + id = "solar" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -1494,9 +1439,8 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/observatory) "adG" = ( -/obj/machinery/mass_driver{ - id = "serv_in"; - name = "Router Driver" +/obj/machinery/mass_driver/pressure_plate{ + id = "hydro_in" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -1535,13 +1479,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/stairs/medium, /area/security/brig) -"adL" = ( -/obj/machinery/mass_driver{ - id = "starboard_in"; - name = "Router Driver" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "adM" = ( /turf/closed/wall, /area/crew_quarters/observatory) @@ -2671,8 +2608,9 @@ /turf/open/floor/plating, /area/construction) "agy" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) "agz" = ( @@ -2878,7 +2816,6 @@ /turf/closed/wall/r_wall, /area/security/processing) "agX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/structure/cable{ icon_state = "1-2" }, @@ -4171,22 +4108,11 @@ /turf/open/floor/plasteel, /area/construction/secondary) "akg" = ( -/obj/machinery/power/solar_control{ - dir = 4; - id = "foreport"; - name = "Port Bow Solar Control" - }, -/obj/structure/sign/warning/electricshock{ - pixel_x = -32 - }, /obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/maintenance/solars/starboard/fore) "akh" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -4196,14 +4122,16 @@ /turf/open/floor/plating, /area/construction/secondary) "akj" = ( -/obj/structure/chair{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/external{ + name = "Starboard Bow Solar Exterior Airlock"; + req_access_txt = "10;13" + }, +/obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/maintenance/solars/starboard/fore) "akk" = ( /obj/item/stack/tile/plasteel{ pixel_x = 10; @@ -4361,18 +4289,12 @@ /turf/open/floor/plasteel, /area/security/warden) "akz" = ( -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1" +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port) +/turf/open/floor/plasteel, +/area/router/service) "akA" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -4494,6 +4416,7 @@ /obj/structure/plasticflaps, /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ + id = "security_out"; name = "Security Router" }, /turf/open/floor/plating, @@ -4677,7 +4600,7 @@ "als" = ( /obj/machinery/mass_driver{ dir = 1; - id = "sec_out"; + id = "security_out"; name = "Router Driver" }, /turf/open/floor/plating, @@ -5541,16 +5464,15 @@ dir = 8 }, /obj/item/destTagger, -/obj/machinery/button/door{ - id = "secblock"; - name = "Router Access Control"; - pixel_x = 8; - pixel_y = 24; - req_access_txt = "1" - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/button/massdriver{ + id = "security_out"; + name = "Security Driver Control"; + pixel_x = 8; + pixel_y = 24 + }, /turf/open/floor/plasteel, /area/router/sec) "ant" = ( @@ -5833,9 +5755,9 @@ /turf/open/floor/plating, /area/maintenance/solars/port) "anW" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "sec_off" + id = "sec" }, /turf/open/floor/plating, /area/router/sec) @@ -6292,20 +6214,20 @@ "aoS" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/conveyor{ - id = "serv_off" - }, /obj/machinery/door/poddoor{ - id = "servblock"; + id = "hydro_in"; name = "Service Router" }, +/obj/machinery/conveyor/auto{ + id = "service" + }, /turf/open/floor/plating, /area/router/service) "aoT" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ - id = "servblock"; + id = "hydro_out"; name = "Service Router" }, /turf/open/floor/plating, @@ -6331,16 +6253,16 @@ /turf/open/floor/plasteel, /area/security/brig) "aoW" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external/glass{ - name = "Port Bow Solars External Access"; - req_access_txt = "10;13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/machinery/power/solar_control{ + dir = 4; + id = "foreport"; + name = "Port Bow Solar Control" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -6494,11 +6416,6 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/button/massdriver{ - id = "sec_out"; - pixel_x = 24; - pixel_y = 24 - }, /turf/open/floor/plasteel, /area/router/sec) "aps" = ( @@ -6808,8 +6725,8 @@ }, /area/chapel/main) "aqe" = ( -/obj/machinery/conveyor{ - id = "serv_off" +/obj/machinery/conveyor/auto{ + id = "service" }, /turf/open/floor/plating, /area/router/service) @@ -6949,7 +6866,7 @@ "aqy" = ( /obj/machinery/mass_driver{ dir = 1; - id = "serv_out"; + id = "hydro_out"; name = "Router Driver" }, /turf/open/floor/plating, @@ -7335,12 +7252,19 @@ /turf/open/floor/plasteel, /area/security/brig) "arr" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/chair{ + dir = 8 }, -/obj/item/stock_parts/cell/high/plus, /turf/open/floor/plating, /area/maintenance/solars/port) "ars" = ( @@ -7506,11 +7430,6 @@ light_color = "#ffc1c1" }, /obj/item/destTagger, -/obj/machinery/button/massdriver{ - id = "serv_out"; - pixel_x = 8; - pixel_y = -4 - }, /obj/machinery/requests_console{ department = "Service Router"; name = "Service Router RC"; @@ -7519,9 +7438,9 @@ /turf/open/floor/plasteel, /area/router/service) "arL" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "serv_off" + id = "service" }, /turf/open/floor/plating, /area/router/service) @@ -7774,10 +7693,16 @@ /turf/open/floor/plasteel, /area/security/prison) "asl" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/camera{ - c_tag = "Port Bow Solar Maintenance"; - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external/glass{ + name = "Port Bow Solars External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -7965,12 +7890,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/machinery/button/door{ - id = "servblock"; - name = "Router Access Control"; +/obj/machinery/button/massdriver{ + id = "hydro_out"; + name = "Service Driver Control"; pixel_x = 8; - pixel_y = 24; - req_one_access_txt = "12;25;26;28;35;46" + pixel_y = 24 }, /turf/open/floor/plasteel, /area/router/service) @@ -7991,12 +7915,18 @@ name = "Canister Storage" }) "asH" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 +/obj/machinery/camera{ + c_tag = "Port Bow Solar Maintenance"; + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 }, /turf/open/floor/plating, /area/maintenance/solars/port) @@ -8236,12 +8166,16 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "atn" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 8 }, -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel, -/area/router/service) +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/solars/port) "ato" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -8531,7 +8465,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/landmark/xeno_spawn, /turf/open/floor/carpet/purple, /area/crew_quarters/dorms/purple) "atZ" = ( @@ -9040,9 +8973,8 @@ dir = 8 }, /obj/machinery/turnstile{ - name = "Genpop Entrance Turnstile"; - icon_state = "turnstile_map"; dir = 8; + name = "Genpop Entrance Turnstile"; req_access_txt = "69" }, /turf/open/floor/plasteel, @@ -9723,9 +9655,8 @@ name = "Brig Lockdown" }, /obj/machinery/turnstile{ - name = "Genpop Entrance Turnstile"; - icon_state = "turnstile_map"; dir = 8; + name = "Genpop Entrance Turnstile"; req_access_txt = "69" }, /turf/open/floor/plasteel, @@ -10127,9 +10058,6 @@ /turf/open/floor/plasteel, /area/hydroponics) "axt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -10451,13 +10379,11 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aya" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/obj/machinery/camera{ - c_tag = "AI Core Exterior"; - dir = 1 +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/plating/airless, /area/space/nearstation) @@ -10468,12 +10394,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -11336,10 +11256,9 @@ /turf/open/floor/plasteel, /area/security/prison) "azO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel, -/area/hydroponics/lobby) +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/fore) "azP" = ( /obj/effect/turf_decal/bot, /obj/machinery/vending/cola/random, @@ -11510,6 +11429,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/solars/port) "aAj" = ( @@ -12936,9 +12856,6 @@ "aCZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/electricshock, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plating, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -15104,19 +15021,19 @@ }, /area/chapel/main) "aHj" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/door/airlock/external{ - name = "Starboard Bow Solar Exterior Airlock"; - req_access_txt = "10;13" +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) +/turf/open/floor/plasteel, +/area/tcommsat/computer) "aHk" = ( /obj/structure/chair{ dir = 4 @@ -15272,13 +15189,14 @@ /area/bridge) "aHE" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/turf/open/floor/plating, +/area/tcommsat/computer) "aHF" = ( /turf/open/floor/plasteel/dark, /area/bridge) @@ -15402,7 +15320,7 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ - areastring = "/area/maintenance/central"; + areastring = "/area/security/main"; dir = 1; name = "Security Office APC"; pixel_y = 24 @@ -18662,6 +18580,9 @@ }) "aOl" = ( /obj/effect/turf_decal/delivery, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -18982,6 +18903,9 @@ /turf/open/floor/plating, /area/crew_quarters/fitness/cogpool) "aOV" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/stairs, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -19395,7 +19319,7 @@ icon_state = "0-8" }, /turf/open/floor/plating, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "aPO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ dir = 8 @@ -19661,16 +19585,10 @@ icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "aQq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/space/nearstation) +/turf/open/floor/plating/airless, +/area/crew_quarters/fitness/cogpool) "aQr" = ( /obj/structure/grille, /obj/structure/disposalpipe/segment{ @@ -19683,7 +19601,7 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/space/nearstation) +/area/crew_quarters/lounge/jazz) "aQs" = ( /obj/machinery/firealarm{ dir = 1; @@ -20139,6 +20057,9 @@ /area/crew_quarters/heads/hop) "aRp" = ( /obj/structure/sign/warning/fire, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/closed/wall/r_wall, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -20298,7 +20219,9 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/structure/cable, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, /turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -20986,19 +20909,18 @@ /turf/open/floor/plasteel, /area/security/brig) "aTh" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external/glass{ + name = "Telecommunications External Access"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/power/apc{ - name = "AI Upload Foyer APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/turf/open/floor/plating, +/area/tcommsat/computer) "aTi" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -21434,6 +21356,9 @@ dir = 1; pixel_y = -26 }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/engine/engineering{ name = "Engine Room" @@ -21739,10 +21664,6 @@ /turf/open/floor/plating, /area/maintenance/department/eva) "aUR" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 8; - icon_state = "intact" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -21931,19 +21852,14 @@ dir = 8; pixel_y = -22 }, -/obj/machinery/button/massdriver{ - id = "public_out"; - pixel_x = 24; - pixel_y = -6 - }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/machinery/button/door{ - id = "pubblock"; - name = "Router Access Control"; +/obj/machinery/button/massdriver{ + id = "public_out"; + name = "Public Router Control"; pixel_x = 24; - pixel_y = 24 + pixel_y = -8 }, /turf/open/floor/plasteel, /area/router/public) @@ -22804,14 +22720,14 @@ /turf/open/floor/wood, /area/library) "aXf" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/structure/table/wood, +/obj/machinery/photocopier, /obj/machinery/light{ dir = 1; - light_color = "#c1caff" + light_color = "#e8eaff" }, -/turf/open/floor/carpet, -/area/library) +/obj/item/paper/fluff/cogstation/eva, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) "aXg" = ( /obj/machinery/vending/coffee, /turf/open/floor/plasteel, @@ -23913,35 +23829,20 @@ /turf/closed/wall, /area/lawoffice) "aZz" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "Routing Depot - Fore Exterior"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/lawoffice) +/turf/open/space/basic, +/area/maintenance/department/eva) "aZA" = ( -/obj/structure/table/reinforced, -/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{ +/obj/machinery/computer/card{ dir = 8 }, +/obj/item/paper/guides/cogstation/job_changes, /turf/open/floor/plasteel/dark, -/area/lawoffice) +/area/security/checkpoint/customs) "aZB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -23961,7 +23862,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/book/manual/wiki/security_space_law, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/window/reinforced/spawner/north, /turf/open/floor/plasteel/dark, /area/lawoffice) "aZD" = ( @@ -24018,13 +23921,21 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "aZI" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/landmark/start/lawyer, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + name = "Law Office Counter"; + req_access_txt = "38" + }, /turf/open/floor/plasteel/dark, /area/lawoffice) "aZJ" = ( @@ -24426,13 +24337,21 @@ /turf/open/floor/wood, /area/library) "baz" = ( -/obj/machinery/photocopier, -/obj/machinery/light{ - dir = 1; - light_color = "#e8eaff" +/obj/structure/table/reinforced, +/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/book/manual/wiki/security_space_law, +/obj/structure/window/reinforced/spawner/north, /turf/open/floor/plasteel/dark, -/area/security/checkpoint/customs) +/area/lawoffice) "baA" = ( /obj/structure/filingcabinet/chestdrawer, /obj/item/folder/blue, @@ -25110,9 +25029,11 @@ /turf/open/space/basic, /area/space/nearstation) "bcc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, /turf/closed/wall/r_wall, -/area/space/nearstation) +/area/crew_quarters/lounge/jazz) "bcd" = ( /obj/item/kirbyplants{ icon_state = "plant-14" @@ -25126,8 +25047,8 @@ id = "public" }, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "cargoblock"; +/obj/machinery/door/poddoor{ + id = "public_in"; name = "Public Router" }, /turf/open/floor/plating, @@ -25140,8 +25061,8 @@ "bcg" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "cargoblock"; +/obj/machinery/door/poddoor{ + id = "public_out"; name = "Public Router" }, /turf/open/floor/plating, @@ -25282,11 +25203,17 @@ /turf/closed/wall/r_wall, /area/science/mixing) "bcz" = ( -/obj/machinery/computer/card{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_x = -30 }, /turf/open/floor/plasteel/dark, -/area/security/checkpoint/customs) +/area/lawoffice) "bcA" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -25412,7 +25339,7 @@ dir = 5 }, /turf/closed/wall/r_wall, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "bcP" = ( /obj/structure/cable{ icon_state = "4-8" @@ -25433,9 +25360,6 @@ /area/hallway/primary/central) "bcS" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom" - }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/courtroom) @@ -25478,10 +25402,12 @@ /turf/closed/wall, /area/hallway/primary/central) "bcY" = ( -/obj/machinery/power/smes, /obj/structure/cable{ icon_state = "0-2" }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai_upload_foyer) "bcZ" = ( @@ -25761,15 +25687,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bdE" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 8; - icon_state = "intact" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge) +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/grass, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) "bdF" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -25999,6 +25921,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel, /area/science/mixing) "bel" = ( @@ -26065,7 +25988,7 @@ dir = 8 }, /turf/closed/wall/r_wall, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "bet" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -26114,7 +26037,7 @@ dir = 8 }, /turf/closed/wall/r_wall/rust, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "bez" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -26131,15 +26054,27 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "beC" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) "beD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, /turf/closed/wall/r_wall, -/area/space/nearstation) +/area/crew_quarters/lounge/jazz) "beE" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -26147,6 +26082,10 @@ }, /obj/structure/fans/tiny, /obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "starboardbelthell_in"; + name = "Belt Hell" + }, /turf/open/floor/plating, /area/maintenance/disposal) "beF" = ( @@ -26156,13 +26095,16 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "beG" = ( -/obj/structure/lattice, -/obj/machinery/camera{ - c_tag = "Routing Depot - Fore Exterior"; +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/lawyer, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/lawoffice) "beH" = ( /obj/structure/window/reinforced/spawner/east, /obj/machinery/light{ @@ -26845,11 +26787,15 @@ /turf/open/space/basic, /area/space/nearstation) "bgi" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/space/basic, -/area/space) +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "bgj" = ( /obj/structure/table, /obj/item/weldingtool/mini, @@ -27445,6 +27391,7 @@ id = "sec" }, /obj/machinery/door/poddoor{ + id = "security_in"; name = "Security Router" }, /turf/open/floor/plating, @@ -27541,8 +27488,12 @@ /turf/open/floor/plasteel, /area/maintenance/department/chapel) "bhI" = ( -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "bhJ" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -27818,12 +27769,6 @@ /area/quartermaster/storage) "bim" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/button/massdriver{ - id = "router_in"; - name = "mass driver button (Router)"; - pixel_x = 24; - pixel_y = -8 - }, /turf/open/floor/plating, /area/maintenance/disposal) "bin" = ( @@ -27937,9 +27882,6 @@ /area/quartermaster/storage) "bix" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom" - }, /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 4 @@ -28083,9 +28025,10 @@ /turf/open/floor/plating, /area/maintenance/disposal) "biO" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/brown/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) "biP" = ( /obj/machinery/light{ dir = 4; @@ -28692,6 +28635,11 @@ dir = 9; id = "mail" }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced, /turf/open/floor/plating, /area/quartermaster/sorting) "bkc" = ( @@ -28928,8 +28876,7 @@ icon_state = "0-4" }, /obj/machinery/door/poddoor/preopen{ - id = "capblast"; - name = "blast door" + id = "capblast" }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) @@ -29013,6 +28960,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/engine/engineering{ name = "Engine Room" @@ -29907,10 +29857,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bmz" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/storage/primary) +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible, +/turf/open/space/basic, +/area/space/nearstation) "bmA" = ( /obj/item/stack/tile/plasteel{ pixel_x = 10; @@ -30292,6 +30245,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "bng" = ( @@ -30419,6 +30375,9 @@ /area/crew_quarters/lounge/jazz) "bnp" = ( /obj/effect/turf_decal/delivery, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "bnq" = ( @@ -30579,7 +30538,6 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/fore) "bnI" = ( @@ -30649,9 +30607,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bnS" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) "bnT" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -30768,17 +30728,17 @@ /turf/open/floor/plasteel, /area/ai_monitored/nuke_storage) "bof" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/machinery/door/airlock/external/glass{ name = "Pool Exterior Access"; req_access_txt = "13" }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plating, +/turf/open/space/basic, /area/crew_quarters/fitness/cogpool) "bog" = ( /obj/machinery/light{ @@ -31511,7 +31471,7 @@ }) "bpL" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, /turf/closed/wall/r_wall, /area/engine/engine_smes{ @@ -31524,10 +31484,7 @@ "bpN" = ( /obj/structure/grille, /obj/machinery/power/terminal, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "0-4" }, /turf/open/floor/plating, @@ -32151,9 +32108,9 @@ }, /area/maintenance/central) "brf" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/maintenance/starboard/central) +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "brg" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -32739,7 +32696,6 @@ name = "Station Intercom (Common)"; pixel_x = 26 }, -/obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, /area/maintenance/disposal) @@ -32879,19 +32835,9 @@ /turf/open/floor/plasteel/stairs/left, /area/hydroponics) "bsx" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - name = "Recycler Exterior Access"; - req_one_access_txt = "13;50" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal) +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/cogpool) "bsy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, @@ -33256,7 +33202,6 @@ "bts" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/light_construct/small{ - icon_state = "bulb-construct-stage1"; dir = 1 }, /turf/open/floor/plasteel, @@ -33297,21 +33242,9 @@ /turf/open/floor/plating, /area/maintenance/aft) "btw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/small, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/department/eva) +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/router) "btx" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -33510,17 +33443,21 @@ "btZ" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "public_in"; + name = "Public Router" + }, /turf/open/floor/plating, /area/router) "bua" = ( /turf/closed/wall/r_wall, /area/science/robotics/mechbay) "bub" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/light, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plasteel, /area/hallway/primary/aft) "buc" = ( @@ -33534,6 +33471,10 @@ /obj/machinery/conveyor{ id = "router_off" }, +/obj/machinery/door/poddoor{ + id = "public_out"; + name = "Public Router" + }, /turf/open/floor/plating, /area/router) "bue" = ( @@ -33635,10 +33576,9 @@ /area/maintenance/department/chapel) "bus" = ( /obj/structure/window/reinforced/spawner/east, -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 1; - id = "public_in"; - name = "Router Driver" + id = "public_in" }, /turf/open/floor/plating, /area/router) @@ -33816,8 +33756,7 @@ icon_state = "0-8" }, /obj/machinery/door/poddoor/preopen{ - id = "capblast"; - name = "blast door" + id = "capblast" }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) @@ -34237,17 +34176,13 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "bvM" = ( -/obj/machinery/door/airlock/external/glass{ - name = "External Construction Access"; - req_one_access_txt = "10;31" +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "Routing Depot - Aft Exterior"; + pixel_x = 22 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) +/turf/open/space/basic, +/area/router) "bvN" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 @@ -34425,17 +34360,6 @@ name = "Routing Depot RC"; pixel_y = 28 }, -/obj/machinery/button/massdriver{ - id = "eva_in"; - name = "mass driver button (EVA)"; - pixel_x = -24 - }, -/obj/machinery/button/massdriver{ - id = "public_in"; - name = "mass driver button (Public)"; - pixel_x = -24; - pixel_y = 8 - }, /turf/open/floor/plasteel, /area/router) "bwi" = ( @@ -34778,9 +34702,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) @@ -34971,21 +34895,30 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) "bxm" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"bxn" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-8" }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bxn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "AI Core Exterior"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/maintenance/department/eva) "bxo" = ( /obj/machinery/door/airlock/external{ name = "Telecommunications External Access"; @@ -35045,21 +34978,22 @@ pixel_x = 3; pixel_y = 1 }, +/obj/machinery/button/massdriver{ + id = "trash"; + name = "Trash Driver"; + pixel_x = -24; + pixel_y = -8 + }, /turf/open/floor/plating, /area/maintenance/disposal) "bxt" = ( -/obj/machinery/door/airlock/external/glass{ - name = "Telecommunications External Access"; - req_access_txt = "61" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 }, /turf/open/floor/plating, -/area/tcommsat/computer) +/area/maintenance/disposal) "bxu" = ( /obj/structure/rack, /obj/item/circuitboard/machine/telecomms/broadcaster, @@ -35096,7 +35030,6 @@ /area/tcommsat/computer) "bxy" = ( /obj/item/trash/candle, -/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -35113,6 +35046,9 @@ dir = 1 }, /obj/item/paper/guides/cogstation/letter_eng, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "bxA" = ( @@ -35217,18 +35153,15 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "bxK" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/radio/off, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/tcommsat/computer) +/area/maintenance/disposal) "bxL" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -35530,7 +35463,6 @@ /area/maintenance/starboard/central) "byu" = ( /obj/structure/disposalpipe/segment, -/obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plating, /area/maintenance/starboard/central) @@ -35610,11 +35542,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/button/massdriver{ - id = "eva_out"; - pixel_x = 24; - pixel_y = 24 - }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 9 }, @@ -35627,7 +35554,7 @@ }, /obj/machinery/conveyor/auto{ dir = 4; - id = "EVA" + id = "eva" }, /turf/open/floor/plating, /area/router/eva) @@ -35905,11 +35832,11 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "bzp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) +/area/maintenance/disposal) "bzq" = ( /obj/machinery/light{ dir = 8 @@ -35948,7 +35875,7 @@ dir = 4; id = "MiningConveyer" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/quartermaster/miningoffice) "bzv" = ( /obj/effect/turf_decal/stripes/line, @@ -35960,7 +35887,7 @@ id = "MiningConveyer" }, /obj/structure/plasticflaps, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/quartermaster/miningoffice) "bzw" = ( /obj/structure/disposalpipe/segment{ @@ -36026,8 +35953,8 @@ "bzD" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "evablock"; +/obj/machinery/door/poddoor{ + id = "eva_out"; name = "EVA Router" }, /turf/open/floor/plating, @@ -36035,17 +35962,21 @@ "bzE" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/conveyor{ +/obj/machinery/door/poddoor{ + id = "eva_out"; + name = "EVA Router" + }, +/obj/machinery/conveyor/auto{ dir = 4; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) "bzF" = ( /obj/structure/window/reinforced/spawner, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) @@ -36061,6 +35992,7 @@ "bzH" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille/broken, +/obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/disposal) "bzI" = ( @@ -37026,9 +36958,12 @@ "bBE" = ( /obj/structure/grille, /obj/machinery/power/terminal, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/engine/engine_smes{ name = "Power Monitoring" @@ -37386,6 +37321,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/button/massdriver{ + id = "eva_out"; + name = "EVA Driver Control"; + pixel_x = 24; + pixel_y = -22 + }, /turf/open/floor/plasteel, /area/router/eva) "bCv" = ( @@ -37427,9 +37368,8 @@ dir = 4 }, /obj/effect/turf_decal/tile/yellow, -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/under/misc/overalls, /obj/structure/window/reinforced/spawner/east, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel, /area/storage/primary) "bCA" = ( @@ -37465,8 +37405,8 @@ }, /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "evablock"; +/obj/machinery/door/poddoor{ + id = "eva_in"; name = "EVA Router" }, /turf/open/floor/plating, @@ -37555,10 +37495,9 @@ "bCR" = ( /obj/structure/window/reinforced/spawner/north, /obj/effect/turf_decal/stripes/line, -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 8; - id = "airbridge_in"; - name = "Router Driver" + id = "eva_in" }, /turf/open/floor/plating, /area/router) @@ -37574,9 +37513,9 @@ /obj/structure/window/reinforced/spawner/north, /obj/effect/turf_decal/stripes/line, /obj/structure/disposalpipe/sorting/mail/flip, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) @@ -37630,13 +37569,13 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "bCZ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "router_off" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "router" + }, /turf/open/floor/plating, /area/router) "bDa" = ( @@ -37644,14 +37583,21 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/morgue) "bDb" = ( -/mob/living/simple_animal/mouse/white{ - desc = "Wubba lubba dub dub."; - name = "Rick" +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/showroomfloor, -/area/medical/morgue) +/obj/machinery/door/airlock/external{ + name = "Recycler Exterior Access"; + req_one_access_txt = "13;50" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) "bDc" = ( -/obj/machinery/vending/security, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 @@ -37659,6 +37605,7 @@ /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" }, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "bDd" = ( @@ -37895,14 +37842,14 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor{ - dir = 8; - id = "router_off" - }, /obj/structure/disposalpipe/junction/flip{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "router" + }, /turf/open/floor/plating, /area/router) "bDE" = ( @@ -38125,12 +38072,13 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/conveyor{ - dir = 8; - id = "router_off" - }, /obj/structure/disposalpipe/sorting/mail{ - dir = 4 + dir = 4; + sortType = 9 + }, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "router" }, /turf/open/floor/plating, /area/router) @@ -38153,9 +38101,9 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) @@ -38345,9 +38293,9 @@ }, /obj/effect/turf_decal/stripes/line, /obj/structure/disposalpipe/segment, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) @@ -38477,7 +38425,9 @@ /area/crew_quarters/bar) "bEK" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible, -/obj/machinery/space_heater, +/obj/machinery/space_heater{ + anchored = 1 + }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -39183,23 +39133,9 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bFY" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/noticeboard{ - pixel_y = 28 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/structure/lattice/catwalk, +/turf/closed/wall/r_wall, +/area/engine/atmos) "bFZ" = ( /obj/machinery/chem_heater, /turf/open/floor/plasteel/white, @@ -39424,18 +39360,6 @@ pixel_x = 26 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/button/massdriver{ - id = "eng_in"; - name = "mass driver button (Engineering)"; - pixel_x = 24; - pixel_y = -8 - }, -/obj/machinery/button/massdriver{ - id = "router_out"; - name = "mass driver button (Other)"; - pixel_x = 24; - pixel_y = 12 - }, /turf/open/floor/plasteel, /area/router) "bGz" = ( @@ -39527,12 +39451,6 @@ /obj/item/clothing/gloves/color/grey, /turf/open/floor/plating, /area/maintenance/starboard/central) -"bGK" = ( -/obj/machinery/conveyor{ - id = "starboard_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "bGL" = ( /obj/structure/chair{ dir = 1 @@ -39574,14 +39492,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) -"bGP" = ( -/obj/machinery/mass_driver{ - dir = 1; - id = "secserv"; - name = "Router Driver" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "bGQ" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment{ @@ -39696,13 +39606,6 @@ name = "EVA Router APC"; pixel_x = 24 }, -/obj/machinery/button/door{ - id = "evablock"; - name = "Router Access Control"; - pixel_x = 24; - pixel_y = 10; - req_access_txt = "19" - }, /turf/open/floor/plasteel, /area/router/eva) "bHb" = ( @@ -40583,8 +40486,9 @@ /area/maintenance/department/chapel) "bIY" = ( /obj/machinery/atmospherics/pipe/simple/violet/hidden, +/obj/structure/lattice, /turf/open/space/basic, -/area/space) +/area/space/nearstation) "bIZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -42717,20 +42621,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 4; - id = "router_out"; - name = "Router Driver" + id = "starboardbelthell_out" }, /turf/open/floor/plating, /area/router) -"bNo" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "starboard_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "bNp" = ( /obj/machinery/light{ dir = 1 @@ -42756,6 +42652,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, /area/engine/atmos) "bNr" = ( @@ -43726,7 +43623,6 @@ /turf/open/space/basic, /area/space/nearstation) "bPB" = ( -/obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, @@ -43736,13 +43632,12 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bPC" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Waste In" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPD" = ( @@ -43963,7 +43858,7 @@ dir = 8 }, /obj/structure/disposalpipe/sorting/mail{ - sortType = 1 + sortType = 2 }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, @@ -44382,7 +44277,6 @@ /obj/structure/chair/office/dark{ dir = 4 }, -/obj/effect/landmark/start/atmospheric_technician, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, @@ -45195,6 +45089,7 @@ /area/science/mixing) "bSm" = ( /obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable/yellow, /turf/open/floor/plasteel, /area/engine/engine_smes{ name = "Power Monitoring" @@ -45207,12 +45102,12 @@ name = "Power Monitoring" }) "bSo" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/engine/engine_smes{ - name = "Power Monitoring" +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" }) "bSp" = ( /obj/structure/cable{ @@ -45325,7 +45220,7 @@ }, /obj/structure/disposalpipe/sorting/mail/flip{ dir = 1; - sortType = 11 + sortType = 9 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -45837,6 +45732,7 @@ "bTF" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/router) "bTG" = ( @@ -45857,11 +45753,11 @@ /area/engine/atmos) "bTJ" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/violet/hidden{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) "bTK" = ( /turf/open/floor/engine/co2, /area/engine/atmos) @@ -46008,15 +45904,15 @@ /turf/open/space/basic, /area/space/nearstation) "bUa" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Atmospherics - Entrance" }, /obj/machinery/firealarm{ pixel_y = 26 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bUb" = ( @@ -46099,17 +45995,12 @@ /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai_upload_foyer) "bUj" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "bUk" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/cobweb, @@ -46481,11 +46372,11 @@ /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai_upload_foyer) "bUV" = ( -/obj/structure/lattice, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ dir = 10 }, +/obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) "bUW" = ( @@ -46837,14 +46728,9 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai_upload_foyer) "bVD" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "bVE" = ( /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -46945,8 +46831,7 @@ }, /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ - id = "capblast"; - name = "blast door" + id = "capblast" }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) @@ -47063,10 +46948,10 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bVY" = ( @@ -47270,13 +47155,13 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bWq" = ( -/obj/structure/lattice, -/obj/machinery/camera{ - c_tag = "Routing Depot - Aft Exterior"; - pixel_x = 22 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/plasteel, +/area/hallway/primary/central) "bWr" = ( /obj/structure/closet/l3closet/scientist, /obj/effect/turf_decal/stripes/line, @@ -47421,12 +47306,10 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bWG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bWH" = ( @@ -47442,17 +47325,18 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload_foyer) "bWJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) "bWK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -48003,8 +47887,7 @@ icon_state = "0-8" }, /obj/machinery/door/poddoor/preopen{ - id = "capblast"; - name = "blast door" + id = "capblast" }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) @@ -48043,9 +47926,9 @@ /area/maintenance/aft) "bXM" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "router_off" + id = "router" }, /turf/open/floor/plating, /area/router) @@ -48066,11 +47949,11 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bXP" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/turf/open/floor/plasteel, +/area/engine/atmos) "bXQ" = ( /obj/structure/closet/l3closet/scientist, /obj/effect/turf_decal/tile/purple, @@ -48123,11 +48006,12 @@ name = "Research Sector" }) "bXV" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Mix" }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/turf/open/floor/plasteel, +/area/engine/atmos) "bXW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48203,11 +48087,9 @@ name = "Research Sector" }) "bYd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/hallway/primary/central) +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "bYe" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -48226,6 +48108,10 @@ id = "router" }, /obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "starboardbelthell_in"; + name = "Belt Hell" + }, /turf/open/floor/plating, /area/router) "bYg" = ( @@ -48582,14 +48468,15 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bYP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/engine/atmos) "bYQ" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -49040,12 +48927,22 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "bZQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -30 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -30 + }, +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "bZR" = ( /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, @@ -49080,14 +48977,15 @@ }, /area/library) "bZV" = ( +/obj/structure/window/reinforced/spawner/east, /obj/structure/table/wood, -/obj/structure/window/reinforced/spawner/north, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet, /area/library) "bZW" = ( /obj/structure/sign/warning/fire, @@ -49179,6 +49077,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cai" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible, /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, @@ -49199,7 +49098,7 @@ "cak" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cal" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -49211,7 +49110,7 @@ "cam" = ( /obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "can" = ( /obj/machinery/power/turbine{ dir = 8 @@ -49220,7 +49119,7 @@ icon_state = "0-4" }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cao" = ( /obj/machinery/power/compressor{ dir = 4 @@ -49232,7 +49131,7 @@ icon_state = "0-4" }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cap" = ( /obj/structure/cable{ icon_state = "4-8" @@ -49243,7 +49142,7 @@ }, /obj/machinery/igniter/incinerator_atmos, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "caq" = ( /obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/effect/mapping_helpers/airlock/locked, @@ -49254,7 +49153,7 @@ dir = 4 }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "car" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible, /turf/open/floor/plasteel, @@ -49268,7 +49167,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/engine/vacuum, /area/engine/atmos) "cat" = ( @@ -49278,7 +49176,7 @@ "cau" = ( /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cav" = ( /turf/closed/wall/r_wall, /area/science/explab) @@ -49550,6 +49448,7 @@ "cbe" = ( /obj/structure/table/reinforced, /obj/item/clothing/mask/gas, +/obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/science/explab) "cbf" = ( @@ -49583,8 +49482,7 @@ }, /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ - id = "capblast"; - name = "blast door" + id = "capblast" }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) @@ -49664,8 +49562,7 @@ }, /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ - id = "capblast"; - name = "blast door" + id = "capblast" }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) @@ -49805,18 +49702,24 @@ /turf/open/floor/plating, /area/ai_monitored/storage/eva) "cbI" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ - dir = 1 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "cbJ" = ( /obj/structure/table/reinforced, /obj/item/analyzer, @@ -49858,19 +49761,13 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) "cbM" = ( @@ -49931,13 +49828,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) -"cbS" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "starboard_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "cbT" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 @@ -49945,28 +49835,28 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = -2; - pixel_y = -27 - }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cbU" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air to Distro" - }, /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/engine/atmos"; name = "Atmospherics APC"; - pixel_y = -28 + pixel_y = -24 }, /obj/structure/cable, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "cbV" = ( /obj/structure/disposalpipe/segment, @@ -50060,9 +49950,9 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "starboard_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -50089,9 +49979,8 @@ /area/router) "cci" = ( /obj/structure/window/reinforced/spawner/west, -/obj/machinery/mass_driver{ - id = "workshop_in"; - name = "Router Driver" +/obj/machinery/mass_driver/pressure_plate{ + id = "portbelthell_out" }, /turf/open/floor/plating, /area/router) @@ -50189,9 +50078,9 @@ /area/router/aux) "ccs" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "starboard_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -50252,6 +50141,10 @@ id = "router" }, /obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "portbelthell_in"; + name = "Airbridge Router" + }, /turf/open/floor/plating, /area/router) "ccz" = ( @@ -50325,11 +50218,10 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "ccE" = ( -/obj/machinery/mass_driver{ - id = "eng_in"; - name = "Router Driver" - }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/mass_driver/pressure_plate{ + id = "engi_in" + }, /turf/open/floor/plating, /area/router) "ccF" = ( @@ -50354,10 +50246,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "ccH" = ( -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 8; - id = "disposal_in"; - name = "Router Driver" + id = "recycle_in" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -50373,13 +50264,6 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) -"ccJ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "starboard_off" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "ccK" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 @@ -50414,7 +50298,8 @@ "ccO" = ( /obj/structure/grille, /obj/structure/disposalpipe/sorting/mail{ - dir = 8 + dir = 8; + sortType = 21 }, /turf/open/floor/plating/airless, /area/router/aux) @@ -50678,10 +50563,7 @@ /turf/open/space/basic, /area/space/nearstation) "cdq" = ( -/obj/machinery/mass_driver{ - id = "sq_in"; - name = "Router Driver" - }, +/obj/machinery/mass_driver/pressure_plate, /turf/open/floor/plating/airless, /area/router/aux) "cdr" = ( @@ -50825,8 +50707,8 @@ "cdG" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "engblock"; +/obj/machinery/door/poddoor{ + id = "engi_out"; name = "Engineering Router" }, /turf/open/floor/plating, @@ -50966,8 +50848,8 @@ id = "eng" }, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "engblock"; +/obj/machinery/door/poddoor{ + id = "engi_in"; name = "Engineering Router" }, /turf/open/floor/plating, @@ -51026,24 +50908,17 @@ /turf/closed/wall/r_wall, /area/medical/medbay/lobby) "cea" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/photocopier, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Cargo RC"; - pixel_y = 30 +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" }, -/obj/machinery/camera{ - c_tag = "Supply - Delivery Office Aft"; - network = list("ss13","rd") - }, -/obj/item/paper/guides/cogstation/disposals, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) +/area/library) "ceb" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -51184,7 +51059,7 @@ /obj/structure/window/reinforced/spawner/east, /obj/machinery/mass_driver{ dir = 1; - id = "eng_out"; + id = "engi_out"; name = "Router Driver" }, /obj/structure/window/reinforced/spawner/west, @@ -51403,17 +51278,11 @@ dir = 1 }, /obj/machinery/button/massdriver{ - id = "eng_out"; + id = "engi_out"; + name = "Engineering Driver Control"; pixel_x = -24; pixel_y = 24 }, -/obj/machinery/button/door{ - id = "engblock"; - name = "Router Access Control"; - pixel_x = -24; - pixel_y = 32; - req_access_txt = "31" - }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 4 }, @@ -51495,12 +51364,12 @@ /turf/open/floor/plasteel, /area/router/eng) "ceU" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 9 - }, /obj/structure/fireaxecabinet{ pixel_y = -32 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/atmos) "ceV" = ( @@ -51900,15 +51769,15 @@ name = "Canister Storage" }) "cfM" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-8" }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cfN" = ( @@ -51933,13 +51802,14 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cfP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Distro" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cfQ" = ( @@ -51966,10 +51836,16 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "cfT" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, /obj/structure/cable{ icon_state = "2-8" }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Mix" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cfU" = ( @@ -52073,6 +51949,10 @@ id = "disposal" }, /obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "starboardbelthell_out"; + name = "Belt Hell" + }, /turf/open/floor/plating, /area/maintenance/disposal) "cge" = ( @@ -52109,20 +51989,14 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cgg" = ( -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cgh" = ( /obj/machinery/pipedispenser, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, /obj/effect/turf_decal/stripes/end{ dir = 1 }, @@ -52272,10 +52146,12 @@ /turf/open/floor/plasteel/dark, /area/engine/teg_hot) "cgx" = ( -/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cgy" = ( @@ -52283,10 +52159,10 @@ /turf/closed/wall/rust, /area/maintenance/solars/starboard/aft) "cgz" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Filter" + }, /turf/open/floor/plasteel, /area/engine/atmos) "cgA" = ( @@ -52641,37 +52517,23 @@ name = "Nature Preserve" }) "chn" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 1 - }, /obj/machinery/light{ dir = 8 }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/disposal/incinerator"; - dir = 8; - name = "Incinerator APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cho" = ( /turf/closed/wall/r_wall/rust, /area/maintenance/department/eva) "chp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/open/floor/plasteel, /area/engine/atmos) "chq" = ( @@ -52724,10 +52586,10 @@ /turf/open/floor/plating, /area/maintenance/disposal) "chx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "chy" = ( @@ -52838,21 +52700,21 @@ /turf/open/floor/plating, /area/engine/teg_cold) "chL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "chM" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "chN" = ( @@ -52931,11 +52793,13 @@ /turf/open/floor/engine, /area/science/storage) "chS" = ( -/obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/dark, /area/engine/atmos) "chT" = ( @@ -53114,12 +52978,11 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/mass_driver{ - dir = 8; - id = "router_in"; - name = "Router Driver" - }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/mass_driver/pressure_plate{ + dir = 8; + id = "starboardbelthell_in" + }, /turf/open/floor/plating, /area/maintenance/disposal) "cil" = ( @@ -53139,7 +53002,7 @@ "cim" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 1; - sortType = 11 + sortType = 9 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -53162,11 +53025,10 @@ /turf/closed/wall, /area/science/robotics/mechbay) "cip" = ( -/obj/machinery/mass_driver{ - id = "cargo_in"; - name = "Router Driver" - }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/mass_driver/pressure_plate{ + id = "cargo_in" + }, /turf/open/floor/plating, /area/maintenance/disposal) "ciq" = ( @@ -53199,6 +53061,7 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/port/fore) "ciu" = ( @@ -53254,7 +53117,7 @@ "ciB" = ( /obj/structure/frame/computer, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/maintenance/port/fore) "ciC" = ( /obj/structure/table, @@ -53292,12 +53155,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "ciG" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "disposal_off" +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/disposal) +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) "ciH" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 6 @@ -53363,10 +53227,9 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/kitchen) "ciO" = ( -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 4; - id = "disposal_out"; - name = "Router Driver" + id = "recycle_out" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -53499,7 +53362,8 @@ /obj/structure/fans/tiny, /obj/structure/plasticflaps, /obj/machinery/door/poddoor{ - name = "Disposal Router" + id = "recycle_out"; + name = "Belt Hell" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -53551,6 +53415,10 @@ dir = 1; id = "disposal" }, +/obj/machinery/door/poddoor{ + id = "cargo_out"; + name = "Cargo Router" + }, /turf/open/floor/plating, /area/maintenance/disposal) "cjj" = ( @@ -53909,9 +53777,6 @@ /area/engine/teg_cold) "cjV" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Engineering Sector" - }, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 @@ -53941,8 +53806,8 @@ /obj/machinery/button/door{ id = "hos"; name = "HoS Office Shutters"; - pixel_y = -32; - pixel_x = -5 + pixel_x = -5; + pixel_y = -32 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) @@ -55219,8 +55084,8 @@ "cmH" = ( /obj/structure/plasticflaps, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "cargoblock"; +/obj/machinery/door/poddoor{ + id = "cargo_out"; name = "Cargo Router" }, /turf/open/floor/plating, @@ -55287,14 +55152,18 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "cmL" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/light, +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "cmM" = ( /obj/structure/sign/poster/official/safety_internals{ pixel_x = -32 }, -/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cmN" = ( @@ -55433,6 +55302,9 @@ /area/quartermaster/qm) "cmX" = ( /obj/machinery/light/small, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -55547,9 +55419,11 @@ /turf/open/floor/plasteel, /area/engine/teg_cold) "cni" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Fuel Pipe" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "cnj" = ( /obj/machinery/camera{ c_tag = "Research - Observatory"; @@ -55582,7 +55456,6 @@ dir = 1; pixel_x = 5 }, -/obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "cnm" = ( @@ -55658,7 +55531,8 @@ id = "disposal" }, /obj/machinery/door/poddoor{ - name = "Disposal Router" + id = "recycle_in"; + name = "Belt Hell" }, /turf/open/floor/plating, /area/maintenance/disposal) @@ -55827,14 +55701,6 @@ /obj/item/target/clown, /turf/open/floor/plasteel, /area/science/mixing) -"cnM" = ( -/obj/machinery/mass_driver{ - dir = 8; - id = "pb_in"; - name = "Router Driver" - }, -/turf/open/floor/plating/airless, -/area/router/aux) "cnN" = ( /obj/structure/bookcase/random/fiction, /obj/effect/turf_decal/tile/neutral, @@ -55857,6 +55723,28 @@ }, /turf/open/floor/wood, /area/library) +"cnQ" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/camera{ + c_tag = "Supply - Warehouse Exterior"; + dir = 1 + }, +/turf/open/space/basic, +/area/quartermaster/warehouse) +"cnR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) "cnS" = ( /obj/structure/cable{ icon_state = "0-2" @@ -55998,13 +55886,15 @@ name = "Electrical Substation" }) "coh" = ( -/obj/machinery/power/smes, /obj/structure/cable{ icon_state = "0-4" }, /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, /turf/open/floor/plating, /area/engine/storage_shared{ name = "Electrical Substation" @@ -56193,8 +56083,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -56238,7 +56128,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft) "coE" = ( @@ -56625,18 +56515,25 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpm" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/delivery, +/obj/machinery/photocopier, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo RC"; + pixel_y = 30 }, -/obj/machinery/newscaster{ - pixel_x = -30 +/obj/machinery/camera{ + c_tag = "Supply - Delivery Office Aft"; + network = list("ss13","rd") }, -/turf/open/floor/plasteel/dark, -/area/lawoffice) +/obj/item/paper/guides/cogstation/disposals, +/obj/item/paper/fluff/cogstation/mulebot, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) "cpn" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -56662,8 +56559,8 @@ id = "cargo" }, /obj/structure/fans/tiny, -/obj/machinery/door/poddoor/preopen{ - id = "cargoblock"; +/obj/machinery/door/poddoor{ + id = "cargo_in"; name = "Cargo Router" }, /turf/open/floor/plating, @@ -56775,6 +56672,10 @@ "cpE" = ( /obj/structure/fans/tiny, /obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "cargo_in"; + name = "Cargo Router" + }, /turf/open/floor/plating, /area/maintenance/disposal) "cpF" = ( @@ -56884,12 +56785,18 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cpO" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/item/cartridge/atmos, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cpP" = ( @@ -56900,14 +56807,12 @@ /turf/open/floor/plasteel/white, /area/gateway) "cpQ" = ( -/obj/machinery/vending/wardrobe/atmos_wardrobe, /obj/effect/turf_decal/stripes/line{ dir = 6; layer = 2.03 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cpR" = ( @@ -57221,6 +57126,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "cqt" = ( @@ -57243,6 +57151,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "cqv" = ( @@ -57256,6 +57167,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "cqw" = ( @@ -57600,11 +57514,6 @@ name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; pixel_y = 32 }, -/obj/machinery/button/massdriver{ - id = "cargo_out"; - pixel_x = -8; - pixel_y = -4 - }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "cre" = ( @@ -58509,8 +58418,9 @@ req_access_txt = "5" }, /obj/item/clipboard, -/obj/item/clothing/glasses/hud/health, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/item/paper/guides/cogstation/letter_med, +/obj/item/clothing/glasses/hud/health, /obj/item/pen, /obj/item/clothing/glasses/hud/health, /turf/open/floor/plasteel/white, @@ -58590,9 +58500,9 @@ /obj/machinery/button/door{ id = "robotics"; name = "Shutters Control Button"; + pixel_x = -24; pixel_y = 8; - req_access_txt = "29"; - pixel_x = -24 + req_access_txt = "29" }, /turf/open/floor/plasteel/dark/side{ dir = 8 @@ -58630,8 +58540,6 @@ dir = 8; light_color = "#e8eaff" }, -/obj/effect/landmark/blobstart, -/obj/effect/landmark/xeno_spawn, /turf/open/floor/engine, /area/science/explab) "ctc" = ( @@ -58980,6 +58888,10 @@ /area/science/explab) "ctJ" = ( /obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "portbelthell_in"; + name = "Airbridge Router" + }, /turf/open/floor/plating, /area/engine/workshop) "ctK" = ( @@ -58987,6 +58899,10 @@ /obj/machinery/conveyor{ id = "workshop_off" }, +/obj/machinery/door/poddoor{ + id = "portbelthell_out"; + name = "Airbridge Router" + }, /turf/open/floor/plating, /area/engine/workshop) "ctL" = ( @@ -59456,7 +59372,7 @@ dir = 4 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "cuy" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -59667,17 +59583,16 @@ /area/router/air) "cuS" = ( /obj/structure/window/reinforced/spawner/east, -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 1; - id = "workshop_out"; - name = "Router Driver" + id = "portbelthell_in" }, /turf/open/floor/plating, /area/engine/workshop) "cuT" = ( /obj/structure/window/reinforced/spawner/west, -/obj/machinery/conveyor{ - id = "workshop_off" +/obj/machinery/conveyor/auto{ + id = "airbridge" }, /turf/open/floor/plating, /area/engine/workshop) @@ -59890,9 +59805,9 @@ /area/router/air) "cvq" = ( /obj/structure/window/reinforced/spawner/east, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "workshop_off" + id = "airbridge" }, /turf/open/floor/plating, /area/engine/workshop) @@ -60404,12 +60319,11 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/button/door{ - id = "cargoblock"; - name = "Router Access Control"; +/obj/machinery/button/massdriver{ + id = "cargo_out"; + name = "Cargo Driver Control"; pixel_x = -24; - pixel_y = 24; - req_access_txt = "31" + pixel_y = 24 }, /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -60569,6 +60483,9 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/door/firedoor/heavy, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/engine/engine_smes{ name = "Power Monitoring" @@ -60876,6 +60793,7 @@ /obj/machinery/airalarm{ pixel_y = 24 }, +/obj/structure/cable/yellow, /turf/open/floor/plasteel, /area/engine/engine_smes{ name = "Power Monitoring" @@ -61375,6 +61293,16 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) +"cyd" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) "cye" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -65719,19 +65647,24 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cFs" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/structure/noticeboard{ + pixel_y = 28 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/item/paper/guides/cogstation/letter_med, /turf/open/floor/plasteel/white, -/area/medical/medbay/zone2{ - name = "Medbay Treatment Center" - }) +/area/medical/medbay/central) "cFt" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -66134,15 +66067,16 @@ }, /obj/machinery/button/massdriver{ id = "airbridge_out"; + name = "Airbridge Driver Control"; pixel_x = -8; pixel_y = 24 }, /turf/open/floor/plasteel, /area/router/air) "cGa" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "airbridge_off" + id = "router" }, /turf/open/floor/plating, /area/router/air) @@ -66228,9 +66162,9 @@ /area/medical/medbay/central) "cGf" = ( /obj/structure/window/reinforced/spawner, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "airbridge_off" + id = "router" }, /turf/open/floor/plating, /area/router/air) @@ -66240,9 +66174,9 @@ dir = 1 }, /obj/structure/window/reinforced/spawner, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "airbridge_off" + id = "router" }, /turf/open/floor/plating, /area/router/air) @@ -66254,7 +66188,7 @@ /obj/structure/window/reinforced/spawner, /obj/machinery/mass_driver{ dir = 4; - id = "airbridge_in"; + id = "airbridge_out"; name = "Router Driver" }, /turf/open/floor/plating, @@ -66697,7 +66631,6 @@ /turf/open/floor/engine, /area/science/storage) "cGW" = ( -/obj/effect/landmark/blobstart, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -66996,7 +66929,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/landmark/blobstart, /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 }, @@ -67251,6 +67183,7 @@ /obj/structure/plasticflaps, /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ + id = "airbridge_out"; name = "Airbridge Router" }, /turf/open/floor/plating, @@ -67293,7 +67226,6 @@ /turf/open/floor/plating, /area/maintenance/aft) "cId" = ( -/obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 5 }, @@ -67330,17 +67262,21 @@ /area/medical/genetics) "cIh" = ( /obj/structure/plasticflaps, -/obj/machinery/conveyor{ +/obj/machinery/door/poddoor{ + id = "airbridge_out"; + name = "Airbridge Router" + }, +/obj/machinery/conveyor/auto{ dir = 4; - id = "workshop_off" + id = "router" }, /turf/open/floor/plating, /area/engine/workshop) "cIi" = ( /obj/structure/window/reinforced/spawner, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "workshop_off" + id = "router" }, /turf/open/floor/plating, /area/engine/workshop) @@ -67440,9 +67376,9 @@ "cIq" = ( /obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced/spawner/east, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "workshop_off" + id = "airbridge" }, /turf/open/floor/plating, /area/engine/workshop) @@ -67469,13 +67405,13 @@ name = "Atmospherics"; req_access_txt = "24" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cIt" = ( @@ -67704,9 +67640,6 @@ /area/hallway/primary/aft) "cIN" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Engineering Sector" - }, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 @@ -67921,6 +67854,11 @@ /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) +"cJg" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/warehouse) "cJh" = ( /obj/structure/table, /obj/structure/bedsheetbin/towel, @@ -68002,17 +67940,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"cJo" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/engine/atmos) "cJp" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 4 @@ -68022,6 +67949,18 @@ /area/engine/engineering{ name = "Engine Room" }) +"cJq" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external/glass{ + name = "External Construction Access"; + req_one_access_txt = "10;31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) "cJr" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ @@ -68030,32 +67969,33 @@ /turf/open/space/basic, /area/space/nearstation) "cJs" = ( -/obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/warehouse) "cJt" = ( -/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/apc{ + name = "AI Upload Foyer APC"; + pixel_y = -24 + }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"cJu" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cJu" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Engine" }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "cJv" = ( @@ -68201,14 +68141,9 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "cJH" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 + dir = 9 }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "cJI" = ( @@ -68927,11 +68862,12 @@ /obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Unfiltered & Air to Mix" }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/brown/visible{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -68961,10 +68897,10 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/violet/visible, /obj/structure/extinguisher_cabinet{ pixel_y = 29 }, +/obj/machinery/atmospherics/pipe/simple/violet/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cLh" = ( @@ -69020,7 +68956,6 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/closed/wall/r_wall, /area/engine/atmos) "cLn" = ( @@ -69207,8 +69142,8 @@ /area/router/air) "cLK" = ( /obj/structure/window/reinforced/spawner/north, -/obj/machinery/conveyor{ - id = "airbridge_off" +/obj/machinery/conveyor/auto{ + id = "airbridge" }, /turf/open/floor/plating, /area/router/air) @@ -69234,9 +69169,9 @@ /area/medical/virology) "cLO" = ( /obj/structure/window/reinforced/spawner/north, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "airbridge_off" + id = "airbridge" }, /turf/open/floor/plating, /area/router/air) @@ -69273,6 +69208,7 @@ id = "airbridge_off" }, /obj/machinery/door/poddoor{ + id = "airbridge_in"; name = "Airbridge Router" }, /turf/open/floor/plating, @@ -69283,10 +69219,9 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 8; - id = "workshop_in"; - name = "Router Driver" + id = "airbridge_in" }, /turf/open/floor/plating, /area/engine/workshop) @@ -69308,8 +69243,8 @@ /turf/open/floor/plating/airless, /area/medical/virology) "cLV" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -69326,19 +69261,13 @@ dir = 6 }, /turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cLY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 4 }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cLZ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cMa" = ( /obj/machinery/light/small{ dir = 1; @@ -69349,21 +69278,17 @@ dir = 4 }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cMb" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/closed/wall/r_wall, /area/engine/atmos) "cMc" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 9 - }, /turf/open/floor/plasteel, /area/engine/atmos) "cMd" = ( @@ -69396,9 +69321,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cMi" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1 + }, +/turf/open/floor/plating/airless, /area/engine/atmos) "cMj" = ( /obj/structure/cable{ @@ -69408,7 +69334,7 @@ dir = 1 }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cMk" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -69472,7 +69398,7 @@ dir = 4 }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cMu" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/cyan/visible, @@ -69480,7 +69406,7 @@ dir = 8 }, /turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) +/area/engine/atmos) "cMv" = ( /obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -24; @@ -69490,29 +69416,27 @@ pixel_x = -40; pixel_y = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cMw" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Waste Release" - }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "cMx" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = -30 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cMy" = ( @@ -69604,14 +69528,20 @@ /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "cMG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "cMH" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/closed/wall/r_wall, +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "cMI" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -69662,13 +69592,12 @@ /turf/open/floor/plating, /area/engine/atmos) "cMP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 }, -/turf/open/floor/plating/airless, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, /area/engine/atmos) "cMQ" = ( /obj/structure/lattice, @@ -69700,16 +69629,16 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "workshop_off" + id = "airbridge" }, /turf/open/floor/plating, /area/engine/workshop) "cMV" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "workshop_off" +/obj/machinery/conveyor/auto{ + dir = 8; + id = "airbridge" }, /turf/open/floor/plating, /area/engine/workshop) @@ -69888,17 +69817,10 @@ /obj/machinery/light, /turf/open/floor/plasteel, /area/router/air) -"cNm" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "airbridge_off" - }, -/turf/open/floor/plating, -/area/router/air) "cNn" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "airbridge_off" +/obj/machinery/conveyor/auto{ + dir = 8; + id = "airbridge" }, /turf/open/floor/plating, /area/router/air) @@ -69993,6 +69915,21 @@ "cNB" = ( /turf/open/floor/plating, /area/quartermaster/miningdock/airless) +"cNC" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) "cND" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, @@ -70289,6 +70226,7 @@ icon_state = "2-4" }, /obj/effect/landmark/event_spawn, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cOr" = ( @@ -70429,6 +70367,12 @@ dir = 4; pixel_x = -22 }, +/obj/machinery/button/massdriver{ + id = "research_out"; + name = "Medsci Driver Control"; + pixel_x = -24; + pixel_y = -24 + }, /turf/open/floor/plasteel, /area/router/medsci) "cOF" = ( @@ -70457,8 +70401,8 @@ /turf/closed/wall/r_wall, /area/router/medsci) "cOJ" = ( -/obj/machinery/conveyor{ - id = "medsci_off" +/obj/machinery/conveyor/auto{ + id = "medsci" }, /turf/open/floor/plating, /area/router/medsci) @@ -70468,11 +70412,6 @@ /obj/item/hand_labeler, /obj/item/destTagger, /obj/machinery/light, -/obj/machinery/button/massdriver{ - id = "medsci_out"; - pixel_x = -8; - pixel_y = 8 - }, /obj/machinery/requests_console{ department = "MedSci Router"; name = "MedSci Router RC"; @@ -70481,9 +70420,9 @@ /turf/open/floor/plating, /area/router/medsci) "cOL" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "medsci_off" + id = "medsci" }, /turf/open/floor/plating, /area/router/medsci) @@ -70509,7 +70448,7 @@ /area/janitor/aux) "cOP" = ( /obj/machinery/mass_driver{ - id = "medsci_out"; + id = "research_out"; name = "Router Driver" }, /turf/open/floor/plating, @@ -70579,6 +70518,7 @@ /obj/structure/plasticflaps, /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ + id = "research_out"; name = "MedSci Router" }, /turf/open/floor/plating, @@ -70587,11 +70527,12 @@ /obj/structure/plasticflaps, /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ + id = "research_in"; name = "MedSci Router" }, -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "medsci_off" + id = "medsci" }, /turf/open/floor/plating, /area/router/medsci) @@ -70621,6 +70562,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel, /area/janitor/aux) "cOX" = ( @@ -70698,100 +70640,88 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cPd" = ( -/obj/machinery/conveyor{ - id = "sq_off" +/obj/machinery/conveyor/auto{ + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) "cPe" = ( -/obj/machinery/mass_driver{ - dir = 1; - id = "sq_out"; - name = "Router Driver" +/obj/machinery/mass_driver/pressure_plate{ + dir = 1 }, /turf/open/floor/plating/airless, /area/router/aux) -"cPf" = ( -/obj/machinery/conveyor/auto, -/turf/open/floor/plating/airless, -/area/router/aux) "cPg" = ( -/obj/machinery/mass_driver{ +/obj/machinery/mass_driver/pressure_plate{ dir = 1; - id = "medsci_in"; - name = "Router Driver" + id = "research_in" }, /turf/open/floor/plating/airless, /area/router/aux) "cPh" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "sq_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) "cPi" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 1; - id = "viro_off" + id = "pq" }, /turf/open/floor/plating/airless, /area/router/aux) "cPj" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 9; - id = "viro_off" + id = "medsci" }, /turf/open/floor/plating/airless, /area/router/aux) "cPk" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "viro_off" + id = "medsci" }, /turf/open/floor/plating/airless, /area/router/aux) "cPl" = ( -/obj/machinery/mass_driver{ - dir = 8; - id = "viro_in"; - name = "Router Driver" +/obj/machinery/mass_driver/pressure_plate{ + dir = 8 }, /turf/open/floor/plating/airless, /area/router/aux) "cPm" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 8; - id = "sq_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) "cPn" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 10; - id = "sq_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) "cPo" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "viro_off" +/obj/machinery/conveyor/auto{ + id = "pq" }, /turf/open/floor/plating/airless, /area/router/aux) "cPp" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "viro_out"; - name = "Router Driver" +/obj/machinery/mass_driver/pressure_plate{ + dir = 4 }, /turf/open/floor/plating/airless, /area/router/aux) "cPq" = ( -/obj/machinery/conveyor{ +/obj/machinery/conveyor/auto{ dir = 4; - id = "sq_off" + id = "starboard" }, /turf/open/floor/plating/airless, /area/router/aux) @@ -70935,15 +70865,25 @@ /turf/open/space/basic, /area/space/nearstation) "cPG" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Supply - Warehouse Exterior"; - dir = 1 +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/turretid{ + control_area = "/area/science/server"; + icon_state = "control_stun"; + name = "Computer Core turret control"; + pixel_x = -3; + pixel_y = -23; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) "cPH" = ( /obj/machinery/conveyor_switch{ id = "EngiCargoConveyer" @@ -71787,7 +71727,7 @@ id = "MiningConveyorBlastDoor"; name = "Asteroid Mining Load Door" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/quartermaster/miningoffice) "cRb" = ( /obj/machinery/computer/cloning, @@ -71796,9 +71736,6 @@ /obj/item/paper/guides/jobs/medical/cloning{ pixel_x = -4 }, -/obj/item/paper/fluff/cogstation/cloner{ - pixel_x = 6 - }, /turf/open/floor/plasteel, /area/medical/medbay/central) "cRc" = ( @@ -71855,31 +71792,14 @@ /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel, /area/engine/atmos) "cRh" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 }, -/obj/machinery/turretid{ - control_area = "/area/science/server"; - icon_state = "control_stun"; - name = "Computer Core turret control"; - pixel_x = -3; - pixel_y = -23; - req_access_txt = "65" - }, -/turf/open/floor/plasteel, -/area/science/server{ - name = "Computer Core" - }) +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) "cRi" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -71906,8 +71826,8 @@ /obj/item/stock_parts/cell/high{ charge = 100; maxcharge = 15000; - pixel_y = 3; - pixel_x = 4 + pixel_x = 4; + pixel_y = 3 }, /obj/item/stock_parts/cell/high{ charge = 100; @@ -72023,30 +71943,89 @@ }, /turf/open/floor/plasteel, /area/science/robotics/lab) +"cRs" = ( +/obj/machinery/recharge_station, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cRt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cRu" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/mixing) +"cRv" = ( +/mob/living/simple_animal/opossum{ + desc = "Wubba lubba dub dub."; + name = "Rick" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"cRw" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/item/paper/guides/cogstation/letter_med{ + pixel_y = 4 + }, +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) "cVq" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/hallway/primary/aft) "cVO" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, /area/engine/atmos) "dpO" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) +"dwH" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "router" + }, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "engi_out"; + name = "Engineering Router" + }, +/turf/open/floor/plating, +/area/router) "dVR" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/violet/visible, /turf/open/floor/plasteel, /area/engine/atmos) "dYm" = ( @@ -72057,12 +72036,12 @@ /turf/open/floor/engine, /area/science/storage) "eCy" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/atmos) "eIh" = ( @@ -72081,13 +72060,15 @@ }, /area/engine/atmos) "eKM" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -30 - }, /obj/machinery/atmospherics/pipe/manifold/supplymain/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"eSd" = ( +/obj/machinery/mass_driver/pressure_plate{ + id = "security_in" + }, +/turf/open/floor/plating/airless, +/area/router/aux) "eTZ" = ( /obj/effect/turf_decal/tile/green{ dir = 4 @@ -72095,10 +72076,9 @@ /obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ +/obj/machinery/atmospherics/pipe/manifold/brown/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "eUF" = ( @@ -72125,32 +72105,25 @@ /turf/open/floor/plasteel, /area/engine/atmos) "fkx" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plasteel, -/area/engine/atmos) -"frb" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space/basic, -/area/space/nearstation) +/area/hallway/primary/aft) "fti" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) "fui" = ( -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 4 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, -/turf/open/space/basic, -/area/space) +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "fuE" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -72166,32 +72139,22 @@ }, /turf/open/floor/plasteel, /area/science/mixing) -"fIw" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) "guK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/space/basic, /area/space) "gDY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Fuel Pipe to Incinerator" - }, /obj/machinery/light, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "gGG" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 }, /turf/open/space/basic, /area/space/nearstation) @@ -72225,24 +72188,15 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "hlo" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/meter, +/obj/effect/landmark/blobstart, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/quartermaster/miningdock/airless) "hlV" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/storage/tech) "hDz" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/engine/atmos) "hFa" = ( @@ -72253,19 +72207,10 @@ /turf/open/floor/engine, /area/science/storage) "hKC" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"hMZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Port" +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "hXk" = ( @@ -72279,17 +72224,10 @@ /obj/machinery/atmospherics/pipe/manifold/orange/visible, /turf/open/space/basic, /area/space/nearstation) -"iAW" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "iQY" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 4 }, -/obj/structure/closet/firecloset, /turf/open/floor/plasteel, /area/engine/atmos) "jiZ" = ( @@ -72298,19 +72236,8 @@ }, /turf/closed/wall/r_wall, /area/engine/atmos) -"jml" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - layer = 2.4 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) "jon" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ +/obj/machinery/atmospherics/pipe/simple/violet/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -72330,16 +72257,6 @@ /area/engine/secure_construction{ name = "Engineering Construction Area" }) -"jXo" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"kxw" = ( -/obj/machinery/atmospherics/pipe/simple/violet/visible, -/turf/open/space/basic, -/area/space) "kzb" = ( /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 @@ -72350,16 +72267,12 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Engine" - }, +/obj/machinery/atmospherics/pipe/simple/violet/visible, /turf/open/floor/plasteel, /area/engine/atmos) "lcD" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Air to Port" +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -72367,8 +72280,9 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -72382,7 +72296,10 @@ name = "Engine Room" }) "mqB" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "mxW" = ( @@ -72392,13 +72309,12 @@ }, /turf/open/space/basic, /area/space/nearstation) -"mBP" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel, -/area/science/mixing) "mEa" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "mIm" = ( @@ -72425,36 +72341,14 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, /area/tcommsat/computer) -"mNN" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ntC" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port to Fuel Pipe" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "nvn" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "nAF" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Port" - }, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "nBM" = ( @@ -72465,26 +72359,9 @@ }, /turf/open/floor/plating, /area/engine/atmos) -"nEX" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"nLV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) "ony" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ +/obj/machinery/atmospherics/pipe/manifold/brown/visible{ dir = 4 }, /turf/open/floor/plating, @@ -72513,6 +72390,13 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"pZq" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 12 + }, +/turf/open/floor/plating/airless, +/area/router/aux) "qeq" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -72520,41 +72404,72 @@ }, /turf/open/space/basic, /area/space/nearstation) -"qgO" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel, -/area/engine/atmos) "qlJ" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /turf/open/space/basic, /area/space/nearstation) -"qvB" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 +"qGi" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/engine/atmos) +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) "qHL" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/brown/visible{ + dir = 6 }, /turf/open/floor/plating, /area/engine/atmos) -"qWY" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste In" +"qMN" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "starboardbelthell_out"; + name = "Belt Hell" }, +/turf/open/floor/plating, +/area/router) +"qWY" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "rdF" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"rke" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"rqk" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"rOE" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "eva_in"; + name = "EVA Router" + }, +/turf/open/floor/plating, +/area/router) "rTW" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/visible{ @@ -72568,22 +72483,28 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"sdp" = ( -/obj/structure/reagent_dispensers/foamtank, -/turf/open/floor/engine, -/area/engine/secure_construction{ - name = "Engineering Construction Area" - }) -"sHB" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 +"sky" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "pq" }, +/turf/open/floor/plating/airless, +/area/router/aux) +"sAm" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "airbridge_out"; + name = "Airbridge Router" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"sHB" = ( +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, /area/engine/atmos) "sRD" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/engine/atmos) "sVC" = ( @@ -72594,6 +72515,15 @@ /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /turf/open/space/basic, /area/space/nearstation) +"tff" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "portbelthell_out"; + name = "Airbridge Router" + }, +/turf/open/floor/plating, +/area/router) "tjb" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -72609,12 +72539,15 @@ /obj/machinery/atmospherics/pipe/simple/violet/visible, /turf/open/space/basic, /area/space/nearstation) -"tuF" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 +"tsU" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "engi_in"; + name = "Engineering Router" }, -/turf/closed/wall/r_wall, -/area/engine/atmos) +/turf/open/floor/plating, +/area/router) "tyI" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 @@ -72623,36 +72556,28 @@ /area/engine/atmos) "tXV" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - layer = 2.4 + name = "Pure to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) "tZj" = ( -/obj/structure/tank_dispenser{ - pixel_x = -1 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "tZC" = ( -/obj/machinery/atmospherics/pipe/manifold4w/orange/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "urj" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 8; - icon_state = "intact" - }, /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 4 }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/dark, /area/bridge) "uwK" = ( @@ -72673,27 +72598,18 @@ /turf/open/floor/plasteel, /area/engine/atmos) "uVD" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/brown/visible{ + dir = 9 }, /turf/open/floor/plasteel, /area/engine/atmos) "vcb" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/brown/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"vsO" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) "vxU" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/extinguisher_cabinet{ @@ -72713,7 +72629,9 @@ /turf/open/space/basic, /area/space/nearstation) "wWH" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "xcO" = ( @@ -72723,24 +72641,8 @@ /obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Mix Outlet Pump" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"xjk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"xkC" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 + name = "Mix to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -72757,9 +72659,8 @@ /turf/closed/wall, /area/quartermaster/storage) "xCy" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 9 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -84950,7 +84851,7 @@ akI aAJ cMp aYa -bxm +akI akI aNC bxv @@ -85206,7 +85107,7 @@ aLH akI aAK aRC -bxn +aHj akI bxA hiV @@ -85723,7 +85624,7 @@ aXm aXs bxC akI -bxK +beC bxY byh byb @@ -85977,7 +85878,7 @@ aaU aaU aEa cMK -bxt +aHE akI akI akI @@ -86233,9 +86134,9 @@ aaU aaa aaU aEa -aHE -bab -aaa +cMK +aTh +akI aaa aaU aaa @@ -86490,7 +86391,8 @@ aaU aaU aaU aEb -aPT +aya +bab aaU aaU aye @@ -86508,7 +86410,6 @@ aye aye aye aye -aye aaa aaa aaa @@ -90657,7 +90558,7 @@ aaa aaa aaa aaa -aaa +aWj aaU aaa aaU @@ -90913,9 +90814,9 @@ aaa aaa aaa aaa -aaa -aWj -aaU +bcw +aUZ +bcw aaa bcy cnU @@ -91171,7 +91072,7 @@ aaa aaa aaa bcw -aUZ +cRu bcw aaa bcy @@ -91193,7 +91094,7 @@ aaa aaa aaU aaa -bAb +brs bxT bFq bHY @@ -91363,10 +91264,10 @@ aaa aaa aaU abx -aqw -aoW -aqw -aqw +aiN +alu +aiN +abx aaU aaa aaa @@ -91620,9 +91521,9 @@ aaa aaa aaU abx -akg -apS -arr +aiN +asl +aiN abx aaU aaa @@ -91877,9 +91778,9 @@ aaa aaa aaU aiN -akj -anV -asl +aoW +apS +asH abx aaU aaU @@ -91943,7 +91844,7 @@ aaa aaa bcy bdf -mBP +bdf crJ blT bqJ @@ -92134,9 +92035,9 @@ aaa aaa aaU aiN -akz +arr aDO -asH +atn awm axc awm @@ -92658,7 +92559,7 @@ auL aAc aGq aJX -bdE +cQQ cen aGq cvK @@ -95499,7 +95400,7 @@ aNL aNL aVl aYT -baz +aXf bFH aYT aaU @@ -95780,7 +95681,7 @@ bhS beJ beJ bGI -bXP +aaU aaa aaa aaa @@ -96037,7 +95938,7 @@ bdg beJ beJ bGI -bXV +aaU aaa aaa aaa @@ -96294,7 +96195,7 @@ bdg beJ ceI bGI -bXV +aaU aaa aaa aaa @@ -96551,7 +96452,7 @@ bdg cmd beT bGI -bXV +aaU aaa aaa aaa @@ -96808,7 +96709,7 @@ bdg beJ bfd bdg -bXV +aaU aaa aaa ceD @@ -97043,7 +96944,7 @@ aVL aYT baG bbM -bcz +aZA aYT bdy beM @@ -97065,7 +96966,7 @@ bdg beJ bfd bdg -bXV +aaU aaa bdg buB @@ -97322,7 +97223,7 @@ bdg caW bJy bdg -bXV +aaU aaU bdg bjg @@ -97579,7 +97480,7 @@ bdg beJ bfd bGI -bYd +bGI bGI bGI bzb @@ -97836,7 +97737,7 @@ beJ beJ bfd blc -bYP +beJ coS aXc aXc @@ -98011,7 +97912,7 @@ aak aak aak aak -aak +eSd aaa aaa aaa @@ -98093,8 +97994,8 @@ bzB bgA bWf bXm -bZQ -ccN +bgA +bWq ccN cei ccN @@ -98158,10 +98059,10 @@ aaa aaa aaa aaa -cPf -cPf -cPf -cPf +cPo +cPo +cPo +cPo cPo abp aaa @@ -98419,7 +98320,7 @@ abM abR abM abM -cPo +sky aaU aaa aaa @@ -98676,7 +98577,7 @@ cPg cPi cPj abR -cPo +sky aaU aaa aaa @@ -98933,7 +98834,7 @@ aaa aaa cPk abR -cPo +sky aaU aaa aaa @@ -99294,7 +99195,7 @@ aaa aaU aar abM -acf +cPp aaU aaa aaa @@ -99380,12 +99281,12 @@ bWh csG bQA aZy -aXf +bZV bZJ bZF cpu bax -bZV +cea bZX ccY cab @@ -99556,12 +99457,12 @@ aaU aaa aaa aaa +adM adj adj adj adj -adj -adj +adM aaU aaU aaa @@ -99628,8 +99529,8 @@ bnz bpw bQx bll -aZz -cpm +aZC +bcz bad bah baR @@ -99813,12 +99714,12 @@ aaU aaa aaa aaa -adj +adM aeC afv adF agM -adj +adM aaa aaU aaU @@ -99885,8 +99786,8 @@ bnA bpy bQI bll -aZA aZI +beG bae chP baS @@ -100070,12 +99971,12 @@ aaU aaa aaa aaa -adj +adM aeR afx aga afI -adj +adM aaa aaa aaU @@ -100142,7 +100043,7 @@ bnD bpC bQx bll -aZC +baz aZN bCS bak @@ -100327,20 +100228,20 @@ aaU add adC adC -adC +aap aeS adj adj agN +aiX ahL ahL -ahL -ahL +aaq afD afQ age age -agy +age age age afC @@ -100592,8 +100493,8 @@ aad aad aad aad -adM -aaj +aiM +agy aaI ami akX @@ -100850,7 +100751,7 @@ aad aad aad aiM -aaj +azO aaI aco akX @@ -100915,7 +100816,7 @@ bRf cCG cCH cCG -bUw +bgi bVJ cCG bWF @@ -101172,7 +101073,7 @@ bcf bcf bCs bcf -bwU +bhI bCD bcf bcf @@ -101364,7 +101265,7 @@ aad aad aad aiM -aap +aco abd abT akX @@ -101620,8 +101521,8 @@ aad aad aad aad -adM -aaq +aiM +aco aaI acF akX @@ -101877,7 +101778,7 @@ agO adj adj adj -adM +aiM aat abf acF @@ -102760,7 +102661,7 @@ caR czi cKj buS -bFY +cFs cEX bIU aJE @@ -103000,7 +102901,7 @@ aaa cuR cGa cuR -cNm +cNn cuR cIH cgv @@ -103536,7 +103437,7 @@ cFe cFk cFm cFq -cFs +cRw cFz bqt blx @@ -103822,7 +103723,7 @@ aaa aaa aaa aaa -aaa +cpB ckl ckl ckl @@ -104781,8 +104682,8 @@ bLz bNe ajO bQb -bUj -aTh +cnR +cJt bfh brb bzN @@ -105022,9 +104923,9 @@ bOV aRq cjD bnU -btw +bxm bns -aya +bxn avy alo awn @@ -105039,7 +104940,7 @@ bPp bPU bQi bUU -bWJ +cNC bWP cbV bzR @@ -105279,7 +105180,7 @@ aSt aSt aSt aSt -cpG +aWd aSt brs avv @@ -105296,7 +105197,7 @@ cRf bPV bQT bVq -cRh +cPG bfh cbY cdn @@ -105514,7 +105415,7 @@ aYi baU bdh aOJ -aog +bdE aog axV aHV @@ -105523,7 +105424,7 @@ axV aog aog aSH -beG +aZz aaU aaU aaU @@ -105535,9 +105436,9 @@ aRv aaU aaU aaU -aWj -aSq -aWj +aSt +cpG +aSt aaU avv ajO @@ -105553,7 +105454,7 @@ ajO ajO aRy bVC -aRy +cRh bfh bfh bBR @@ -105809,8 +105710,8 @@ bmH aYZ bht bcY -bVD -beC +cyd +cRs cgF bfh bBS @@ -106033,7 +105934,7 @@ aOJ aOJ bmF bnT -aRJ +bnT aRJ aRJ chm @@ -106044,7 +105945,7 @@ aaU aaa btT bzE -btZ +rOE btT aaa aaa @@ -106083,7 +105984,7 @@ aaa aaa ctG cIh -ctJ +sAm ctG cIy bjm @@ -106289,13 +106190,13 @@ bfv bfv bkW bmJ +bnS bof aQJ aQJ aQJ aQJ aQJ -aQJ aRZ aaU aaa @@ -106357,7 +106258,7 @@ cyP byQ bzS czw -bDb +cRv bBu crX czI @@ -106547,7 +106448,7 @@ bjL blD bmK boi -aaU +bsx aaU aaU aaU @@ -106805,7 +106706,7 @@ aOJ aPN bes aaU -aye +bQe aye bQe aye @@ -106820,7 +106721,7 @@ bKl bQW bUp cci -btZ +tff aSq bgh bIY @@ -107058,7 +106959,7 @@ bdP bfF bha bdP -abp +aOJ aPN bes aaU @@ -107103,8 +107004,8 @@ aPg aPg cet bpL -bBO -bBO +bpL +rqk bBO bBO ctG @@ -107123,7 +107024,7 @@ bZq bZh cEE bpD -cmL +bpD cyS byQ byQ @@ -107315,7 +107216,7 @@ bdW bfJ bhc bdP -abp +aOJ aPN bes aaU @@ -107361,7 +107262,7 @@ cdV cdV bpN bCa -bSo +bSp bSv cfl ctX @@ -107572,7 +107473,7 @@ bdY bfM bhg bdP -abp +aOJ aPN bey aaU @@ -107829,7 +107730,7 @@ bdP bdP bhl bdP -abp +aOJ aPN bes aaU @@ -107839,7 +107740,7 @@ aye aye aaU aWj -bnS +btw buq bwC bAr @@ -107873,7 +107774,7 @@ cmf cnK cnK cdV -bBO +rke bUB bSq bVf @@ -108086,7 +107987,7 @@ aaU aaU cuA cuy -bcc +blD bcO bes aaU @@ -108343,7 +108244,7 @@ aaa aaa aaa aaU -brs +aQq aPR cux aaU @@ -108387,7 +108288,7 @@ cmE cok cok cdV -bBO +rke bPv cBd cfi @@ -108600,7 +108501,7 @@ aaa aaa aaa aaU -brs +aQq aQp cux aaU @@ -108619,7 +108520,7 @@ bMS bBv bXM bvB -bWq +bvM acY adz bsz @@ -108644,7 +108545,7 @@ cmG coT cpL cpZ -bBO +qGi cxd cBd cfj @@ -108857,9 +108758,9 @@ aaU aaU aaU aaU -abp -aQq -bes +aUq +bmO +bcc aaU aaa aaa @@ -108901,7 +108802,7 @@ cmY cdV cdV cdV -bBO +qGi bSm cBk cfk @@ -108961,7 +108862,7 @@ aaa aaa aaa aaa -aaa +cpB aaa ckl ckl @@ -109114,9 +109015,9 @@ aaa aaa aaa aaU -abp +aUq aQr -bes +bcc aaU aaa aaa @@ -109124,7 +109025,7 @@ aaa aaa aaU aWj -bnS +btw buq bwZ bBC @@ -109134,7 +109035,7 @@ bBv bXM ccn ccA -ccy +dwH aTl bsz cdG @@ -109158,7 +109059,7 @@ cks crv crx aeI -bBO +rke bSn cBl bSn @@ -109371,7 +109272,7 @@ aaa aaa aaa aaU -abp +aUq aQr beD cuy @@ -109391,7 +109292,7 @@ bUc bXM cco ccE -btZ +tsU aTl bsz cdU @@ -109429,7 +109330,7 @@ cNt beZ cIS coz -bty +fkx bBl aaU aaU @@ -109941,9 +109842,9 @@ cJy cNg cNs cIB -cIM -bXX -bty +cMG +cVq +fui bBl aaU bIm @@ -110157,7 +110058,7 @@ aaa btT bBX btT -btZ +qMN btT aaa aaU @@ -110198,9 +110099,9 @@ cvi cuN cNv bhT -cIM -bXX -bty +cMG +cVq +fui bzr byT cfc @@ -110694,12 +110595,12 @@ aCZ aRG aOl aOV -avQ +bSo cmX aRp bkJ aUf -aeI +ciG bnp cmO cfU @@ -112765,7 +112666,7 @@ biV cKg cLn cLz -bmz +cLz biV cdP bXX @@ -113072,7 +112973,7 @@ aaa aaa aaa aaa -aaa +cpB aaa aaa ckl @@ -113190,7 +113091,7 @@ abe aeP agX ajS -aHj +akg bvm ahP aif @@ -113231,7 +113132,7 @@ cAM bCP boA aYC -brf +att att att att @@ -113448,7 +113349,7 @@ aaV ahP ahP ahP -bzp +akj ahP aif aiB @@ -113961,7 +113862,7 @@ aaa aaU aio akZ -biO +aKe bEt bEA aik @@ -114538,7 +114439,7 @@ aaa bsz anr bcI -sdp +bgw bUX bgw uwK @@ -115821,10 +115722,10 @@ bra bwW bwW aaU -bdR -cJr -bTJ -aaa +anr +aWj +bUj +bVD aaa cPz aaa @@ -116078,8 +115979,8 @@ brr bCr cwv bAQ -bAQ -cJs +bxt +bzp bUV caf bam @@ -116089,7 +115990,7 @@ bYl bam bam bam -bam +cJg bbX bbX bcn @@ -116121,7 +116022,7 @@ btz bPm bxH bSf -bzd +hlV bQD bxH bxH @@ -116335,8 +116236,8 @@ brP brX bsh bsu -bsx -cJt +bxK +bDb sVC cdp sVC @@ -116346,8 +116247,8 @@ bZp sVC sVC sVC -frb -bvM +cJq +cRt bvW bvX bwd @@ -116593,7 +116494,7 @@ bsi bsv bsy bsy -bsD +bTJ bsI bRv bsD @@ -116602,8 +116503,8 @@ bsD cPE cPF cPF -cPF -cPG +cnQ +cJs bBL bBL bCm @@ -116768,7 +116669,7 @@ aaa aaa aaa aaU -cnM +cPl abM acj aaU @@ -117365,8 +117266,8 @@ aaa aaa aaa aaa -bgi -fui +bMp +bJv aaa cwK aaa @@ -117622,8 +117523,8 @@ aZG aaa aaa aaa -bgi -fui +bMp +bJv aaa cwI aaa @@ -117879,8 +117780,8 @@ aaa aaa aaa aaa -bgi -fui +bMp +bJv aaa cwK aaa @@ -117921,7 +117822,7 @@ bYh bYn bYn bYE -cni +bYn cyf cgy bIz @@ -118141,9 +118042,9 @@ bJv aaU cwJ aaU -cbG -aaU -aaU +bWJ +mIT +cJr aaU bbT bbT @@ -118383,24 +118284,24 @@ bzO caD bzn bjz -ciG +ciq bAK ciV aMI aaa bJj bLS -kxw -kxw -kxw +bHg +bHg +bHg bPA wPS aaa cwI -aaa +cwA cbI -mIT -cJr +cwA +anr aaa aaU aaU @@ -118654,9 +118555,9 @@ bgM cwA cwA cwL -cww +cwA cbL -cww +cwA bdR mIT mIT @@ -118670,7 +118571,7 @@ bgk bbT bkd bbT -cea +cpm bVG cgn cje @@ -118826,7 +118727,7 @@ aaa aaU aav abM -acz +cPp aaU aaa aaa @@ -118856,7 +118757,7 @@ avz awx axU ayL -azO +azU aAu awp aCP @@ -119428,10 +119329,10 @@ cPD bVE cbT cww -bhI -bhI +cww +cww can -bhI +cww aaa anr aaa @@ -119681,15 +119582,15 @@ bNb bPL cwB cwB -cwB +hDz bVX eKM +bZQ +cww cww -bhI -bhI cao -bhI -bhI +cww +cww anr aaa aaU @@ -119876,7 +119777,7 @@ aaa aaa aaa arM -atn +atl arM aaU aaU @@ -119936,13 +119837,13 @@ cww bjE bNq bQK -qgO +cwB chO cpN bWG cRg -jiZ -bhI +cmL +cww cLY cap cMt @@ -120132,9 +120033,9 @@ aaa aaa aaa aaa -aaa -aWj -aaU +arM +akz +arM aaU aaU aaU @@ -120196,14 +120097,14 @@ bNd bNE cww cpO -bWG -cJo +bYP +cRg cMH -bhI -cLZ +cww +cMb caq -cLZ -bhI +cMb +cww anr aaa aaU @@ -120390,9 +120291,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +aWj +aaU +aaU aaa aaa aaU @@ -120452,15 +120353,15 @@ cww cww cww cww -cww +cLm cIs tyI -cMJ +cww cLX cMa cMj cMu -cMG +jiZ anr aaU aaU @@ -120707,17 +120608,17 @@ pgu pgu pgu gGG -vsO +cww chS cpQ cfM cbU -jXo +cww cLm cMb cas cMb -cMH +cMJ anr aaa aaa @@ -120964,9 +120865,9 @@ aXx aXx aXx bfW -tuF +cww lRy -fti +cMl cfP mEa cLV @@ -121221,7 +121122,7 @@ bca cat cKX bQN -nLV +cLb cLd fti cfT @@ -121232,7 +121133,7 @@ chx chM gDY jiZ -hlV +anr aaa aaa aaU @@ -121490,7 +121391,7 @@ rUl cMw cfs cMP -aaa +cMi aaa aaU aaa @@ -121733,14 +121634,14 @@ aXx bca bca cKQ -cKY -bQO +biO +bmz ony xcO hKC cVO -sRD -cMe +nAF +cni cai rdF cMk @@ -121994,12 +121895,12 @@ aXx bfW cww bUa -cMr +brf sRD -cMo +nAF cgz -cai -fkx +cJH +cwB cMl cMx cMJ @@ -122251,13 +122152,13 @@ cKX bQN cLb cLe -cMo -hMZ +bXP +sRD nAF lcD -cai -fkx -mNN +cwB +cwB +cwB cLo nBM cfD @@ -122508,12 +122409,12 @@ bZR bfW cwA cLf -cMo -iAW -fIw +bXV +sRD +nAF wWH -ntC -nEX +cwB +cwB hDz cLp oMB @@ -122765,11 +122666,11 @@ cKY bQO cLc eIh -car +bYd tXV tZj -jml -cVq +cwB +cwB cMc cMm cMy @@ -123023,10 +122924,10 @@ bfW cww bhJ cMo -iAW +cwB cJu -iAW -cJH +cwB +cwB cMd cMn cMz @@ -123280,10 +123181,10 @@ bQN cLb cLh cMo -iAW -cJu -hlo -cJH +cwB +jon +cwB +cwB cMe cMo cLq @@ -123538,9 +123439,9 @@ bWK cLi xKr nvn -cJu -iAW -cJH +jon +cwB +cwB cMe cMo cMA @@ -123794,10 +123695,10 @@ cLa cLc fgS car -iAW +cwB jon -xjk -cai +cwB +cwB cMg cMq cMB @@ -124054,7 +123955,7 @@ kOG dVR xCy sHB -xkC +cwB cMe cMr cMC @@ -124308,7 +124209,7 @@ bQS cLb cLj cMo -qvB +cwB cgh cgA chq @@ -124826,7 +124727,7 @@ prx vxU cLW ccG -cMi +prx iQY cMF cMO @@ -125338,11 +125239,11 @@ aWj cww cJm cww -aaU -aaa -aaa -aaa -aaa +aWj +aWj +aWj +aWj +aWj aaU aaU aaa @@ -125593,9 +125494,9 @@ bal aaU aWj cww -cJn +cJm cww -aaU +aWj bal bal bal @@ -125623,7 +125524,7 @@ cNB cNB cNB cNG -cNN +hlo cNT cNy cNX @@ -125836,7 +125737,7 @@ aaa aaa aaa aaU -cbS +cPq abM ccH aaU @@ -125849,10 +125750,10 @@ aaa aaa aaU aWj +bFY +cJn +cww aWj -aWj -aaa -aaa aaa aaa aaa @@ -126020,9 +125921,9 @@ aaa aaa aaa aaU -abF +cPl abM -acA +cPq aaU aaa aaa @@ -126093,9 +125994,9 @@ aaa aaa aaa aaU -cbS +cPq abR -ccJ +cPm aaU aaa aaa @@ -126105,11 +126006,11 @@ aaa aaa aaa aaU -aaa -aaa -aaa -aaa -aaa +aWj +aWj +aWj +aWj +aWj bal bal bal @@ -126277,9 +126178,9 @@ aaa aaa aaa aaU -abJ +cPm abR -acA +cPq aaU aaU aaU @@ -126534,12 +126435,12 @@ aaa aaa aaa aaU -abJ +cPm abR acB -adc -adc -adL +cPd +cPd +cdq aaa aaa aaa @@ -126604,14 +126505,14 @@ aaU aaa aaa aaa -bGK -bGK +cPd +cPd bUe ccc abR -aaY +pZq cdb -bGK +cPd cdq aaa aaa @@ -126791,7 +126692,7 @@ aaa aaa aaa aaU -abJ +cPm abM abR abM @@ -127048,12 +126949,12 @@ aaa aaa aaa abp -abJ -abZ -abZ -abZ -abZ -abZ +cPm +cPh +cPh +cPh +cPh +cPh aaa aaa aaa @@ -127118,15 +127019,15 @@ aaU aaa aaa aaa -bGP -bNo -bNo +cPe +cPh +cPh ccf ccs ccP cdi -bNo -bNo +cPh +cPh aaa aaa aaa diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 53ca9a72b0..17253e2665 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -501,16 +501,14 @@ dir = 4 }, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 8; - icon_state = "yellowcornersiding" + dir = 8 }, /area/crew_quarters/fitness/pool) "aba" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -519,8 +517,7 @@ dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abb" = ( @@ -613,8 +610,7 @@ dir = 4 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 8; - icon_state = "yellowsiding" + dir = 8 }, /area/crew_quarters/fitness/pool) "abn" = ( @@ -628,8 +624,7 @@ dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abo" = ( @@ -713,8 +708,7 @@ name = "pool camera" }, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abv" = ( @@ -733,8 +727,7 @@ dir = 4 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 8; - icon_state = "yellowsiding" + dir = 8 }, /area/crew_quarters/fitness/pool) "aby" = ( @@ -774,8 +767,7 @@ dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abC" = ( @@ -913,8 +905,7 @@ pixel_x = -23 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abP" = ( @@ -981,8 +972,7 @@ pixel_x = -26 }, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 4; - icon_state = "yellowcornersiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abW" = ( @@ -991,8 +981,7 @@ dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 1; - icon_state = "yellowsiding" + dir = 1 }, /area/crew_quarters/fitness/pool) "abX" = ( @@ -1004,8 +993,7 @@ dir = 4 }, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 1; - icon_state = "yellowcornersiding" + dir = 1 }, /area/crew_quarters/fitness/pool) "abY" = ( @@ -9916,8 +9904,7 @@ /area/engine/atmospherics_engine) "avi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - name = "scrubbers pipe" + dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -50512,12 +50499,6 @@ /turf/open/floor/plasteel/dark, /area/security/detectives_office) "bJn" = ( -/obj/structure/rack, -/obj/item/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/secure/briefcase, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -50528,6 +50509,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/dark, /area/security/detectives_office) "bJo" = ( @@ -63208,7 +63190,6 @@ }, /obj/machinery/camera{ c_tag = "Library - Aft"; - dir = 2; name = "library camera" }, /turf/open/floor/wood, @@ -64374,8 +64355,7 @@ /area/library) "cel" = ( /obj/structure/chair/sofa/right{ - dir = 8; - icon_state = "sofaend_right" + dir = 8 }, /obj/structure/sign/painting/library{ pixel_x = 32 @@ -125711,7 +125691,6 @@ }, /obj/machinery/camera{ c_tag = "Library - Aft"; - dir = 2; name = "library camera" }, /turf/open/floor/plasteel/grimy, @@ -127864,8 +127843,7 @@ /area/science/mixing) "xER" = ( /obj/structure/chair/sofa/left{ - dir = 8; - icon_state = "sofaend_left" + dir = 8 }, /turf/open/floor/wood, /area/library) diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 518fa4e81e..f426ad8e97 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -10384,9 +10384,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/dark, /area/security/detectives_office) "ars" = ( @@ -70077,8 +70075,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - name = "scrubbers pipe" + dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, diff --git a/_maps/map_files/LambdaStation/dorms.dmm b/_maps/map_files/LambdaStation/dorms.dmm new file mode 100644 index 0000000000..e5003965ed --- /dev/null +++ b/_maps/map_files/LambdaStation/dorms.dmm @@ -0,0 +1,85701 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"ab" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/central) +"ac" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"af" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space) +"ag" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ah" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ai" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ak" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"al" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"an" = ( +/turf/closed/wall, +/area/maintenance/bar) +"ap" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ar" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice"; + dir = 4; + name = "Office APC"; + pixel_x = 23 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"as" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"at" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/sign/departments/holy{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"au" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"av" = ( +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aw" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/bar"; + dir = 1; + name = "Bar APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ax" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/gateway) +"ay" = ( +/turf/closed/wall/r_wall, +/area/construction/mining/aux_base) +"az" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"aE" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"aG" = ( +/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/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aH" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/wood, +/area/maintenance/bar) +"aI" = ( +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/solar/starboard) +"aK" = ( +/obj/effect/landmark/start/chaplain, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aL" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"aM" = ( +/obj/structure/closet/crate, +/obj/item/cultivator, +/obj/item/shovel/spade, +/obj/item/storage/bag/plants/portaseeder, +/obj/item/seeds/wheat/rice, +/obj/item/seeds/replicapod, +/obj/item/seeds/carrot, +/obj/item/seeds/tomato, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/turf/open/floor/plating, +/area/maintenance/central) +"aN" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lantern, +/turf/open/floor/carpet, +/area/chapel/main) +"aP" = ( +/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/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aQ" = ( +/obj/machinery/door/airlock/hatch{ + name = "Telecomms Control Room"; + req_one_access_txt = "19; 61" + }, +/turf/open/floor/plating/airless, +/area/tcommsat/chamber) +"aR" = ( +/obj/item/electropack/shockcollar, +/obj/item/assembly/signaler, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/wood, +/area/maintenance/bar) +"aS" = ( +/obj/machinery/atmospherics/pipe/simple/multiz, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"aT" = ( +/turf/closed/wall/r_wall, +/area/chapel/main) +"aU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"aW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock{ + id_tag = "Cabin6"; + name = "Cabin 6" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"aY" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"aZ" = ( +/turf/open/transparent/openspace, +/area/hydroponics/garden/monastery) +"bb" = ( +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"bc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L10"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"be" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bf" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"bg" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bi" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/tracker, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"bk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bl" = ( +/obj/item/storage/box/mousetraps, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bo" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"bq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"bu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bw" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"by" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"bz" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bA" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"bB" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Clinic"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"bC" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Minning Access" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bF" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"bG" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"bH" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/obj/machinery/door/window/westleft{ + name = "Bar Access"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bJ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1481; + name = "Confessional Intercom"; + pixel_y = -30 + }, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bL" = ( +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"bM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"bO" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bR" = ( +/obj/structure/table/wood, +/obj/item/storage/book/bible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"bS" = ( +/obj/machinery/light, +/turf/open/floor/carpet, +/area/chapel/main) +"bU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/gateway) +"bW" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"bX" = ( +/obj/machinery/camera/motion{ + c_tag = "Above Core"; + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bY" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet, +/area/chapel/office) +"cb" = ( +/obj/machinery/vending/kink, +/obj/effect/decal/cleanable/semen, +/turf/open/floor/wood, +/area/maintenance/bar) +"cd" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ce" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"ch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ci" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ck" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cl" = ( +/turf/open/floor/plating, +/area/hallway/primary/central) +"cn" = ( +/turf/closed/wall, +/area/hydroponics/garden/monastery) +"co" = ( +/obj/structure/rack, +/obj/item/clothing/mask/horsehead, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"cq" = ( +/turf/open/space, +/area/space) +"cr" = ( +/obj/machinery/door/airlock/glass{ + name = "Cryodorms" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"ct" = ( +/turf/closed/wall, +/area/hallway/secondary/construction) +"cu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/central) +"cv" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"cw" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cx" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/central) +"cA" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northright, +/obj/machinery/door/window/southright{ + name = "Hydrophonic's Front Desk"; + req_access_txt = "35" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"cB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"cC" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"cD" = ( +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/structure/closet/crate{ + name = "Burial Garment Crate" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cE" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cG" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"cI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"cJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"cM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L6"; + layer = 2.04 + }, +/mob/living/simple_animal/bot/medbot{ + auto_patrol = 1; + name = "Dr. Heals" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms9"; + location = "dorms8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"cP" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"cQ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms14"; + location = "dorms13" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"cT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"cU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"cV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cX" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"cY" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms) +"da" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"dc" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"df" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"dg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"dh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"di" = ( +/obj/docking_port/stationary/public_mining_dock, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"dk" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Minning Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"dm" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/bar) +"dn" = ( +/obj/structure/table, +/obj/item/plant_analyzer, +/obj/item/shovel/spade, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"do" = ( +/obj/structure/falsewall, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/maintenance/bar) +"dq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dr" = ( +/obj/machinery/recharge_station, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"dt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"du" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"dv" = ( +/obj/machinery/camera{ + c_tag = "Starboard Solar Maintenance"; + dir = 3 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"dw" = ( +/turf/closed/wall/r_wall, +/area/maintenance/department/crew_quarters/dorms) +"dx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"dz" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/computer/arcade/battle{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"dA" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"dC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium Access" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dE" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"dF" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"dG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"dH" = ( +/obj/structure/table, +/obj/item/clothing/mask/cigarette/pipe, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"dI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dJ" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/bar"; + dir = 1; + name = "Maint Bar APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"dK" = ( +/obj/machinery/door/airlock/external{ + name = "Construction Zone" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"dM" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) +"dN" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"dQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"dS" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"dT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"dU" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"dV" = ( +/obj/machinery/power/apc{ + areastring = "/area/hydroponics/garden/monastery"; + dir = 1; + name = "Atrium APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"dW" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southleft, +/turf/open/floor/plating, +/area/chapel/main) +"dX" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plating, +/area/maintenance/bar) +"dZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"eb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"ed" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"ee" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 8; + freq = 1400; + location = "Bar" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ef" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/turf/open/floor/wood, +/area/maintenance/bar) +"ei" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ej" = ( +/obj/structure/musician/piano, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"ek" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"el" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"en" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"eo" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ep" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Dormitories Hallway Starboard Fore"; + dir = 9; + name = "dormitories camera" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"eq" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"er" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/orange, +/obj/item/storage/box/mousetraps{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/lights/mixed, +/obj/item/grenade/chem_grenade/cleaner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/central) +"eu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"ev" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet) +"ew" = ( +/turf/closed/wall, +/area/vacant_room/commissary) +"ex" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/central) +"ey" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"ez" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"eA" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"eB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium Access" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"eD" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/wood, +/area/maintenance/bar) +"eE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"eF" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/crew_quarters/dorms"; + name = "Dormitory Maintenance APC"; + pixel_y = -28 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"eG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eH" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"eI" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"eJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"eK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"eL" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space, +/area/space) +"eM" = ( +/obj/structure/closet/secure_closet/bar{ + pixel_x = -3; + pixel_y = -1; + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"eO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"eP" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/maintenance/bar) +"eQ" = ( +/obj/structure/table/wood, +/obj/item/folder, +/turf/open/floor/carpet, +/area/chapel/office) +"eR" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"eS" = ( +/obj/structure/closet/crate/hydroponics, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"eT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"eX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"eZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"fb" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"fc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hydroponics) +"fd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"fe" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"ff" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"fg" = ( +/obj/structure/girder, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"fi" = ( +/obj/machinery/light, +/obj/effect/turf_decal/trimline/green/filled/end, +/obj/machinery/computer/cryopod{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"fk" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"fl" = ( +/turf/closed/wall, +/area/maintenance/central) +"fm" = ( +/obj/structure/table/wood, +/obj/item/storage/book/bible, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/carpet, +/area/chapel/office) +"fn" = ( +/obj/machinery/computer/camera_advanced/base_construction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"fo" = ( +/obj/effect/turf_decal/vg_decals/department/sec, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"fq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/central) +"fr" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ft" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"fu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Chapel Port"; + name = "chapel camera" + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"fv" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/hardhat/red, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"fw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"fx" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fy" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"fz" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/gateway) +"fA" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"fB" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"fC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating, +/area/maintenance/central) +"fD" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/packageWrap, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"fF" = ( +/obj/structure/chair/stool, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"fG" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"fJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"fK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"fL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fN" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/monastery) +"fO" = ( +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"fP" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"fQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"fR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"fS" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/central) +"fU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"fV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"fY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium Access" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"fZ" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/random, +/turf/open/space, +/area/space/nearstation) +"ga" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"gb" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/zone2"; + dir = 4; + name = "Clinic APC"; + pixel_x = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"gc" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"gd" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/wood, +/area/maintenance/bar) +"ge" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"gf" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"gg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gh" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"gi" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"gj" = ( +/obj/structure/rack, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/assault_pod/mining, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"gk" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"gm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"gn" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"gp" = ( +/obj/effect/turf_decal/vg_decals/department/sci, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gr" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"gs" = ( +/turf/closed/wall, +/area/crew_quarters/toilet) +"gt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock{ + id_tag = "Cabin4"; + name = "Cabin 4" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"gu" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/computer/gateway_control, +/turf/open/floor/plasteel, +/area/gateway) +"gv" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"gw" = ( +/turf/closed/wall, +/area/security/vacantoffice) +"gx" = ( +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"gy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"gA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"gB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = -25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"gD" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet"; + name = "Restrooms APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"gF" = ( +/obj/item/radio/intercom{ + pixel_x = 29 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"gH" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"gI" = ( +/turf/open/floor/plating, +/area/maintenance/bar) +"gK" = ( +/obj/structure/table, +/obj/machinery/camera{ + c_tag = "Gateway - Atrium" + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/gateway) +"gL" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"gM" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + dir = 8; + name = "old sink"; + pixel_x = 15 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"gP" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"gQ" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"gS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/closed/wall, +/area/maintenance/central) +"gT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"gU" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"gV" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"gX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/solar/starboard) +"gY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gZ" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/open/floor/grass, +/area/hydroponics/garden) +"ha" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"hd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"he" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"hh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"hi" = ( +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) +"hk" = ( +/obj/structure/table, +/obj/item/skub, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"hl" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/costume, +/obj/effect/spawner/lootdrop/costume, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"hm" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ho" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"hp" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/hand_labeler_refill, +/obj/item/stack/packageWrap, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"hq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"hr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"hs" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ht" = ( +/turf/open/floor/plating/asteroid/basalt, +/area/asteroid/nearstation) +"hu" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"hw" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"hx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plating, +/area/maintenance/bar) +"hA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/landmark/event_spawn, +/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/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms7"; + location = "dorms6" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hB" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"hC" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"hD" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Funeral Parlour" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"hF" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"hG" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"hI" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"hK" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"hL" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"hM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/wood, +/area/maintenance/bar) +"hN" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"hO" = ( +/obj/machinery/reagentgrinder, +/obj/structure/table, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"hQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/effect/landmark/event_spawn, +/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/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms4"; + location = "dorms3" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hT" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"hU" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"hV" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"hW" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"hX" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"hY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hZ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"ia" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ib" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"ic" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"id" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ie" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"if" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_y = -24; + req_one_access_txt = "32;47;48" + }, +/obj/machinery/camera{ + c_tag = "Auxillary Base Construction"; + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ig" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ih" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"ij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ik" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/hydroponics/garden) +"im" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"in" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ip" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/chapel/office"; + name = "Chapel Office APC"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"iq" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for the Auxillary Mining Base."; + dir = 1; + name = "Auxillary Base Monitor"; + network = list("auxbase"); + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ir" = ( +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"is" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"it" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"iu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Hydroponics Backroom"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"iv" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"ix" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iy" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms15"; + location = "dorms14" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"iC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iE" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/pool/controller, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"iF" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"iG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"iH" = ( +/obj/machinery/power/apc{ + areastring = "/area/construction/mining/aux_base"; + name = "Auxillary Base Construction APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"iI" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods/fifty, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"iJ" = ( +/obj/structure/table, +/obj/item/storage/crayons, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"iL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"iM" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"iN" = ( +/obj/machinery/light/small, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"iO" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"iP" = ( +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"iQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iS" = ( +/obj/structure/chair/sofa/corp{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iT" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/donut, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"iU" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"iV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"iW" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main) +"iX" = ( +/obj/structure/mirror{ + pixel_y = -28 + }, +/obj/item/lipstick/black, +/obj/item/lipstick/jade{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/lipstick/purple{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"iY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"iZ" = ( +/obj/structure/sign/departments/botany, +/turf/closed/wall, +/area/hydroponics) +"ja" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"jb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"jc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"je" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"jf" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"jh" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"ji" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"jj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"jk" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"jl" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"jn" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"jo" = ( +/obj/structure/chair/sofa/corp/left, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"jq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/starboard) +"jr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"js" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Storage Room"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"jt" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"jv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"jx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jy" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"jz" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/maintenance/bar) +"jA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/central) +"jB" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/tequila, +/turf/open/floor/wood, +/area/maintenance/bar) +"jC" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"jE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"jF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"jG" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"jH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-8" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"jK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"jL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/storage/fancy/candle_box, +/turf/open/floor/carpet, +/area/chapel/office) +"jM" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small/built, +/turf/open/floor/wood, +/area/maintenance/bar) +"jN" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"jP" = ( +/obj/item/storage/bag/plants/portaseeder, +/obj/item/storage/bag/plants/portaseeder, +/obj/item/plant_analyzer, +/obj/item/cultivator, +/obj/item/reagent_containers/glass/bucket, +/obj/structure/rack, +/obj/item/seeds/corn, +/obj/item/seeds/cabbage, +/obj/item/seeds/grass, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"jQ" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"jR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"jS" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500 + }, +/obj/item/coin/iron, +/obj/item/coin/diamond, +/obj/item/coin/diamond, +/obj/item/coin/diamond, +/turf/open/floor/plating, +/area/maintenance/central) +"jT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"jU" = ( +/obj/structure/table, +/obj/item/circular_saw{ + pixel_y = 2 + }, +/obj/item/scalpel{ + pixel_y = 15 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"jV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"jW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"ka" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"kb" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/six, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"kc" = ( +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"kd" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"ke" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Cabin Bathroom" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"kg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kh" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"ki" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"kk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/punching_bag, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"kl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/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/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms6"; + location = "dorms5" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"km" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"ko" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/item/nullrod, +/obj/item/organ/heart, +/turf/open/floor/carpet, +/area/chapel/office) +"kp" = ( +/obj/machinery/door/airlock/engineering{ + name = "Auxillary Base Construction"; + req_one_access_txt = "32;47;48" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"kq" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"kr" = ( +/obj/structure/rack, +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/bottle/vermouth{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/turf/open/floor/wood, +/area/maintenance/bar) +"ks" = ( +/obj/structure/mineral_door/wood{ + name = "The Gobbetting Barmaid" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"kt" = ( +/obj/structure/mineral_door/wood{ + name = "The Gobbetting Barmaid" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"kv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kw" = ( +/obj/structure/chair/sofa/corp{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"kx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ky" = ( +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"kz" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kA" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/central) +"kC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_y = 24; + req_one_access_txt = "32;47;48" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kD" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"kF" = ( +/obj/machinery/door/airlock/hatch{ + name = "Telecomms Control Room"; + req_one_access_txt = "19; 61" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/tcommsat/chamber) +"kH" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"kJ" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"kK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kL" = ( +/obj/structure/table, +/obj/item/extinguisher/mini, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/central) +"kN" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms11"; + location = "dorms10" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"kO" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"kP" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/power/apc{ + areastring = "/area/hydroponics/garden/abandoned"; + name = "Abandoned Garden APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"kR" = ( +/obj/structure/closet/wardrobe/grey, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"kS" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"kU" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"kV" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"kY" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/dorms) +"kZ" = ( +/obj/machinery/biogenerator, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"la" = ( +/obj/machinery/reagentgrinder, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"lc" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"ld" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"lh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"li" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"lj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"lk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ll" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"lm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ln" = ( +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/plating, +/area/maintenance/central) +"lo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/dorms) +"lp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"lq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/central) +"lr" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard"; + dir = 8; + name = "Starboard Solar APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"lt" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"lu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-8" + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"lw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ly" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"lz" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/chamber) +"lA" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"lB" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"lC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"lD" = ( +/obj/item/shovel/spade, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/grass, +/area/hydroponics/garden) +"lE" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"lF" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/chapel/main) +"lG" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"lH" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer, +/obj/item/reagent_containers/food/drinks/ale, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/bar) +"lK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/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/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/gateway) +"lN" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"lO" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"lP" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/five, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"lQ" = ( +/turf/closed/wall/r_wall, +/area/space/nearstation) +"lR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"lS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"lT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"lU" = ( +/obj/structure/closet/secure_closet/exile, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"lV" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"lX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"lZ" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ma" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/rag, +/turf/open/floor/wood, +/area/maintenance/bar) +"mb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"mc" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/wood, +/area/maintenance/bar) +"me" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/sleeper{ + dir = 4 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"mg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mh" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/toolbox/electrical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"mi" = ( +/obj/structure/mopbucket, +/turf/open/floor/plating, +/area/maintenance/central) +"mj" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"mk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"ml" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mm" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/chapel/main) +"mn" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northright, +/turf/open/floor/plating, +/area/chapel/main) +"mq" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mt" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/bar) +"mu" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"mw" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/cable_coil, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/starboard) +"mx" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"mA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mC" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/hydroponics/garden/abandoned) +"mD" = ( +/obj/machinery/vending/hydroseeds, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"mE" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics/garden) +"mF" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/maintenance/bar) +"mK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium Access" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mL" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/machinery/camera{ + c_tag = "Vacant Commissary"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"mM" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass, +/area/hydroponics/garden) +"mN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mO" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"mP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"mS" = ( +/obj/machinery/vending/cola/random, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"mV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"mW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"mY" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"mZ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"nb" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"nc" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"nf" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"ng" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"nh" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"ni" = ( +/mob/living/simple_animal/hostile/retaliate/goose, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"nj" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"nl" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"nn" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"no" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"np" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/gateway) +"nq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ns" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"nt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "Cabin2"; + name = "Cabin 2" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"nv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"nw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/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/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nx" = ( +/obj/machinery/vending/cigarette, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/bar) +"nz" = ( +/obj/machinery/door/window/southleft{ + name = "Bar Delivery"; + req_access_txt = "25" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"nA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nB" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"nC" = ( +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"nD" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/wood, +/area/security/vacantoffice) +"nF" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"nH" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"nI" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"nJ" = ( +/turf/open/floor/carpet/blue, +/area/security/vacantoffice) +"nK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nL" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"nM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nN" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/central) +"nO" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"nP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nR" = ( +/turf/open/floor/carpet, +/area/hydroponics/garden) +"nS" = ( +/obj/effect/landmark/start/cook, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"nT" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"nU" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"nV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"nW" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"nY" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"nZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"ob" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oc" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"oe" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"of" = ( +/obj/structure/table, +/obj/item/hemostat{ + pixel_x = -5 + }, +/obj/item/retractor{ + pixel_x = 2 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"og" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"oh" = ( +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"oj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ok" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ol" = ( +/obj/machinery/hydroponics/soil, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics/garden) +"on" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"op" = ( +/obj/effect/mine/sound/bwoink, +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) +"ot" = ( +/turf/closed/wall, +/area/chapel/office) +"ov" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ow" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"oA" = ( +/obj/structure/bodycontainer/morgue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"oB" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"oC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms) +"oE" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"oF" = ( +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"oG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oH" = ( +/obj/effect/landmark/start/botanist, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"oJ" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"oK" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/chapel/main) +"oN" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"oP" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"oQ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/cafeteria) +"oR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oT" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/obj/structure/table, +/obj/machinery/smartfridge/disks, +/turf/open/floor/plasteel, +/area/hydroponics) +"oU" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/tracker, +/turf/open/floor/plating/airless, +/area/solar/starboard) +"oW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"oX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oY" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/machinery/food_cart, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"oZ" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"pa" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pb" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"pc" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/emptysandbags, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/mining_scanner, +/obj/item/mining_scanner, +/obj/item/mining_scanner, +/obj/item/mining_scanner, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pf" = ( +/obj/machinery/hydroponics/soil{ + pixel_y = 8 + }, +/obj/item/seeds/carrot, +/obj/effect/turf_decal/stripes/line, +/obj/item/seeds/cannabis/white, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"pg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"pj" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/pool/Rboard, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"pk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/crew_quarters/dorms) +"pl" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"po" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"pp" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"pq" = ( +/obj/machinery/light/floor, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"pr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"pt" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"pv" = ( +/turf/open/floor/plating/beach/coastline_t, +/area/crew_quarters/fitness/pool) +"pw" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"px" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"py" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"pz" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"pA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"pB" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"pC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"pE" = ( +/obj/machinery/smartfridge/drinks{ + icon_state = "boozeomat" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"pF" = ( +/obj/machinery/button/door{ + id = "gateshutter"; + name = "Gateway Shutter Control"; + pixel_y = -34; + req_access_txt = "19" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pG" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"pH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"pI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"pJ" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet2"; + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"pK" = ( +/turf/closed/wall, +/area/medical/medbay/zone2) +"pL" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plating, +/area/maintenance/bar) +"pM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"pO" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/dorms) +"pQ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"pR" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"pU" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/carpet/blue, +/area/security/vacantoffice) +"pV" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"pW" = ( +/turf/closed/wall, +/area/maintenance/department/crew_quarters/dorms) +"pX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"pY" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"pZ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"qa" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"qb" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"qc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"qd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"qf" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"qg" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"qi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"qj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Clinic"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"qk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Hydroponics Module"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"ql" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"qm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"qn" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"qo" = ( +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) +"qq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qs" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"qt" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Vacant Office Maintenance"; + req_access_txt = "32" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"qu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard) +"qv" = ( +/obj/effect/landmark/start/chaplain, +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet, +/area/chapel/office) +"qx" = ( +/obj/machinery/light, +/obj/structure/closet/wardrobe/green, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"qz" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"qA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"qD" = ( +/obj/structure/rack, +/obj/item/storage/box, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"qE" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"qF" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/obj/machinery/light, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"qG" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"qH" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"qI" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"qJ" = ( +/obj/machinery/chem_heater{ + pixel_x = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"qK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"qM" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"qN" = ( +/obj/machinery/deepfryer, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"qP" = ( +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating, +/area/maintenance/central) +"qR" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"qS" = ( +/obj/structure/chair/stool, +/obj/item/clothing/suit/apron/chef, +/turf/open/floor/plating, +/area/maintenance/central) +"qT" = ( +/obj/machinery/telecomms/relay/preset/station, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"qU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"qY" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/rods/twentyfive, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qZ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/beach/sand, +/area/crew_quarters/fitness/pool) +"ra" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"re" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"rf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"rh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"rj" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/starboard) +"rk" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"rl" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"rm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"rq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms10"; + location = "dorms9" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rr" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Bar" + }, +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"rs" = ( +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"ru" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/hydroponics/garden) +"rx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"rz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"rD" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"rE" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hydroponics) +"rF" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"rG" = ( +/obj/item/soap, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/shower{ + dir = 4; + layer = 3.2 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"rH" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"rI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rK" = ( +/obj/structure/sign/departments/holy{ + pixel_x = -32 + }, +/turf/closed/wall, +/area/chapel/main) +"rM" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Hydroponics Module"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"rN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"rO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"rP" = ( +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"rQ" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/lootdrop/gambling, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"rR" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = 31 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"rS" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/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/effect/turf_decal/tile/neutral, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"rT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"rU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"rV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"rW" = ( +/obj/structure/urinal{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"rX" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/security/vacantoffice) +"rY" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"rZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"sa" = ( +/obj/machinery/door/poddoor/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/vending/snack/random, +/obj/machinery/door/window/northleft{ + req_access_txt = "35" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"sb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sd" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"se" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"sf" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"sh" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"si" = ( +/turf/open/floor/carpet/blackred, +/area/crew_quarters/dorms) +"sj" = ( +/turf/closed/wall, +/area/space/nearstation) +"sk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/central) +"sl" = ( +/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/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sm" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"so" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"ss" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"st" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"sv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"sw" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"sx" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"sy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"sz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/crew_quarters/dorms) +"sB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sC" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/pool) +"sD" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"sE" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"sG" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"sH" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"sK" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"sL" = ( +/obj/structure/table/wood/poker, +/obj/item/clothing/head/fedora, +/obj/item/toy/cards/deck{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"sM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"sN" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"sO" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"sQ" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"sR" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"sU" = ( +/obj/item/seeds/berry, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/hydroponics/soil{ + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"sV" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/poster/random_contraband, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"sW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/structure/sink{ + layer = 3.1; + pixel_y = 22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"sX" = ( +/obj/machinery/pipedispenser, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"sZ" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"ta" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"tb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"tc" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson{ + pixel_y = 2 + }, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"td" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"te" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "Cabin3"; + name = "Cabin 3" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"tf" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"tg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"th" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel, +/area/hydroponics) +"tj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"tm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 17 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"tn" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"to" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Cabin1"; + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"tp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"tq" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"tr" = ( +/obj/machinery/door/airlock/medical{ + name = "Apothecary"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ts" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"tt" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"tu" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/item/stack/sheet/metal/five, +/obj/item/stack/cable_coil/random/five, +/obj/machinery/power/apc{ + areastring = "/area/vacant_room/commissary"; + dir = 8; + name = "Vacant Commissary APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/vacant_room/commissary) +"tv" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"tx" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ty" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"tz" = ( +/obj/machinery/button/door{ + id = "Cabin1"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -5; + pixel_y = -30; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"tB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 19 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tD" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"tE" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics) +"tG" = ( +/obj/machinery/smartfridge/food, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"tH" = ( +/obj/structure/table/wood, +/obj/item/instrument/accordion, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; + dir = 1; + name = "Theatre APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"tJ" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"tL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"tM" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"tO" = ( +/turf/closed/wall, +/area/janitor) +"tP" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/central) +"tQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/seven, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"tR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/carpet/blue, +/area/security/vacantoffice) +"tS" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/tcommsat/chamber) +"tT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/central) +"tV" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/structure/table, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/storage/belt/utility, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/gateway) +"tW" = ( +/obj/structure/pool/ladder{ + dir = 1; + pixel_y = -24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"tZ" = ( +/obj/item/storage/box/lights/mixed, +/obj/item/extinguisher, +/obj/machinery/light/small, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plating, +/area/maintenance/central) +"ua" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"uc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/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/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 20 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ud" = ( +/obj/machinery/door/airlock{ + name = "Service Hall"; + req_one_access_txt = "25;26;35;28" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"ue" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"uf" = ( +/obj/structure/pool/Lboard, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"ui" = ( +/obj/machinery/light/floor, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"uj" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"uk" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"um" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/central) +"uo" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/button/door{ + id = "Toilet4"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"up" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"uq" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/structure/sign/departments/restroom{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ur" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"us" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"ut" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/storage/toolbox/emergency, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/gateway) +"uu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard) +"uw" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ux" = ( +/obj/machinery/vending/hydronutrients, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"uy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel, +/area/janitor) +"uA" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/item/reagent_containers/food/snacks/grown/wheat, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/reagent_containers/food/snacks/grown/grapes, +/turf/open/floor/plasteel, +/area/hydroponics) +"uB" = ( +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage"; + dir = 8; + name = "engineering camera" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"uC" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"uE" = ( +/turf/closed/wall, +/area/hydroponics/garden) +"uG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/crew_quarters/dorms) +"uI" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/central) +"uJ" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"uK" = ( +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"uL" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"uM" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"uN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"uO" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"uP" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/crew_quarters/dorms) +"uQ" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating, +/area/chapel/main) +"uR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/janitor) +"uS" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"uU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"uV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"uX" = ( +/turf/open/floor/fakespace, +/area/asteroid/nearstation) +"uY" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"uZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vc" = ( +/obj/machinery/camera{ + c_tag = "Holodeck Starboard"; + dir = 9; + name = "holodeck camera" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/item/radio/intercom{ + pixel_x = 29 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"vd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"ve" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"vf" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vg" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"vh" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"vk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"vl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"vm" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vn" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"vo" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"vp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Utilities Maintenance"; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"vq" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/toolbox/emergency, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"vs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"vt" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"vu" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"vv" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vx" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vy" = ( +/obj/structure/weightmachine/stacklifter, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/starboard/fore) +"vB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/wood, +/area/security/vacantoffice) +"vC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"vD" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vE" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"vF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/vehicle/ridden/janicart, +/obj/item/key/janitor, +/turf/open/floor/plating, +/area/janitor) +"vG" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood, +/area/maintenance/bar) +"vH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"vK" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"vL" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/obj/item/storage/daki, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"vM" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"vN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L14"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vO" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"vP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"vR" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/item/cultivator, +/obj/item/crowbar, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hydroponics) +"vS" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7"; + layer = 2.04 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vT" = ( +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"vU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Fitness Room Starboard"; + dir = 9; + name = "dormitories camera" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"vV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"vW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard/fore) +"vX" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"wa" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"wc" = ( +/obj/item/stack/sheet/glass, +/obj/item/electronics/firealarm, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"wd" = ( +/obj/machinery/computer/pod/old{ + density = 0; + icon = 'icons/obj/airlock_machines.dmi'; + icon_state = "airlock_control_standby"; + id = "chapelgun"; + name = "Mass Driver Controller"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"we" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"wf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"wg" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet4"; + name = "Unit 4" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"wh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/mob/living/simple_animal/bot/cleanbot{ + auto_patrol = 1; + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"wi" = ( +/obj/structure/pool/ladder{ + pixel_x = -3 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"wj" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"wk" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"wo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"wp" = ( +/turf/open/floor/plating/beach/sand, +/area/crew_quarters/fitness/pool) +"wq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/recreation) +"ws" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"wt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"wu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"wv" = ( +/obj/machinery/bloodbankgen, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"wx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/janitor) +"wA" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/vending/wardrobe/medi_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"wC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Cryogenic Storage"; + dir = 1; + name = "dormitories camera" + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"wH" = ( +/obj/item/stack/rods, +/turf/open/space, +/area/space/nearstation) +"wJ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/structure/sign/plaques/deempisi{ + pixel_y = 28 + }, +/obj/structure/table/reinforced, +/obj/item/storage/box/matches{ + pixel_y = 5 + }, +/obj/item/lighter, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"wK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"wL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"wO" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/hydroponics/garden) +"wP" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"wT" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"wU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"wV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/space/nearstation) +"wW" = ( +/obj/machinery/light, +/obj/machinery/chem_master/condimaster{ + desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; + name = "HoochMaster Deluxe"; + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"wY" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/trash/waffles{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"wZ" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"xa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xb" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/holodeck/rec_center"; + dir = 4; + name = "Holodeck APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"xc" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"xd" = ( +/obj/machinery/pipedispenser, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"xe" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"xf" = ( +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"xg" = ( +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"xh" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xj" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"xk" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"xl" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"xm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"xn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"xo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"xp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"xq" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"xr" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"xs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"xu" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"xw" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/structure/closet/crate/freezer, +/turf/open/floor/plating, +/area/maintenance/central) +"xy" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/crate/wooden/toy, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"xz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"xA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xC" = ( +/obj/machinery/vending/clothing, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"xD" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"xE" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"xG" = ( +/obj/structure/table, +/obj/item/paper/fluff/bee_objectives, +/obj/item/reagent_containers/spray/plantbgone, +/obj/item/reagent_containers/spray/pestspray, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"xH" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/pool"; + dir = 4; + name = "Pool APC"; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"xI" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"xJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"xK" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"xL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"xO" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"xP" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"xQ" = ( +/obj/item/radio/intercom{ + pixel_x = 28; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = 28; + pixel_y = -6 + }, +/turf/open/floor/plating, +/area/vacant_room/commissary) +"xR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"xS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"xU" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"xX" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"xY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"xZ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ya" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"yb" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"yc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft, +/obj/machinery/door/window/northleft{ + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"yd" = ( +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Locker Room Aft"; + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/vending/kink, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ye" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"yf" = ( +/obj/item/paint/paint_remover, +/obj/item/storage/box/lights, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/janitor) +"yg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/dorms) +"yj" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard) +"yk" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"yl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ym" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"yn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yo" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"yp" = ( +/obj/machinery/camera/motion{ + c_tag = "Above Comms"; + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"yq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"yr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/gateway) +"yt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"yv" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"yw" = ( +/turf/open/floor/wood, +/area/security/vacantoffice) +"yy" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"yz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"yA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yB" = ( +/obj/machinery/vending/coffee, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"yC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/central) +"yE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"yG" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"yH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"yJ" = ( +/obj/machinery/camera/autoname{ + dir = 4 + }, +/obj/machinery/computer/arcade/minesweeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"yK" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"yL" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"yM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"yN" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"yQ" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hydroponics) +"yR" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"yS" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics/garden) +"yT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/janitor, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor) +"yV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"yW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Hydroponics Module"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"yX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"yZ" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"za" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"zb" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"zc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"zd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"ze" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/janitor) +"zg" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/storage/box/lights/mixed, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/storage/tools) +"zh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"zi" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"zj" = ( +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"zl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"zm" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/plating, +/area/chapel/main) +"zo" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Hydroponics Module"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"zp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"zq" = ( +/obj/structure/closet/secure_closet/bar, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"zr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/janitor"; + dir = 4; + name = "Custodial Closet APC"; + pixel_x = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/janitor) +"zs" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"zt" = ( +/obj/effect/turf_decal/trimline/green/filled/corner, +/turf/open/floor/plasteel, +/area/hydroponics) +"zu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/four, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"zv" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"zw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"zx" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"zy" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"zz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"zA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"zB" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"zD" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/games, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"zE" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/central) +"zF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"zG" = ( +/turf/closed/wall/r_wall, +/area/asteroid/nearstation) +"zH" = ( +/obj/machinery/vending/wallmed{ + pixel_x = -28 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/gateway) +"zI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"zJ" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"zK" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"zL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"zN" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Hydroponics" + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/closed/wall, +/area/hydroponics) +"zO" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 8; + name = "Central Maintenance APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"zP" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"zQ" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/hallway/primary/central) +"zR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + dir = 1; + name = "chapel camera" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"zV" = ( +/turf/closed/wall/r_wall, +/area/hydroponics/garden) +"zW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"zY" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"zZ" = ( +/obj/machinery/hydroponics/soil{ + pixel_y = -8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"Aa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Ab" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Cabin3"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = -30; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"Ac" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ad" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/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/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms3"; + location = "dorms2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Af" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Ag" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ah" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"Aj" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Ak" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Al" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"Am" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ao" = ( +/turf/closed/wall, +/area/tcommsat/chamber) +"Ap" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/computer/holodeck{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Ar" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/security/vacantoffice) +"At" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Au" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + dir = 8; + name = "Central Hall APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Av" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Ay" = ( +/obj/machinery/vending/wardrobe/bar_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Az" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"AA" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"AB" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"AD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"AE" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"AF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"AG" = ( +/obj/machinery/light_switch{ + pixel_x = 28; + pixel_y = -6 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"AH" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/gateway) +"AJ" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"AK" = ( +/obj/machinery/requests_console{ + department = "Law office"; + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"AL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"AN" = ( +/obj/structure/table/glass, +/obj/item/paper/guides/jobs/hydroponics, +/obj/item/storage/box/beakers, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"AO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"AP" = ( +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"AQ" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"AS" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/clothing/head/that, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"AT" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1481; + name = "Confessional Intercom"; + pixel_y = 30 + }, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"AU" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"AW" = ( +/obj/structure/table/glass, +/obj/item/book/manual/hydroponics_pod_people, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"AY" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"AZ" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Ba" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Bc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Be" = ( +/turf/closed/wall, +/area/storage/tools) +"Bf" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics/garden/monastery) +"Bg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Bh" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Bi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Bj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Bk" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Bl" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"Bm" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"Bn" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel, +/area/hydroponics) +"Bo" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"Bp" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Bq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Bs" = ( +/turf/open/floor/plating, +/area/maintenance/central) +"Bt" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Bu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Bv" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Bw" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Bx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"By" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 1; + name = "Service Hall APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"BA" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"BB" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/dorms) +"BC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"BD" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"BF" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"BG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard) +"BI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"BJ" = ( +/obj/machinery/door/window/westleft{ + dir = 1; + req_access_txt = "5" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"BK" = ( +/obj/structure/sign/departments/custodian{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"BL" = ( +/obj/structure/rack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, +/obj/item/reagent_containers/syringe/charcoal, +/obj/item/reagent_containers/syringe/epinephrine{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"BN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"BO" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/vending/wardrobe/jani_wardrobe{ + products = list(/obj/item/clothing/under/rank/civilian/janitor = 2, /obj/item/cartridge/janitor = 2, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, /obj/item/paint/paint_remover = 2, /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, /obj/item/caution = 10, /obj/item/holosign_creator = 2, /obj/item/lightreplacer = 2, /obj/item/soap/nanotrasen = 2, /obj/item/storage/bag/trash = 2, /obj/item/clothing/shoes/galoshes = 2, /obj/item/watertank/janitor = 2, /obj/item/storage/belt/janitor = 2) + }, +/turf/open/floor/plating, +/area/janitor) +"BP" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"BQ" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"BR" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"BS" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"BT" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"BU" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/cookie{ + desc = "It has a distinctly eldritch taste to it."; + name = "grandma's cookie" + }, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/central) +"BW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"BX" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/wood, +/area/security/vacantoffice) +"Ca" = ( +/obj/item/stack/cable_coil/random, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Cb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"Cd" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Ce" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Cf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Cg" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) +"Ch" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Ck" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Cl" = ( +/obj/item/seeds/ambrosia, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/hydroponics/soil{ + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"Cm" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hydroponics) +"Cn" = ( +/obj/machinery/camera{ + c_tag = "Hydroponics Storage"; + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Cp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L12"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Cq" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"Cr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/central) +"Cs" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/secure/briefcase, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plating, +/area/vacant_room/commissary) +"Ct" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"Cu" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"Cv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Cz" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "commissaryshutter"; + name = "Vacant Commissary Shutter" + }, +/obj/structure/noticeboard{ + pixel_y = 31 + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"CA" = ( +/turf/closed/wall, +/area/crew_quarters/cafeteria) +"CB" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"CC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/janitor) +"CD" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"CF" = ( +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"CG" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"CH" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/central) +"CI" = ( +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"CJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers{ + dir = 10 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/central) +"CL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"CN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"CO" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"CP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"CQ" = ( +/obj/machinery/button/door{ + id = "Cabin7"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 5; + pixel_y = 30; + specialfunctions = 4 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"CR" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"CS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/crew_quarters/dorms) +"CT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel, +/area/janitor) +"CU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"CW" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/vending/medical{ + products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, /obj/item/healthanalyzer = 4, /obj/item/sensor_device = 4, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/pill/insulin = 10, /obj/item/reagent_containers/pill/salbutamol = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, /obj/item/storage/hypospraykit/fire = 2, /obj/item/storage/hypospraykit/toxin = 2, /obj/item/storage/hypospraykit/o2 = 2, /obj/item/storage/hypospraykit/brute = 2, /obj/item/storage/hypospraykit/enlarge = 2, /obj/item/reagent_containers/glass/bottle/vial/small = 5, /obj/item/storage/briefcase/medical = 2, /obj/item/stack/sticky_tape/surgical = 3, /obj/item/healthanalyzer/wound = 4, /obj/item/stack/medical/ointment = 2, /obj/item/stack/medical/suture = 2, /obj/item/stack/medical/bone_gel = 4) + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"CX" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"CY" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms1"; + location = "dorms15" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"CZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"Da" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/lizard{ + name = "Wags-His-Tail"; + real_name = "Wags-His-Tail" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/janitor) +"Dc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Dd" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"De" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Dj" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"Dk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Dl" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"Dm" = ( +/obj/structure/chair/sofa/corp, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Dn" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/solar/starboard/aft) +"Do" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance"; + req_access_txt = "28" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/maintenance/central) +"Dp" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/gateway"; + dir = 8; + name = "Gateway APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"Ds" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"Du" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Dv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Dw" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/obj/machinery/processor, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Dy" = ( +/obj/structure/table, +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"DB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"DD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"DE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/corner, +/turf/open/floor/plasteel, +/area/hydroponics) +"DG" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"DH" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"DI" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"DJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"DK" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"DL" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"DM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"DN" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"DO" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/maintenance/central) +"DP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms) +"DQ" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"DR" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet3"; + name = "Unit 3" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"DS" = ( +/obj/machinery/light, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"DT" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"DV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"DW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/sign/plaques/kiddie/badger{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"DY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"DZ" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Ea" = ( +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Eb" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/department/crew_quarters/dorms) +"Ec" = ( +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Ed" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Ee" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Ef" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Eg" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Ei" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Ej" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"El" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Em" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"En" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Eo" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "commissaryshutter"; + name = "Vacant Commissary Shutter" + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"Ep" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/security/vacantoffice) +"Eq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Er" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Et" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet1"; + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Eu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ew" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"Ex" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"Ey" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Ez" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L8"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"EA" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"EB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"EC" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"ED" = ( +/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" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"EE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"EF" = ( +/obj/machinery/atmospherics/pipe/simple/multiz, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"EG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Commissary"; + req_access_txt = "12;63;48;50" + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"EH" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/obj/machinery/vr_sleeper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"EI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"EJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"EK" = ( +/obj/structure/table, +/obj/structure/bedsheetbin/towel, +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"EL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard) +"EM" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"EN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"EO" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"EP" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"EQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"ER" = ( +/obj/machinery/light, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms) +"ES" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"ET" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"EU" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"EV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"EW" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"EY" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/central) +"EZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/camera{ + c_tag = "Restrooms"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Fa" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Fb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Fc" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Fd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Fe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Ff" = ( +/obj/machinery/hydroponics/soil{ + pixel_y = 8 + }, +/obj/item/seeds/glowshroom, +/obj/item/seeds/corn, +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"Fg" = ( +/turf/open/floor/plating/beach/coastline_b, +/area/crew_quarters/fitness/pool) +"Fh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Fk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Fl" = ( +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Fm" = ( +/obj/structure/rack, +/obj/item/pickaxe{ + pixel_x = -4 + }, +/obj/item/pickaxe, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Fo" = ( +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Fp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Fq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Fr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/central) +"Fs" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ft" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L11"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Fu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Fx" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"Fy" = ( +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Fz" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/central) +"FA" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"FB" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"FC" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/surgery, +/obj/item/surgical_drapes, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"FD" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"FE" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hydrophonics"; + dir = 1; + name = "Hydroponics APC"; + pixel_y = 23 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"FG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"FI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"FJ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"FL" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"FM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"FN" = ( +/turf/closed/mineral/random/low_chance{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) +"FO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"FQ" = ( +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"FR" = ( +/obj/machinery/light, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/vr_sleeper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"FS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"FT" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plasteel, +/area/maintenance/central) +"FU" = ( +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"FV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/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 = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"FW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/deck_relay, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"FX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"FY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"FZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"Ga" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/closet/crate/freezer/surplus_limbs, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Gc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ge" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/dorms"; + name = "Dormitories APC"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Gf" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gateshutter"; + name = "Gateway Access Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/gateway) +"Gi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Gj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Gk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Gl" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/multitool, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Gm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"Go" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Gq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"Gr" = ( +/obj/machinery/button/door{ + id = "Cabin6"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 5; + pixel_y = 30; + specialfunctions = 4 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"Gs" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/maintenance/central) +"Gt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Gu" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Gv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Gw" = ( +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"Gx" = ( +/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/vending/cola/random, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"Gy" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plating, +/area/maintenance/central) +"Gz" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"GA" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/kitchen/fork, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"GD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solar/starboard) +"GF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/central) +"GG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/gateway/centerstation, +/turf/open/floor/plasteel/dark, +/area/gateway) +"GH" = ( +/obj/machinery/power/apc{ + areastring = "/area/hydroponics/garden"; + dir = 8; + name = "Garden APC"; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"GI" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard) +"GJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"GK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"GL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"GM" = ( +/obj/structure/table/plasmaglass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"GO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"GP" = ( +/obj/machinery/power/deck_relay, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"GQ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"GS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"GT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"GU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"GV" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/item/crowbar, +/obj/item/flashlight, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"GX" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"GY" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"Ha" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Hb" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Hc" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Hd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"He" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Hh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Hi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"Hl" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Hm" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Hn" = ( +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"Ho" = ( +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecomms)"; + pixel_y = 30 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"Hq" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Hs" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Ht" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Hv" = ( +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Hw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Hy" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Hz" = ( +/obj/item/soap, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"HA" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"HB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"HD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"HF" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Garden" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"HI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/corner, +/turf/open/floor/plasteel, +/area/hydroponics) +"HJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"HM" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/maintenance/central) +"HN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"HP" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"HQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"HS" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre C"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"HT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"HU" = ( +/obj/item/paper/fluff/gateway, +/obj/structure/table, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"HV" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hydroponics/garden) +"HW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"HX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"HY" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"HZ" = ( +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Ia" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Ib" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Dormitories Hallway Port Fore"; + dir = 4; + name = "dormitories camera" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ic" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Id" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ie" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Ig" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"Ih" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ii" = ( +/obj/machinery/light, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Ij" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Ik" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Il" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Im" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ip" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Iq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Ir" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Is" = ( +/obj/structure/pool/ladder{ + dir = 2; + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"It" = ( +/obj/effect/turf_decal/trimline/green/filled/end{ + dir = 1 + }, +/obj/item/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"Iu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Iv" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ix" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel, +/area/gateway) +"Iy" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Iz" = ( +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"IA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/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/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IB" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"IC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ID" = ( +/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/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"IE" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"IF" = ( +/obj/effect/landmark/start/cook, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"IG" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/chair/sofa/right, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"IH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"II" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IJ" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/hydroponics/garden/abandoned) +"IK" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/mopbucket, +/obj/item/mop, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"IL" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"IM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"IO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IQ" = ( +/obj/structure/table/wood/fancy/red, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"IR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"IS" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"IT" = ( +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/janitor) +"IU" = ( +/obj/machinery/light, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/dorms) +"IV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"IW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IX" = ( +/obj/item/caution, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"IZ" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ja" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Jc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"Jd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"Je" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Jf" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Jg" = ( +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Jh" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/carpet/blue, +/area/security/vacantoffice) +"Jj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"Jl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Jm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Jo" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Jp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Jq" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space/nearstation) +"Js" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"Jt" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + pixel_x = -32 + }, +/obj/machinery/vending/wardrobe/chef_wardrobe, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Jv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Jy" = ( +/obj/machinery/power/apc{ + areastring = "/area/chapel/main"; + dir = 1; + name = "Chapel APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"Jz" = ( +/obj/structure/curtain, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"JA" = ( +/obj/structure/chair/sofa/corp{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"JB" = ( +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"JC" = ( +/obj/machinery/door/airlock/command{ + name = "Gateway Atrium"; + req_access_txt = "62" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/gateway) +"JD" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"JE" = ( +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"JF" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"JG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"JH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"JI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium Access" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"JJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"JK" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"JL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"JM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"JN" = ( +/obj/machinery/button/door{ + id = "Cabin5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 5; + pixel_y = 30; + specialfunctions = 4 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"JP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/central) +"JR" = ( +/obj/machinery/camera{ + c_tag = "Bar Storage"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"JS" = ( +/obj/item/storage/secure/safe{ + pixel_x = 6; + pixel_y = -30 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"JU" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/carpet/blue, +/area/security/vacantoffice) +"JV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics/garden/monastery) +"JX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/central) +"JZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"Kb" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Kc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Kd" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"Ke" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Kf" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/fitness/recreation"; + dir = 8; + name = "Recreation APC"; + pixel_x = -26 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Kg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Kh" = ( +/obj/effect/landmark/start/janitor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plating, +/area/janitor) +"Ki" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/janitor) +"Kl" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Kn" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ko" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Kp" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance"; + req_access_txt = "35" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hydroponics) +"Kq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Ks" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Kt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Cabin2"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -30; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"Kv" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Kx" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=6"; + dir = 8; + freq = 1400; + location = "Kitchen" + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"KB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Janitor Maintenance"; + req_access_txt = "26" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"KC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"KD" = ( +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"KG" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"KH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"KI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"KJ" = ( +/obj/item/seeds/berry, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"KM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"KN" = ( +/turf/closed/wall/r_wall, +/area/maintenance/central) +"KO" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"KP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"KQ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"KR" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"KS" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/structure/mirror{ + pixel_y = 33 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"KT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"KU" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"KV" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/chair/sofa, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"KW" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Kitchen Botany Shared Airlock"; + req_one_access_txt = "35;28" + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/crew_quarters/kitchen) +"KZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"La" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"Lb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms) +"Lc" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Lf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Lh" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Li" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/maintenance/central) +"Lj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/storage/tools"; + dir = 1; + name = "Auxiliary Tool Storage APC"; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"Lk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ll" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock{ + name = "Cabin 7" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"Ln" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"Lo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Lr" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Mass Driver"; + req_access_txt = "22" + }, +/obj/machinery/mass_driver{ + id = "chapelgun"; + name = "Holy Driver" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main) +"Ls" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Lu" = ( +/obj/item/mop, +/obj/item/watertank/janitor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/janitor) +"Lw" = ( +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/item/reagent_containers/food/snacks/grown/wheat, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/reagent_containers/food/snacks/grown/grapes, +/obj/item/reagent_containers/food/snacks/grown/cocoapod, +/obj/structure/rack, +/obj/item/seeds/wheat, +/obj/item/seeds/watermelon, +/obj/item/seeds/watermelon, +/obj/item/seeds/grape, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"Lx" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"LA" = ( +/obj/structure/table, +/obj/item/folder, +/obj/item/storage/firstaid/regular, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"LC" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"LD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"LE" = ( +/obj/machinery/biogenerator, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"LF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"LH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L4"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"LI" = ( +/obj/structure/cable, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/kitchen"; + name = "Kitchen APC"; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"LJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"LK" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"LL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/janitor) +"LM" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/pool/filter{ + pixel_y = -20 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"LN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"LO" = ( +/obj/structure/janitorialcart, +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/plating, +/area/janitor) +"LP" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"LR" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"LS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"LT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"LU" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"LV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Observatory" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"LW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"LX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"LY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"LZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/chair/sofa/left, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Ma" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/button/crematorium{ + id = "crematoriumChapel"; + pixel_x = -26; + pixel_y = -58; + req_access_txt = "27" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"Mc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Md" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Me" = ( +/obj/item/storage/box/mousetraps, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/janitor) +"Mf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"Mg" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Mi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Mj" = ( +/turf/open/space/basic, +/area/space/nearstation) +"Ml" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Mo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Mr" = ( +/obj/structure/table, +/obj/item/paper/pamphlet/gateway, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"Mt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"Mu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Mv" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"Mz" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"MA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MB" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"MC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"MF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock{ + id_tag = "Cabin5"; + name = "Cabin 5" + }, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"MH" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"MI" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"MJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/obj/machinery/camera/autoname, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"ML" = ( +/obj/structure/table, +/obj/item/paper/fluff/holodeck/disclaimer, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"MN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L2"; + layer = 2.04 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"MQ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"MR" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"MT" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main) +"MU" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"MW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MX" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"MZ" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"Na" = ( +/obj/structure/musician/piano, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"Nc" = ( +/obj/structure/table/wood, +/obj/item/lipstick/random, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/sign/poster/contraband/clown{ + pixel_x = 32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"Nd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/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/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms2"; + location = "dorms1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ng" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Nj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Nk" = ( +/obj/structure/table, +/obj/item/clothing/head/hardhat/cakehat, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Nl" = ( +/obj/structure/chair, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Nm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Nn" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"No" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Np" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Nq" = ( +/obj/item/reagent_containers/food/drinks/shaker, +/obj/structure/table/wood, +/obj/item/stack/spacecash/c10, +/obj/item/stack/spacecash/c100, +/obj/item/gun/ballistic/revolver/doublebarrel, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Nr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Nt" = ( +/obj/effect/turf_decal/trimline/green/filled/end{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"Nv" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/rnd/production/techfab/department/service, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Nw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Nx" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"NA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"NB" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"NC" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ND" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"NE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"NF" = ( +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"NI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"NK" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"NM" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/central) +"NN" = ( +/obj/structure/table, +/obj/item/razor{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"NO" = ( +/obj/machinery/door/airlock{ + name = "Central Emergency Storage" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"NR" = ( +/obj/structure/chair/stool, +/obj/machinery/camera{ + c_tag = "Chapel Starboard"; + dir = 1; + name = "chapel camera" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"NT" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"NX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"NY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/mob/living/simple_animal/bot/secbot/beepsky{ + health = 45; + maxHealth = 45 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Oa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/central) +"Ob" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Od" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Oe" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms12"; + location = "dorms11" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"Of" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"Og" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Oh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Oj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Ok" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/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/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ol" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Om" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"On" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"Op" = ( +/obj/machinery/vending/hydronutrients, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Or" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Os" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/locker) +"Ot" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Ou" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Ov" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Dorms Utilities"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Ow" = ( +/obj/item/cultivator, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/grass, +/area/hydroponics/garden) +"Ox" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Oy" = ( +/obj/structure/table/plasmaglass, +/obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Oz" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"OA" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"OB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Creamatorium"; + name = "chapel camera" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"OC" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"OD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"OE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"OG" = ( +/obj/effect/turf_decal/vg_decals/department/cargo, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"OH" = ( +/obj/machinery/door/window/westright{ + name = "Hydrophonic's Delivery"; + req_access_txt = "35" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"OJ" = ( +/obj/structure/table, +/obj/item/surgicaldrill{ + pixel_y = 5 + }, +/obj/item/cautery{ + pixel_x = 5 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"OK" = ( +/obj/machinery/plantgenes, +/obj/structure/table, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics Port"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"OM" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel, +/area/hydroponics) +"OO" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"OP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"OR" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"OT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"OU" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"OV" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/dorms) +"OW" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics/garden) +"OX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"OZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Pa" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"Pb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium Access" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Pc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Pe" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"Pf" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/chaplain, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Chapel Service Room"; + dir = 4; + name = "chapel camera" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Pg" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Ph" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"Pm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"Pn" = ( +/obj/machinery/door/window/southleft{ + name = "Kitchen Delivery"; + req_access_txt = "28" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"Po" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"Pp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Pq" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Pr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"Ps" = ( +/obj/machinery/door/airlock/grunge{ + name = "Vacant Office"; + req_access_txt = "32" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/vacantoffice) +"Pu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Pv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"Pz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"PA" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"PB" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard) +"PC" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/crew_quarters/dorms) +"PD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PE" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"PG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PH" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"PJ" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"PK" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plasteel, +/area/maintenance/central) +"PL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PN" = ( +/obj/machinery/computer/arcade/orion_trail{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"PO" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plating, +/area/maintenance/central) +"PQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PR" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"PS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"PU" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/chapel/main) +"PV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"PW" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"PX" = ( +/obj/item/soap, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/shower{ + dir = 8; + layer = 3.2 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"PY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"PZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Qa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Qb" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Qc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Qd" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"Qe" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"Qf" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/locker"; + dir = 8; + name = "Locker Room APC"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Qg" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Qh" = ( +/obj/structure/flora/tree/palm, +/obj/item/reagent_containers/food/snacks/grown/coconut, +/turf/open/floor/plating/beach/sand, +/area/crew_quarters/fitness/pool) +"Qi" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Ql" = ( +/obj/machinery/light/small/built, +/turf/open/floor/plating, +/area/maintenance/bar) +"Qm" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"Qo" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Qp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Qr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Qs" = ( +/obj/machinery/hydroponics/soil{ + pixel_y = 8 + }, +/obj/item/plant_analyzer, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"Qu" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Qv" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Qw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/hallway/secondary/construction) +"Qx" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"Qy" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/crew_quarters/dorms) +"Qz" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/fore"; + dir = 8; + name = "Starboard Bow Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"QA" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"QC" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"QD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"QE" = ( +/turf/closed/wall/r_wall, +/area/hydroponics/garden/monastery) +"QH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"QI" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"QJ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26; + pixel_y = 28 + }, +/obj/machinery/requests_console{ + department = "Locker Room"; + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"QK" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"QL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"QM" = ( +/obj/structure/table/wood, +/obj/item/instrument/violin, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"QN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard/aft) +"QO" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cafeteria"; + dir = 4; + name = "Cafeteria APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"QP" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"QQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"QS" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"QU" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"QV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"QX" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat" + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat" + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel, +/area/gateway) +"QY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Ra" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Rc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"Rf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Rg" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Kitchen Botany Shared Airlock"; + req_one_access_txt = "35;28" + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"Rh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Ri" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Rj" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Rk" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"Rl" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Rq" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Rr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"Rt" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/obj/machinery/door/poddoor/preopen{ + id = "cafeteria"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"Rw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/gateway) +"Ry" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Rz" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "gateshutter"; + name = "Gateway Shutter Control"; + pixel_x = 28; + pixel_y = 25; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/gateway) +"RB" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/crew_quarters/dorms) +"RC" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"RD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"RE" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"RF" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"RI" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/chapel/main) +"RJ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"RK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"RL" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"RM" = ( +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"RN" = ( +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"RO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Dorms - Port Fore"; + name = "dormitories camera" + }, +/obj/structure/sign/poster/official/no_erp{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"RP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"RQ" = ( +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"RR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/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/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms5"; + location = "dorms4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"RS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/item/storage/bag/tray, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"RT" = ( +/obj/effect/landmark/start/clown, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"RU" = ( +/turf/closed/wall, +/area/gateway) +"RW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"RY" = ( +/obj/structure/table, +/obj/item/book/manual/chef_recipes, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"RZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Sc" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"Sd" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"Sf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Sg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Sh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Sj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"Sl" = ( +/turf/closed/wall, +/area/hydroponics/garden/abandoned) +"Sn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"So" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/department/crew_quarters/dorms) +"Sp" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Ss" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"St" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Su" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Sv" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Sw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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/structure/disposalpipe/sorting/mail{ + dir = 2; + sortType = 21 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Sx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Sz" = ( +/turf/closed/wall, +/area/crew_quarters/dorms) +"SA" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/central) +"SB" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/vending/dinnerware, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"SD" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"SE" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"SF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"SG" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"SH" = ( +/obj/machinery/camera/motion{ + c_tag = "Above Comms" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"SI" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"SK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"SL" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/closet/secure_closet/medical3, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"SN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"SO" = ( +/obj/machinery/chem_dispenser/apothecary, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"SP" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"SQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"SR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/vg_decals/numbers/three, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"SS" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ST" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms13"; + location = "dorms12" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"SU" = ( +/obj/structure/rack, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/machinery/light/built{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"SV" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics/garden) +"SW" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"SX" = ( +/obj/structure/fireplace, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"SZ" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Ta" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Tb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Td" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Te" = ( +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"Tg" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/preopen{ + id = "cafeteria"; + name = "kitchen shutters" + }, +/obj/machinery/door/poddoor/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"Th" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + name = "Crematorium"; + req_access_txt = "22;27" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"Ti" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"Tj" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Tl" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/central) +"Tm" = ( +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Tn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"To" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"Tp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Tr" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hydroponics) +"Tt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Office Maintenance"; + req_one_access_txt = "22" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Tu" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/highcap/ten_k{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"Tv" = ( +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms) +"Tw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers, +/obj/machinery/meter, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Ty" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/hydroponics/garden/abandoned) +"Tz" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"TA" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"TB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"TC" = ( +/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/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"TD" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"TF" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/trash/plate, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"TG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"TH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"TI" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"TJ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"TL" = ( +/obj/structure/closet/crate{ + name = "noodle crate" + }, +/obj/item/toy/poolnoodle/yellow, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"TM" = ( +/turf/closed/wall, +/area/hydroponics) +"TN" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"TO" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"TR" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"TT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"TU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk/multiz/down, +/turf/open/floor/plating, +/area/maintenance/central) +"TV" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"TW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"TY" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"TZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + req_access_txt = "22;27" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"Ub" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "cafeteria"; + name = "kitchen shutters" + }, +/obj/item/kitchen/fork, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"Ud" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"Ue" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Toilet2"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Uf" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass, +/area/hydroponics/garden) +"Ug" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Uh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/vg_decals/numbers/two, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Ui" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Uj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Uk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Ul" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Um" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Gateway Chamber" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"Un" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Uo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Ur" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/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/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Us" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Ut" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"Uu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Uw" = ( +/obj/machinery/smartfridge/food, +/turf/open/floor/plasteel, +/area/hydroponics) +"Ux" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Uz" = ( +/obj/machinery/camera{ + c_tag = "Fore Starboard Solars"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"UB" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/item/reagent_containers/food/snacks/mint, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"UC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"UD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"UE" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"UF" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"UH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/landmark/start/cook, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"UI" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"UJ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"UL" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"UM" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"UP" = ( +/obj/machinery/computer/med_data{ + layer = 3.5 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"UQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"UR" = ( +/obj/structure/table, +/obj/item/paicard, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"UT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"UV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"UW" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Toilet3"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"UX" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"UY" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"UZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/gateway) +"Va" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Vb" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/microwave, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Vc" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"Vg" = ( +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"Vh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"Vi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/dorms) +"Vj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"Vk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Vl" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Vm" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Vo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Vp" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/chapel/main) +"Vq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Vr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "cafeteria"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"Vs" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/reagent_containers/food/drinks/shaker, +/obj/item/reagent_containers/rag{ + pixel_y = 5 + }, +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Vt" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Vu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/zone2) +"Vv" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"Vw" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/obj/machinery/button/door{ + id = "Toilet1"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"Vx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Vy" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"Vz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"VB" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/cafeteria) +"VC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"VD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"VE" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"VF" = ( +/turf/open/floor/plasteel/dark, +/area/tcommsat/chamber) +"VG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"VH" = ( +/mob/living/simple_animal/crab/Coffee, +/obj/machinery/camera/autoname, +/turf/open/floor/plating/beach/sand, +/area/crew_quarters/fitness/pool) +"VI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"VJ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clipboard{ + pixel_x = 1 + }, +/obj/item/folder/yellow{ + pixel_x = 5 + }, +/obj/item/paper_bin{ + pixel_x = -5 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"VK" = ( +/obj/machinery/door/window/westright, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"VL" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"VO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"VQ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"VR" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/chapel/office) +"VS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"VT" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"VU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"VV" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"VW" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"VX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"VZ" = ( +/obj/machinery/button/door{ + id = "Cabin4"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -5; + pixel_y = -30; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"Wa" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"Wb" = ( +/obj/effect/landmark/start/mime, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"Wc" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Wd" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"We" = ( +/turf/open/floor/plating/beach/water, +/area/crew_quarters/fitness/pool) +"Wf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Wg" = ( +/obj/structure/table/wood, +/obj/item/soap/deluxe, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"Wh" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Wi" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"Wj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Wk" = ( +/obj/machinery/door/airlock/glass{ + name = "Cryodorms" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Wl" = ( +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/central) +"Wm" = ( +/obj/structure/bodycontainer/crematorium{ + dir = 1; + id = "crematoriumChapel" + }, +/obj/machinery/light, +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"Wo" = ( +/turf/closed/wall, +/area/hallway/secondary/service) +"Wp" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/microwave, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Wq" = ( +/turf/open/transparent/openspace, +/area/hallway/primary/central) +"Wr" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Ws" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Wt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"Wu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/landmark/event_spawn, +/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/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=dorms8"; + location = "dorms7" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Wv" = ( +/obj/machinery/camera/motion{ + c_tag = "Above Core" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"Ww" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Wx" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Wy" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"WA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"WB" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"WE" = ( +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"WF" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"WG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"WH" = ( +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, +/turf/open/floor/grass, +/area/hydroponics/garden) +"WI" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/vending/cola/random, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"WJ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"WM" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"WN" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Kitchen Starboard" + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"WO" = ( +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/obj/structure/table, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"WR" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Dormitories Hallway Port Fore"; + dir = 4; + name = "dormitories camera" + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"WS" = ( +/obj/item/seeds/watermelon, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/seeds/cannabis, +/obj/machinery/hydroponics/soil{ + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"WT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"WU" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/maintenance/central) +"WW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "commissarydoor"; + name = "Commissary Door Lock"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = 6; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"WX" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"WY" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/costume, +/obj/effect/spawner/lootdrop/costume, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"WZ" = ( +/obj/structure/cable, +/obj/machinery/power/solar_control{ + dir = 4; + id = "aftstarboard"; + name = "Starboard Quarter Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard) +"Xc" = ( +/turf/open/floor/plating/airless, +/area/asteroid/nearstation) +"Xd" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Xf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Xg" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Xh" = ( +/turf/open/space/basic, +/area/space) +"Xj" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Xl" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Xm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Xr" = ( +/obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"Xs" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Xt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/closet/wardrobe/mixed, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Xu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Xv" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Xw" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Xx" = ( +/turf/open/transparent/glass/reinforced, +/area/asteroid/nearstation) +"Xy" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"XA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"XB" = ( +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"XC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"XD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"XE" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/beach/water, +/area/crew_quarters/fitness/pool) +"XF" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/black, +/area/crew_quarters/dorms) +"XH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"XJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/end{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"XL" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"XM" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"XN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"XO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"XQ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"XR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Office Maintenance"; + req_one_access_txt = "22" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"XS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"XU" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"XV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/carpet, +/area/chapel/main) +"XW" = ( +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hydroponics) +"XX" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"XY" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/central) +"XZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ya" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/multitool, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"Yb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tools) +"Yc" = ( +/obj/machinery/button/door{ + id = "commissaryshutter"; + name = "Commissary Shutter Control"; + pixel_x = 3; + pixel_y = -25 + }, +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"Yd" = ( +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"Ye" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Yf" = ( +/obj/item/cultivator, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/hydroponics/soil{ + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden/abandoned) +"Yg" = ( +/obj/machinery/hydroponics/soil, +/obj/machinery/camera{ + c_tag = "Garden"; + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics/garden) +"Yh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"Yi" = ( +/turf/open/floor/grass, +/area/hydroponics/garden) +"Yj" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Yk" = ( +/obj/item/storage/box/donkpockets, +/obj/structure/closet, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"Ym" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/crew_quarters/dorms) +"Yn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Yo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Yp" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Yq" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Yr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"Ys" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Yt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Yu" = ( +/obj/structure/floodlight_frame, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"Yv" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"Yw" = ( +/obj/machinery/vending/hydroseeds, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"Yy" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"Yz" = ( +/obj/machinery/light, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"YA" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"YB" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/central) +"YC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"YD" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/cafeteria) +"YE" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"YF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"YG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/solar/starboard) +"YH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/gateway) +"YI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"YK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/carpet, +/area/chapel/main) +"YL" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"YM" = ( +/turf/closed/wall, +/area/chapel/main) +"YN" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"YO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"YP" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"YQ" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"YR" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"YS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"YT" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/construction"; + name = "Auxiliary Construction Zone APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/construction) +"YU" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/structure/sign/departments/restroom{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"YV" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"YW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"YX" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"YY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/button/door{ + id = "cafeteria"; + name = "Cafeteria Shutters Control"; + pixel_x = -26; + pixel_y = 5; + req_access_txt = "28" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"YZ" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Za" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Zc" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"Ze" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"Zf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"Zg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Zh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Zj" = ( +/obj/machinery/computer/security/telescreen/entertainment, +/turf/closed/wall, +/area/crew_quarters/bar) +"Zk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Zl" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"Zm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Zn" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"Zo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Kitchen Port"; + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"Zp" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/food/condiment/rice, +/turf/open/floor/plating, +/area/maintenance/central) +"Zr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Zs" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"Zt" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"Zu" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/table, +/obj/item/storage/box/cups, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"Zx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) +"Zy" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"ZB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"ZC" = ( +/obj/machinery/button/door{ + id = "kitchen"; + name = "Kitchen Shutters Control"; + pixel_x = 4; + pixel_y = -26; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ZF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"ZG" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plating, +/area/maintenance/central) +"ZI" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"ZJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ZK" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ZL" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ZM" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating, +/area/maintenance/central) +"ZN" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ZO" = ( +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"ZQ" = ( +/obj/item/seeds/watermelon, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hydroponics/garden/abandoned) +"ZS" = ( +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"ZT" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ZU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ZV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) +"ZX" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/central) +"ZZ" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/dorms) + +(1,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(2,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(3,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(4,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(5,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(6,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(7,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(8,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(9,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(10,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(11,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(12,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(13,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(14,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(15,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(16,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +MZ +MZ +MZ +MZ +MZ +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(17,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +eL +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +MZ +Xh +Xh +Xh +MZ +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(18,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +oU +Xh +au +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(19,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Mj +Xh +gX +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(20,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +au +au +au +au +au +MZ +au +au +gX +au +au +au +au +Cg +Cg +au +Cg +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(21,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Jq +Xh +Xh +au +Xh +Xh +Xh +UX +Xh +gX +Xh +au +Xh +au +Xh +cq +cq +cq +au +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(22,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +Xh +Wt +Wt +Wt +Wt +Wt +Wt +au +gX +Xh +Wt +Wt +Wt +Wt +Wt +Wt +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(23,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +aJ +EL +EL +EL +EL +EL +BG +YG +BG +qu +qu +qu +qu +qu +GD +au +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(24,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +au +bG +bG +bG +bG +bG +bG +au +mw +au +bG +bG +bG +bG +bG +bG +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(25,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Jq +Xh +Xh +au +Xh +au +Xh +Xh +Xh +vh +Xh +au +Xh +Xh +Xh +au +Xh +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(26,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Jq +Xh +Ex +Ex +Ex +Ex +Ex +Ex +au +vh +Xh +Wt +Wt +Wt +Wt +Wt +Wt +Xh +Jq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(27,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +Dn +QN +QN +QN +QN +EL +rj +vh +jq +qu +qu +qu +qu +qu +GD +au +au +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(28,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +au +mb +mb +mb +mb +mb +mb +au +vh +au +bG +bG +bG +bG +bG +bG +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(29,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +Xh +au +Xh +au +Xh +Xh +Xh +vh +Xh +Xh +au +au +Xh +au +au +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(30,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +hi +hi +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +eL +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Jq +Xh +Wt +Wt +Wt +Wt +Wt +Wt +au +vh +Xh +Wt +Wt +Wt +Wt +Wt +Wt +Xh +Jq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(31,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +aJ +EL +EL +EL +EL +EL +rj +vh +jq +qu +qu +qu +qu +qu +GD +au +au +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(32,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +au +bG +bG +bG +bG +bG +bG +au +vh +au +bG +bG +bG +bG +bG +bG +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(33,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +Xh +Xh +au +Xh +au +Xh +Xh +Xh +gX +Xh +au +Xh +au +Xh +Xh +Xh +au +VE +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(34,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +FN +qo +qo +hi +qo +qo +FN +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +Cg +Cg +Cg +Xh +Cg +Xh +au +Xh +gX +Xh +Xh +Xh +au +UX +au +Cg +Cg +Jq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(35,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +Xh +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +Xh +Cg +au +uu +au +Jq +cq +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(36,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +au +Jq +Xh +uu +Xh +Cg +au +au +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(37,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +FN +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Cg +au +KT +au +au +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(38,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +qo +qo +qo +qo +qo +qo +qo +FN +qo +hi +qo +FN +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Ut +Nx +Ut +UX +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(39,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Ut +Gm +Ut +UX +cq +Xh +Xh +Xh +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(40,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +hi +hi +hi +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Ut +pM +Ut +UX +Xh +Xh +Xh +Xh +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(41,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +hi +hi +hi +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +hi +qo +qo +FN +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +PB +PB +eY +Ut +yj +PB +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(42,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +PB +lr +yE +WZ +Hn +PB +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(43,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +hi +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +PB +dv +MP +zY +iN +PB +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(44,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +hi +hi +hi +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +GI +oW +wK +no +bL +PB +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(45,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +hi +hi +hi +hi +hi +hi +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +GI +Ut +ow +Ut +PB +PB +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(46,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +cq +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +hi +hi +qo +hi +hi +hi +hi +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +qo +FN +FN +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +eL +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Yv +Yv +Yv +Yv +aq +dh +aq +Yv +Yv +Yv +Yv +Yv +Yv +Yv +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(47,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +hi +hi +hi +hi +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +FN +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +aq +dh +aq +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(48,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +hi +hi +hi +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +FN +FN +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +UX +Xh +Yv +Yv +Yv +aq +jW +aq +Yv +Yv +Yv +Xh +Xh +UX +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +UX +Mv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(49,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +cq +cq +cq +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +hi +hi +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +FN +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(50,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +cq +cq +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +hi +hi +hi +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +hi +qo +qo +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(51,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(52,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +hi +qo +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(53,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +hi +hi +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(54,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +hi +qo +qo +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +qo +qo +qo +hi +qo +FN +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +Mv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(55,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +hi +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(56,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(57,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +UX +UX +UX +UX +Yv +Yv +dh +Yv +Yv +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(58,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +Mv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(59,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Xh +Yv +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +rD +Yv +Yv +Yv +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(60,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +hi +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Xh +Xh +lQ +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(61,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +hi +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +UX +UX +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(62,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +hi +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(63,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +lQ +lz +Ao +Ao +Ao +Ao +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +af +Xh +fA +Xh +Mv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(64,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +lQ +lQ +lz +BS +VF +VF +Ao +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(65,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +sj +sj +sj +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +lz +lz +lz +Tu +dg +VF +VF +Ao +sj +sj +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(66,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +eL +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +bX +sj +lQ +sj +Wv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +aQ +tS +kF +Gq +LC +qT +yp +Ao +lQ +sj +SH +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(67,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +sj +sj +sj +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +lz +lz +lz +VF +VF +VF +VF +Ao +sj +sj +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +UX +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(68,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +lQ +lQ +lz +VF +VF +VF +Ao +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(69,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +lQ +lz +Ao +Ao +Ao +Ao +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(70,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Xh +Xh +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(71,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +FN +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +UX +UX +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(72,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +FN +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Yv +Yv +Yv +dh +Yv +Yv +Xh +Xh +lQ +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(73,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +Yv +Yv +Yv +Yv +Yv +lQ +lQ +lQ +Xh +Yv +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +Xh +Yv +Yv +Yv +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(74,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Yv +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +lQ +Xh +Xh +Yv +Yv +Yv +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(75,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Xh +Xh +Xh +lQ +lQ +lQ +lQ +lQ +lQ +lQ +UX +UX +UX +UX +Yv +Yv +dh +Yv +Yv +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +Xh +Xh +Yv +Yv +Yv +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(76,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(77,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +Yv +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Yv +Yv +Yv +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(78,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Yv +Yv +Yv +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(79,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +hi +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +dh +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +Mv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(80,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +op +qo +qo +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(81,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +qo +qo +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(82,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +qo +qo +qo +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +rD +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(83,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +ht +qo +FN +qo +qo +qo +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Xh +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(84,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +eL +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +ht +ht +ht +ht +ht +ht +ht +ht +qo +qo +qo +qo +qo +qo +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Xh +UX +Xh +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Xh +Xh +UX +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(85,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +ht +ht +ht +ht +ht +ht +ht +qo +qo +FN +qo +qo +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +eL +cq +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(86,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +ht +ht +ht +ht +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +dh +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Yv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(87,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Yv +dh +Yv +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(88,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(89,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +Mv +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(90,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +FS +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(91,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(92,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(93,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(94,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(95,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +UX +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(96,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(97,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +fA +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(98,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(99,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(100,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(101,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(102,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(103,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +UX +UX +UX +UX +UX +UX +UX +UX +BN +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +wV +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(104,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(105,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +cq +Xh +cq +cq +cq +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(106,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(107,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +UX +UX +UX +UX +UX +UX +UX +FS +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(108,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +Xh +Xh +Xh +UX +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(109,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +Xh +UX +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(110,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +UX +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(111,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(112,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +cq +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +FN +qo +FN +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +rh +rh +rh +rh +rh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(113,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +rh +rh +Fo +Fo +Fo +rh +rh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(114,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +BN +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +lS +wV +UX +UX +UX +UX +UX +UX +UX +rh +xP +vL +kw +SZ +Fo +rh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(115,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +rh +cC +Fo +Fo +Fo +Ht +rh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(116,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +rh +Fl +Fo +Fo +Fo +xl +rh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(117,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +rh +rh +lO +Fo +Fo +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(118,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +gx +gx +gx +gx +gx +gx +gx +gx +gx +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +pW +LV +pW +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(119,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +gx +gx +gx +gx +gx +gx +gx +gx +gx +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +pW +Fo +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(120,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +gx +gx +gx +gx +gx +gx +gx +gx +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +FN +pW +Fo +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(121,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +gx +gx +gx +gx +gx +gx +gx +gx +gx +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +pW +pW +Fo +pW +qo +FN +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(122,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +gx +gx +gx +gx +gx +gx +gx +gx +gx +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +Xh +Xh +Xh +Xh +FS +Xh +Xh +Xh +Xh +UX +dw +dw +dw +pW +aa +Fo +pW +qo +FN +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(123,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +UX +UX +UX +UX +BN +lS +lS +lS +lS +lS +jr +Pc +Uu +Yj +uS +PC +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(124,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +gx +gx +gx +gx +gx +gx +gx +FN +gx +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +UX +dw +dw +dw +Eb +JM +xl +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(125,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +WM +WM +WM +WM +WM +WM +WM +WM +WM +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +qo +FN +qo +pW +JM +El +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(126,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +WM +wp +qZ +pv +Fg +We +XE +We +WM +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +qo +qo +qo +qo +pW +Md +uS +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(127,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +WM +VH +Qh +pv +Fg +We +We +We +WM +qo +qo +qo +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +Xh +Xh +UX +Xh +Xh +Xh +qo +qo +qo +FN +qo +pW +uK +JM +pW +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(128,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +WM +wp +wp +pv +Fg +We +We +We +WM +qo +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +Xh +UX +Xh +Xh +qo +qo +qo +FN +qo +qo +pW +pW +JM +xl +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(129,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +fl +fl +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +Xx +Xx +qo +qo +WM +WM +WM +WM +Wk +Rr +Rr +Rr +Rr +WM +WM +sC +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +Xh +Xc +qo +qo +qo +FN +FN +FN +qo +qo +qo +pW +JM +Fo +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(130,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +cq +cq +cq +cq +qo +FN +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +Gy +BU +gk +aM +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +WM +iU +ET +iU +iU +iU +iU +iU +iU +fB +iU +sC +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +gx +qo +qo +qo +qo +qo +qo +qo +qo +qo +pW +sh +Fo +pW +qo +FN +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(131,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +fl +fl +fl +fl +fl +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +Zp +qS +ZG +Bs +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Rr +iU +iU +iU +iU +xU +xU +xU +iU +iU +Eg +sC +Os +Os +Os +Os +Vj +Vj +Os +Os +pW +pW +pW +pW +pW +pW +pW +pW +pW +pW +pW +qo +qo +qo +qo +FN +pW +JM +xl +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(132,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +Bs +Bs +Bs +Bs +Bs +qP +fl +qo +qo +qo +qo +qo +fl +fl +fl +qo +qo +fl +wT +ln +SA +Bs +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Rr +EK +iU +hU +uO +Ck +uO +uO +uO +uO +HY +sC +Ot +uj +QJ +Qf +tL +ff +Jo +sN +Fo +Fo +xl +pW +WY +hl +YZ +xD +EU +Pg +pW +qo +qo +qo +qo +qo +qo +JM +Fo +pW +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(133,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +an +an +an +an +qo +fl +ek +Bs +fl +Bs +pQ +Bs +fl +fl +fl +fl +fl +fl +fl +cx +fl +qo +qo +fl +TI +PO +PO +PO +Bs +KN +Xx +Xx +Xx +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Rr +iU +iU +LM +WF +WF +wi +WF +WF +WF +lg +WM +JE +uj +uj +uj +MR +fQ +Fc +xX +lR +Fo +El +pW +hl +Fo +Qy +dc +fb +iX +pW +qo +FN +FN +qo +qo +pW +JM +El +pW +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(134,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +an +aR +cI +an +an +fl +fl +fl +fl +fl +fl +Bs +fl +fl +Bs +Bs +Bs +ZX +Bs +PW +fl +fl +fl +fl +fl +fl +fl +fl +rl +KN +KN +KN +KN +QE +Iz +Iz +OR +Iz +Iz +NT +Iz +OR +Iz +Iz +Iz +Iz +OR +Iz +Iz +Iz +Iz +OR +Iz +Iz +NT +Iz +OR +Iz +Iz +Iz +OR +Iz +Iz +Iz +JV +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Rr +iU +Ic +iE +WF +WF +WF +WF +nO +tW +lg +WM +LA +uj +Vm +Vm +bg +lC +Tm +sN +EN +Fo +Fo +pW +So +QI +Fo +Fo +PC +dH +pW +qo +FN +FN +qo +qo +pW +JM +xl +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(135,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +an +bo +dl +do +dF +gd +hM +hM +mt +nM +an +Bs +fl +Bs +Bs +ZX +PW +Bs +Bs +Bs +PW +Bs +kA +rl +BW +Bs +Bs +Bs +Pu +Bs +Bs +Bs +PW +cn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +uM +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Rr +TL +eJ +Ux +WF +WF +WF +WF +WF +WF +bW +WM +ts +Rj +iJ +UR +vM +YE +kR +sN +Uk +Fo +Fo +pW +qD +Fo +rU +El +Jv +co +pW +qo +qo +qo +qo +qo +pW +JM +Fo +pW +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(136,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +cq +Xh +Xh +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +an +cb +dm +an +dJ +gm +gm +gm +hw +iY +an +Bs +fl +Bs +Bs +fl +fl +fl +fl +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +Bs +cn +PE +uM +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +uM +Yz +JV +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Rr +iU +eJ +Ux +Is +nO +WF +WF +WF +tW +Jf +WM +YO +Vm +hk +NN +hG +lC +qx +sN +Uk +El +Fo +pW +pW +pW +js +pW +pW +pW +pW +pW +qo +qo +qo +qo +pW +JM +Fo +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(137,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +an +an +an +an +dM +gI +hV +lB +mF +jn +an +Bs +ZX +Bs +PW +fl +qo +fl +tP +pK +qJ +SO +pK +zp +zi +Kb +Vu +oN +ZL +qs +sx +pK +Bs +cn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +JV +Xx +Xx +Xx +Xx +BB +BB +BB +sC +sC +AE +eJ +Ux +WF +WF +WF +uf +WF +WF +ng +WM +zJ +Vm +yK +Rq +vM +lC +Xt +sN +Ym +Fo +Fo +pW +on +Fo +Kg +Fo +Fo +uP +TR +pW +pW +pW +pW +pW +pW +JM +Fo +pW +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(138,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +cq +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +an +dN +gL +vG +gI +jz +jG +an +qo +fl +Bs +fl +fl +qo +fl +Bs +pK +eq +ci +tr +Ze +cG +Bh +Vu +sW +SD +cG +Bh +pK +Bs +cn +Iz +Iz +Iz +Iz +Iz +Iz +qn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +Xx +Xx +BB +jf +rG +WM +sD +BF +eJ +fr +FL +FL +FL +pj +FL +FL +ZN +WM +JG +uj +Vm +Vm +Or +lC +yd +sN +DV +jp +ZF +lh +jp +ZF +ZF +Ce +jp +jp +jp +jp +jp +jp +jp +jp +CX +VG +Fo +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(139,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +an +dX +dm +jz +jz +hx +oJ +an +qo +fl +Bs +fl +qo +qo +fl +Bs +pK +pK +pK +pK +aD +rA +Fq +HS +dx +mO +cG +lG +pK +Bs +cn +Iz +Iz +Iz +Sd +Iz +Iz +Iz +pq +Iz +Iz +Iz +Iz +pq +Iz +Iz +Iz +Iz +pq +Iz +Iz +Iz +Iz +uM +pq +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +Xx +Xx +BB +KS +Jz +WM +QA +BF +eJ +qM +FA +FA +FA +FA +FA +FA +FA +kH +Bk +vE +vE +BT +ZT +lC +xC +sN +JM +yy +Fo +Fo +Fo +ka +So +El +jh +Fo +El +Fo +ka +pW +fy +xl +ZV +Qy +Fo +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(140,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +an +ef +gL +jB +lH +ni +jM +an +fl +fl +Bs +fl +qo +qo +fl +Bs +pK +Ou +me +Bj +SN +cG +Bh +Vu +Cv +ZU +lj +lZ +pK +Bs +cn +PE +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +uM +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +JV +Xx +Xx +BB +BB +BB +ke +Sz +WM +QA +BF +zI +eH +Ls +jF +ZK +Ls +Ls +pX +Ls +Rh +Ec +Hv +nC +av +rO +lC +yZ +sN +ac +El +Fo +Fo +YM +YM +YM +YM +YM +YM +YM +ot +ot +ot +ot +ot +XR +ot +Fo +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(141,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +an +eD +dF +aH +gL +jz +pA +ks +kO +lv +lX +fl +qo +qo +fl +Bs +pK +td +cG +gA +fd +cG +Bh +Vu +jU +OJ +of +FC +pK +Bs +cn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +uM +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +aE +JV +Xx +Xx +BB +IQ +zj +zj +zj +WM +QA +BF +iU +Zu +dT +Il +yz +sE +YW +yt +YW +pG +Sh +Gt +TT +Gt +mV +hs +yZ +sN +JM +El +Fo +Fo +YM +UY +km +cU +ej +tq +DH +ot +bY +jN +fm +NC +vC +ot +Fo +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(142,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +an +eM +gI +ki +ma +nn +gL +kt +kU +Bs +mk +fl +qo +qo +fl +kA +zl +Ze +cG +IR +Ij +Ij +wv +pK +pK +pK +pK +pK +pK +Bs +cn +Iz +Iz +Iz +Iz +Iz +uM +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +uM +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +fP +FM +yg +si +WM +QA +BF +Xl +wP +Fk +pC +vU +xH +qz +xE +Yp +Zn +XL +px +aG +Mg +MQ +Ug +Ii +sN +JM +El +Fo +Fo +YM +EC +Lo +Pp +xL +FB +NB +ot +nF +qv +ko +jK +zR +ot +Fo +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(143,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +an +eP +gM +kr +mc +jz +Ql +an +fl +fl +mk +fl +qo +fl +fl +Bs +pK +IG +cG +Mc +zP +BR +gc +Ga +Cd +wA +pK +ZX +Bs +Bs +cn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yz +JV +Xx +Xx +BB +SX +zj +lo +pO +WM +WM +WM +WM +WM +Pq +EJ +WM +WM +WM +WM +WM +sN +AQ +Zl +Ug +qU +Zl +Ug +yZ +sN +sV +Pc +Pc +uS +YM +Jy +aN +aK +Dl +aN +Dl +ot +Ho +eQ +jL +NC +ip +ot +Fo +pW +pW +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(144,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +qo +qo +qo +an +an +an +an +an +nx +pL +an +qo +fl +mk +fl +fl +fl +Bs +Bs +pK +KV +cG +Mc +BJ +cG +Sv +cG +cG +CW +pK +Bs +Bs +Bs +cn +PE +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +pq +uM +Iz +Iz +Iz +pq +Iz +Iz +Iz +Iz +Iz +pq +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +kh +zj +lo +IU +Sz +vg +BD +tz +Sz +nV +yq +Sz +JN +sZ +XF +sN +sN +sN +Vj +Za +Vj +Vj +Za +Vj +sN +sN +sN +Fo +JM +YM +qE +RI +bR +RI +RI +Dl +OO +Js +vt +WG +ZJ +hN +ot +Fo +ib +pW +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(145,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +an +an +an +an +qo +fl +mk +PW +ZX +Bs +Bs +ZX +pK +LZ +cG +Mc +aL +Hs +cG +cG +cG +bf +pK +Bs +ZX +xu +cn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +uM +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +JV +Xx +Xx +BB +zj +JZ +DJ +zj +Sz +lN +zj +da +to +uU +lP +MG +ak +im +rZ +sN +RL +RL +RL +RL +RL +RL +RL +RL +RL +RL +sN +Fo +JM +YM +fu +jt +YF +Dl +YR +Bo +ot +cD +KU +HJ +lV +TY +ot +xl +pW +pW +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(146,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +mW +Bs +Bs +Bs +Bs +tP +pK +gb +Jp +LN +UP +Ij +Ij +Ij +Ij +SL +pK +Mu +Bs +ZX +cn +Iz +Iz +DN +Iz +Iz +Iz +Iz +DN +Iz +Iz +Iz +Iz +ga +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +ga +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +BD +lc +Kt +vg +Sz +fP +zj +dA +Sz +xo +Zr +Sz +Dj +aY +AP +sN +RL +RL +RL +RL +RL +RL +RL +RL +RL +RL +sN +Fo +bM +YM +Ds +Qe +YF +Dl +Ig +Qe +ot +ot +ot +Th +ot +ot +ot +Fo +pW +qo +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(147,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +Be +Be +Be +Be +Be +OA +OA +OA +nh +OA +OA +OA +OA +OA +pK +pK +bB +qj +pK +Vu +Vu +Vu +Vu +pK +pK +ra +OA +OA +Vh +Vh +Vh +Vh +Vh +Vh +OA +OA +OA +dV +Iz +Iz +Iz +Bf +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Bf +Iz +Iz +Iz +Iz +Iz +Iz +JV +wq +wq +BB +Sz +Sz +nt +Sz +Sz +Sz +Sz +Sz +Sz +RO +UJ +Sz +Sz +Sz +Sz +sN +RL +RL +RL +RL +RL +RL +RL +RL +RL +RL +sN +Fo +JM +YM +gy +jt +YF +Dl +YR +jt +BQ +bJ +ot +KP +iF +rP +ot +Fo +pW +Eb +dw +dw +dw +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(148,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +Be +TN +Ya +vq +Be +wU +el +el +nq +el +aB +el +Td +UD +JH +Iy +CN +rz +RW +JH +el +el +el +eV +aB +el +Td +UD +fL +el +el +el +el +vf +vf +PH +mK +wf +ui +mj +mj +uJ +mj +lt +ui +mj +CY +mj +mj +ui +mj +mj +gv +mj +mj +mj +ui +mj +iy +eB +pp +vD +BA +vm +hu +Uh +al +vm +Su +vm +gP +ia +cR +yq +Sz +Gr +DI +vg +sN +RL +RL +RL +RL +RL +RL +RL +RL +RL +RL +sN +Fo +JM +YM +xq +Qe +YF +Dl +Ig +fF +ot +VR +ot +OB +Ma +Wm +ot +Fo +Ch +ih +jR +Ch +xK +LU +LU +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(149,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +Be +Lj +se +On +Yb +He +hR +Sg +nw +oG +nA +oS +oG +oG +oG +oG +qA +MX +oG +oG +oG +oG +Ad +rI +qq +nK +nK +nK +Ys +nK +nK +nK +nK +nr +Nd +kv +Pb +Zx +LS +LS +zw +LS +eE +gT +eE +eE +Ud +Yh +iV +eE +eE +eE +gT +eE +eE +eE +iV +eE +eE +JI +pI +Om +JJ +Om +Om +oj +wo +wo +aj +wo +hq +Hh +tm +kb +aX +NA +Cb +lN +sN +RL +RL +RL +RL +RL +RL +RL +RL +RL +RL +sN +xl +JM +YM +CP +Dl +YF +PU +Dl +Dl +ot +AT +ua +KP +zs +oA +ot +Fo +pW +pW +dw +dw +dw +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(150,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +FN +FN +qo +qo +qo +Be +pz +sv +Po +lp +Xm +ix +eG +Yo +Ag +PM +oX +Yo +Yo +Yo +Yo +Ag +Yo +Yo +Yo +Yo +bz +Lk +EE +uZ +Yo +Yo +Yo +Yo +Yo +sb +Yo +Ag +Mo +rq +Fs +dC +zB +zB +zB +hL +zB +zB +zB +zB +zB +kN +oe +hL +zB +zB +zB +zB +zB +zB +zB +hL +zB +Oe +fY +EA +OC +QS +HA +fk +SR +xk +HA +ya +HA +YN +JF +ST +Ge +Sz +BD +Az +zj +sN +sN +sN +sN +Ef +Vj +Vj +Ef +sN +sN +sN +sN +pW +JM +YM +CP +Dl +YF +Dl +Dl +bS +YM +YM +YM +TZ +YM +YM +YM +Fo +pW +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(151,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +Xh +qo +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +qo +qo +Be +nU +zd +zg +Yb +kz +NY +pg +HP +HP +HP +gU +gU +gU +gU +gU +HP +gU +gU +gU +gU +HP +Av +EW +CA +CA +oQ +oQ +oQ +oQ +CA +CA +CA +PD +Ej +aA +OA +qn +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yd +pq +fK +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +wq +wq +BB +Sz +Sz +te +Sz +Sz +Sz +Sz +Sz +Sz +ZI +KM +Sz +Sz +Sz +Sz +Sz +LP +ye +Vj +Ug +Ap +ML +Ug +Vj +Ww +Iv +cT +Wd +JM +YM +Qd +Yr +OD +YK +nf +NR +YM +DW +Ee +Bc +Pf +BC +YM +pb +YM +YM +aT +aT +aT +aT +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(152,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +Be +zx +uB +Nn +Be +ob +mN +Gc +HP +xI +tv +SG +SG +Va +SG +SG +nB +Zc +xr +xr +Zc +Zc +YL +aV +dz +yJ +PN +Ss +ie +wZ +Yy +jy +CA +PD +FO +vP +Tl +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yd +Yd +fK +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +BD +JB +Ab +vg +Sz +vg +BD +VZ +Sz +Zg +vw +Sz +CQ +iO +TV +Sz +eW +ag +rS +ED +xb +vc +Ug +pl +VI +iL +EH +Wd +Vk +Tt +eb +Jc +RP +XV +XC +Ph +hD +xp +nv +Du +Fh +CF +YQ +CF +Ke +wj +CF +wk +Nl +FZ +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(153,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +Be +Be +Be +Be +Be +Zh +Fd +hQ +gU +Va +MU +eo +Va +MU +Va +SG +Ja +xr +sL +rQ +xr +Zc +YL +aV +yb +yb +yb +Fp +SF +wZ +YD +wZ +oQ +He +FO +vP +Tl +Iz +Iz +uM +Iz +pq +Iz +Iz +Iz +Yd +Yd +fK +Iz +Iz +Iz +Iz +pq +Iz +Sd +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +zj +FM +Lb +Tv +Sz +lN +zj +da +gt +zu +tQ +Ll +jv +xs +ql +Sz +ei +Zg +Vj +Vj +sN +sN +Vj +Vj +fk +iL +FR +Wd +JM +YM +YR +jt +jb +Dl +YR +jt +YM +oh +CF +CF +CF +CF +YM +vO +YM +YM +Qv +zy +zy +FZ +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(154,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +OA +TW +Fd +PS +rF +SG +SG +SG +yR +SG +Qb +Xu +Jm +sM +ck +sM +sM +sM +Eq +Fu +yX +tt +wZ +Oj +SI +LD +LD +LD +qH +RQ +lK +Wj +Tl +PE +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Yd +OX +jJ +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +SX +zj +DP +cY +Sz +fP +zj +dA +Sz +Zg +je +Sz +EM +PR +aI +Sz +nl +Zg +tJ +vx +IL +kk +vy +Xw +XX +Yn +cX +Wd +IS +YM +tn +rs +jb +Dl +Kd +qF +YM +MT +dW +CF +mn +oK +YM +Fo +Zt +YM +gQ +zv +CF +FZ +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(155,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +OA +OA +qo +OA +OA +qo +qo +OA +oR +Fd +PS +nc +SG +SG +SG +KQ +WJ +nj +Hq +Kq +zc +be +zc +zc +Tb +Us +ly +VS +ed +PV +QY +IN +VS +VS +VS +Bi +az +tC +vP +Tl +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yd +Yd +Yd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yz +JV +Xx +Xx +BB +kh +JZ +oC +ER +Sz +Sz +Sz +Sz +Sz +oc +DD +Sz +Sz +Sz +Sz +Sz +XX +Zg +tJ +AB +AB +AB +AB +Xw +XX +iL +xc +Wd +by +YM +FZ +FZ +Vp +mm +FZ +FZ +YM +zm +Bm +FQ +uQ +zm +YM +Fo +Fo +YM +wd +Lr +iW +lF +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(156,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +cl +pc +Fm +tc +OA +OA +OA +OA +PD +ld +lw +Qo +Xu +Xu +Xu +eK +Vz +Vq +ge +JK +Na +eI +VK +Jd +xy +YL +Rf +wZ +xT +yX +yX +so +yX +yX +yX +xY +Ea +FO +vP +Tl +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yd +pq +Yd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +BB +fP +zj +zj +Sz +Sz +qo +qo +Wd +BP +fw +Wf +Id +Ib +ym +Kf +GL +UQ +jj +pH +vv +EP +vv +vv +LF +UQ +Jl +tb +WR +cd +at +vm +qg +FY +VI +jT +cP +rK +YM +YM +YM +YM +YM +YM +ZZ +uE +YM +YM +aT +aT +aT +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(157,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +Je +cl +Je +cl +bE +mP +MA +DM +PD +lk +eG +gU +SG +SG +SG +SG +Wx +Rl +mZ +oZ +qf +QD +VO +Gw +RN +AA +Rf +yb +yb +yb +wZ +HT +wZ +wZ +wZ +oQ +mq +FO +vP +Tl +Iz +Iz +Iz +Iz +pq +Iz +Iz +Bf +Yd +aZ +Yd +Iz +Iz +Iz +Iz +oF +Iz +Iz +Iz +Iz +uM +Iz +JV +Xx +Xx +BB +IQ +zj +zj +Sz +qo +qo +qo +Wd +XX +bk +ji +qi +QH +wS +wS +cN +Lf +qi +ND +qi +Am +qi +qi +qi +qi +qi +qi +qi +Ng +TC +VI +za +FY +VI +xc +uk +uk +mE +us +GH +SV +Yi +WH +gZ +OW +Uf +Yi +zV +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(158,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +cl +Je +Yu +MN +Je +bE +el +bO +PH +AY +as +zL +HP +sf +SG +SG +SG +Wx +Rl +zD +Ln +RT +ey +Wb +Gw +RN +YL +Rf +KO +KO +KO +wZ +HT +wZ +wZ +jy +CA +yl +FO +vP +Tl +Iz +Iz +Iz +Iz +Iz +Iz +Yz +Bf +nH +aZ +Yd +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +aE +JV +Xx +Xx +BB +BB +ke +Sz +Sz +qo +qo +qo +Wd +uY +tg +VC +vT +No +VI +VI +bI +we +VI +Dk +VI +VI +VI +VI +uC +VI +VI +VI +VI +Hd +Gk +qi +Am +De +qm +SS +vm +vm +mE +us +hh +ik +ru +ik +lD +nR +nR +HV +zV +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(159,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +FN +qo +cl +cl +tB +Kc +cl +bC +Ea +Ea +aP +Ea +lk +pg +HP +SG +SG +SG +SG +Wx +Rl +HP +tH +Nc +QM +Wg +KG +RN +YL +Rf +oQ +yo +yo +Rk +HT +Rk +yo +yo +oQ +PD +FO +vP +Tl +Iz +Iz +Iz +Iz +Iz +uM +Iz +Bf +Yd +aZ +Yd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +Xx +BB +KS +Jz +Sz +qo +qo +qo +Wd +XX +ch +Zs +st +st +st +st +CR +ep +Bw +Bx +Ba +YU +xZ +Ip +st +rR +Ac +st +oB +Nm +nL +HA +fk +KC +Cf +rf +rf +IH +HF +FG +HX +FU +FU +FU +HV +nR +nR +wO +zV +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(160,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +cl +Pv +qC +aW +cV +dk +oG +oG +nA +oG +lm +hY +Zj +rr +Ak +Ak +Ak +Wx +JD +HP +HP +HP +Zj +HP +HP +HP +VQ +cB +oQ +MH +Qm +Rk +HT +Rk +Qm +GA +oQ +VX +MF +vP +Tl +PE +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Yd +pq +Yd +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +JV +Xx +Xx +Xx +BB +yv +PX +Sz +qo +qo +qo +gF +GX +QL +GV +IZ +cP +gs +gs +gs +gs +gs +Iq +dG +gs +gs +gs +gs +gs +gs +gs +XX +Dk +qK +Ml +VV +HA +HA +HA +HA +ya +mE +pw +ve +FU +FU +FU +Yi +nR +nR +Yi +zV +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(161,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +qo +cl +Je +Je +sB +Je +bE +eX +TD +EO +mq +lk +pg +HP +wJ +AS +yG +pB +pE +bH +HP +zq +Nq +la +WI +Ay +HP +YL +Rf +oQ +VB +VB +Rk +pi +Rk +VB +VB +oQ +PD +FO +vP +Tl +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Yz +JV +Xx +Xx +Xx +BB +BB +BB +BB +zG +BB +Sz +Sz +kY +cr +kY +Sz +Sz +gs +ap +PJ +TG +Ri +Ei +ap +gs +dr +gs +Vw +gs +Ue +gs +rH +rm +YS +Wd +ZZ +Wd +kJ +mS +yB +uk +mE +Cq +XQ +ol +ik +Yg +Ow +yS +Yi +mM +zV +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(162,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +fx +SU +qY +Je +bE +EV +Qc +IC +Kn +lk +pg +HP +SG +SG +SG +SG +Wx +pt +HP +yk +NI +QU +Xd +Kv +HP +AA +Rf +CA +li +yo +Rk +LY +Rk +yo +yo +CA +ml +FO +vP +OA +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Sd +Iz +Iz +JV +Xx +Xx +Xx +qo +qo +qo +zG +uX +BB +yL +lE +lE +XJ +lE +yL +lE +gs +Vl +Vl +Vl +vu +Nr +HZ +gs +vo +gs +Et +gs +pJ +gs +uq +Dk +Xg +Wd +Kg +Wd +Wd +Wd +Wd +Wd +uE +uE +uE +uE +uE +uE +uE +uE +uE +uE +zV +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(163,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +OA +OA +OA +OA +OA +OA +ra +OA +OA +PD +lk +En +HP +aw +hm +jC +Bt +pZ +Yq +jV +jE +Od +Ra +Xr +wW +HP +RZ +Nj +CA +MI +Qx +Rk +LY +Rk +Qx +wY +CA +xS +FO +xa +OA +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +Iz +JV +Xx +pW +pW +pW +pW +qo +zG +uX +Vi +fp +fp +fp +nZ +fp +fp +Mt +gs +gs +gs +gs +gs +cE +gD +gs +ap +At +ap +Gi +MC +XH +bc +fW +RF +Wd +Fo +pW +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(164,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +fl +Pu +PW +OA +PD +lk +pg +HP +Ey +Bp +Vs +dS +Xv +SG +ee +nz +Ol +JR +XB +UL +HP +YL +EQ +CA +MK +VB +Rk +LY +Rk +VB +VB +CA +ob +KI +XA +OA +Iz +Iz +Iz +Iz +DN +Pa +Iz +Iz +Iz +DN +Iz +Iz +Iz +Iz +DN +Iz +Iz +Pa +DN +Iz +Iz +Iz +JV +Xx +pW +iT +xe +pW +qo +zG +uX +Vi +It +Rc +aC +Vv +ai +Mf +fi +gs +Tj +Vt +Vt +gs +Uo +Nw +RC +Nw +EZ +Nw +KR +ap +gs +hB +XU +Wc +Wd +Fo +pW +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(165,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +Xh +Xh +Xh +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +fl +Bs +OA +OA +pe +lk +pg +HP +HP +HP +TM +TM +TM +TM +TM +TM +TM +TM +TM +TM +TM +YL +EQ +oQ +yo +yo +Rk +SK +Rk +yo +yo +oQ +PD +hd +vP +OA +fN +cn +QE +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +JV +Xx +pW +ir +po +pW +pW +dw +uX +Vi +YC +YC +YC +hF +YC +YC +wC +gs +Hz +eZ +gB +Ia +Ob +ap +ap +ap +gs +DR +gs +wg +gs +Wd +Wd +Wd +Wd +Fo +pW +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(166,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +qo +fl +Bs +OA +kS +Og +MJ +ah +OA +XY +cx +TM +Ko +CB +xj +yN +Lh +OK +oT +XM +eS +TM +YL +EQ +oQ +TF +Qm +Rk +AL +Rk +Qm +Dy +oQ +PD +gg +Wj +OA +Pu +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +pW +pY +Fo +YP +Fo +dw +uX +BB +Sc +Sc +Sc +Nt +uL +Sc +Sc +gs +wu +iv +iv +gs +Fb +rW +rW +rW +gs +UW +gs +uo +gs +Fo +Fo +Fo +Fo +xl +pW +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(167,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +fl +Bs +OA +jQ +PD +lk +WB +NO +Bs +tZ +TM +AJ +zt +Xs +Xs +Xs +Xs +Xs +FD +dn +tE +YL +EQ +oQ +VB +VB +Rk +SQ +Rk +VB +VB +oQ +PD +mg +bD +Go +TJ +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +pW +pW +pW +pW +Fo +dw +dw +BB +Sz +Sz +Sz +OV +Sz +Sz +Sz +gs +gs +gs +gs +gs +ev +gs +gs +gs +gs +gs +gs +gs +gs +mu +pW +pW +pW +pW +pW +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(168,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +FN +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +fl +Bs +OA +OA +ob +ij +pR +iZ +TM +TM +TM +AK +CD +gr +gr +gr +gr +gr +Un +hO +tE +YL +Fy +CA +Nk +QO +yX +Ta +wZ +wZ +wZ +CA +Tn +hd +vP +OA +Yt +ZX +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +pW +Fo +Fo +Fo +Fo +Fo +Fo +QI +jc +Fo +El +RM +pW +Fo +xl +Fo +El +PZ +Fo +Fo +Fo +So +Fo +Fo +Fo +Fo +xl +pW +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(169,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +fl +Bs +Bs +OA +oR +lk +WB +Uw +sH +ux +TM +AN +qb +CB +CB +CB +oH +CB +rY +xG +tE +dZ +Gz +DT +DT +DT +Rt +Ub +Vr +DT +KD +DT +He +hd +vP +OA +Yt +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +pW +pW +pY +iM +Fo +vX +VD +DG +Ca +Dc +Pc +Pc +Pc +Pc +uG +Pc +Pc +FI +Dc +Pc +Mi +Dc +Pc +uS +zb +pW +qo +pW +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(170,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +fl +fl +fl +fl +Bs +tP +OA +PD +lk +WB +tE +Un +Oz +WA +AW +zt +Xs +Xs +Xs +OM +rE +sm +DS +TM +YL +vd +DT +Jt +Dw +RD +UH +Vx +YY +RK +iP +dI +uc +vP +OA +Yt +nN +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +pW +pW +pW +pW +Uk +rV +Fo +pW +pW +pW +nW +Fo +El +pW +pW +pW +pW +pW +pW +El +RM +El +Md +eF +pW +pW +pW +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(171,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +fl +CH +JX +fl +Bs +OA +OA +Qr +lk +GT +tE +Un +uA +WA +Un +Oz +gr +gr +gr +gr +gr +ss +dR +TM +fG +EQ +DT +hK +UM +UM +UM +Hw +Zo +DT +DT +pa +hd +Fa +OA +Yt +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +pW +Uk +rV +Fo +pW +qo +pW +pW +pW +pW +pW +qo +qo +qo +qo +pW +pW +pW +PA +Fo +Fo +pW +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(172,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +fl +fv +Li +rl +BW +OA +Wq +gp +jx +nK +qk +JL +vI +yW +JL +ha +Cm +Cm +yQ +Tr +Cm +XW +mY +Rg +Wi +GK +KW +hT +hT +hT +hT +VL +ZC +DT +Au +TH +jH +vP +OA +Yt +Bs +KN +Xx +Xx +Xx +Xx +Xx +Xx +Xx +Xx +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +dw +Uk +rV +pW +pW +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +pW +pW +pW +pW +pW +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(173,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +fl +kL +DQ +fl +Bs +OA +Wq +fo +RR +Ea +rM +Un +Oz +zo +Un +DE +Xs +Xs +Xs +Xs +Xs +Ye +TM +TM +Hl +YI +DT +Np +UM +UM +UM +Hw +LX +sa +Zm +II +MO +vP +OA +Yt +cx +KN +KN +KN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +dw +dw +Ov +RB +dw +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(174,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +fl +fl +fl +fl +Bs +OA +Wq +OG +mA +Ih +tE +Un +vR +WA +Un +qd +gr +gr +gr +gr +gr +sK +tE +dU +AU +fU +Tg +NK +UM +df +UM +Hw +Oh +Sj +Zm +cw +LH +vP +OA +Yt +EY +qa +PW +fl +fl +qo +fl +qo +fl +fl +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +sz +PY +Fe +vV +dw +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(175,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +fl +um +um +fl +Bs +OA +OA +Bu +lk +WB +tE +Un +Oz +WA +Un +DY +EI +vk +oH +CB +CB +sO +tE +Qu +YL +fU +Tg +UM +UM +qN +qN +Hw +LX +hr +Zm +xh +cM +OP +OA +jk +JP +PI +PI +PI +PI +PI +PI +Of +oP +fl +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +CS +WX +HD +iG +dw +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(176,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +fl +Bs +kA +rl +BW +Bs +OA +PD +lk +WB +cA +nb +Yw +TM +AZ +Zy +FD +HI +Uj +ja +Xs +sR +yc +Qu +YL +fU +tG +UM +QP +hp +gn +Hw +IF +yH +Je +vS +Ez +LJ +gf +gf +gf +gf +gf +gf +gf +gf +gf +gf +Yt +fl +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +pk +aS +FW +NF +dw +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(177,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +fl +PW +Bs +OA +PD +lk +WB +iZ +TM +TM +TM +TM +TM +FE +HN +gr +gr +gr +sK +tE +Qu +YL +fU +Tg +UM +UM +RS +UB +Hw +LX +yH +EV +Hb +bd +Xf +Gf +wa +tM +Ry +UT +St +Rw +HU +Dp +gf +Yt +fl +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +dw +dw +dw +dw +dw +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(178,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +ZX +kA +ra +PD +lk +UI +TM +tf +VT +kD +Bn +TM +GS +HQ +CB +CB +CB +sO +tE +Qu +YL +fU +Tg +Hy +UM +RY +UC +Hw +Oh +Sj +EV +Ft +Cp +Xf +Gf +Qi +py +he +Gj +sd +RU +gu +jY +gf +Yt +fl +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(179,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +PW +Bs +OA +PD +lk +pg +TM +kV +fc +Bq +yV +iu +fJ +OE +LE +mD +Op +ZS +tE +Lc +ho +fU +Tg +YA +gh +nS +UE +VW +Hc +Sj +EV +tx +vN +Xf +Gf +Qi +he +GG +Ui +Ul +Um +Rz +yr +gf +Yt +fl +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(180,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +OA +oR +lk +hY +TM +hI +xf +zW +Cn +TM +TM +TM +TM +TM +TM +TM +TM +Wo +mx +fU +DT +WN +Sp +re +UF +Wh +LI +DT +mr +iQ +MW +Xf +Gf +Qi +kq +he +py +sd +RU +BL +ce +gf +Yt +fl +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(181,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +fn +hW +OA +cJ +ij +Gc +TM +th +ns +Aa +OH +TM +mi +fl +nN +uI +gS +eA +Nv +Wo +YL +fU +DT +UM +RE +SB +Vb +Wp +oY +DT +OA +Kn +PL +xA +Gf +eR +LW +LW +LW +RJ +Rw +Ix +og +gf +Yt +fl +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(182,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +fO +Wa +kc +PG +MJ +pg +TM +TM +fl +Kp +zN +TM +Bs +fl +fS +Bs +fl +Hm +Kl +Wo +AD +XO +DT +DT +QV +DT +DT +DT +DT +DT +OA +kx +MW +pF +gf +RU +Rw +Rw +Rw +RU +RU +gK +og +gf +Yt +fl +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(183,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +fO +ic +kc +aU +lk +pg +Gx +fl +xw +Af +Bs +zO +Bs +fl +fl +ra +fl +ud +fl +Wo +Bv +fU +DT +Pe +lT +SE +Vc +Vc +DT +nN +OA +ml +MW +jI +gf +ut +lU +sG +qG +zH +YH +GU +ax +OU +ZB +fl +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(184,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +LK +if +OA +kC +lk +pg +rN +OA +Bs +Yt +Bs +Sn +JP +PI +PI +PI +PI +Pz +nY +Go +eO +Iu +DT +MB +bl +qR +NX +hC +DT +Bs +OA +PD +dq +FV +JC +IV +WT +WT +QC +bU +np +lM +AH +gf +Bs +fl +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(185,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +Xh +Xh +qo +qo +qo +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +ay +bb +bb +bb +bb +bF +bb +bb +bb +di +dK +fR +ig +kp +kK +lu +pg +ID +OA +Wr +en +Cr +Em +Bs +fl +fl +fl +fl +fl +fl +Wo +By +rx +DT +Pn +sQ +CZ +Vg +Wy +DT +Bs +OA +PD +MW +cQ +UZ +QX +fz +tV +LR +CG +Te +Mr +EB +gf +Bs +fl +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(186,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +fO +iq +OA +mq +Fd +pg +ew +ew +cK +ew +ew +ew +Bs +Bs +fl +id +iS +JA +SW +Tl +YL +GO +DT +Kx +DT +CZ +Bl +WE +DT +Bs +OA +ob +IM +XA +gf +gf +gf +gf +gf +gf +gf +gf +gf +gf +Bs +fl +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(187,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +gi +is +OA +ml +Fd +pg +ew +tu +xJ +WW +Cs +ew +ew +Bs +fl +Dm +Oy +GM +Je +CI +YL +HW +DL +xz +DT +Do +DT +DT +DT +Bs +OA +PD +MW +vP +OA +qP +Bs +Bs +Bs +Bs +Bs +Bs +xn +xn +PW +fl +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(188,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +qo +qo +qo +FN +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +gj +iH +OA +PD +wh +En +ew +Mz +ez +Ah +ez +JS +ew +Bs +fl +Dm +GM +GM +up +Tl +YL +Ie +Wo +SP +PI +Er +Bs +Xj +Xj +Bs +OA +PD +MW +OP +OA +Bs +fl +fl +fl +fl +ZX +fl +fl +fl +fl +fl +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(189,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +qo +qo +qo +FN +qo +qo +qo +ay +bb +bb +bb +bb +bb +bb +bb +bb +bb +dt +gV +iI +OA +TW +XN +zL +ew +AO +xQ +mL +ez +Yc +ew +Mu +fl +jo +Je +YX +uw +Tl +Av +Ik +OA +OA +OA +jA +GF +XS +cu +yD +Bg +AF +PQ +vP +OA +PW +fl +DO +xn +fl +xn +fl +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(190,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +qo +qo +qo +qo +qo +qo +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +ay +OA +PD +Fd +hY +ew +EG +ew +ew +Cz +Eo +ew +ra +fl +Tl +CI +Tl +Tl +Tl +Ea +Ej +La +Pr +OA +OA +OA +OA +OA +OA +OA +VX +TB +dQ +OA +Bs +fl +er +JX +rl +BW +fl +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(191,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +qo +qo +qo +qo +qo +qo +ct +WO +ta +fe +fD +mh +Cu +bA +fl +oE +tT +fq +zQ +lf +kg +GT +ok +yC +DB +el +el +el +UD +el +el +He +Ox +GT +el +ok +Ea +Ir +Im +el +iC +el +el +fL +UD +el +aB +He +IW +vP +OA +Bs +fl +HM +IK +fl +xR +fl +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(192,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +cq +cq +cq +cq +cq +cq +cq +cq +cq +cq +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Jq +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +UX +UX +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +qo +qo +qo +qo +qo +qo +ct +sX +HB +ws +HB +Pm +ft +vK +WU +XD +fl +fl +OA +eT +kl +nP +ov +nP +Ur +sl +OT +Ok +OT +OT +OT +OT +Eu +OT +OT +CU +hA +IA +Sw +yA +yA +yA +yA +gY +az +vH +yn +fV +Wu +Fa +OA +Bs +fl +fl +fl +fl +ZX +fl +fl +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(193,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +au +Xh +au +Xh +au +Xh +au +Xh +au +Xh +au +Xh +au +Xh +Xh +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +qo +FN +FN +qo +FN +qo +ct +xd +HB +HB +Ew +du +vl +lA +fl +Yt +fl +qo +OA +KZ +Yo +Yo +PM +Yo +mq +bu +CL +OZ +zA +Yo +Yo +Yo +Qp +XZ +Yo +PM +BK +IO +GJ +Yo +Qp +Yo +Yo +Yo +sb +Sf +PM +Qp +Zk +in +OA +ex +Bs +Bs +Bs +Bs +Bs +cx +fl +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(194,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +kd +pr +ue +Xh +kd +pr +ue +Xh +kd +pr +ue +Xh +kd +pr +ue +Xh +UX +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +qo +qo +qo +qo +qo +qo +ct +hX +HB +HB +wc +Qw +vl +YT +fl +Yt +fl +qo +OA +OA +Vh +Vh +Vh +Vh +OA +Ps +OA +OA +OA +OA +OA +OA +OA +tO +tO +tO +tO +IT +tO +tO +OA +OA +ll +VU +OA +nI +OA +OA +OA +OA +OA +Bs +fl +Sl +Sl +Sl +Sl +Sl +fl +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(195,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +au +kd +qc +ue +Xh +kd +qc +ue +Xh +kd +qc +ue +Xh +kd +qc +ue +au +au +UX +UX +UX +UX +UX +UX +UX +UX +UX +qo +qo +qo +qo +qo +qo +ct +pV +HB +Al +HB +HB +cv +vn +ab +mQ +fl +qo +gw +BX +yw +yw +yw +yw +yw +uN +rX +gw +qo +qo +qo +qo +qo +tO +uy +yf +BO +IX +Lu +tO +ek +OA +OA +OA +OA +QQ +wt +BI +BI +BI +BI +uV +fl +kZ +IJ +xg +zZ +Sl +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(196,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +kd +qc +ue +au +kd +qc +ue +au +kd +qc +ue +au +kd +qc +ue +Xh +au +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +qo +qo +fl +fl +fl +fl +fl +fl +TO +VJ +CO +FJ +ur +fg +fl +Yt +fl +qo +gw +yw +JU +pU +Ar +nJ +yw +uN +yw +gw +qo +qo +FN +qo +qo +tO +uR +yT +CC +Jj +LL +tO +IB +PI +PI +PI +PI +gH +fl +fl +fl +fl +fl +sy +fl +Lw +ZO +xg +Yf +Sl +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +FN +FN +FN +qo +FN +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(197,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +au +kd +qc +ue +Xh +kd +qc +ue +Xh +kd +qc +ue +Xh +kd +qc +ue +au +au +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +fl +fl +cx +Bs +Bs +Bs +fl +fl +fl +fl +Gs +fl +fl +fl +Yt +fl +fl +gw +nD +tR +Jh +tR +tR +vB +Ct +Ep +gw +qo +qo +FN +qo +qo +tO +vF +ze +CT +Kh +LO +tO +Yt +fl +fl +fl +fl +fl +fl +qo +qo +qo +fl +Zf +fl +jP +xg +xg +Cl +Sl +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(198,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +VE +VE +au +Xh +kd +qc +ue +Xh +kd +qc +ue +Xh +kd +qc +ue +Xh +kd +qc +ue +Xh +au +Xh +Xh +Xh +Xh +Xh +xm +zK +zK +zK +zK +zK +YV +IB +PI +Fr +oP +fl +jS +fl +IB +pT +PI +sk +Qa +Vo +PI +oP +gw +rX +AG +yw +QK +Vy +Vy +ar +Hi +gw +qo +qo +qo +qo +qo +tO +wx +zr +Da +Ki +Me +tO +Yt +fl +qo +qo +qo +qo +qo +qo +qo +fl +fl +vQ +fl +Sl +Ty +kP +Sl +Sl +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(199,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +au +Xh +Xh +Xh +qI +Xh +Xh +Xh +qI +Xh +Xh +Xh +qI +Xh +Xh +Xh +qI +Xh +Xh +au +Xh +Xh +xm +xm +xm +xm +Aj +Gu +Jg +Qz +zK +Bs +lq +Bs +fl +Yt +fl +fl +fl +Yt +fl +fl +fl +fl +fl +fl +Yt +gw +gw +gw +gw +gw +gw +gw +gw +qt +gw +fl +fl +fl +fl +fl +tO +tO +tO +tO +KB +tO +tO +Yt +fl +qo +qo +qo +qo +qo +qo +qo +fl +bQ +vQ +fl +pf +ES +KJ +WS +Sl +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(200,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +au +bi +eu +eu +nT +rk +rk +vA +rk +rk +rk +vW +rk +rk +rk +rk +rk +rk +vA +vW +vW +wL +wL +xO +yM +yM +zh +Dv +GQ +Jg +Sx +UV +PI +Em +PW +fl +jk +PI +PI +PI +gH +fl +qo +qo +qo +qo +fl +jk +PI +oP +fl +qo +fl +hZ +PI +PI +LT +fl +IB +PI +PI +PI +PI +oP +xn +fl +fl +KH +PI +PI +tD +fl +qo +qo +qo +qo +qo +qo +qo +fl +Bs +vQ +fl +Ff +ZQ +mC +sU +Sl +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(201,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +au +Xh +Xh +Xh +sw +Xh +Xh +Xh +sw +Xh +Xh +Xh +sw +Xh +Xh +Xh +sw +Xh +Xh +au +Xh +Xh +xm +xm +xm +xm +Ed +Ha +Lx +Ti +Xy +fl +fl +fl +fl +fl +fl +fl +fl +fl +fl +qo +qo +qo +qo +fl +Fz +fl +Yt +fl +qo +fl +Yt +fl +fl +jk +PI +gH +fl +fl +fl +fl +NM +PI +PI +Dd +FX +fl +fl +fl +fl +qo +qo +qo +qo +qo +qo +qo +qo +PW +vQ +fl +Qs +ES +jl +Cl +Sl +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(202,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Jq +VE +fZ +Xh +kd +tj +ue +Xh +kd +tj +ue +Xh +kd +tj +ue +Xh +kd +tj +ue +Xh +au +Xh +Xh +Xh +Xh +Xh +xm +Gl +IE +Qg +Uz +zK +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +Yt +fl +fl +fl +Yt +fl +fl +fl +fl +fl +fl +qo +qo +fl +fl +fl +fl +YB +bw +To +fl +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +vQ +fl +Sl +GY +Sl +Sl +Sl +fl +fl +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(203,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +au +au +kd +tj +ue +Xh +kd +tj +ue +Xh +kd +tj +ue +Xh +kd +tj +ue +au +au +Xh +Xh +Xh +Xh +Xh +xm +zK +zK +zK +zK +zK +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fC +PI +PI +PI +gH +fl +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +Tp +fl +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +fl +vQ +fl +xg +ES +TA +Yk +Sl +ZM +fl +fl +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +FN +FN +FN +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(204,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +kd +tj +ue +au +kd +tj +ue +au +kd +tj +ue +au +kd +tj +ue +Xh +au +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +fl +fl +fl +fl +fl +fl +fl +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +Tp +fl +qo +qo +qo +qo +qo +qo +qo +fl +FT +JX +rl +Gv +fl +ky +bq +zz +zz +Fx +zF +Bs +fl +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(205,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +au +kd +tj +ue +Xh +kd +tj +ue +Xh +kd +tj +ue +Xh +kd +tj +ue +au +au +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +Tp +fl +qo +qo +qo +qo +qo +qo +qo +fl +PK +Wl +fl +vQ +fl +Sl +Sl +Sl +Sl +Sl +Oa +Bs +fl +qo +qo +qo +FN +qo +qo +FN +FN +FN +FN +FN +FN +qo +qo +FN +FN +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(206,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +kd +ty +ue +Xh +kd +ty +ue +Xh +kd +ty +ue +Xh +kd +ty +ue +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +KN +KN +KN +KN +KN +qo +fl +fl +Tz +vs +tp +fl +qo +qo +qo +FN +qo +qo +qo +fl +fl +fl +fl +rT +BI +BI +BI +BI +it +BI +Ws +xR +fl +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(207,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +Xh +au +Xh +au +Xh +au +Xh +au +Xh +au +Xh +au +Xh +au +Xh +wH +Xh +VE +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +KN +TU +EF +GP +KN +fl +fl +ek +Tp +fl +fl +fl +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +fl +fl +fl +fl +fl +fl +fl +fl +fl +fl +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(208,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +VE +Jq +VE +VE +Xh +Xh +Xh +Xh +Xh +Xh +UX +Xh +Xh +Xh +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +KN +CJ +Tw +NE +vp +Ks +vs +vs +tp +fl +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +FN +FN +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(209,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Cg +MZ +MZ +UX +UX +UX +UX +UX +UX +UX +UX +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +KN +KN +dE +PW +KN +fl +fl +fl +Bs +fl +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(210,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +KN +KN +KN +KN +qo +qo +fl +Bs +fl +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(211,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +qo +FN +qo +FN +FN +FN +FN +FN +FN +FN +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +fl +Mu +fl +qo +qo +qo +qo +qo +FN +FN +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(212,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +zE +DK +fl +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +FN +FN +qo +FN +qo +FN +FN +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +FN +FN +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(213,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +qo +FN +FN +FN +qo +qo +FN +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +KN +dE +KN +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(214,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +KN +Mu +KN +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(215,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +Xh +KN +DZ +KN +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +FN +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(216,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +FN +qo +qo +FN +qo +FN +FN +qo +qo +FN +FN +qo +FN +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +Xh +UX +LU +UX +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +FN +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(217,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +FN +qo +Xh +Xh +Xh +LU +Xh +Xh +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +FN +FN +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(218,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +qo +FN +qo +FN +FN +qo +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +FN +FN +FN +qo +FN +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(219,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +FN +FN +qo +FN +qo +qo +qo +qo +FN +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(220,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +qo +FN +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +FN +FN +qo +FN +FN +qo +qo +FN +qo +qo +FN +FN +qo +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(221,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +Xh +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +FN +qo +qo +FN +FN +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(222,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +FN +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +FN +qo +FN +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(223,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +qo +qo +FN +qo +FN +qo +qo +qo +qo +FN +qo +FN +FN +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(224,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(225,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +FN +FN +qo +FN +qo +qo +qo +qo +qo +qo +FN +FN +qo +qo +FN +FN +FN +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(226,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +FN +qo +qo +FN +qo +qo +FN +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(227,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(228,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(229,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +qo +FN +FN +FN +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(230,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +FN +qo +qo +qo +FN +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(231,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(232,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(233,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(234,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +qo +qo +Xh +qo +qo +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(235,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +Xh +Xh +Xh +Xh +Xh +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(236,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +qo +Xh +Xh +Xh +Xh +Xh +qo +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(237,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(238,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(239,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(240,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(241,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(242,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +af +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(243,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(244,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(245,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(246,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(247,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(248,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(249,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(250,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(251,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(252,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(253,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(254,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} +(255,1,1) = {" +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +Xh +"} diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 47d8dd9cb4..fdcc0fa7c1 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -299,15 +299,27 @@ /turf/open/floor/plating, /area/science/research) "aaZ" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fore/secondary) -"aba" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/chicken, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) +"aba" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/port/fore) "abb" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Three" @@ -315,8 +327,19 @@ /turf/open/floor/plasteel/white, /area/science/research) "abc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "abd" = ( /turf/closed/wall/r_wall, /area/science/misc_lab/range) @@ -349,17 +372,17 @@ req_access_txt = "13" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "abh" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall/r_wall, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "abi" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "abj" = ( /obj/structure/cable{ icon_state = "0-2" @@ -371,8 +394,12 @@ /turf/closed/wall/r_wall, /area/asteroid/nearstation) "abl" = ( -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "abm" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -402,12 +429,18 @@ /turf/open/floor/plasteel/white, /area/science/research) "abp" = ( -/turf/closed/wall, -/area/maintenance/fore/secondary) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) "abq" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) "abr" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland2"; @@ -487,13 +520,13 @@ id = "permawindows"; name = "Emergency Shutters" }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/security/prison) "abD" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, /obj/structure/cable{ icon_state = "0-8" }, @@ -590,18 +623,8 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "abN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -824,6 +847,10 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "act" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fore) +"acu" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -833,16 +860,6 @@ /obj/machinery/light/small, /turf/open/floor/plating, /area/maintenance/department/security/brig) -"acu" = ( -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) "acv" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, @@ -851,14 +868,8 @@ /turf/open/floor/plating, /area/maintenance/fore) "acx" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) +/turf/open/space, +/area/space/station_ruins) "acy" = ( /obj/structure/cable{ icon_state = "4-8" @@ -917,7 +928,7 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "acC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -929,7 +940,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "acD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -938,7 +949,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "acE" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -947,7 +958,7 @@ icon_state = "2-8" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "acF" = ( /obj/item/stack/rods/fifty, /obj/item/stack/sheet/glass/fifty, @@ -1073,23 +1084,13 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "acV" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/space, -/area/solar/port/fore) +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/white, +/area/science/research) "acW" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore) +/obj/effect/landmark/carpspawn, +/turf/open/space, +/area/space/station_ruins) "acX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -1103,6 +1104,10 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, /turf/open/floor/plasteel/white, /area/science/research) "acY" = ( @@ -1111,14 +1116,14 @@ light_color = "#d8b1b1" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "acZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "ada" = ( /obj/machinery/camera{ c_tag = "Toxins - Launch Area"; @@ -1204,7 +1209,7 @@ dir = 5 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, /turf/open/floor/plasteel/dark, /area/security/prison) @@ -1216,9 +1221,6 @@ dir = 10 }, /obj/structure/weightmachine/weightlifter, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/open/floor/plasteel/dark, /area/security/prison) "adn" = ( @@ -1310,10 +1312,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/prison) @@ -1351,12 +1350,14 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "adF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "adG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 }, /turf/open/floor/plasteel/dark, /area/security/execution/education) @@ -1384,9 +1385,15 @@ /turf/closed/wall/r_wall, /area/security/processing) "adL" = ( -/obj/structure/lattice, -/turf/open/space, -/area/security/processing) +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) "adM" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1398,7 +1405,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/machinery/airalarm/directional/north, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "adO" = ( /obj/machinery/power/smes/engineering{ output_level = 80000 @@ -1448,8 +1455,7 @@ pixel_y = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plating, /area/maintenance/fore) @@ -1523,8 +1529,8 @@ dir = 8 }, /obj/structure/table, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/analyzer, /turf/open/floor/plasteel/dark, /area/science/circuit) "adY" = ( @@ -1539,10 +1545,21 @@ dir = 8 }, /obj/structure/table, -/obj/item/integrated_electronics/debugger, -/obj/item/integrated_electronics/wirer, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, +/obj/item/integrated_electronics/debugger{ + pixel_x = -1 + }, +/obj/item/integrated_electronics/wirer{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = 7; + pixel_y = 6 + }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, /area/science/circuit) @@ -1581,25 +1598,26 @@ /turf/open/floor/plasteel, /area/science/storage) "aee" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "aef" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/mixing) "aeg" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/fore/secondary"; - dir = 1; - name = "Secondary Fore Maintenance APC"; - pixel_y = 24 - }, +/obj/structure/table, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/turf/open/floor/plasteel, +/area/security/prison) "aeh" = ( /obj/structure/table, /obj/machinery/microwave{ @@ -1612,9 +1630,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/bot, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/security/prison) "aej" = ( @@ -1633,16 +1648,6 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "ael" = ( -/obj/machinery/sparker{ - id = "executionburn"; - pixel_x = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"aem" = ( /obj/structure/bed, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -1650,7 +1655,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) -"aen" = ( +"aem" = ( /obj/machinery/flasher{ id = "justiceflash"; name = "mounted justice flash"; @@ -1661,6 +1666,17 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) +"aen" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) "aeo" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -1748,12 +1764,15 @@ /turf/open/floor/plating, /area/security/processing) "aew" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, /turf/open/floor/plating, -/area/security/processing) +/area/maintenance/department/security/brig) "aex" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -1762,13 +1781,6 @@ /turf/open/space, /area/solar/port/fore) "aey" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/solar/port/fore) -"aez" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; req_access_txt = "10; 13" @@ -1781,12 +1793,18 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) -"aeA" = ( +"aez" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"aeA" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) @@ -1980,26 +1998,32 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "aeX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aeY" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aeZ" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "afa" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -2022,9 +2046,6 @@ /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/security/prison) "aff" = ( @@ -2054,20 +2075,10 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "afk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"afl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /turf/open/floor/plasteel/dark, /area/security/execution/education) -"afm" = ( +"afl" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ name = "justice injector" }, @@ -2081,6 +2092,19 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) +"afm" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/white, +/area/science/research) "afn" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -2228,6 +2252,9 @@ /turf/open/floor/plating, /area/security/processing) "afx" = ( +/turf/open/floor/plating, +/area/security/processing) +"afy" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"; @@ -2238,18 +2265,6 @@ }, /turf/open/floor/plating, /area/security/processing) -"afy" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 2; - height = 5; - id = "laborcamp_home"; - name = "fore bay 1"; - roundstart_template = /datum/map_template/shuttle/labour/box; - width = 9 - }, -/turf/open/space/basic, -/area/space) "afz" = ( /obj/machinery/light{ dir = 8; @@ -2270,11 +2285,10 @@ dir = 1 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "0-2" }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) @@ -2283,11 +2297,8 @@ /turf/open/floor/plating, /area/maintenance/fore) "afC" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" }, /turf/open/floor/plating, /area/maintenance/fore) @@ -2404,7 +2415,7 @@ light_color = "#d8b1b1" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "afQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2439,8 +2450,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) "afU" = ( /turf/closed/wall/r_wall, /area/science/robotics/lab) @@ -2457,14 +2468,14 @@ /obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/security/prison) "afX" = ( /obj/structure/table, /obj/item/toy/plush/snakeplushie, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/prison) "afY" = ( @@ -2480,32 +2491,15 @@ /area/security/prison) "aga" = ( /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/door/firedoor, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/execution/education) "agb" = ( -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/door/window/brigdoor{ - name = "Justice Chamber"; - req_access_txt = "3" - }, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Justice Chamber"; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel/dark, /area/security/execution/education) "agc" = ( /obj/effect/turf_decal/tile/neutral, @@ -2608,7 +2602,7 @@ /area/science/research) "agl" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-2" }, /turf/open/floor/plasteel/white, /area/maintenance/fore) @@ -2683,6 +2677,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/science/storage) "ags" = ( @@ -2756,7 +2751,7 @@ icon_state = "1-4" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "agy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2766,7 +2761,7 @@ }, /obj/effect/landmark/blobstart, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "agz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2778,7 +2773,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "agA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2793,7 +2788,7 @@ req_access_txt = "12" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "agB" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -2838,7 +2833,7 @@ icon_state = "1-8" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "agF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, @@ -2861,19 +2856,16 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "agH" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/computer/operating{ + name = "Robotic's Operating Computer" }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "agI" = ( +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, /obj/structure/table, -/obj/item/scalpel{ - pixel_y = 15 - }, -/obj/item/circular_saw{ - pixel_y = 2 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "agJ" = ( @@ -2901,9 +2893,6 @@ /turf/open/floor/plasteel, /area/security/prison) "agN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 }, @@ -2925,6 +2914,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/prison) "agQ" = ( @@ -2941,53 +2933,21 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "agS" = ( -/obj/structure/closet/secure_closet/injection{ - name = "educational injections"; - pixel_x = 2 +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "agT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/dark, /area/security/execution/education) "agU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"agV" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/reagent_containers/glass/bottle/chloralhydrate{ - name = "chloral hydrate bottle" - }, -/obj/item/reagent_containers/glass/bottle/toxin{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/facid{ - name = "fluorosulfuric acid bottle"; - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/reagent_containers/syringe{ - pixel_y = 5 - }, -/obj/item/reagent_containers/dropper, /obj/machinery/button/ignition{ id = "executionburn"; name = "Justice Ignition Switch"; @@ -3001,10 +2961,6 @@ pixel_y = 26; req_access_txt = "2" }, -/obj/item/assembly/signaler{ - pixel_x = -3; - pixel_y = 2 - }, /obj/machinery/button/flasher{ id = "justiceflash"; name = "Justice Flash Control"; @@ -3026,6 +2982,46 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"agV" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/reagent_containers/glass/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/facid{ + name = "fluorosulfuric acid bottle"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/bottle/chloralhydrate{ + name = "chloral hydrate bottle" + }, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "agW" = ( @@ -3046,6 +3042,13 @@ dir = 4; light_color = "#d8b1b1" }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "agX" = ( @@ -3154,7 +3157,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel/white, /area/science/xenobiology) "ahi" = ( @@ -3296,7 +3298,7 @@ /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aht" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 8 @@ -3304,9 +3306,6 @@ /turf/open/floor/plasteel, /area/security/prison) "ahu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 6 }, @@ -3328,24 +3327,25 @@ name = "Station Intercom"; pixel_y = -28 }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/science/mixing) "ahw" = ( -/obj/structure/table, -/obj/item/hemostat{ - pixel_x = -5 - }, -/obj/item/retractor{ - pixel_x = 2 +/obj/machinery/light/small{ + dir = 4 }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "ahx" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "ahy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, @@ -3361,10 +3361,13 @@ /turf/open/floor/plasteel/white, /area/medical/abandoned) "ahz" = ( -/obj/item/mmi, -/obj/item/mmi, -/obj/item/mmi, -/obj/structure/table, +/obj/item/scalpel{ + pixel_y = 15 + }, +/obj/item/circular_saw{ + pixel_y = 2 + }, +/obj/structure/table/glass, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "ahA" = ( @@ -3408,41 +3411,32 @@ dir = 1; network = list("ss13","prison") }, -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel, /area/security/prison) "ahF" = ( -/obj/machinery/airalarm/all_access{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/closet/crate, -/obj/item/tank/internals/oxygen/red{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/item/tank/internals/oxygen/red{ - pixel_x = 4; - pixel_y = -1 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 2 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/security/execution/education) "ahG" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "ahH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "ahI" = ( @@ -3462,16 +3456,27 @@ /obj/item/reagent_containers/spray/cleaner{ pixel_x = 5 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "ahK" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock North"; + dir = 6 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, /turf/open/floor/plasteel, /area/security/processing) "ahL" = ( @@ -3651,6 +3656,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/science/storage) "aik" = ( @@ -3667,6 +3673,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/mixing) "ail" = ( @@ -3683,13 +3690,18 @@ /area/science/mixing) "aim" = ( /obj/structure/window/reinforced, -/obj/item/storage/box/bodybags, -/obj/structure/table, +/obj/item/surgical_drapes{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/cautery{ + pixel_x = 5 + }, +/obj/structure/table/glass, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "ain" = ( /obj/machinery/door/window/southright, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -3701,6 +3713,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "aio" = ( @@ -3715,18 +3730,15 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "aip" = ( -/obj/structure/table, /obj/structure/window/reinforced, -/obj/item/surgical_drapes{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/cautery{ - pixel_x = 5 - }, +/obj/item/storage/box/bodybags, +/obj/structure/table, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "aiq" = ( @@ -3746,13 +3758,12 @@ /turf/open/floor/plating, /area/science/robotics/lab) "ais" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) "ait" = ( /obj/effect/turf_decal/arrows/red{ dir = 1 @@ -3760,7 +3771,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/security/prison) @@ -3787,7 +3798,6 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aiv" = ( -/obj/machinery/space_heater, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -3798,6 +3808,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plasteel/dark, /area/security/execution/education) "aiw" = ( @@ -3805,7 +3816,6 @@ dir = 4; layer = 2.9 }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -3815,17 +3825,19 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "aix" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "aiy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/security/execution/education) "aiz" = ( @@ -3850,26 +3862,22 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 10 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "aiB" = ( -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North"; +/obj/machinery/sparker{ + id = "executionburn"; + pixel_x = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/security/processing) +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aiC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, @@ -3923,6 +3931,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aiM" = ( @@ -4002,9 +4011,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, +/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aiX" = ( @@ -4081,10 +4088,10 @@ }, /obj/machinery/light, /obj/structure/table, -/obj/item/screwdriver, -/obj/item/multitool, -/obj/item/pen, /obj/item/paper_bin, +/obj/item/screwdriver, +/obj/item/pen, +/obj/item/multitool, /turf/open/floor/plasteel/dark, /area/science/circuit) "ajd" = ( @@ -4116,10 +4123,21 @@ dir = 8 }, /obj/structure/table, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/integrated_electronics/wirer, -/obj/item/integrated_electronics/debugger, +/obj/item/stock_parts/cell/high{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/item/integrated_electronics/wirer{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/integrated_electronics/debugger{ + pixel_x = -1 + }, /turf/open/floor/plasteel/dark, /area/science/circuit) "ajf" = ( @@ -4354,9 +4372,15 @@ /turf/closed/wall, /area/maintenance/fore) "ajx" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "xenobio5"; + pixel_y = 35 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "ajy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -4364,14 +4388,15 @@ /turf/open/floor/plating, /area/maintenance/fore) "ajz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/fore) +/obj/machinery/button/door{ + id = "xenobio3"; + pixel_y = 35 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "ajA" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table, @@ -4637,6 +4662,10 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "ajW" = ( @@ -4688,6 +4717,9 @@ name = "Labor Shuttle"; req_access_txt = "63" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/security/processing) "ajZ" = ( @@ -4703,6 +4735,11 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22; + pixel_y = -24 + }, /turf/open/floor/plasteel, /area/security/processing) "aka" = ( @@ -4757,8 +4794,7 @@ icon_state = "0-4" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plating, /area/security/processing) @@ -4860,13 +4896,17 @@ /turf/closed/wall, /area/science/misc_lab/range) "aks" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 +/obj/item/hemostat{ + pixel_x = -5 + }, +/obj/item/retractor{ + pixel_x = 2 }, /obj/item/radio/intercom{ dir = 8; pixel_x = -28 }, +/obj/structure/table/glass, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "akt" = ( @@ -5063,7 +5103,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/prison) "akN" = ( /obj/machinery/flasher{ id = "PCell 3"; @@ -5132,6 +5172,10 @@ dir = 9 }, /obj/machinery/light, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "akU" = ( @@ -5143,12 +5187,20 @@ /obj/structure/cable{ icon_state = "0-4" }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "akV" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "akW" = ( @@ -5157,6 +5209,13 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/execution/education) "akX" = ( @@ -5272,18 +5331,18 @@ /area/science/xenobiology) "alk" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "all" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; + id = "xenobio7"; name = "containment blast door" }, /obj/structure/cable{ @@ -5297,10 +5356,6 @@ /area/science/xenobiology) "alm" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, @@ -5308,22 +5363,26 @@ icon_state = "0-2" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/science/xenobiology) -"aln" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "xenobio7"; name = "containment blast door" }, +/turf/open/floor/plating, +/area/science/xenobiology) +"aln" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "alo" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; + id = "xenobio5"; name = "containment blast door" }, /obj/structure/cable{ @@ -5337,10 +5396,6 @@ /area/science/xenobiology) "alp" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, @@ -5348,12 +5403,16 @@ icon_state = "0-2" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "alq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; + id = "xenobio3"; name = "containment blast door" }, /obj/structure/cable{ @@ -5377,10 +5436,6 @@ /area/science/xenobiology) "als" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, @@ -5388,22 +5443,26 @@ icon_state = "0-2" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "alt" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio5"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "alu" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio5"; + id = "xenobio1"; name = "containment blast door" }, /obj/structure/cable{ @@ -5417,10 +5476,6 @@ /area/science/xenobiology) "alv" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio5"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, @@ -5428,6 +5483,10 @@ icon_state = "0-2" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "alw" = ( @@ -5679,7 +5738,7 @@ dir = 6 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "alX" = ( /obj/effect/landmark/start/roboticist, /turf/open/floor/plasteel/white, @@ -5770,6 +5829,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/security/prison) "amf" = ( @@ -5794,6 +5854,10 @@ /area/space/nearstation) "amj" = ( /obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, +/obj/machinery/sparker{ + id = "Xenobio"; + pixel_x = -25 + }, /turf/open/floor/engine, /area/science/xenobiology) "amk" = ( @@ -5873,7 +5937,6 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/doorButtons/access_button, /turf/open/floor/plasteel, /area/science/xenobiology) "amt" = ( @@ -5925,14 +5988,31 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "amy" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central2"; + location = "central1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "amz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel/white, @@ -5946,6 +6026,9 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 5 }, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "amB" = ( @@ -6080,7 +6163,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/prison) "amP" = ( /obj/machinery/button/door{ id = "roboticsprivacy"; @@ -6112,14 +6195,6 @@ /obj/machinery/door/window/southleft, /turf/open/floor/plasteel/dark, /area/science/misc_lab/range) -"amR" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/beer, -/obj/item/reagent_containers/food/drinks/ale, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/maintenance/bar) "amS" = ( /turf/open/floor/plasteel/white, /area/science/robotics/lab) @@ -6340,11 +6415,6 @@ /obj/structure/table/reinforced, /obj/effect/turf_decal/stripes/line, /obj/structure/window/reinforced, -/obj/machinery/button/ignition{ - id = "Xenobio"; - pixel_x = -6; - pixel_y = -3 - }, /turf/open/floor/plasteel, /area/science/xenobiology) "ang" = ( @@ -6354,11 +6424,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "xeno_airlock_exterior"; - idSelf = "xeno_airlock_control"; - name = "Access Button"; - pixel_x = -24 +/obj/machinery/button/ignition{ + id = "Xenobio"; + pixel_x = -39; + pixel_y = -3 + }, +/obj/machinery/button/door{ + id = "Xenolab"; + pixel_x = -32; + pixel_y = 4 }, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -6384,6 +6458,10 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/button/door{ + id = "xenobio7"; + pixel_y = 35 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "anl" = ( @@ -6434,11 +6512,7 @@ "anr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-8" + icon_state = "0-2" }, /turf/open/floor/plating, /area/science/xenobiology) @@ -6451,6 +6525,7 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "ant" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -6463,6 +6538,7 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, +/obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "anv" = ( @@ -6472,6 +6548,7 @@ /obj/machinery/shower{ pixel_y = 17 }, +/obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "anw" = ( @@ -6481,9 +6558,11 @@ /obj/machinery/status_display{ pixel_y = 32 }, +/obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "anx" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -6493,8 +6572,11 @@ /turf/closed/wall, /area/science/research) "anz" = ( -/obj/machinery/door/poddoor/preopen, /obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, /turf/open/floor/plasteel, /area/science/research) "anA" = ( @@ -6541,6 +6623,7 @@ /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 4 }, +/obj/effect/turf_decal/trimline/purple/filled/corner, /turf/open/floor/plasteel/white, /area/science/research) "anF" = ( @@ -6639,6 +6722,7 @@ /obj/machinery/camera/autoname{ dir = 1 }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/science/mixing) "anQ" = ( @@ -6651,6 +6735,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, +/obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/plasteel/white, /area/science/research) "anR" = ( @@ -6689,6 +6774,9 @@ /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 1 }, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/research) "anV" = ( @@ -6760,15 +6848,12 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/prison) "aoa" = ( /obj/structure/cable{ icon_state = "4-8" @@ -6812,6 +6897,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/security/prison) "aoc" = ( @@ -6981,7 +7069,9 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/research) "aok" = ( @@ -7141,14 +7231,14 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "test chamber blast door" - }, /obj/machinery/door/window/westleft{ name = "Maximum Security Test Chamber"; req_access_txt = "55" }, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "test chamber blast door" + }, /turf/open/floor/plasteel, /area/science/xenobiology) "aou" = ( @@ -7208,9 +7298,6 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoz" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, @@ -7220,9 +7307,17 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0; + req_access_txt = "55" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "aoB" = ( /obj/structure/cable{ @@ -7272,6 +7367,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoF" = ( @@ -7281,10 +7377,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, /obj/machinery/chem_master, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -7300,6 +7392,16 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoI" = ( @@ -7337,15 +7439,18 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoK" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/doorButtons/access_button{ idDoor = "xeno_airlock_interior"; idSelf = "xeno_airlock_control"; @@ -7353,20 +7458,49 @@ pixel_y = 26; req_access_txt = "55" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoL" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/firealarm{ dir = 1; pixel_x = 26; pixel_y = -26 }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aoM" = ( @@ -7407,8 +7541,11 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/poddoor/preopen, /obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, /turf/open/floor/plasteel, /area/science/research) "aoO" = ( @@ -7443,7 +7580,16 @@ dir = 1; sortType = 28 }, -/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/research) "aoR" = ( @@ -7957,11 +8103,14 @@ /turf/open/floor/plasteel/dark, /area/security/armory) "apJ" = ( -/obj/machinery/sparker{ - id = "Xenobio"; - pixel_x = -25 +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, -/turf/open/floor/engine, +/obj/machinery/button/door{ + id = "xenobio1"; + pixel_y = 35 + }, +/turf/open/floor/plasteel, /area/science/xenobiology) "apK" = ( /obj/structure/disposaloutlet{ @@ -7978,13 +8127,13 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/door/poddoor/preopen{ id = "Xenolab"; name = "test chamber blast door" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/plating, /area/science/xenobiology) "apM" = ( @@ -8032,6 +8181,9 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "apS" = ( @@ -8106,6 +8258,9 @@ /turf/open/floor/plasteel, /area/science/mixing) "apZ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -8124,6 +8279,9 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "aqb" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -8162,11 +8320,17 @@ /turf/open/floor/plasteel, /area/security/prison) "aqf" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/closed/wall/r_wall, -/area/science/mixing) +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0; + req_access_txt = "55" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "aqg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -8199,10 +8363,6 @@ icon_state = "1-2" }, /obj/effect/turf_decal/trimline/purple/filled/corner, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, /turf/open/floor/plasteel, /area/science/robotics/lab) "aqk" = ( @@ -8331,6 +8491,10 @@ /obj/effect/turf_decal/trimline/white/filled/corner{ dir = 4 }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, /turf/open/floor/plasteel, /area/science/robotics/lab) "aqw" = ( @@ -8354,9 +8518,16 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aqy" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "aqz" = ( /turf/closed/wall, /area/security/range) @@ -8489,23 +8660,21 @@ /area/security/brig) "aqK" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/security/warden) "aqL" = ( /turf/closed/wall, /area/security/warden) "aqM" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plating, +/area/security/processing) "aqN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -8726,7 +8895,6 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/doorButtons/access_button, /turf/open/floor/plasteel, /area/science/xenobiology) "arb" = ( @@ -8923,6 +9091,10 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/button/door{ + id = "xenobio8"; + pixel_y = -29 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "arz" = ( @@ -9069,12 +9241,23 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "arJ" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/prison"; + dir = 8; + name = "Prison Wing APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "arK" = ( /obj/machinery/light/small{ dir = 1 @@ -9317,6 +9500,9 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/security/warden) "asa" = ( @@ -9329,6 +9515,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/warden) "asb" = ( @@ -9595,19 +9784,19 @@ /area/science/xenobiology) "asu" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio4"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asv" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio4"; + id = "xenobio8"; name = "containment blast door" }, /obj/structure/cable{ @@ -9621,31 +9810,31 @@ /area/science/xenobiology) "asw" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio4"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asx" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asy" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; + id = "xenobio6"; name = "containment blast door" }, /obj/structure/cable{ @@ -9659,31 +9848,31 @@ /area/science/xenobiology) "asz" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asA" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio4"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asB" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; + id = "xenobio4"; name = "containment blast door" }, /obj/structure/cable{ @@ -9697,31 +9886,31 @@ /area/science/xenobiology) "asC" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio4"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asD" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, /obj/structure/cable{ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asE" = ( /obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; + id = "xenobio2"; name = "containment blast door" }, /obj/structure/cable{ @@ -9735,14 +9924,14 @@ /area/science/xenobiology) "asF" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, /obj/structure/cable, /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, /turf/open/floor/plating, /area/science/xenobiology) "asG" = ( @@ -9815,8 +10004,8 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "asM" = ( -/obj/structure/closet/firecloset/full, /obj/effect/turf_decal/stripes/line, +/obj/structure/closet/l3closet/scientist, /turf/open/floor/plasteel/white, /area/science/xenobiology) "asN" = ( @@ -10348,6 +10537,9 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/warden) "atL" = ( @@ -10520,8 +10712,7 @@ pixel_y = 28 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -10610,16 +10801,29 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "auh" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "aui" = ( /turf/open/floor/plasteel, /area/security/range) @@ -10927,19 +11131,12 @@ /turf/open/floor/plasteel, /area/science/robotics/mechbay) "auH" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"auI" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) +/turf/open/floor/plating, +/area/construction) "auJ" = ( /obj/machinery/rnd/server, /turf/open/floor/plasteel/dark, @@ -10956,12 +11153,6 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/plasteel/dark, /area/science/server) -"auM" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) "auN" = ( /obj/structure/table, /turf/open/floor/plasteel/dark, @@ -10991,6 +11182,7 @@ }, /obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/mixing) "auS" = ( @@ -11003,6 +11195,7 @@ name = "biohazard containment shutters" }, /obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/mixing) "auT" = ( @@ -11038,6 +11231,9 @@ name = "Station Intercom"; pixel_y = -28 }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "auW" = ( @@ -11053,9 +11249,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 }, -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, @@ -11122,7 +11315,7 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "ave" = ( /obj/structure/table, /obj/item/clothing/ears/earmuffs, @@ -11439,10 +11632,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/server) -"avC" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain/private) "avD" = ( /obj/structure/cable{ icon_state = "2-8" @@ -11596,27 +11785,18 @@ /turf/open/floor/plasteel/white, /area/science/misc_lab/range) "avQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/circuit, /area/science/robotics/mechbay) "avR" = ( /turf/open/floor/plasteel/recharge_floor, /area/science/robotics/mechbay) "avS" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 8 - }, +/obj/machinery/computer/mech_bay_power_console, /obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"avT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -11646,6 +11826,7 @@ }, /obj/effect/turf_decal/tile/neutral, /mob/living/simple_animal/hostile/retaliate/bat/secbat, +/obj/effect/turf_decal/loading_area/red, /turf/open/floor/plasteel/dark, /area/security/brig) "avX" = ( @@ -11894,9 +12075,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -11909,6 +12087,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "awr" = ( @@ -12300,17 +12481,23 @@ dir = 5; network = list("ss13","rd") }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/circuit, /area/science/robotics/mechbay) "awL" = ( /obj/effect/landmark/start/roboticist, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/circuit, /area/science/robotics/mechbay) "awM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "awN" = ( @@ -12713,9 +12900,13 @@ /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/science/research) "axp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/circuit/green, /area/science/robotics/mechbay) "axr" = ( @@ -12864,6 +13055,28 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) +"axE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "axF" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/hos) @@ -12956,10 +13169,6 @@ /area/crew_quarters/heads/hor) "axO" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/structure/cable{ icon_state = "0-8" }, @@ -12967,6 +13176,9 @@ id = "rdprivacy"; name = "privacy shutter" }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hor) "axP" = ( @@ -12975,21 +13187,6 @@ /area/crew_quarters/heads/hor) "axQ" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdprivacy"; - name = "privacy shutter" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hor) -"axR" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-8" }, @@ -12999,13 +13196,25 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/hor) -"axS" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 +"axR" = ( +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0; + req_access_txt = "55" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, /turf/open/floor/plasteel/white, /area/science/research) "axT" = ( @@ -13013,21 +13222,16 @@ /turf/open/floor/plasteel/recharge_floor, /area/science/robotics/mechbay) "axU" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/machinery/status_display/ai{ pixel_y = -32 }, +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/structure/cable, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "axV" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "axW" = ( @@ -13128,7 +13332,7 @@ /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "ayb" = ( /obj/machinery/door/window/eastright{ base_state = "left"; @@ -13171,11 +13375,10 @@ name = "Shooting Range APC"; pixel_x = 24 }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel, /area/security/range) "aye" = ( @@ -13285,10 +13488,6 @@ name = "Head of Security's Office APC"; pixel_y = 25 }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "aym" = ( @@ -13370,9 +13569,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "ayt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 1 }, @@ -13383,22 +13579,27 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore) +/area/asteroid/nearstation) "ayv" = ( /obj/machinery/light/small, /turf/open/floor/plating, /area/maintenance/department/security/brig) "ayw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/closed/wall, -/area/maintenance/fore) +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/button/door{ + id = "xenobio6"; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "ayx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plating, +/turf/closed/wall, /area/maintenance/fore) "ayy" = ( /turf/open/floor/plating/asteroid, @@ -13484,6 +13685,14 @@ /area/crew_quarters/heads/hor) "ayG" = ( /obj/structure/closet/secure_closet/RD, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_y = 30; + receive_ore_updates = 1 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "ayH" = ( @@ -13497,6 +13706,9 @@ /area/crew_quarters/heads/hor) "ayI" = ( /obj/machinery/computer/robotics, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "ayJ" = ( @@ -13504,30 +13716,33 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "ayK" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Research Director's Desk"; - departmentType = 5; - name = "Research Director RC"; - pixel_y = 30; - receive_ore_updates = 1 - }, -/mob/living/simple_animal/pet/cat/Runtime, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"ayL" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"ayM" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) +"ayL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/science/mixing) +"ayM" = ( +/obj/machinery/camera{ + c_tag = "Research Directors Office Starboard"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) "ayN" = ( /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) @@ -13613,16 +13828,18 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "ayW" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/button/door{ + id = "xenobio4"; + pixel_y = -29 }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/turf/open/floor/plasteel, +/area/science/xenobiology) "ayX" = ( /obj/structure/cable{ icon_state = "4-8" @@ -13632,7 +13849,7 @@ req_one_access_txt = "1;4" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "ayY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -13776,6 +13993,9 @@ /area/security/prison) "azm" = ( /obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, /turf/open/floor/plasteel, /area/security/brig) "azn" = ( @@ -13785,8 +14005,7 @@ name = "privacy shutters" }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plating, /area/crew_quarters/heads/hos) @@ -13840,14 +14059,13 @@ /area/crew_quarters/heads/hos) "azv" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/machinery/door/poddoor/preopen{ id = "hosspace"; name = "space shutters" }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hos) "azw" = ( @@ -14005,7 +14223,16 @@ /turf/open/floor/plasteel/white, /area/science/research) "azH" = ( -/obj/machinery/airalarm/directional/west, +/obj/machinery/button/door{ + id = "rdprivacy"; + name = "Research Director Office Blastdoors"; + pixel_x = -23; + pixel_y = 24; + req_access_txt = "19" + }, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "azI" = ( @@ -14021,21 +14248,18 @@ /area/crew_quarters/heads/hor) "azK" = ( /obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"azL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"azM" = ( +"azL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"azN" = ( +"azM" = ( /obj/effect/turf_decal/stripes/corner, /obj/structure/cable{ icon_state = "2-4" @@ -14046,15 +14270,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /obj/structure/cable{ icon_state = "1-4" }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"azO" = ( +"azN" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable{ icon_state = "4-8" @@ -14062,15 +14283,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"azP" = ( +"azO" = ( /obj/machinery/door/poddoor/preopen, /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -14091,6 +14312,31 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) +"azP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) "azQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -14200,9 +14446,18 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAb" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "xenobio2"; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "aAc" = ( /turf/closed/wall/r_wall, /area/security/detectives_office) @@ -14350,6 +14605,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/security/brig) "aAk" = ( @@ -14432,11 +14688,10 @@ name = "Research Division APC"; pixel_y = 25 }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/white, /area/science/research) "aAp" = ( @@ -14540,6 +14795,9 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/hos/private) "aAv" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos/private) "aAw" = ( @@ -14550,6 +14808,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "aAx" = ( @@ -14572,10 +14833,6 @@ "aAz" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/machinery/door/poddoor/preopen{ id = "hosspace"; name = "space shutters" @@ -14583,6 +14840,9 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hos) "aAA" = ( @@ -14708,6 +14968,20 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/button/door{ + id = "rnd2"; + name = "Research Lab Shutter Control"; + pixel_x = 8; + pixel_y = 6; + req_access_txt = "47" + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard shutter Control"; + pixel_x = 8; + pixel_y = -2; + req_access_txt = "47" + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "aAM" = ( @@ -14720,6 +14994,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "aAO" = ( @@ -14733,41 +15010,26 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science) "aAP" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aAQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aAR" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-8" }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"aAS" = ( +"aAQ" = ( /obj/machinery/door/window/westright, /obj/structure/window/reinforced{ dir = 1; layer = 2.9 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) -"aAT" = ( +"aAR" = ( /obj/structure/window/reinforced{ dir = 1; layer = 2.9 @@ -14775,8 +15037,25 @@ /obj/machinery/light{ dir = 4 }, +/obj/effect/landmark/xmastree/rdrod, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) +"aAS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) +"aAT" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/research) "aAU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ @@ -14831,9 +15110,8 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ - dir = 4 + dir = 6 }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/department/science) "aBb" = ( @@ -14899,11 +15177,12 @@ /turf/closed/wall, /area/security/detectives_office) "aBk" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/space, +/area/solar/port/fore) "aBl" = ( /obj/structure/cable{ icon_state = "1-2" @@ -15000,18 +15279,24 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ dir = 1 }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/research) "aBv" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "aBw" = ( @@ -15192,6 +15477,9 @@ /turf/open/floor/plasteel/white, /area/science/research) "aBK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet/red, /area/crew_quarters/heads/hos/private) "aBL" = ( @@ -15215,18 +15503,12 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "aBN" = ( /obj/machinery/light, /obj/structure/table, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aBO" = ( -/obj/item/storage/secure/safe{ - pixel_y = -32 - }, -/obj/structure/table, /obj/item/cartridge/signal/toxins, /obj/item/cartridge/signal/toxins{ pixel_x = -4; @@ -15238,29 +15520,41 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"aBP" = ( +"aBO" = ( +/obj/item/storage/secure/safe{ + pixel_y = -32 + }, /obj/machinery/computer/aifixer{ dir = 1 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) -"aBQ" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aBR" = ( +"aBP" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/machinery/button/door{ + id = "rdprivacy"; + name = "Research Director Office Blastdoors"; + pixel_x = -8; + pixel_y = -23; + req_access_txt = "19" }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) +"aBQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hor) +"aBR" = ( +/obj/structure/displaycase/labcage, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hor) "aBS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 @@ -15268,9 +15562,13 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "aBT" = ( -/obj/structure/displaycase/labcage, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hor) +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel/white, +/area/science/research) "aBU" = ( /obj/machinery/holopad, /obj/effect/turf_decal/tile/purple{ @@ -15283,15 +15581,23 @@ dir = 4 }, /obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/white, /area/science/research) "aBV" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ dir = 1 }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/research) "aBW" = ( @@ -15303,6 +15609,10 @@ location = "Research and Development" }, /obj/effect/turf_decal/delivery, +/obj/machinery/door/window/southright{ + name = "Research Delivery"; + req_access_txt = "29" + }, /turf/open/floor/plasteel, /area/maintenance/department/science) "aBX" = ( @@ -15347,9 +15657,15 @@ /turf/open/floor/plasteel/white, /area/science/research) "aCc" = ( -/obj/effect/landmark/blobstart, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/security/warden) "aCd" = ( /obj/machinery/power/apc{ areastring = "/area/security/detectives_office"; @@ -15464,15 +15780,12 @@ /turf/open/floor/plasteel, /area/security/brig) "aCn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/sparker{ + id = "Xenobio"; + pixel_x = -25 }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) +/turf/open/floor/engine, +/area/science/xenobiology) "aCo" = ( /obj/machinery/door/airlock/medical/glass{ name = "Brig Infirmary"; @@ -15539,6 +15852,9 @@ name = "Head of Security's Quarters"; req_access_txt = "58" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "aCt" = ( @@ -15585,9 +15901,6 @@ icon_state = "4-8" }, /obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, @@ -15596,6 +15909,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "aCy" = ( @@ -15665,15 +15982,27 @@ /obj/machinery/status_display/ai{ pixel_y = -32 }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hos/private"; + dir = 4; + name = "Head of Security's Private Quarters APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/carpet/red, /area/crew_quarters/heads/hos/private) "aCE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, /obj/machinery/door/poddoor/preopen{ id = "rdprivacy"; name = "privacy shutter" }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hor) "aCF" = ( @@ -15687,21 +16016,17 @@ /turf/open/floor/plasteel, /area/security/brig) "aCG" = ( -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/door/window/southright{ - name = "Research Delivery"; - req_access_txt = "29" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/science/lab) "aCH" = ( /obj/machinery/rnd/destructive_analyzer, /obj/machinery/light{ dir = 1 }, +/obj/machinery/airalarm/directional/north, /turf/open/floor/plasteel, /area/science/lab) "aCI" = ( @@ -15732,6 +16057,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/machinery/button/door{ + id = "research_shutters_2"; + name = "research shutters control"; + pixel_x = 25; + pixel_y = 24; + req_access_txt = "7" + }, /turf/open/floor/plasteel/white, /area/science/lab) "aCL" = ( @@ -15769,7 +16102,7 @@ dir = 5 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aCO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -15781,7 +16114,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aCP" = ( /obj/machinery/door/airlock/maintenance{ name = "Security Maintenance"; @@ -15794,17 +16127,17 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aCQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet, /area/security/detectives_office) "aCR" = ( @@ -15814,6 +16147,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet, /area/security/detectives_office) "aCS" = ( @@ -15824,6 +16160,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet, /area/security/detectives_office) "aCT" = ( @@ -15831,18 +16170,24 @@ c_tag = "Detective's Office"; dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aCU" = ( /obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/research) "aCV" = ( @@ -15892,9 +16237,6 @@ /obj/structure/rack, /obj/item/clothing/suit/straight_jacket, /obj/item/clothing/mask/muzzle, -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel/white, /area/security/brig) "aCZ" = ( @@ -15904,9 +16246,6 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 }, @@ -15919,9 +16258,6 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/structure/sink{ pixel_y = 22 }, @@ -15953,6 +16289,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/effect/turf_decal/trimline/purple/filled/line, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/research) "aDd" = ( @@ -15964,12 +16303,13 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "aDe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/line, -/turf/open/floor/plasteel/white, -/area/science/research) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "robotics shutters" + }, +/turf/open/floor/plating, +/area/hallway/primary/fore) "aDf" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -15984,10 +16324,6 @@ "aDg" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/hor/private) -"aDh" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood, -/area/crew_quarters/heads/hor/private) "aDi" = ( /obj/structure/cable{ icon_state = "1-4" @@ -16096,6 +16432,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/science/research) "aDt" = ( @@ -16163,75 +16500,53 @@ /turf/open/floor/plasteel, /area/science/lab) "aDz" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 8 + dir = 6 }, /turf/open/floor/plasteel/white, /area/science/research) "aDA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - dir = 8; - name = "Research and Development Desk"; - req_one_access_txt = "7;29" +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 +/obj/effect/turf_decal/tile/purple{ + dir = 8 }, -/obj/machinery/door/firedoor, -/obj/item/pen, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "research_shutters_2"; - name = "research shutters" +/obj/machinery/door/airlock/research{ + id_tag = "ResearchExt"; + name = "Research Division"; + req_one_access_txt = "47" }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/science/lab) "aDB" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "aDC" = ( /obj/machinery/light/small{ brightness = 3; dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDD" = ( /obj/structure/chair/wood/normal{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDE" = ( /obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 }, @@ -16257,6 +16572,9 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/security/detectives_office) "aDH" = ( @@ -16324,6 +16642,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255 + }, /turf/open/floor/plasteel/white, /area/security/brig) "aDP" = ( @@ -16429,7 +16750,6 @@ /turf/open/floor/plasteel/dark, /area/security/brig) "aDX" = ( -/obj/structure/statue/silver/sec, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -16437,6 +16757,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/suit_storage_unit/security, /turf/open/floor/plasteel/dark, /area/security/brig) "aDY" = ( @@ -16499,6 +16820,9 @@ dir = 8; pixel_x = -28 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "aEe" = ( @@ -16630,9 +16954,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, @@ -16665,13 +16986,6 @@ /turf/open/floor/plasteel/dark, /area/science/server) "aEp" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -16682,18 +16996,13 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/door/airlock/research{ - id_tag = "ResearchExt"; - name = "Research Division"; - req_one_access_txt = "47" - }, -/turf/open/floor/plasteel/white, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/science/lab) "aEq" = ( /obj/effect/turf_decal/tile/red{ @@ -16740,16 +17049,17 @@ /turf/open/floor/plasteel, /area/security/brig) "aEv" = ( +/obj/structure/chair/sofa/right, /turf/open/floor/plasteel/grimy, /area/hallway/primary/fore) "aEw" = ( /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/structure/chair/sofa/right, /obj/machinery/light{ dir = 1 }, +/obj/structure/chair/sofa, /turf/open/floor/plasteel/grimy, /area/hallway/primary/fore) "aEx" = ( @@ -16768,9 +17078,6 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aEz" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 @@ -16778,12 +17085,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aEA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, @@ -16899,12 +17206,12 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255 + }, /turf/open/floor/plasteel/white, /area/security/brig) "aEK" = ( @@ -16914,6 +17221,9 @@ /obj/structure/chair/office/dark{ dir = 8 }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255 + }, /turf/open/floor/plasteel/white, /area/security/brig) "aEL" = ( @@ -16996,10 +17306,10 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/loading_area/red, /turf/open/floor/plasteel/dark, /area/security/brig) "aER" = ( -/obj/machinery/suit_storage_unit/security, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -17007,6 +17317,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/loading_area/red, /turf/open/floor/plasteel/dark, /area/security/brig) "aES" = ( @@ -17052,11 +17363,6 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aEW" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/wood, -/area/crew_quarters/heads/hor/private) "aEX" = ( /obj/machinery/camera{ c_tag = "Research Director's Quarters"; @@ -17127,10 +17433,18 @@ "aFe" = ( /obj/machinery/power/apc{ areastring = "/area/science/explab"; + dir = 4; name = "Experimentation Lab APC"; - pixel_y = -24 + pixel_x = 24 }, /obj/structure/cable, +/obj/machinery/button/door{ + id = "telelab"; + name = "Experimentor Blastdoors"; + pixel_x = -8; + pixel_y = -23; + req_access_txt = "19" + }, /turf/open/floor/plasteel, /area/science/explab) "aFf" = ( @@ -17178,9 +17492,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/science/lab) "aFk" = ( @@ -17196,8 +17507,6 @@ "aFm" = ( /obj/structure/table/glass, /obj/item/clothing/mask/cigarette/cigar, -/obj/item/lighter, -/obj/item/clothing/mask/cigarette, /turf/open/floor/plasteel/grimy, /area/hallway/primary/fore) "aFn" = ( @@ -17213,28 +17522,17 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aFo" = ( -/obj/structure/table/wood, -/obj/item/storage/briefcase{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/storage/secure/briefcase{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/camera/detective, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aFp" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/machinery/light/small, +/obj/item/camera/detective, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aFq" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aFr" = ( @@ -17247,17 +17545,11 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aFs" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/plating, /area/security/detectives_office) "aFt" = ( @@ -17318,8 +17610,8 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/blue{ + alpha = 255 }, /turf/open/floor/plasteel/white, /area/security/brig) @@ -17329,23 +17621,18 @@ }, /obj/effect/turf_decal/tile/red, /obj/structure/bed/roller, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plasteel/white, /area/security/brig) "aFA" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "1-2" }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/brig) +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "aFB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/computer/security{ dir = 4 }, @@ -17359,23 +17646,14 @@ /area/security/brig) "aFC" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plasteel, /area/security/brig) "aFD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/brig) +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "aFE" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 6 }, @@ -17428,6 +17706,9 @@ name = "Station Intercom"; pixel_y = -28 }, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/research) "aFO" = ( @@ -17447,9 +17728,15 @@ /turf/open/floor/plasteel, /area/science/explab) "aFQ" = ( -/obj/machinery/door/poddoor/preopen, /obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + sortType = 12 + }, /turf/open/floor/plasteel, /area/science/research) "aFR" = ( @@ -17463,10 +17750,18 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/poddoor/preopen, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, /turf/open/floor/plasteel, /area/science/research) "aFT" = ( @@ -17476,31 +17771,23 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aFU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/lab) "aFV" = ( -/obj/structure/table, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/scanning_module, -/obj/item/stock_parts/scanning_module, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/micro_laser, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 }, /obj/machinery/light{ dir = 4 }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/science/lab) "aFW" = ( /obj/structure/cable{ @@ -17516,10 +17803,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/effect/turf_decal/tile/purple{ dir = 8 }, /turf/open/floor/plasteel/white, @@ -17584,9 +17875,6 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plasteel/white, /area/security/brig) "aGe" = ( @@ -17594,16 +17882,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plasteel/white, /area/security/brig) "aGf" = ( @@ -17618,15 +17897,6 @@ /obj/item/radio/intercom{ pixel_y = -26 }, -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/medical"; - dir = 4; - name = "Medical Security Checkpoint APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/plasteel/white, /area/security/brig) "aGg" = ( @@ -17663,15 +17933,17 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/requests_console{ + department = "Security"; + name = "Security RC"; + pixel_y = -32 + }, /turf/open/floor/plasteel, /area/security/brig) "aGj" = ( /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -17773,12 +18045,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/tile/blue{ + alpha = 255 }, /turf/open/floor/plasteel/white, /area/security/brig) @@ -17817,15 +18086,6 @@ "aGx" = ( /turf/open/floor/plasteel/dark, /area/security/courtroom) -"aGy" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore) "aGz" = ( /obj/structure/cable{ icon_state = "4-8" @@ -17836,9 +18096,6 @@ /turf/open/floor/plating, /area/maintenance/fore) "aGA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/airlock/maintenance{ name = "Experimentation Lab Maintenance"; req_access_txt = "8" @@ -17920,6 +18177,21 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, /turf/open/floor/plasteel, /area/science/lab) "aGH" = ( @@ -17943,13 +18215,6 @@ /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, /obj/item/hand_labeler, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_y = -30; - receive_ore_updates = 1 - }, /obj/structure/table, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -17967,22 +18232,33 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aGK" = ( -/obj/item/multitool, /obj/structure/table, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/micro_laser, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/item/multitool, +/obj/item/clothing/glasses/science, /obj/machinery/button/door{ id = "research_shutters_2"; name = "research shutters control"; - pixel_x = -7; - pixel_y = -26; + pixel_x = 23; + pixel_y = -27; req_access_txt = "7" }, -/obj/structure/sign/warning/nosmoking{ - pixel_x = 30 - }, -/obj/item/clothing/glasses/science, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/science/lab) "aGL" = ( @@ -18006,7 +18282,6 @@ /area/hallway/primary/fore) "aGM" = ( /obj/structure/table/glass, -/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb, /turf/open/floor/plasteel/grimy, /area/hallway/primary/fore) "aGN" = ( @@ -18114,10 +18389,12 @@ /area/security/brig) "aGX" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, /obj/structure/cable{ icon_state = "0-8" }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/security/brig) "aGY" = ( @@ -18126,10 +18403,10 @@ req_access_txt = "2" }, /obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/white, /area/security/brig) "aGZ" = ( @@ -18165,9 +18442,6 @@ req_access_txt = "63" }, /obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -18313,25 +18587,23 @@ dir = 8; light_color = "#e8eaff" }, -/turf/open/floor/engine, -/area/science/explab) -"aHp" = ( /obj/machinery/rnd/experimentor, /turf/open/floor/engine, /area/science/explab) +"aHp" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/science/research) "aHq" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/explab) -"aHr" = ( -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 + dir = 5 }, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 1 +/turf/open/floor/plasteel/white, +/area/science/research) +"aHr" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 }, /turf/open/floor/plasteel/white, /area/science/research) @@ -18347,6 +18619,13 @@ /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 4 }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, /turf/open/floor/plasteel/white, /area/science/research) "aHt" = ( @@ -18365,7 +18644,7 @@ /turf/open/floor/plasteel, /area/science/lab) "aHu" = ( -/obj/structure/chair/sofa/left{ +/obj/structure/chair/sofa{ dir = 1 }, /turf/open/floor/plasteel/grimy, @@ -18506,12 +18785,11 @@ /turf/closed/wall/r_wall, /area/lawoffice) "aHN" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 + dir = 8 }, /turf/open/floor/plasteel/white, /area/science/lab) @@ -18577,11 +18855,15 @@ /turf/open/floor/plasteel, /area/security/brig) "aHX" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Lounge" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 }, -/turf/open/floor/wood, -/area/hallway/primary/fore) +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aHY" = ( /turf/open/floor/wood, /area/hallway/primary/fore) @@ -18601,15 +18883,19 @@ /turf/open/floor/plasteel, /area/storage/art) "aIb" = ( -/obj/machinery/light{ +/obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, +/obj/machinery/light, /turf/open/floor/plasteel/white, -/area/hallway/primary/fore) +/area/science/research) "aIc" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/hallway/primary/fore) "aId" = ( @@ -18630,6 +18916,9 @@ dir = 6 }, /obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/security/prison) "aIe" = ( @@ -18947,12 +19236,12 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/security/brig) "aIs" = ( @@ -18974,6 +19263,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aIu" = ( @@ -18990,6 +19282,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 9 }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aIv" = ( @@ -19048,8 +19346,7 @@ pixel_y = 24 }, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plasteel/grimy, /area/lawoffice) @@ -19298,53 +19595,37 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/security/brig) "aIY" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/landmark/xmastree/rdrod, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hor) -"aIZ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "privacy shutter" }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) "aJa" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, /turf/open/floor/plasteel/white, /area/science/research) -"aJb" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "aJc" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -19394,12 +19675,12 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/light{ - dir = 4 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/white, /area/science/research) "aJh" = ( @@ -19545,12 +19826,8 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"aJB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plating, -/area/maintenance/fore) "aJC" = ( -/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /turf/open/floor/plating, /area/maintenance/fore) "aJD" = ( @@ -19612,15 +19889,24 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aJJ" = ( -/obj/machinery/door/poddoor/preopen, /obj/effect/turf_decal/delivery, /obj/structure/sign/departments/xenobio{ pixel_x = -32; pixel_y = -32 }, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, /turf/open/floor/plasteel, /area/science/research) "aJK" = ( @@ -19657,6 +19943,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central6"; + location = "fore3" + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aJN" = ( @@ -19668,7 +19958,7 @@ }, /obj/item/storage/box/lights, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "aJP" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -19697,13 +19987,10 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, /turf/open/floor/plasteel/white, /area/science/research) "aJS" = ( @@ -19749,6 +20036,9 @@ /obj/machinery/light{ dir = 8 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) "aJX" = ( @@ -19770,16 +20060,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/structure/chair/office/light{ +/obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/corner, /turf/open/floor/plasteel/white, /area/science/lab) "aJZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -19836,12 +20122,12 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "aKe" = ( @@ -19918,9 +20204,17 @@ /turf/open/floor/plating, /area/quartermaster/storage) "aKo" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/quartermaster/miningoffice) +/obj/docking_port/stationary{ + dir = 4; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + roundstart_template = /datum/map_template/shuttle/labour/box; + width = 9 + }, +/turf/open/space/basic, +/area/space) "aKp" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -19936,29 +20230,18 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aKr" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "2-4" }, /turf/open/floor/plating, -/area/maintenance/fore) -"aKs" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/fore) -"aKt" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore) +/area/maintenance/fore/secondary) "aKu" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 1 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, /turf/open/floor/plasteel, /area/security/brig) "aKv" = ( @@ -20023,10 +20306,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/corner{ +/obj/effect/turf_decal/trimline/purple/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/purple/line{ +/obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -20051,8 +20334,11 @@ /turf/open/floor/plasteel/white, /area/science/explab) "aKB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 4 @@ -20060,7 +20346,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aKC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -20069,9 +20355,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aKD" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, @@ -20081,12 +20364,12 @@ /obj/effect/turf_decal/trimline/purple/corner{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aKE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, @@ -20096,59 +20379,61 @@ /obj/effect/turf_decal/trimline/purple/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aKF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 1 + }, /obj/effect/turf_decal/trimline/purple/corner{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aKG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, /obj/effect/turf_decal/trimline/purple/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aKI" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -20168,12 +20453,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aKJ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aKK" = ( @@ -20183,10 +20463,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 1; - sortType = 12 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, @@ -20196,26 +20472,10 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/science/research) -"aKL" = ( -/obj/machinery/computer/med_data, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "aKM" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags, -/obj/item/clothing/gloves/color/latex, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20226,6 +20486,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/computer/med_data, /turf/open/floor/plasteel/dark, /area/security/brig) "aKN" = ( @@ -20275,29 +20536,25 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/security/brig) "aKU" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"aKV" = ( /obj/effect/turf_decal/tile/red{ - dir = 8 + dir = 4 }, +/obj/structure/statue/silver/sec, +/turf/open/floor/plasteel, +/area/security/brig) +"aKV" = ( /obj/machinery/light{ dir = 4; light_color = "#c1caff" @@ -20308,6 +20565,9 @@ pixel_x = 32; pixel_y = -32 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, /turf/open/floor/plasteel, /area/security/brig) "aKW" = ( @@ -20473,19 +20733,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"aLn" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple, -/obj/item/radio/intercom{ - dir = 1; - name = "Station Intercom"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "aLo" = ( /obj/machinery/power/apc{ areastring = "/area/quartermaster/miningoffice"; @@ -20509,19 +20756,11 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/command{ - name = "Emergency Escape"; - req_access_txt = "20" +/obj/structure/cable{ + icon_state = "1-8" }, /turf/open/floor/plating, -/area/maintenance/fore) -"aLq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fore) +/area/maintenance/fore/secondary) "aLr" = ( /obj/structure/cable{ icon_state = "1-2" @@ -20529,38 +20768,28 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/research) "aLs" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, @@ -20581,22 +20810,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aLu" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, /obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aLv" = ( -/obj/machinery/light{ - dir = 8 + dir = 4 }, /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -20610,24 +20826,8 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 10 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central6"; - location = "fore3" - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"aLx" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "aLy" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -20712,6 +20912,12 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) "aLE" = ( @@ -20727,8 +20933,7 @@ }, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plating, /area/security/brig) @@ -20749,6 +20954,12 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) "aLH" = ( @@ -20766,6 +20977,9 @@ /obj/effect/turf_decal/stripes/red/corner{ dir = 8 }, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "aLI" = ( @@ -20790,6 +21004,9 @@ /obj/effect/turf_decal/stripes/red/corner{ dir = 4 }, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "aLK" = ( @@ -21015,7 +21232,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating, /area/maintenance/fore) -"aMj" = ( +"aMk" = ( /obj/machinery/vending/cola/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -21030,21 +21247,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) -"aMk" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/fore) "aMl" = ( /obj/structure/cable{ icon_state = "1-2" @@ -21060,25 +21262,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/purple/filled/line{ +/obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 4 }, /turf/open/floor/plasteel/white, /area/science/lab) -"aMn" = ( -/obj/structure/bodycontainer/morgue, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "aMo" = ( /obj/structure/bodycontainer/morgue{ dir = 8 @@ -21130,7 +21318,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aMr" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/layer1{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, /turf/open/floor/plating, @@ -21173,6 +21361,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "aMx" = ( @@ -21441,10 +21633,14 @@ /obj/structure/bed, /obj/item/bedsheet/qm, /obj/item/coin/twoheaded{ - name = "quarter" + name = "quarter"; + pixel_x = 5; + pixel_y = 1 }, /obj/item/coin/twoheaded{ - name = "quarter" + name = "quarter"; + pixel_x = 6; + pixel_y = -2 }, /turf/open/floor/carpet/orange, /area/quartermaster/qm/private) @@ -21520,15 +21716,11 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"aNd" = ( +"aNe" = ( /obj/structure/bed, /obj/item/bedsheet/captain, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aNe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) "aNf" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -21544,11 +21736,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aNg" = ( -/obj/structure/dresser, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/item/card/id/captains_spare, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "aNh" = ( @@ -21565,25 +21753,13 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aNi" = ( -/obj/structure/table/wood, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/aicard, -/obj/item/reagent_containers/food/drinks/flask/gold{ - pixel_y = 5 +/obj/structure/dresser, +/obj/machinery/status_display/ai{ + pixel_y = 32 }, +/obj/item/card/id/captains_spare, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aNj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore) "aNk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -21591,24 +21767,15 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/fore) "aNl" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"aNm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 4 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/fore) @@ -21649,6 +21816,7 @@ id = "Cell 1"; name = "Cell 1 Locker" }, +/obj/effect/turf_decal/box/white, /turf/open/floor/plasteel, /area/security/brig) "aNr" = ( @@ -21668,6 +21836,7 @@ id = "Cell 2"; name = "Cell 2 Locker" }, +/obj/effect/turf_decal/box/white, /turf/open/floor/plasteel, /area/security/brig) "aNt" = ( @@ -21681,6 +21850,9 @@ dir = 1 }, /obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "aNu" = ( @@ -21856,7 +22028,7 @@ pixel_y = -28 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aNK" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -22072,18 +22244,17 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aOd" = ( -/obj/effect/landmark/start/captain, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) "aOe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/carpet/royalblue, +/obj/effect/landmark/start/captain, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "aOf" = ( /turf/open/floor/carpet/royalblue, /area/crew_quarters/heads/captain/private) -"aOg" = ( +"aOh" = ( /obj/structure/chair/comfy/brown{ color = "#66b266"; dir = 1 @@ -22091,59 +22262,18 @@ /obj/effect/landmark/start/captain, /turf/open/floor/carpet/royalblue, /area/crew_quarters/heads/captain/private) -"aOh" = ( -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) -"aOi" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"aOj" = ( -/obj/item/storage/toolbox/artistic, -/turf/open/floor/plating, -/area/maintenance/fore) -"aOk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, -/area/maintenance/fore) -"aOl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) "aOm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/research) "aOo" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/power/apc{ - areastring = "/area/science/lab"; - dir = 8; - name = "Research and Development Lab APC"; - pixel_x = -26; - pixel_y = 3 - }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, @@ -22437,56 +22567,30 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aOQ" = ( +"aOR" = ( /obj/machinery/suit_storage_unit/captain, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aOR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/carpet/royalblue, -/area/crew_quarters/heads/captain/private) "aOS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /turf/open/floor/carpet/royalblue, /area/crew_quarters/heads/captain/private) -"aOT" = ( +"aOU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, /turf/open/floor/carpet/royalblue, /area/crew_quarters/heads/captain/private) -"aOU" = ( -/obj/structure/closet/secure_closet/captains, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) "aOV" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/hop) "aOW" = ( /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload) -"aOX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload) "aOY" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/structure/cable{ icon_state = "0-4" }, @@ -22494,6 +22598,9 @@ /area/ai_monitored/turret_protected/ai_upload) "aOZ" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, /obj/structure/cable{ icon_state = "0-8" }, @@ -22502,28 +22609,10 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai_upload) -"aPa" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aPb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "aPc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -22543,19 +22632,13 @@ /obj/effect/turf_decal/trimline/purple/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aPd" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/science/lab) "aPe" = ( @@ -22568,9 +22651,15 @@ /turf/open/floor/plasteel/white, /area/science/explab) "aPf" = ( -/obj/machinery/door/poddoor/preopen, -/obj/effect/turf_decal/trimline/purple/filled/line, -/turf/open/floor/plasteel/white, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/science/research) "aPg" = ( /obj/effect/turf_decal/tile/purple{ @@ -22657,12 +22746,6 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"aPo" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "aPp" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -22703,10 +22786,6 @@ /obj/structure/cable{ icon_state = "0-4" }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /turf/open/floor/plating, /area/quartermaster/qm) "aPt" = ( @@ -22833,28 +22912,12 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"aPI" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/machinery/door/window/eastright, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) -"aPJ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/crew_quarters/heads/captain/private) "aPK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/security/armory) -"aPL" = ( +"aPM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /mob/living/simple_animal/crab{ @@ -22863,19 +22926,7 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aPM" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/camera{ - c_tag = "Captain's Quarters"; - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) "aPO" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/radio/intercom{ - pixel_x = -25 - }, /turf/open/floor/wood, /area/crew_quarters/heads/hor/private) "aPP" = ( @@ -22891,10 +22942,6 @@ /turf/open/floor/carpet/black, /area/crew_quarters/heads/hor/private) "aPR" = ( -/obj/machinery/porta_turret/ai, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload) -"aPS" = ( /obj/machinery/light{ dir = 1; light_color = "#cee5d2" @@ -22904,50 +22951,76 @@ "aPT" = ( /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) -"aPU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) "aPV" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/central) +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) "aPW" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/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/effect/turf_decal/trimline/purple/line{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aPX" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aPY" = ( @@ -22974,7 +23047,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aPZ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -22982,10 +23055,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 19 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -22999,36 +23068,21 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aQa" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aQa" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/light{ + dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQb" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23053,7 +23107,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQc" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23076,21 +23130,11 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQd" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 21 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -23101,8 +23145,17 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQe" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23128,7 +23181,7 @@ sortType = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQf" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23153,8 +23206,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/landmark/observer_start, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQg" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23179,7 +23233,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQh" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23202,7 +23256,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23227,7 +23281,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQj" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -23253,7 +23307,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQk" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23278,7 +23332,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23302,20 +23356,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"aQm" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=fore1"; - location = "central5" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQn" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -23419,15 +23460,6 @@ "aQA" = ( /turf/closed/wall/r_wall, /area/maintenance/department/cargo) -"aQB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore) "aQC" = ( /obj/structure/cable{ icon_state = "1-2" @@ -23442,14 +23474,11 @@ /turf/closed/wall, /area/crew_quarters/heads/captain/private) "aQE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "aQF" = ( -/obj/machinery/light{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "aQG" = ( @@ -23488,34 +23517,12 @@ /obj/structure/cable, /turf/open/floor/carpet/black, /area/crew_quarters/heads/hor/private) -"aQK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fore) "aQL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /turf/open/floor/plating, /area/maintenance/fore) -"aQM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"aQN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload) "aQO" = ( /obj/structure/cable{ icon_state = "1-2" @@ -23534,7 +23541,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aQP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -23591,6 +23598,9 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "aQV" = ( @@ -23604,29 +23614,26 @@ /turf/open/floor/plasteel, /area/security/courtroom) "aQW" = ( -/obj/structure/table/glass, -/obj/item/storage/box/monkeycubes, -/obj/machinery/status_display/ai{ - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -29 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/item/radio/headset/headset_medsci, -/obj/item/flashlight/pen{ - pixel_x = 4; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/item/flashlight/pen{ - pixel_x = 4; - pixel_y = 3 +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/genetics) +/area/science/research) "aQX" = ( /obj/effect/turf_decal/tile/red, /obj/machinery/vending/cigarette, @@ -23676,9 +23683,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 @@ -23689,12 +23693,11 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) "aRf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel, @@ -23724,6 +23727,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "aRj" = ( @@ -23739,8 +23745,11 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/lootdrop/grille_or_trash, /obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, /turf/open/floor/plating, /area/maintenance/fore) "aRm" = ( @@ -23748,18 +23757,14 @@ /turf/closed/wall/r_wall, /area/maintenance/department/cargo) "aRn" = ( -/obj/machinery/door/airlock/command{ - name = "Emergency Escape"; - req_access_txt = "20" - }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore) +/area/maintenance/fore/secondary) "aRo" = ( /obj/structure/table/wood, /obj/effect/turf_decal/tile/red{ @@ -23779,18 +23784,17 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "aRp" = ( +/obj/machinery/door/airlock/command{ + name = "Emergency Escape"; + req_access_txt = "20" + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/crew_quarters/heads/captain/private"; - name = "Captain's Quarters APC"; - pixel_y = -24 +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/wood, +/turf/open/floor/plating, /area/crew_quarters/heads/captain/private) "aRq" = ( /obj/effect/turf_decal/tile/red, @@ -23804,22 +23808,11 @@ /turf/open/floor/plasteel, /area/security/range) "aRr" = ( -/obj/item/kirbyplants/random, +/obj/structure/curtain{ + icon_state = "closed" + }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aRs" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "aRt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 8 @@ -23830,26 +23823,25 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/hop/private) "aRv" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/item/kirbyplants/random, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop/private) +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) "aRw" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"aRx" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-4" }, /obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai_upload) -"aRx" = ( +"aRy" = ( /obj/structure/cable{ icon_state = "2-8" }, @@ -23871,10 +23863,7 @@ /obj/effect/spawner/lootdrop/aimodule_harmless, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) -"aRy" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aRz" = ( +"aRA" = ( /obj/machinery/computer/upload/borg, /obj/structure/window/reinforced{ dir = 8 @@ -23893,35 +23882,17 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) -"aRA" = ( +"aRB" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/holopad, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) -"aRB" = ( -/obj/machinery/computer/upload/ai, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 2; - icon_state = "right"; - layer = 3.1; - name = "Upload Console Window"; - req_access_txt = "16" - }, +"aRC" = ( /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) -"aRC" = ( +"aRD" = ( /obj/structure/cable{ icon_state = "2-4" }, @@ -23941,18 +23912,6 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) -"aRD" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload) "aRE" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -23963,185 +23922,33 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"aRF" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "aRG" = ( -/turf/closed/wall, -/area/asteroid/nearstation) -"aRH" = ( -/turf/closed/wall, -/area/crew_quarters/bar/atrium) -"aRI" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/crew_quarters/bar/atrium) -"aRJ" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aRK" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aRL" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aRM" = ( -/obj/machinery/computer/security/telescreen/entertainment, -/turf/closed/wall, -/area/crew_quarters/bar) -"aRN" = ( -/turf/closed/wall, -/area/crew_quarters/bar) -"aRO" = ( -/turf/closed/wall, -/area/hydroponics) -"aRP" = ( -/obj/structure/sign/departments/botany, -/turf/closed/wall, -/area/hydroponics) -"aRQ" = ( -/obj/machinery/smartfridge/food, -/turf/open/floor/plasteel, -/area/hydroponics) -"aRR" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hydroponics) -"aRS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Hydroponics Module"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aRU" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Hydroponics Module"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) "aRV" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"aRW" = ( -/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/machinery/vending/coffee, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aRX" = ( /obj/structure/chair{ dir = 8; @@ -24151,12 +23958,19 @@ /area/security/courtroom) "aRY" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/structure/cable{ + icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -24167,15 +23981,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central7"; - location = "central6" +/mob/living/simple_animal/bot/cleanbot{ + auto_patrol = 1; + icon_state = "cleanbot1"; + name = "Mopficcer Sweepsky" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aRZ" = ( /turf/closed/wall, /area/hallway/primary/central) @@ -24332,55 +24144,39 @@ "aSq" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/captain) -"aSr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) "aSs" = ( -/obj/structure/dresser, -/obj/item/radio/intercom{ - pixel_y = 28 +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/turf/open/floor/carpet/blue, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, /area/crew_quarters/heads/hop/private) "aSt" = ( /turf/closed/wall/r_wall, /area/hallway/secondary/command) "aSu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload) -"aSv" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-8" }, /obj/structure/table, /obj/structure/window/reinforced, -/obj/item/aiModule/supplied/quarantine, -/obj/item/aiModule/reset, +/obj/item/aiModule/supplied/freeform, /obj/structure/window/reinforced{ dir = 1; pixel_y = 1 }, -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Advanced Modules"; +/obj/machinery/door/window/westleft{ + name = "Freeform Module"; req_access_txt = "20" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) +"aSv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) "aSw" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -24390,12 +24186,12 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aSx" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, /turf/open/floor/plasteel/dark, @@ -24415,15 +24211,27 @@ /area/security/checkpoint/science) "aSz" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/ai_slipper{ + uses = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 + dir = 6 }, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aSA" = ( -/obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, @@ -24431,50 +24239,25 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aSB" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/obj/structure/table, -/obj/structure/window/reinforced, -/obj/item/aiModule/supplied/freeform, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/machinery/door/window/westleft{ - name = "Freeform Module"; - req_access_txt = "20" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aSC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aSD" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 1 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -24497,162 +24280,29 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aSF" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aSG" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aSH" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aSI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aSJ" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/sign/barsign{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aSK" = ( -/obj/structure/chair/stool/bar, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aSL" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/item/storage/box/matches{ - pixel_y = 5 - }, -/obj/item/lighter, -/obj/machinery/camera{ - c_tag = "Bar" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSM" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/structure/sign/plaques/deempisi{ - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSN" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/requests_console{ - department = "Bar"; - departmentType = 2; - pixel_y = 30; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSO" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/crew_quarters/bar"; - dir = 1; - name = "Bar APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSP" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/chem_dispenser/drinks{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/light_switch{ - pixel_x = 25 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northright, -/obj/machinery/door/window/southright{ - name = "Hydrophonic's Front Desk"; - req_access_txt = "35" - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSR" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/hallway/primary/central) "aSS" = ( -/obj/machinery/chem_master/condimaster, -/obj/effect/turf_decal/tile/green{ - dir = 8 +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Outer Window" }, +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Genetics Desk"; + req_access_txt = "5;9" + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/pen, /turf/open/floor/plasteel, -/area/hydroponics) +/area/medical/genetics) "aST" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/purple, @@ -24669,91 +24319,6 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"aSV" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced, -/obj/machinery/door/window/westright{ - name = "Hydrophonic's Delivery"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSW" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSX" = ( -/turf/open/floor/plasteel, -/area/hydroponics) -"aSY" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSZ" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Hydroponics" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hydroponics) -"aTa" = ( -/turf/open/floor/plating, -/area/maintenance/central) -"aTb" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aTc" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - pixel_y = 28 - }, -/obj/item/stack/sheet/metal/five, -/obj/item/stack/cable_coil/random/five, -/obj/machinery/power/apc{ - areastring = "/area/security/vacantoffice/a"; - dir = 8; - name = "Vacant Commissary APC"; - pixel_x = -27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/vacantoffice/a) -"aTd" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"aTe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm{ - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) "aTf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24817,18 +24382,17 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aTn" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aTo" = ( /obj/structure/chair{ dir = 4 @@ -24882,7 +24446,7 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aTu" = ( +"aTv" = ( /obj/machinery/disposal/deliveryChute, /obj/structure/disposalpipe/trunk{ dir = 1 @@ -24892,13 +24456,7 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aTv" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) -"aTw" = ( +"aTx" = ( /obj/structure/displaycase/captain, /obj/machinery/light_switch{ pixel_x = -28 @@ -24908,10 +24466,7 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aTx" = ( -/obj/machinery/light{ - dir = 1 - }, +"aTy" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -24921,7 +24476,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aTy" = ( +"aTz" = ( /obj/structure/noticeboard/captain{ pixel_y = 30 }, @@ -24930,141 +24485,106 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aTz" = ( +"aTA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, /obj/machinery/keycard_auth{ pixel_y = 30 }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aTA" = ( -/obj/machinery/computer/communications{ - dir = 8 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Captain's Desk"; - departmentType = 5; - name = "Captain RC"; - pixel_x = 32 +/obj/machinery/light{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "aTB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/dresser, +/obj/item/radio/intercom{ + pixel_y = 28 + }, /turf/open/floor/carpet/blue, /area/crew_quarters/heads/hop/private) "aTC" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Personnel's Desk"; - departmentType = 5; - name = "Head of Personnel RC"; - pixel_y = 30 +/obj/structure/bed/dogbed/ian, +/obj/item/radio/intercom{ + pixel_y = 28 }, -/mob/living/simple_animal/pet/dog/corgi/Ian, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/heads/hop) "aTD" = ( -/obj/structure/closet/secure_closet/hop, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/carpet/blue, /area/crew_quarters/heads/hop/private) "aTE" = ( -/obj/machinery/camera{ - c_tag = "Research Directors Office Starboard"; +/obj/machinery/light{ dir = 8; - name = "science camera"; - network = list("ss13","rd") + light_color = "#e8eaff" }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aTF" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"aTG" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/obj/effect/turf_decal/loading_area{ +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 }, +/turf/open/floor/plasteel/white, +/area/science/research) +"aTF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"aTG" = ( +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "aTH" = ( -/turf/open/floor/plasteel, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plating, /area/hallway/secondary/command) "aTI" = ( -/obj/item/kirbyplants/random, +/obj/machinery/camera/autoname, /turf/open/floor/plasteel, /area/hallway/secondary/command) "aTJ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/command) -"aTK" = ( -/obj/structure/flora/ausbushes/reedbush, -/turf/open/water{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - }, -/area/hallway/secondary/command) "aTL" = ( /turf/open/water{ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /area/hallway/secondary/command) -"aTM" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/water{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - }, -/area/hallway/secondary/command) -"aTN" = ( +"aTO" = ( /obj/machinery/light{ dir = 8; light_color = "#e8eaff" }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) -"aTO" = ( +"aTP" = ( /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) -"aTP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) "aTQ" = ( /obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aTR" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" + icon_state = "4-8" }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) @@ -25082,58 +24602,13 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"aTT" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aTU" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aTV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) "aTW" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/structure/chair{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aTX" = ( -/obj/structure/chair/stool/bar, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) "aTY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -25154,81 +24629,32 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/effect/turf_decal/trimline/purple/line{ + dir = 1 }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/trimline/purple/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"aTZ" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aUa" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aUb" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aUc" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 8 - }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) "aUd" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, +/obj/effect/turf_decal/tile/red, +/obj/structure/statue/silver/sec, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"aUe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/area/security/brig) "aUg" = ( -/obj/item/storage/toolbox/mechanical, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/security/brig) "aUi" = ( /obj/item/kirbyplants/random, /obj/machinery/camera/autoname{ @@ -25236,120 +24662,54 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"aUj" = ( -/obj/machinery/vending/hydronutrients, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aUk" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hydroponics) "aUl" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/table/glass, +/obj/item/storage/box/monkeycubes, +/obj/machinery/status_display/ai{ + pixel_y = 32 }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel, -/area/hydroponics) -"aUm" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/machinery/light{ - dir = 8 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 }, -/obj/effect/turf_decal/tile/green{ - dir = 8 +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -29 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aUn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Hydroponics Maintenance"; - req_access_txt = "35" +/obj/item/radio/headset/headset_medsci, +/obj/item/flashlight/pen{ + pixel_x = 4; + pixel_y = 3 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/flashlight/pen{ + pixel_x = 4; + pixel_y = 3 }, -/turf/open/floor/plating, -/area/maintenance/central) -"aUo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/central) -"aUp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"aUq" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/central) -"aUr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/fore) +/turf/open/floor/plasteel/white, +/area/medical/genetics) "aUs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Commissary"; - req_access_txt = "12;63;48;50" +/obj/machinery/computer/scan_consolenew, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"aUt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) +/turf/open/floor/plasteel/white, +/area/medical/genetics) "aUu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"aUv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"aUv" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aUw" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aUx" = ( /obj/vehicle/ridden/scooter{ dir = 8 @@ -25373,31 +24733,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) -"aUA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Hydroponics Module"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) "aUB" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -25427,7 +24762,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aUF" = ( /turf/open/floor/plasteel, /area/quartermaster/office) @@ -25443,43 +24778,72 @@ /area/quartermaster/warehouse) "aUI" = ( /obj/effect/turf_decal/stripes/full, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aUJ" = ( /obj/effect/turf_decal/stripes/full, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aUK" = ( /obj/effect/turf_decal/stripes/full, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aUL" = ( -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop/private) +/turf/open/floor/plating, +/area/maintenance/fore) "aUM" = ( -/obj/machinery/holopad, +/obj/structure/curtain{ + icon_state = "closed" + }, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/heads/captain/private) +"aUN" = ( +/obj/machinery/door/airlock/command{ + name = "Emergency Escape"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aUO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 6 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) -"aUN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/fore) -"aUO" = ( +"aUP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -25488,7 +24852,7 @@ }, /turf/closed/wall/r_wall, /area/crew_quarters/heads/captain) -"aUP" = ( +"aUQ" = ( /obj/structure/cable{ icon_state = "0-4" }, @@ -25511,7 +24875,7 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aUQ" = ( +"aUR" = ( /obj/structure/cable{ icon_state = "2-8" }, @@ -25526,75 +24890,83 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aUR" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) "aUS" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/item/aiModule/supplied/quarantine, +/obj/item/aiModule/reset, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Advanced Modules"; + req_access_txt = "20" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aUT" = ( -/obj/machinery/computer/card{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Captain's Office"; - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "aUU" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aUV" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/photocopier, /turf/open/floor/wood, /area/crew_quarters/heads/hop) -"aUV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +"aUW" = ( +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop/private) +"aUX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) -"aUW" = ( -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/hop/private) -"aUX" = ( -/obj/machinery/pdapainter, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aUY" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "aUZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aVa" = ( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/brflowers, /turf/open/floor/grass, /area/hallway/secondary/command) -"aVa" = ( -/turf/open/floor/grass, -/area/hallway/secondary/command) "aVb" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/lavendergrass, /turf/open/floor/grass, /area/hallway/secondary/command) "aVc" = ( @@ -25605,14 +24977,6 @@ /obj/machinery/camera/autoname, /turf/open/floor/plasteel, /area/security/brig) -"aVd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) "aVe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -25624,17 +24988,11 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"aVf" = ( -/obj/effect/landmark/start/assistant, -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/arrows/red{ dir = 1 }, /turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/security/brig) "aVg" = ( /obj/effect/turf_decal/stripes/red/corner{ dir = 1 @@ -25644,189 +25002,51 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) -"aVh" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aVi" = ( -/obj/effect/landmark/start/bartender, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aVj" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aVk" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aVl" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/rag{ - pixel_y = 5 - }, -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 28; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aVm" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hydroponics) "aVn" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Hydroponics Module"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/closed/wall/r_wall, +/area/medical/genetics) "aVo" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Kitchen Botany Shared Airlock"; - req_one_access_txt = "35;28" +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/bar{ - dir = 8 +/obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; + dir = 1; + name = "Genetics Lab APC"; + pixel_y = 24 }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, /turf/open/floor/plasteel/white, -/area/crew_quarters/kitchen) -"aVp" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aVq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/area/medical/genetics) "aVr" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aVs" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aVt" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/central) -"aVu" = ( -/obj/item/radio/intercom{ - pixel_x = 28; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light_switch{ - pixel_x = 28; - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/security/vacantoffice/a) -"aVv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door{ - id = "commissarydoor"; - name = "Commissary Door Lock"; - normaldoorcontrol = 1; - pixel_x = -26; - pixel_y = 6; - specialfunctions = 4 - }, -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"aVw" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "aVx" = ( /obj/structure/cable{ icon_state = "4-8" @@ -25840,6 +25060,7 @@ /obj/machinery/computer/bounty{ dir = 1 }, +/obj/machinery/light, /turf/open/floor/plasteel, /area/quartermaster/storage) "aVy" = ( @@ -25984,26 +25205,46 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "aVM" = ( -/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, /turf/open/floor/plating, -/area/maintenance/fore) +/area/maintenance/fore/secondary) "aVN" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "aVO" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aVP" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aVQ" = ( /obj/structure/window/reinforced, /obj/machinery/airalarm/directional/west, /obj/structure/table/wood, @@ -26014,7 +25255,7 @@ /obj/item/storage/lockbox/medal, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aVQ" = ( +"aVR" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -26023,238 +25264,312 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aVR" = ( +"aVS" = ( /obj/structure/table/wood, /obj/structure/window/reinforced, /obj/item/hand_tele, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aVS" = ( +"aVT" = ( /obj/structure/table/wood, /obj/machinery/door/window/southright, /obj/item/folder/blue, /obj/item/paper_bin, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aVT" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced, -/obj/item/stamp/captain, -/obj/item/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Captain)"; - pixel_x = 28 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) "aVU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aVV" = ( /obj/machinery/light{ dir = 8 }, /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/wood, /area/crew_quarters/heads/hop) -"aVV" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) "aVW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/landmark/start/head_of_personnel, /turf/open/floor/carpet/blue, /area/crew_quarters/heads/hop/private) "aVX" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/stamp/hop, -/turf/open/floor/wood, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, /area/crew_quarters/heads/hop) "aVY" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/light{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 1 + }, +/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 }, /turf/open/floor/plasteel, -/area/hallway/secondary/command) -"aVZ" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/area/hallway/primary/fore) "aWa" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/lavendergrass, +/turf/open/floor/grass, +/area/hallway/secondary/command) +"aWb" = ( /obj/structure/statue/sandstone/venus{ desc = "Lady Greytide. Her bored expression is a similar one to the many assistants that won't gain all access just beside her." }, /turf/open/floor/grass, /area/hallway/secondary/command) -"aWb" = ( -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/hallway/secondary/command) "aWc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/highsecurity{ - name = "AI Upload"; - req_access_txt = "16" - }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aWd" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "aWe" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aWf" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aWg" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/line{ dir = 1 }, -/obj/machinery/vending/boozeomat, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aWh" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /turf/open/floor/plasteel, -/area/hydroponics) +/area/hallway/primary/fore) +"aWf" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aWg" = ( +/obj/machinery/vending/wardrobe/gene_wardrobe, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aWh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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/effect/turf_decal/trimline/purple/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aWi" = ( -/obj/machinery/requests_console{ - department = "Law office"; - pixel_y = 32 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWj" = ( -/obj/structure/table/glass, -/obj/item/paper/guides/jobs/hydroponics, -/obj/item/storage/box/beakers, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWk" = ( -/obj/structure/table/glass, -/obj/item/book/manual/hydroponics_pod_people, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/structure/flora/grass/jungle, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass, +/area/medical/genetics) "aWl" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aWm" = ( +/obj/item/storage/firstaid/fire{ + pixel_x = 4 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + name = "First-Aid Supplies"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aWn" = ( +/obj/item/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/rxglasses{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aWo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/box/bodybags, +/obj/item/clothing/gloves/color/latex, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aWp" = ( +/obj/item/storage/firstaid/toxin{ + pixel_x = 4 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = -4; + pixel_y = 4 }, /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWm" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/tile/green{ +/obj/machinery/camera{ + c_tag = "Medbay Storage"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aWq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWn" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWo" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWq" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aWr" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/central) -"aWs" = ( -/obj/structure/rack, -/obj/item/wrench, -/obj/item/screwdriver, -/obj/machinery/camera{ - c_tag = "Vacant Commissary"; - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "aWt" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -26376,6 +25691,10 @@ /area/quartermaster/office) "aWE" = ( /obj/effect/turf_decal/stripes/full, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, /turf/open/floor/plasteel{ dir = 1; icon_state = "yellowsiding" @@ -26400,15 +25719,11 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aWJ" = ( -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) +/turf/open/floor/plating/asteroid, +/area/maintenance/fore/secondary) "aWK" = ( /turf/open/floor/plasteel, /area/quartermaster/warehouse) @@ -26423,41 +25738,42 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = 24; + pixel_y = -1; + req_access_txt = "31" + }, /turf/open/floor/plasteel, /area/quartermaster/office) "aWM" = ( /turf/closed/wall/r_wall, /area/bridge) "aWN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/door/airlock/command{ name = "Emergency Escape"; - req_access_txt = "19" + req_access_txt = "20" }, -/obj/machinery/door/poddoor/preopen{ - id = "bridgemaintenance"; - name = "Bridge Access Blast door" +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aWO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plating, /area/maintenance/fore) -"aWO" = ( +"aWP" = ( /obj/structure/chair/sofa/corp/left{ dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aWP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/carpet/red, -/area/crew_quarters/heads/captain) "aWQ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -26482,10 +25798,16 @@ /turf/open/floor/plasteel, /area/security/brig) "aWR" = ( -/obj/structure/chair/office/light{ - dir = 1; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/event_spawn, /turf/open/floor/carpet/red, /area/crew_quarters/heads/captain) "aWS" = ( @@ -26499,13 +25821,13 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aWT" = ( -/obj/machinery/vending/cart, -/obj/machinery/camera{ - c_tag = "Head of Personnel's Office"; - dir = 4 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aWU" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -26517,50 +25839,57 @@ /turf/open/floor/plasteel, /area/security/brig) "aWV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"aWW" = ( /obj/machinery/computer/card, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) -"aWW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - name = "Privacy Shutters" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) "aWX" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/secondary/command) "aWY" = ( /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload_foyer) "aWZ" = ( -/obj/machinery/door/airlock{ - name = "Central Emergency Storage" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "privacy shutter" }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"aXa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aXa" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aXb" = ( /obj/machinery/computer/security/telescreen/aiupload{ dir = 4 }, /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload_foyer) -"aXb" = ( +"aXc" = ( /obj/structure/cable{ icon_state = "0-4" }, @@ -26589,34 +25918,6 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) -"aXc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/ai_upload"; - icon_state = "control_stun"; - name = "AI Upload turret control"; - pixel_x = -32; - pixel_y = 28 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload_foyer) "aXd" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -26630,178 +25931,94 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aXe" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aXf" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/purple, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "aXg" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aXh" = ( +/obj/effect/landmark/start/geneticist, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/corner, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aXj" = ( +/obj/structure/flora/tree/palm, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"aXq" = ( +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aXr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=fore2"; + location = "fore1" + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aXs" = ( +/obj/effect/landmark/xeno_spawn, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aXt" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/grass, +/area/medical/genetics) +"aXu" = ( +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/purple/line{ - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aXh" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/mob/living/carbon/monkey/punpun, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aXj" = ( -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXp" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/highcap/five_k{ - dir = 1; - name = "Hydroponics APC"; - pixel_y = 23 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXq" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock{ - name = "Hydroponics Backroom"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXr" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/central/secondary"; - dir = 8; - name = "Central Maintenance APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"aXs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"aXt" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "commissaryshutter"; - name = "Vacant Commissary Shutter" - }, -/obj/structure/noticeboard{ - pixel_y = 31 - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"aXu" = ( -/obj/item/storage/secure/safe{ - pixel_x = 6; - pixel_y = -30 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"aXv" = ( -/obj/machinery/button/door{ - id = "commissaryshutter"; - name = "Commissary Shutter Control"; - pixel_x = 3; - pixel_y = -25 - }, -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "aXw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -26815,9 +26032,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -26828,14 +26042,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXx" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/landmark/start/captain, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aXx" = ( +/obj/machinery/holopad, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "aXy" = ( @@ -26848,6 +26061,13 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 }, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -1; + req_access_txt = "31" + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aXA" = ( @@ -26888,6 +26108,13 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 }, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = 24; + req_access_txt = "31" + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aXE" = ( @@ -26903,6 +26130,10 @@ /area/quartermaster/office) "aXG" = ( /obj/effect/turf_decal/stripes/full, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, /turf/open/floor/plasteel, /area/quartermaster/office) "aXH" = ( @@ -26947,16 +26178,17 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "aXN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" +/obj/effect/turf_decal/tile/purple, +/obj/machinery/camera/autoname{ + dir = 8 }, -/turf/open/floor/plating, -/area/bridge) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aXO" = ( /obj/machinery/camera{ c_tag = "Interrogation room"; @@ -27019,15 +26251,25 @@ /turf/closed/wall, /area/bridge) "aXU" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 28; - pixel_y = 5 +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 }, -/obj/machinery/vending/coffee, -/turf/open/floor/wood, +/turf/open/floor/carpet/red, /area/crew_quarters/heads/captain) "aXV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aXW" = ( /obj/machinery/light{ dir = 8 }, @@ -27036,23 +26278,10 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"aXW" = ( -/turf/open/floor/carpet/red, -/area/crew_quarters/heads/captain) "aXX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/closed/wall/r_wall, +/area/medical/storage) "aXY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, /turf/open/floor/carpet/red, /area/crew_quarters/heads/captain) "aXZ" = ( @@ -27098,158 +26327,79 @@ /turf/open/floor/plasteel, /area/security/brig) "aYc" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/wood, +/obj/structure/bed, +/obj/item/bedsheet/random, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/carpet/blackred, /area/crew_quarters/heads/captain/private) "aYd" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright, -/obj/machinery/door/window/brigdoor/westright{ +/obj/effect/landmark/start/head_of_personnel, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = 6; + pixel_y = -25; req_access_txt = "57" }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - name = "Privacy Shutters" - }, -/obj/machinery/flasher{ - id = "hopflash"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"aYe" = ( -/obj/machinery/door/poddoor/shutters/preopen{ +/obj/machinery/button/door{ id = "hopqueue"; - name = "HoP Queue Shutters" + name = "Queue Shutters Control"; + pixel_x = -4; + pixel_y = -25; + req_access_txt = "57" }, -/obj/effect/turf_decal/loading_area{ - dir = 4 +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 6; + pixel_y = -36 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/obj/machinery/light_switch{ + pixel_x = -4; + pixel_y = -36 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) "aYf" = ( -/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aYi" = ( /obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 1 }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/door/airlock/highsecurity{ - name = "AI Upload Access"; - req_access_txt = "16" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload_foyer) -"aYg" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aYh" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aYi" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aYj" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) "aYk" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" }, -/obj/machinery/door/window/westleft{ - name = "Bar Access"; - req_access_txt = "25" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) +/turf/open/floor/plating, +/area/maintenance/fore) "aYl" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/open/floor/plating, +/area/hallway/primary/fore) "aYm" = ( /obj/structure/chair{ dir = 8 @@ -27281,101 +26431,67 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"aYo" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) "aYp" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYq" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYs" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aYq" = ( +/obj/structure/flora/tree/palm, +/turf/open/floor/grass, +/area/medical/genetics) +"aYs" = ( +/obj/structure/flora/ausbushes/brflowers, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"aYt" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYw" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 }, /turf/open/floor/plasteel, -/area/hydroponics) +/area/hallway/primary/fore) +"aYu" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aYv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aYw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics) "aYx" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/central) +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "aYy" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/central) +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "aYz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -27394,8 +26510,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aYA" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/item/radio/intercom{ @@ -27409,6 +26526,9 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "aYC" = ( @@ -27501,18 +26621,17 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "aYN" = ( -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aYO" = ( /obj/structure/table, /obj/item/flashlight/lamp/green{ @@ -27551,19 +26670,49 @@ /turf/closed/wall, /area/crew_quarters/heads/captain) "aYR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/turf/open/floor/plating, -/area/crew_quarters/heads/captain) +/obj/effect/turf_decal/tile/purple, +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 27 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aYS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, /turf/open/floor/carpet/red, /area/crew_quarters/heads/captain) "aYT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"aYU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-4" @@ -27573,28 +26722,16 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) -"aYU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/captain) "aYV" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/carpet/red, /area/crew_quarters/heads/captain) "aYX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/obj/machinery/vending/wardrobe/cap_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) "aYZ" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -27607,18 +26744,6 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aZb" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "aZc" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -27632,64 +26757,63 @@ name = "Inspector Johnson" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aZd" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aZe" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/primary/fore) "aZf" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "aZg" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 +/obj/structure/table/glass, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "aZh" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/vending/games, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore) "aZi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock{ - name = "Bar Backroom"; - req_access_txt = "25" +/obj/machinery/dna_scannernew, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "aZj" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -27702,95 +26826,103 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aZk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hydroponics) "aZl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aZm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hydroponics) -"aZn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aZo" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/corner, -/turf/open/floor/plasteel, -/area/hydroponics) -"aZp" = ( -/obj/structure/mopbucket, -/turf/open/floor/plating, -/area/maintenance/central) -"aZq" = ( -/turf/closed/wall, -/area/crew_quarters/kitchen/backroom) -"aZr" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=6"; - dir = 6; - freq = 1400; - location = "Kitchen" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/central) -"aZs" = ( /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aZm" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aZn" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aZo" = ( +/obj/item/storage/firstaid/brute{ + pixel_x = 4 + }, +/obj/item/storage/firstaid/brute{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/firstaid/brute{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aZp" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/storage"; + name = "Medbay Storage APC"; + pixel_y = -24 + }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-8" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + pixel_x = 4 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aZq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating, -/area/maintenance/central) -"aZt" = ( -/obj/structure/cable{ - icon_state = "4-8" +/area/security/brig) +"aZr" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 5 }, -/obj/effect/turf_decal/stripes/line{ +/obj/item/pen{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aZu" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/central) -"aZu" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/central) +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aZw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -27810,8 +26942,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aZx" = ( /obj/machinery/power/apc{ areastring = "/area/quartermaster/warehouse"; @@ -27819,13 +26952,12 @@ name = "Cargo Warehouse APC"; pixel_x = 26 }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aZy" = ( @@ -27895,6 +27027,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, /turf/open/floor/plasteel{ icon_state = "yellowsiding" }, @@ -28006,28 +27142,10 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"aZO" = ( -/obj/structure/closet/crate/freezer, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/central) "aZP" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/light/small{ + dir = 1 }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/central) -"aZQ" = ( -/obj/machinery/computer/med_data{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/bridge) -"aZR" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -28039,6 +27157,26 @@ dir = 1 }, /turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aZQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" + }, +/turf/open/floor/plating, +/area/bridge) +"aZR" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/bridge) "aZS" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, @@ -28049,31 +27187,37 @@ /area/security/prison) "aZT" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 + icon_state = "4-8" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/purple/line{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aZU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/carpet/royalblue, +/area/crew_quarters/heads/captain/private) +"aZW" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"aZX" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aZY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ icon_state = "1-2" }, @@ -28093,65 +27237,38 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"aZV" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/barman_recipes, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/clothing/head/that, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aZW" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/smartfridge/drinks{ - icon_state = "boozeomat" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aZX" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aZY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aZZ" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/airlock/command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, /area/hallway/secondary/command) "baa" = ( /obj/effect/turf_decal/tile/red{ @@ -28171,13 +27288,22 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "bac" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/effect/landmark/blobstart, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/maintenance/fore) -"bae" = ( +"baf" = ( +/obj/machinery/computer/med_data{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bag" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -28195,41 +27321,7 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"baf" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "bridgespace"; - name = "Bridge External Shutters"; - pixel_x = -25; - pixel_y = 35; - req_access_txt = "19" - }, -/obj/machinery/button/door{ - id = "bridgedoors"; - name = "Bridge Access Blastdoors"; - pixel_x = -25; - pixel_y = 26; - req_access_txt = "19" - }, -/obj/machinery/button/door{ - id = "bridgemaintenance"; - name = "Bridge Maintenance Blastdoor"; - pixel_x = -35; - pixel_y = 30; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/dark, -/area/bridge) -"bag" = ( +"bah" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -28256,7 +27348,7 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"bah" = ( +"bai" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -28280,27 +27372,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"bai" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "baj" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/effect/turf_decal/tile/red{ @@ -28312,21 +27383,25 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "bak" = ( +/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bal" = ( @@ -28364,37 +27439,14 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "ban" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/obj/item/storage/toolbox/artistic, +/turf/open/floor/plating, +/area/maintenance/fore) "bao" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -28420,165 +27472,104 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"baq" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "bar" = ( -/obj/effect/turf_decal/tile/bar{ +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bat" = ( +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bav" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, -/obj/structure/table/wood/poker, -/obj/item/clothing/head/fedora, -/obj/item/toy/cards/deck{ - pixel_y = 4 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bas" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/obj/structure/table/glass, +/obj/item/storage/box/syringes, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"baw" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/closet/wardrobe/chemistry_white, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"baB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bat" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bau" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bav" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"baw" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bax" = ( -/obj/structure/table/wood, -/obj/item/instrument/accordion, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/theatre"; - dir = 1; - name = "Theatre APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bay" = ( -/obj/structure/closet/secure_closet/bar, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baz" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baB" = ( -/obj/machinery/door/window/southleft{ - name = "Bar Delivery"; - req_access_txt = "25" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) +/turf/open/floor/plating, +/area/maintenance/fore) "baC" = ( -/obj/effect/turf_decal/tile{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/camera{ - c_tag = "Arrivals Hallway Aft"; - dir = 8; - name = "arrivals camera" +/turf/open/floor/plating, +/area/maintenance/fore) +"baD" = ( +/turf/closed/wall, +/area/medical/genetics) +"baE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"baF" = ( +/turf/closed/wall, +/area/medical/storage) +"baG" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"baD" = ( -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hydroponics) -"baE" = ( -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel, -/area/hydroponics) -"baF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hydroponics) -"baG" = ( -/obj/machinery/biogenerator, -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"baH" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"baI" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" }, -/obj/machinery/door/window/southleft{ - name = "Kitchen Delivery"; - req_access_txt = "28" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/turf/open/floor/plasteel/dark, +/area/medical/storage) "baJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -28595,8 +27586,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "baK" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -28738,20 +27730,9 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "baZ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/crew_quarters/heads/hor/private) "bba" = ( /obj/machinery/door/poddoor/preopen{ id = "bridgespace"; @@ -28767,20 +27748,20 @@ /turf/open/floor/plating, /area/bridge) "bbb" = ( -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) +/turf/open/floor/carpet/royalblue, +/area/crew_quarters/heads/captain/private) "bbc" = ( -/obj/machinery/computer/atmos_alert, -/obj/structure/fireaxecabinet{ +/obj/machinery/computer/atmos_control, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/status_display/ai{ pixel_y = 32 }, /turf/open/floor/plasteel/dark, @@ -28808,69 +27789,44 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"bbe" = ( -/obj/machinery/computer/crew{ +"bbf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /turf/open/floor/plasteel/dark, /area/bridge) -"bbf" = ( +"bbg" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 10 }, /turf/open/floor/plasteel/dark, /area/bridge) -"bbg" = ( +"bbh" = ( /obj/structure/chair/office/light{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel/dark, /area/bridge) -"bbh" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/bridge"; - dir = 4; - name = "Bridge APC"; - pixel_x = 27 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/bridge) "bbi" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/obj/structure/closet/secure_closet/captains, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) "bbj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) +"bbk" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -28899,39 +27855,20 @@ /obj/effect/turf_decal/trimline/blue/line, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"bbk" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/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/effect/turf_decal/trimline/blue/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "bbl" = ( -/obj/structure/curtain{ - icon_state = "closed" +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 }, +/obj/machinery/door/window/eastright, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "bbm" = ( +/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "4-8" }, @@ -28956,19 +27893,18 @@ }, /obj/effect/turf_decal/trimline/blue/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/command) "bbn" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" }, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 }, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "bbo" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28977,19 +27913,13 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "bbp" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) "bbq" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bbr" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -29001,22 +27931,23 @@ /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel, /area/hallway/secondary/command) +"bbr" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bbs" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/door/poddoor/preopen{ - id = "bridgedoors"; - name = "Bridge Access Blast door" - }, -/obj/effect/turf_decal/delivery, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -29027,12 +27958,8 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, /turf/open/floor/plasteel/dark, -/area/hallway/secondary/command) +/area/bridge) "bbt" = ( /obj/machinery/light{ dir = 1 @@ -29042,7 +27969,7 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /obj/effect/turf_decal/tile/neutral{ @@ -29050,24 +27977,14 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbv" = ( /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bbw" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbx" = ( /obj/structure/grille, /obj/structure/window/reinforced{ @@ -29091,16 +28008,20 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbz" = ( -/obj/effect/turf_decal/arrows/red, /obj/effect/turf_decal/stripes/red/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/vg_decals/department/sec, +/obj/effect/turf_decal/arrows/red, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbA" = ( /obj/structure/cable{ icon_state = "2-8" @@ -29128,88 +28049,72 @@ codes_txt = "patrol;next_patrol=starboard1"; location = "central7" }, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bbB" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "bbC" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/lootdrop/gambling, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bbD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bbE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bbF" = ( -/obj/structure/musician/piano, -/obj/structure/window/reinforced{ +/obj/structure/table, +/obj/item/book/manual/wiki/chemistry, +/obj/item/book/manual/wiki/grenades, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bbG" = ( -/obj/structure/chair/wood/wings{ +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bbH" = ( -/obj/effect/landmark/start/clown, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bbI" = ( -/obj/structure/table/wood, -/obj/item/lipstick/random, -/obj/machinery/light{ +/obj/machinery/camera{ + c_tag = "Chemistry"; dir = 4; - light_color = "#c1caff" + network = list("ss13","medbay") }, -/obj/structure/sign/poster/contraband/clown{ - pixel_x = 32 +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bbE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"bbH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bbJ" = ( -/obj/item/reagent_containers/food/drinks/shaker, -/obj/structure/table/wood, -/obj/item/stack/spacecash/c10, -/obj/item/stack/spacecash/c100, -/obj/item/gun/ballistic/revolver/doublebarrel, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bbI" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bbJ" = ( +/obj/item/kirbyplants/random, /turf/open/floor/wood, -/area/crew_quarters/bar) -"bbL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/area/crew_quarters/heads/captain/private) +"bbK" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) +/obj/structure/table, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/storage/box/masks, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bbM" = ( -/obj/machinery/light{ - dir = 4 +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera{ + c_tag = "Captain's Quarters"; + dir = 8 }, /turf/open/floor/wood, -/area/crew_quarters/bar) +/area/crew_quarters/heads/captain/private) "bbN" = ( /obj/machinery/door/window/eastright{ dir = 8; @@ -29218,77 +28123,58 @@ /turf/open/floor/plating, /area/maintenance/fore) "bbO" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/wood, +/turf/open/floor/plating, /area/crew_quarters/heads/captain) -"bbP" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hydroponics) "bbQ" = ( -/obj/effect/landmark/start/head_of_personnel, -/obj/machinery/button/door{ - id = "hop"; - name = "Privacy Shutters Control"; - pixel_x = 6; - pixel_y = -25; - req_access_txt = "57" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/button/door{ - id = "hopqueue"; - name = "Queue Shutters Control"; - pixel_x = -4; - pixel_y = -25; - req_access_txt = "57" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 }, -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_x = 6; - pixel_y = -36 - }, -/obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = -36 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/wood, +/turf/open/floor/carpet, /area/crew_quarters/heads/hop) "bbR" = ( -/obj/machinery/vending/hydronutrients, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" }, -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/machinery/requests_console{ + department = "Genetics"; + name = "Genetics Requests Console"; + pixel_x = -32 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/storage/box/disks{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bbS" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bbT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bbS" = ( -/obj/machinery/gibber, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"bbT" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/turf/open/floor/plasteel/white, +/area/medical/genetics) "bbU" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, @@ -29298,23 +28184,28 @@ /turf/open/floor/plasteel, /area/science/storage) "bbV" = ( -/turf/closed/wall, -/area/hallway/secondary/service) +/obj/structure/flora/ausbushes/ywflowers, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) "bbW" = ( /obj/effect/turf_decal/stripes/red/corner{ dir = 4 }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbX" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bbY" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/plasteel, @@ -29375,23 +28266,13 @@ "bce" = ( /turf/closed/wall, /area/quartermaster/office) -"bcf" = ( +"bcg" = ( /obj/machinery/computer/card{ dir = 4 }, /turf/open/floor/carpet, /area/bridge) -"bcg" = ( -/turf/open/floor/carpet, -/area/bridge) -"bch" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table/reinforced, -/turf/open/floor/carpet, -/area/bridge) -"bci" = ( +"bcj" = ( /obj/machinery/computer/cargo{ dir = 4 }, @@ -29400,23 +28281,23 @@ }, /turf/open/floor/plasteel/dark, /area/bridge) -"bcj" = ( -/obj/effect/turf_decal/tile/neutral{ +"bck" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/storage/box/zipties, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bck" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) "bcl" = ( /turf/closed/wall/r_wall, /area/teleporter) @@ -29428,18 +28309,9 @@ /turf/closed/wall/r_wall, /area/bridge/meeting_room) "bco" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/command{ - name = "Council Chamber"; - req_access_txt = "19" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/carpet, -/area/bridge/meeting_room) +/obj/structure/closet/secure_closet/hop, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/hop/private) "bcp" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -29448,7 +28320,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bcq" = ( /obj/structure/grille, /obj/structure/window/reinforced{ @@ -29458,8 +28330,12 @@ /turf/open/floor/plating, /area/maintenance/fore) "bcr" = ( -/turf/closed/wall, -/area/bridge/showroom/corporate) +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bcs" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -29487,14 +28363,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/command{ - name = "E.V.A. Storage"; - req_access_txt = "18" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) "bcy" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -29504,118 +28374,136 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bcz" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "bcA" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central7"; + location = "central6" + }, /turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "bcB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bcD" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "Genetics sorting disposal pipe"; + sortType = 23 + }, /turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bcC" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bcD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bcE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) +/area/hallway/primary/fore) "bcF" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /turf/open/floor/plating, /area/maintenance/fore) -"bcG" = ( -/obj/machinery/reagentgrinder, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bcH" = ( -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bcI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/wood, -/area/crew_quarters/bar) "bcJ" = ( -/obj/machinery/camera{ - c_tag = "Bar Storage"; +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bcK" = ( -/obj/structure/closet/crate/hydroponics, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/plasteel, -/area/hydroponics) +/area/hallway/primary/fore) +"bcK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bcL" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 +/obj/machinery/rnd/production/techfab/department/medical, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 }, -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/medical/storage) "bcM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"bcN" = ( -/mob/living/simple_animal/hostile/retaliate/goat{ - name = "Pete" +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/obj/machinery/power/apc{ + areastring = "/area/maintenance/fore/secondary"; + dir = 4; + name = "Command Maintenance APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "bcO" = ( -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/heads/captain/private) "bcP" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -29674,14 +28562,24 @@ /turf/closed/wall, /area/security/checkpoint/supply) "bcU" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/door/window/brigdoor{ + name = "Justice Chamber"; + req_access_txt = "3" }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating, -/area/maintenance/department/cargo) +/area/security/execution/education) "bcV" = ( /obj/effect/turf_decal/tile{ dir = 1 @@ -29702,6 +28600,23 @@ /obj/effect/turf_decal/tile{ dir = 4 }, +/obj/machinery/disposal/deliveryChute{ + name = "Above Level Mail Slot" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bcX" = ( @@ -29711,7 +28626,6 @@ /obj/effect/turf_decal/tile{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ icon_state = "1-2" @@ -29720,6 +28634,12 @@ pixel_x = 25; pixel_y = 25 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bcY" = ( @@ -29736,6 +28656,12 @@ light_color = "#706891" }, /obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bcZ" = ( @@ -29753,6 +28679,15 @@ pixel_x = 24 }, /obj/structure/table, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bda" = ( @@ -29794,18 +28729,11 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plating, /area/maintenance/department/cargo) -"bdg" = ( -/obj/machinery/computer/communications{ - dir = 4 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/carpet, -/area/bridge) "bdh" = ( /obj/structure/cable{ icon_state = "4-8" @@ -29819,18 +28747,32 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/door/airlock/command{ - name = "Command Hallway"; - req_access_txt = "19" +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bdi" = ( -/obj/machinery/door/window/eastright, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "bridgedoors"; + name = "Bridge Access Blastdoors"; + pixel_x = 26; + pixel_y = 32; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "bridgespace"; + name = "Bridge External Shutters"; + pixel_x = 36; + pixel_y = 32; + req_access_txt = "19" + }, /turf/open/floor/carpet, /area/bridge) -"bdj" = ( +"bdk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, @@ -29846,7 +28788,7 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bdk" = ( +"bdl" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, @@ -29865,31 +28807,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bdl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) "bdm" = ( /obj/effect/turf_decal/arrows/red, /obj/effect/turf_decal/tile/neutral, @@ -29906,6 +28823,10 @@ /area/security/prison) "bdn" = ( /obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, /turf/open/floor/plasteel/grimy, /area/bridge) "bdo" = ( @@ -29923,6 +28844,12 @@ /turf/open/floor/plasteel, /area/security/brig) "bdp" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) +"bdq" = ( /obj/machinery/teleport/hub, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -29936,7 +28863,7 @@ }, /turf/open/floor/plasteel/dark, /area/teleporter) -"bdq" = ( +"bdr" = ( /obj/structure/cable{ icon_state = "0-4" }, @@ -29957,23 +28884,12 @@ }, /turf/open/floor/plasteel, /area/teleporter) -"bdr" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) "bds" = ( +/obj/structure/bed, +/obj/item/bedsheet/hop, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/hop/private) +"bdt" = ( /obj/machinery/button/door{ id = "council blast"; name = "Council Chamber Blast Door Control"; @@ -29985,7 +28901,7 @@ }, /turf/open/floor/carpet, /area/bridge/meeting_room) -"bdt" = ( +"bdu" = ( /obj/structure/chair/comfy/black, /obj/structure/cable{ icon_state = "2-4" @@ -29998,7 +28914,7 @@ }, /turf/open/floor/carpet, /area/bridge/meeting_room) -"bdu" = ( +"bdv" = ( /obj/structure/cable{ icon_state = "1-8" }, @@ -30008,15 +28924,26 @@ }, /turf/open/floor/carpet, /area/bridge/meeting_room) -"bdv" = ( +"bdw" = ( /obj/machinery/holopad, /turf/open/floor/plasteel/grimy, /area/bridge/meeting_room) -"bdw" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge/meeting_room) "bdx" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bdy" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 8; sortType = 15 @@ -30024,28 +28951,19 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"bdy" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ +"bdz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bdz" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"bdA" = ( /obj/structure/showcase/machinery/implanter, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) -"bdA" = ( -/obj/structure/showcase/machinery/microwave, -/obj/structure/table/wood, -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) "bdB" = ( -/obj/item/toy/talking/AI{ - name = "Nanotrasen-brand toy AI"; - pixel_y = 6 - }, +/obj/structure/showcase/machinery/microwave, /obj/structure/table/wood, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) @@ -30053,25 +28971,25 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/light{ + dir = 1 + }, /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bdD" = ( -/obj/structure/showcase/machinery/cloning_pod, +/obj/structure/table/wood, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) "bdE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment{ dir = 5 }, @@ -30085,31 +29003,34 @@ /turf/open/floor/plasteel, /area/security/brig) "bdF" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/airlock/command{ - name = "Vacant Office" - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore) "bdG" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 30 + }, +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice/b) +"bdH" = ( /obj/machinery/airalarm/directional/north, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice/b) -"bdH" = ( +"bdI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/grimy, -/area/security/vacantoffice/b) -"bdI" = ( +/turf/open/floor/plating, +/area/maintenance/fore) +"bdJ" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/metal/fifty, @@ -30126,7 +29047,7 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"bdJ" = ( +"bdK" = ( /obj/machinery/light{ dir = 1 }, @@ -30149,14 +29070,14 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"bdK" = ( +"bdL" = ( /obj/machinery/requests_console{ department = "EVA"; pixel_y = 32 }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"bdL" = ( +"bdM" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -30167,7 +29088,25 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"bdM" = ( +"bdN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bdO" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30178,43 +29117,32 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/camera/motion{ - c_tag = "E.V.A. Storage" +/obj/structure/closet/crate/rcd{ + pixel_y = 4 }, -/obj/machinery/cell_charger, -/obj/structure/table, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 }, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"bdN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/door/window/northleft{ + dir = 2; + name = "RCD Storage"; + pixel_x = 1; + req_access_txt = "19" }, /obj/structure/sign/poster/official/random{ pixel_y = 32 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bdO" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bdP" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bdQ" = ( /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -30236,39 +29164,16 @@ /obj/item/multitool, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) -"bdP" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"bdQ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) "bdR" = ( /obj/effect/turf_decal/stripes/line{ - dir = 4 + dir = 8 }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bdS" = ( -/obj/machinery/door/poddoor/shutters{ - id = "evashutter"; - name = "E.V.A. Storage Shutter" +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bdT" = ( @@ -30276,12 +29181,9 @@ /obj/structure/sign/poster/official/random{ pixel_y = 32 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/science/research) -"bdU" = ( -/obj/machinery/door/window/westright, -/turf/open/floor/wood, -/area/crew_quarters/theatre) "bdV" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable{ @@ -30294,26 +29196,29 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bdW" = ( -/obj/effect/landmark/start/mime, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) "bdX" = ( -/obj/structure/table/wood, -/obj/item/soap/deluxe, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bdY" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/vending/cola/random, -/turf/open/floor/wood, -/area/crew_quarters/bar) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bdZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 @@ -30321,39 +29226,47 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "bea" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/obj/item/shovel/spade, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "beb" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/camera/autoname{ dir = 1 }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bec" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"bed" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bed" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bee" = ( -/obj/machinery/icecream_vat, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "bef" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -30444,6 +29357,11 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "ben" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -30456,9 +29374,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "beo" = ( @@ -30469,23 +29384,32 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bep" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/open/floor/plasteel/white, +/area/medical/genetics) "beq" = ( /obj/effect/turf_decal/tile{ dir = 4 }, /obj/effect/turf_decal/tile, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bes" = ( @@ -30496,6 +29420,12 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "bet" = ( @@ -30510,25 +29440,20 @@ "beu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/department/cargo) -"bev" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge) "bew" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/recharger, /turf/open/floor/carpet, /area/bridge) "bex" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -30548,75 +29473,56 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bey" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridgedoors"; - name = "Bridge Access Blast door" - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/command) "bez" = ( /obj/structure/chair/stool/bar, /turf/open/floor/carpet/black, /area/bridge) "beA" = ( -/obj/machinery/computer/cargo/request{ - dir = 4 +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/bridge) "beB" = ( -/obj/machinery/door/airlock/command{ - name = "Emergency Escape"; - req_access_txt = "20" - }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, +/obj/machinery/light/small, /turf/open/floor/plating, -/area/crew_quarters/heads/captain/private) +/area/maintenance/fore/secondary) "beC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/teleport/station, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 1 }, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/dark, /area/teleporter) -"beD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +"beE" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hydroponics) -"beE" = ( +/area/hallway/primary/fore) +"beF" = ( /obj/structure/chair/wood/normal{ dir = 4 }, @@ -30632,77 +29538,73 @@ }, /turf/open/floor/carpet, /area/bridge/meeting_room) -"beF" = ( -/obj/structure/table/glass, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/carpet, -/area/bridge/meeting_room) "beG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"beH" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 }, /turf/open/floor/carpet, -/area/crew_quarters/theatre) -"beH" = ( -/turf/open/floor/plasteel/grimy, /area/bridge/meeting_room) "beI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, +/obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/plasteel, /area/hallway/secondary/command) "beJ" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/crew_quarters/heads/captain/private"; + name = "Captain's Quarters APC"; + pixel_y = -24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "beK" = ( -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) -"beL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) "beM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) "beN" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/command{ - name = "Teleport Access"; - req_one_access_txt = "17;19" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/teleporter) +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) "beO" = ( -/obj/machinery/vending/wallmed{ - pixel_y = 30 +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/crew_quarters/heads/hop/private"; + dir = 4; + name = "Head of Personnel's Quarters APC"; + pixel_x = 24 }, -/obj/structure/weightmachine/weightlifter, -/turf/open/floor/plasteel/grimy, -/area/security/vacantoffice/b) +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop/private) "beP" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -30725,9 +29627,20 @@ /turf/open/floor/plasteel, /area/security/brig) "beQ" = ( -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) +/turf/closed/wall/r_wall, +/area/maintenance/fore/secondary) "beR" = ( +/obj/structure/closet, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"beS" = ( /obj/structure/cable{ icon_state = "0-4" }, @@ -30740,14 +29653,14 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"beS" = ( +"beT" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"beT" = ( +"beU" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -30757,7 +29670,7 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"beU" = ( +"beV" = ( /obj/structure/cable{ icon_state = "1-8" }, @@ -30775,7 +29688,7 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"beV" = ( +"beW" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -30786,27 +29699,10 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"beW" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"beX" = ( -/obj/effect/landmark/start/bartender, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) "beY" = ( /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -30815,6 +29711,13 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bfa" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bfb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -30823,157 +29726,258 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"bfb" = ( -/obj/machinery/door/poddoor/shutters{ - id = "evashutter"; - name = "E.V.A. Storage Shutter" +"bfd" = ( +/obj/machinery/chem_master, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/machinery/button/door{ - id = "evashutter"; - name = "E.V.A. Storage Shutter Control"; - pixel_y = -24; - req_access_txt = "19" +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bfe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bfc" = ( -/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bff" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bfg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bfh" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bfi" = ( +/obj/machinery/computer/upload/ai, /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/closet/crate/wooden/toy, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bfd" = ( -/obj/structure/window/reinforced, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bfe" = ( -/obj/structure/table/wood, -/obj/item/instrument/guitar, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bff" = ( -/obj/machinery/vending/wardrobe/bar_wardrobe, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bfg" = ( -/obj/machinery/airalarm/directional/south, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bfh" = ( -/obj/machinery/light, -/obj/machinery/chem_master/condimaster{ - desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; - name = "HoochMaster Deluxe"; - pixel_x = -4 +/obj/structure/window/reinforced{ + dir = 1 }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bfi" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood, -/area/crew_quarters/bar) +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + layer = 3.1; + name = "Upload Console Window"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) "bfj" = ( -/obj/machinery/reagentgrinder, +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, /obj/structure/table, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bfk" = ( -/obj/structure/table, -/obj/item/paper/fluff/bee_objectives, -/obj/item/reagent_containers/spray/plantbgone, -/obj/item/reagent_containers/spray/pestspray, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfl" = ( -/obj/machinery/light, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfn" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfo" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfp" = ( -/obj/machinery/vending/wardrobe/hydro_wardrobe, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfr" = ( -/obj/machinery/computer/scan_consolenew, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bfs" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bft" = ( -/obj/machinery/door/window/northleft{ - req_access_txt = "35" - }, -/obj/machinery/door/window/southleft, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/hydroponics) -"bfu" = ( -/obj/machinery/smartfridge/food, /turf/closed/wall, -/area/hydroponics) -"bfv" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance"; - req_access_txt = "28" +/area/medical/genetics/cloning) +"bfl" = ( +/turf/open/floor/grass, +/area/medical/genetics) +"bfm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" }, /turf/open/floor/plating, -/area/maintenance/central) -"bfw" = ( +/area/ai_monitored/turret_protected/ai_upload) +"bfn" = ( +/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/central) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bfo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"bfp" = ( +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bfs" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; + dir = 4; + name = "Morgue APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bft" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"bfu" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bfv" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bfw" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "bfx" = ( /obj/structure/cable{ icon_state = "1-4" @@ -30998,11 +30002,17 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "bfy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/obj/structure/table/glass, +/obj/item/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/bodybags, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "bfz" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, @@ -31022,6 +30032,12 @@ name = "Sorting Maintenance"; req_access_txt = "31" }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "bfC" = ( @@ -31029,9 +30045,6 @@ dir = 8 }, /obj/effect/turf_decal/tile, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bfD" = ( @@ -31047,9 +30060,7 @@ name = "Delivery Office APC"; pixel_x = 28 }, -/obj/structure/cable{ - icon_state = "0-8" - }, +/obj/structure/cable, /turf/open/floor/plasteel, /area/quartermaster/sorting) "bfE" = ( @@ -31065,6 +30076,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plating, /area/maintenance/department/cargo) "bfG" = ( @@ -31080,36 +30092,56 @@ req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "bfJ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" - }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) +/obj/machinery/door/airlock/research{ + id_tag = "AuxGenetics"; + name = "Genetics Access"; + req_access_txt = "9" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/genetics) "bfK" = ( -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) +/obj/structure/stairs, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bfL" = ( +/obj/machinery/computer/cargo/request{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bfM" = ( /obj/structure/chair/office/light{ dir = 4 }, @@ -31128,28 +30160,7 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bfM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) "bfN" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -31170,22 +30181,33 @@ /area/bridge) "bfP" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/command, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 + icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/carpet/black, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, /area/bridge) "bfQ" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/command, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -31202,6 +30224,7 @@ /area/maintenance/fore) "bfS" = ( /obj/structure/table/plasmaglass, +/obj/item/toy/plush/catgirl, /turf/open/floor/carpet/black, /area/crew_quarters/heads/hor/private) "bfT" = ( @@ -31218,27 +30241,30 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 }, /turf/open/floor/plasteel, /area/teleporter) "bfV" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/carpet, /area/security/vacantoffice/b) "bfW" = ( -/obj/structure/table/glass, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/carpet, /area/bridge/meeting_room) "bfX" = ( -/obj/structure/chair/wood/normal{ - dir = 8 - }, +/obj/structure/table/glass, /turf/open/floor/carpet, /area/bridge/meeting_room) "bfY" = ( @@ -31253,17 +30279,28 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bfZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain/private) +"bga" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"bga" = ( +"bgb" = ( /obj/machinery/door/airlock/command{ name = "Corporate Showroom"; req_access_txt = "19" @@ -31280,24 +30317,12 @@ }, /turf/open/floor/plasteel, /area/bridge/showroom/corporate) -"bgb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) "bgc" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -31308,6 +30333,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, @@ -31318,55 +30346,58 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 + dir = 4 }, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) "bgf" = ( /obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/bridge/showroom/corporate"; - dir = 4; - name = "Nanotrasen Corporate Showroom APC"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) -"bgg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/light{ - dir = 4 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 9 }, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bgg" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/carpet, /area/security/vacantoffice/b) "bgh" = ( /obj/structure/table/wood, +/obj/item/paper_bin, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, /turf/open/floor/carpet, /area/security/vacantoffice/b) "bgi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bgj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" + }, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bgj" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) "bgk" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/effect/turf_decal/tile/neutral, @@ -31382,31 +30413,35 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) "bgl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Private Quarters"; + req_access_txt = "57" }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) "bgm" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, /turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) +/area/hallway/primary/fore) "bgn" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bgo" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ @@ -31414,110 +30449,109 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgp" = ( -/turf/closed/wall, -/area/crew_quarters/cafeteria) -"bgq" = ( -/obj/machinery/computer/arcade/battle{ +/area/hallway/primary/fore) +"bgr" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bgr" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bgs" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/landmark/start/chemist, +/obj/structure/chair/office/light, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/machinery/button/door{ + id = "chemistry_shutters_2"; + name = "chemistry shutters control"; + pixel_x = -58; + pixel_y = -26; + req_access_txt = "5; 33" }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bgt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bgu" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bgv" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 +/obj/effect/landmark/start/chemist, +/obj/structure/chair/office/light{ + dir = 8 }, -/obj/machinery/computer/slot_machine, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bgw" = ( /turf/closed/wall, -/area/crew_quarters/kitchen) +/area/medical/morgue) "bgx" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/lab) "bgy" = ( -/obj/machinery/door/window/northright{ - req_access_txt = "35" - }, -/obj/machinery/door/window/southright, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass, +/area/medical/genetics) "bgz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 +/obj/structure/flora/tree/palm, +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/turf/open/floor/grass, +/area/medical/genetics) "bgA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/dark, +/area/medical/storage) "bgB" = ( -/obj/effect/turf_decal/tile/bar{ +/obj/structure/reagent_dispensers/watertank, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bgC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bgC" = ( -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room"; - req_access_txt = "28" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "bgD" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -31549,9 +30583,6 @@ /area/security/checkpoint/supply) "bgG" = ( /obj/effect/turf_decal/tile, -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -31583,6 +30614,9 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "bgJ" = ( @@ -31625,6 +30659,15 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "bgN" = ( @@ -31670,13 +30713,21 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal"; + dir = 4; + name = "Disposal APC"; + pixel_x = 24 + }, +/obj/structure/cable, /turf/open/floor/plating, /area/maintenance/disposal) "bgS" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-4" }, -/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -31696,60 +30747,31 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Command Hallway"; - req_access_txt = "19" - }, +/obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bgU" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) -"bgV" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 6 }, /turf/open/floor/plasteel/dark, /area/bridge) +"bgV" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/carpet, +/area/bridge) "bgW" = ( -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 +/obj/structure/table/glass, +/obj/structure/cable{ + icon_state = "1-8" }, +/obj/item/storage/fancy/donut_box, /turf/open/floor/carpet, /area/bridge/meeting_room) "bgX" = ( -/obj/machinery/shieldwallgen, -/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/teleporter) -"bgY" = ( /obj/item/hand_tele, /obj/structure/table, /obj/effect/turf_decal/tile/neutral{ @@ -31764,17 +30786,32 @@ }, /turf/open/floor/plasteel/dark, /area/teleporter) -"bgZ" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +"bgY" = ( +/obj/machinery/shieldwallgen, +/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/teleporter) +"bgZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bha" = ( -/obj/structure/chair/wood/normal{ +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 1 }, -/obj/machinery/light, /turf/open/floor/carpet, /area/bridge/meeting_room) "bhb" = ( @@ -31786,6 +30823,12 @@ /turf/open/floor/plating, /area/maintenance/fore) "bhc" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bhd" = ( /obj/machinery/door/window/westleft{ name = "Bridge Deliveries"; req_access_txt = "19" @@ -31800,17 +30843,6 @@ }, /turf/open/floor/plasteel, /area/bridge/meeting_room) -"bhd" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Bridge" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/bridge/meeting_room) "bhe" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -31824,20 +30856,11 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"bhf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "bhg" = ( -/obj/structure/showcase/mecha/marauder, -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/medical) "bhh" = ( /obj/machinery/door/window/eastright{ base_state = "left"; @@ -31848,58 +30871,71 @@ /turf/open/floor/plating, /area/maintenance/fore) "bhi" = ( +/obj/structure/showcase/mecha/ripley, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bhj" = ( /obj/machinery/light, /obj/structure/showcase/perfect_employee, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) -"bhj" = ( +"bhk" = ( /obj/machinery/airalarm/directional/south, /obj/structure/showcase/machinery/signal_decrypter, /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) -"bhk" = ( -/obj/structure/showcase/machinery/tv, -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) "bhl" = ( -/obj/machinery/teleport/station, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/disposalpipe/segment, +/obj/structure/chair/office/light{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/teleporter) -"bhm" = ( -/obj/structure/chair/comfy/brown{ - buildstackamount = 0; +/obj/effect/turf_decal/tile{ dir = 1 }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bhm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bho" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, /turf/open/floor/carpet, /area/security/vacantoffice/b) -"bhn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bho" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/security/vacantoffice/b) "bhp" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bhq" = ( /obj/machinery/light, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -31909,7 +30945,7 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"bhq" = ( +"bhr" = ( /obj/structure/window/reinforced{ dir = 8 }, @@ -31943,7 +30979,7 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) -"bhr" = ( +"bhs" = ( /obj/structure/window/reinforced{ dir = 4 }, @@ -31977,20 +31013,22 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) -"bhs" = ( -/obj/effect/turf_decal/stripes/line{ +"bht" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bht" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) "bhu" = ( /obj/structure/grille, @@ -32001,164 +31039,139 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"bhv" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bhw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) "bhx" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_2"; + name = "Chemistry Shutters" }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bhy" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bhz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bhA" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bhB" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) "bhC" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cafeteria"; - dir = 1; - name = "Cafeteria APC"; - pixel_y = 26 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bhD" = ( -/obj/machinery/newscaster{ - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bhE" = ( -/obj/structure/table, -/obj/item/clothing/head/hardhat/cakehat, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bhF" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/table, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhH" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhJ" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhK" = ( -/obj/machinery/vending/wardrobe/chef_wardrobe, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhL" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhM" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/trash/plate, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bhN" = ( /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plating, -/area/maintenance/central) -"bhO" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/landmark/blobstart, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhE" = ( +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/maintenance/central) +/area/medical/storage) +"bhF" = ( +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhH" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bhJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) +"bhK" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) +"bhL" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) +"bhM" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/computer/cloning, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) +"bhN" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) +"bhO" = ( +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bhP" = ( /obj/structure/closet/secure_closet/security/cargo, /obj/machinery/light{ @@ -32231,6 +31244,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, /turf/open/floor/plating, /area/maintenance/disposal) "bhX" = ( @@ -32247,7 +31264,7 @@ /obj/structure/cable, /turf/open/floor/plasteel/dark, /area/security/armory) -"bhY" = ( +"bhZ" = ( /obj/effect/landmark/event_spawn, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -32262,7 +31279,7 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bhZ" = ( +"bib" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ @@ -32277,74 +31294,44 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) -"bia" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Bridge"; - departmentType = 5; - name = "Bridge RC"; - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/bridge) -"bib" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/rack, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = 4 - }, -/obj/item/storage/box/zipties, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/bridge) "bic" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bid" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-2" }, /turf/open/floor/plating, /area/bridge) -"bid" = ( +"bie" = ( /obj/machinery/vending/cigarette, /turf/open/floor/plasteel/grimy, /area/bridge) -"bie" = ( +"bif" = ( /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/grimy, /area/bridge) -"bif" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/grimy, -/area/bridge) "big" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/computer/communications{ + dir = 8 }, -/obj/machinery/door/airlock/public/glass{ - name = "Vault Storage" +/obj/machinery/status_display/ai{ + pixel_y = 32 }, -/turf/open/floor/plasteel, -/area/security/nuke_storage) +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) "bih" = ( /obj/machinery/light{ dir = 1 @@ -32354,65 +31341,97 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bii" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/crew_quarters/cafeteria) -"bij" = ( -/obj/machinery/light{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) +"bij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, /turf/open/floor/plasteel, /area/teleporter) "bik" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bil" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bim" = ( -/obj/structure/table, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bin" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bio" = ( -/obj/structure/window/reinforced{ +/obj/machinery/chem_heater, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 }, -/obj/structure/chair/wood/normal{ +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bil" = ( +/obj/machinery/computer/security/telescreen/vault{ + pixel_y = 30 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"bim" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bin" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + dir = 4; + name = "Chemistry Lab APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bio" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/genetics/cloning"; + dir = 8; + name = "Cloning Lab APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Cloning"; + dir = 4; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bip" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red{ @@ -32429,43 +31448,24 @@ icon_state = "1-8" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/exit/departure_lounge) "biq" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/bar{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bir" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/landmark/start/geneticist, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bis" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"bit" = ( -/turf/closed/wall, -/area/janitor) +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "biu" = ( /obj/structure/cable{ icon_state = "1-2" @@ -32477,7 +31477,7 @@ }, /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "biv" = ( /obj/structure/cable{ icon_state = "1-2" @@ -32589,13 +31589,13 @@ /turf/open/floor/plating, /area/maintenance/disposal) "biG" = ( -/obj/effect/turf_decal/stripes/corner, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "biH" = ( @@ -32613,42 +31613,45 @@ /turf/open/floor/plating, /area/bridge) "biI" = ( -/obj/machinery/door/poddoor/preopen{ - id = "bridgespace"; - name = "bridge external shutters" +/obj/structure/flora/ausbushes/reedbush, +/turf/open/water{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/bridge) +/area/hallway/secondary/command) "biJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/water{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/hallway/secondary/command) +"biK" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall/r_wall, /area/maintenance/central/secondary) -"biK" = ( -/turf/open/floor/plating, -/area/maintenance/central/secondary) "biL" = ( /turf/closed/wall/r_wall, /area/security/nuke_storage) "biM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "2-8" + }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/security/nuke_storage) -"biN" = ( -/turf/closed/wall/r_wall, -/area/gateway) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) "biO" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"biP" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -32658,230 +31661,173 @@ light_color = "#e8eaff" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"biP" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/area/hallway/primary/fore) +"biT" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/structure/chair/office/light{ + dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = 26; + pixel_y = 24; + req_access_txt = "5" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"biU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"biV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"biX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"biZ" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bja" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bjb" = ( +/obj/item/book/manual/wiki/medical_cloning{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/paper/guides/jobs/medical/cloning{ + pixel_x = -7; + pixel_y = 2 + }, /obj/machinery/light{ dir = 8; light_color = "#e8eaff" }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"biQ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) +"bjc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/machinery/light_switch{ + pixel_x = -6; + pixel_y = -25 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bjd" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bje" = ( +/obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, -/area/gateway) -"biR" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/rods/fifty, -/obj/item/storage/toolbox/emergency, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/gateway) -"biS" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/gateway) -"biT" = ( -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"biU" = ( +/area/medical/chemistry) +"bjg" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"biV" = ( -/obj/structure/table/reinforced, -/obj/item/storage/fancy/donut_box, -/obj/machinery/door/poddoor/preopen{ - id = "cafeteria"; - name = "kitchen shutters" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"biW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biX" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biZ" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/stack/packageWrap, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bja" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjb" = ( -/obj/structure/table, -/obj/item/book/manual/chef_recipes, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjc" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bjh" = ( +/obj/machinery/light{ dir = 4 }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bji" = ( /obj/structure/cable{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjd" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bje" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 6 }, /turf/open/floor/plating, -/area/maintenance/central) -"bjf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bjg" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance"; - req_access_txt = "28" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bjh" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/item/storage/bag/tray, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bji" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel, -/area/janitor) +/area/maintenance/department/medical) "bjj" = ( -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics/cloning) +"bjl" = ( /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/camera/autoname{ +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"bjk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/vehicle/ridden/janicart, -/obj/item/key/janitor, /turf/open/floor/plating, -/area/janitor) -"bjl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 22 - }, -/turf/open/floor/plasteel, -/area/janitor) +/area/maintenance/department/medical) "bjm" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -32890,33 +31836,36 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bjn" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "bjo" = ( /obj/structure/cable{ icon_state = "2-8" }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "bjp" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "bjq" = ( /obj/structure/closet, /obj/item/extinguisher, /obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "bjr" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -32960,125 +31909,90 @@ }, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "bjw" = ( /turf/closed/wall/r_wall, /area/maintenance/disposal) "bjx" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/maintenance/central/secondary) -"bjy" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plating, /area/maintenance/central/secondary) -"bjz" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"bjA" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"bjB" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"bjC" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/gateway) "bjD" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/turf/open/floor/plasteel, -/area/gateway) -"bjE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/gateway) -"bjF" = ( -/obj/machinery/door/poddoor/shutters{ - id = "gateshutter"; - name = "Gateway Access Shutter" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) "bjG" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, /turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/area/medical/genetics) "bjH" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bjI" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/mob/living/simple_animal/pet/penguin/emperor{ + desc = "Malpractice Penguin reminds you to fill your hypo with clf3 for those troublesome patients."; + name = "Malpractice Penguin" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "bjJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "bjK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -33090,17 +32004,12 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bjL" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Lab Maintenance"; + req_access_txt = "5; 33" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/turf/open/floor/plating, +/area/maintenance/department/medical) "bjM" = ( /obj/effect/landmark/start/depsec/supply, /obj/structure/cable{ @@ -33115,196 +32024,190 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "bjN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/cmo{ + pixel_x = 30 + }, +/obj/machinery/computer/crew{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bjO" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore/secondary) +"bjP" = ( +/obj/machinery/computer/teleporter{ + 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/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bjQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/front_office) +"bjS" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bjT" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bjO" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bjU" = ( +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Office"; + req_access_txt = "40" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bjP" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/teleporter) -"bjQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "cafeteria"; - name = "kitchen shutters" - }, -/obj/item/kitchen/fork, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"bjR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/landmark/start/cook, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjS" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjT" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 5 - }, -/obj/item/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjU" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/area/crew_quarters/heads/cmo) "bjV" = ( -/obj/effect/landmark/start/cook, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/turf/closed/wall, +/area/medical/medbay/front_office) "bjW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "bjX" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjY" = ( -/obj/item/paint/paint_remover, -/obj/item/storage/box/lights, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - areastring = "/area/janitor"; - dir = 8; - name = "Custodial Closet APC"; - pixel_x = -25 +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/janitor) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "bjZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/landmark/start/janitor, -/obj/structure/chair{ +/obj/machinery/computer/card{ dir = 8 }, -/turf/open/floor/plasteel, -/area/janitor) -"bka" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/janitor) -"bkb" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/janitor) -"bkc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/light/small{ dir = 4 }, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bkb" = ( +/obj/machinery/pdapainter, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"bkc" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/mob/living/simple_animal/bot/cleanbot{ - auto_patrol = 1; - icon_state = "cleanbot1"; - name = "Mopficcer Sweepsky" +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=fore1"; + location = "central5" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bkd" = ( /obj/structure/cable{ icon_state = "1-2" @@ -33323,8 +32226,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bke" = ( /obj/machinery/door/window/eastright{ base_state = "left"; @@ -33358,151 +32262,103 @@ /obj/structure/sign/warning/vacuum/external, /turf/closed/wall, /area/maintenance/disposal) -"bki" = ( -/obj/machinery/button/door{ - id = "kitchen"; - name = "Kitchen Shutters Control"; - pixel_x = 4; - pixel_y = -26; - req_access_txt = "28" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Kitchen Port"; - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) "bkj" = ( /turf/closed/wall/r_wall, /area/maintenance/central/secondary) -"bkk" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) "bkl" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/gateway/centerstation, -/turf/open/floor/plasteel/dark, -/area/gateway) -"bkm" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"bkn" = ( -/obj/machinery/door/poddoor/shutters{ - id = "gateshutter"; - name = "Gateway Access Shutter" - }, -/obj/machinery/button/door{ - id = "gateshutter"; - name = "Gateway Shutter Control"; - pixel_y = -34; - req_access_txt = "19" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/gateway) -"bko" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bkp" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "cafeteria"; - name = "kitchen shutters" - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"bkq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bks" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 +/obj/machinery/door/airlock/grunge{ + name = "Virology Maintenance Access"; + req_access_txt = "39" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/turf/open/floor/plating, +/area/medical/virology) +"bko" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bkp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bks" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bkt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "bku" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -33519,37 +32375,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"bkv" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/vending/wardrobe/jani_wardrobe{ - products = list(/obj/item/clothing/under/rank/civilian/janitor = 2, /obj/item/cartridge/janitor = 2, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, /obj/item/paint/paint_remover = 2, /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, /obj/item/caution = 10, /obj/item/holosign_creator = 2, /obj/item/lightreplacer = 2, /obj/item/soap/nanotrasen = 2, /obj/item/storage/bag/trash = 2, /obj/item/clothing/shoes/galoshes = 2, /obj/item/watertank/janitor = 2, /obj/item/storage/belt/janitor = 2) - }, -/turf/open/floor/plating, -/area/janitor) "bkw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, -/area/janitor) -"bkx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/janitor) -"bky" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/mob/living/simple_animal/hostile/lizard{ - name = "Wags-His-Tail"; - real_name = "Wags-His-Tail" - }, -/turf/open/floor/plating, -/area/janitor) +/area/maintenance/department/medical) "bkz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -33569,15 +32401,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bkA" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/command) "bkB" = ( /obj/structure/cable{ icon_state = "4-8" @@ -33681,17 +32512,17 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bkK" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/nuke_storage) -"bkL" = ( -/obj/machinery/gateway{ - dir = 10 +/obj/structure/safe, +/obj/item/storage/secure/briefcase{ + contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/gun/ballistic/automatic/pistol,/obj/item/suppressor,/obj/item/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/soap/nanotrasen) }, +/obj/item/storage/backpack/duffelbag/syndie/hitman, +/obj/item/card/id/silver/reaper, +/obj/item/lazarus_injector, +/obj/item/gun/ballistic/revolver/russian, +/obj/item/ammo_box/a357, +/obj/item/clothing/neck/stethoscope, /obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33699,234 +32530,196 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/plasteel/dark, -/area/gateway) +/area/security/nuke_storage) +"bkL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/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-4" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/item/radio/headset/headset_med, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/white, +/area/medical/virology) "bkM" = ( -/obj/machinery/gateway, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"bkN" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bkO" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/item/book/manual/wiki/infections, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bkP" = ( +/obj/structure/cable, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai_upload"; + name = "Upload APC"; + pixel_y = -24 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Chamber - Port"; + dir = 1; + network = list("aiupload") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"bkR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bkT" = ( +/obj/machinery/camera/motion{ + c_tag = "AI Upload Chamber - Starboard"; + dir = 1; + network = list("aiupload") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"bkV" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westright, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/front_office) +"bkW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/cmo, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bkX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bkY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/storage/secure/briefcase, +/obj/item/pen, +/obj/item/clothing/neck/stethoscope, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bkZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bla" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/gateway) -"bkP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/gateway) -"bkQ" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/turf/open/floor/plating, +/area/maintenance/department/medical) +"blb" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bkR" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bkS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/button/door{ - id = "cafeteria"; - name = "Cafeteria Shutters Control"; - pixel_x = -26; - pixel_y = 5; - req_access_txt = "28" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkT" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" }, +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"blc" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bkV" = ( -/obj/effect/landmark/start/cook, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkW" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkX" = ( -/obj/structure/table, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/trash/waffles{ - pixel_y = 3 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bkY" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/microwave, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/central) -"bla" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Janitor Maintenance"; - req_access_txt = "26" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"blb" = ( -/obj/item/caution, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/janitor) -"blc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bld" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/landmark/start/janitor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plating, -/area/janitor) -"ble" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /turf/open/floor/plasteel, -/area/janitor) +/area/hallway/primary/fore) "blf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Custodial Closet"; - req_access_txt = "26" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, /turf/open/floor/plasteel, -/area/janitor) +/area/hallway/primary/fore) "blh" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -33937,11 +32730,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bli" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -33958,330 +32752,228 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/effect/decal/cleanable/insectguts, /turf/open/floor/plating, /area/maintenance/department/cargo) "blk" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/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/bot_white/left, -/obj/structure/filingcabinet, -/obj/item/folder/documents, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) +/turf/open/floor/plating, +/area/maintenance/department/medical) "bll" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 }, -/obj/effect/turf_decal/bot_white/left, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "blm" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/radio/intercom{ + pixel_x = -25 }, -/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/bot_white/left, -/obj/structure/closet/crate/silvercrate, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) +/turf/open/floor/wood, +/area/crew_quarters/heads/hor/private) "bln" = ( -/obj/structure/safe, -/obj/item/storage/secure/briefcase{ - contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/gun/ballistic/automatic/pistol,/obj/item/suppressor,/obj/item/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/soap/nanotrasen) - }, -/obj/item/storage/backpack/duffelbag/syndie/hitman, -/obj/item/card/id/silver/reaper, -/obj/item/lazarus_injector, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/ballistic/revolver/russian, -/obj/item/ammo_box/a357, -/obj/item/clothing/neck/stethoscope, -/obj/item/book{ - desc = "An undeniably handy book."; - icon_state = "bookknock"; - name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/purple{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) -"blo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/machinery/vending/wallmed{ - pixel_x = -28 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"blp" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"blq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"blr" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/directions/command{ - dir = 8; - pixel_x = 32; - pixel_y = -8 - }, -/obj/machinery/light{ - dir = 4 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 + dir = 4 }, -/obj/structure/sign/directions/security{ - dir = 1; - pixel_x = 32; - pixel_y = 8 - }, -/obj/structure/sign/directions/science{ - dir = 1; - pixel_x = 32 +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bls" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 6 +/area/hallway/primary/fore) +"blo" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = 29; + receive_ore_updates = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"blt" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/item/storage/box/syringes{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"blp" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/airlock/research{ + id_tag = "AuxGenetics"; + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"blr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"blt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "blu" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/b) -"blv" = ( -/obj/structure/window/reinforced{ +/obj/structure/bodycontainer/morgue{ dir = 8 }, -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"blw" = ( -/obj/structure/table, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/kitchen/fork, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"blx" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"bly" = ( -/obj/structure/table, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"blz" = ( -/obj/machinery/door/airlock{ - name = "Kitchen"; - req_access_txt = "28" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"blA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"blB" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, /turf/open/floor/plating, -/area/crew_quarters/kitchen) -"blC" = ( -/obj/machinery/door/poddoor/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"blD" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"blE" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"blF" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/processor, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"blG" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, +/area/medical/morgue) +"blv" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blw" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Aft"; + dir = 8; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bly" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/landmark/start/chief_medical_officer, +/obj/structure/chair/office/light{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 + dir = 4 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"blH" = ( -/obj/item/mop, -/obj/item/watertank/janitor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/janitor) -"blI" = ( -/obj/structure/janitorialcart, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"blz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/department/medical) +"blA" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"blC" = ( +/turf/closed/wall, +/area/medical/paramedic) +"blD" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; + dir = 8; + name = "Chief Medical Officer's Office APC"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"blF" = ( +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, -/area/janitor) +/area/maintenance/fore/secondary) +"blG" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"blI" = ( +/obj/machinery/light/small, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/heads/captain/private) "blJ" = ( -/obj/item/storage/box/mousetraps, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/janitor) +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/obj/item/stamp/captain, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Captain)"; + pixel_x = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) "blK" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable{ @@ -34291,117 +32983,93 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "blL" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/stamp/hop, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) "blM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/wood, +/area/crew_quarters/heads/hor/private) "blN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) -"blO" = ( -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) -"blP" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Gateway Chamber" - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"blQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"blR" = ( -/turf/open/floor/plasteel/grimy, -/area/bridge) -"blS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"blT" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"blU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"blV" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"blW" = ( -/obj/machinery/door/airlock{ - name = "Kitchen"; - req_access_txt = "28" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"blX" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/microwave, +/obj/machinery/rnd/bepis, /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"blY" = ( +/turf/open/floor/engine, +/area/science/explab) +"blO" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters_2"; + name = "research shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/lab) +"blP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"blQ" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/computer/pandemic, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"blR" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"blT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/computer/card/minor/cmo{ + dir = 1 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"blU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/central) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "blZ" = ( /turf/closed/wall, /area/hallway/secondary/exit/departure_lounge) @@ -34414,224 +33082,161 @@ /turf/closed/wall/r_wall, /area/hallway/secondary/exit/departure_lounge) "bmc" = ( -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bmd" = ( -/obj/machinery/nuclearbomb/selfdestruct, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"bme" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bmf" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bmh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/left, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/security/nuke_storage) -"bme" = ( -/obj/structure/cable{ - icon_state = "2-4" +"bmi" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/secondary/command) +"bmj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/medical/virology) +"bmk" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bml" = ( +/obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) -"bmf" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) -"bmg" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "commissaryshutter"; - name = "Vacant Commissary Shutter" - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/a) -"bmh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/nuke_storage) -"bmi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/nuke_storage) -"bmj" = ( -/obj/item/paper/fluff/gateway, -/obj/structure/table, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"bmk" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/head/hardhat/orange{ - name = "protective hat" - }, -/obj/item/clothing/head/hardhat/orange{ - name = "protective hat" - }, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) -"bml" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bmm" = ( -/obj/structure/rack, -/obj/item/stack/medical/mesh, -/obj/item/stack/medical/suture, -/obj/item/reagent_containers/syringe/charcoal, -/obj/item/reagent_containers/syringe/epinephrine{ - pixel_x = -1; - pixel_y = 2 +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/effect/turf_decal/bot{ - dir = 1 +/obj/machinery/camera/autoname{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bmn" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot{ - dir = 1 +/obj/machinery/light, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bmo" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Gateway - Atrium" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bmp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet/black, /area/bridge) -"bmr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmt" = ( -/obj/effect/turf_decal/tile/bar, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "bmu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload"; + req_access_txt = "16" + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) "bmw" = ( /obj/structure/grille, /obj/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/fore) "bmx" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bmy" = ( -/obj/effect/turf_decal/trimline/green/filled/corner, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bmA" = ( /obj/item/radio/off, /obj/item/screwdriver{ @@ -34645,75 +33250,60 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/supply) -"bmB" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L1" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "bmC" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L3" +/obj/machinery/light{ + dir = 1; + light_color = "#706891" }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bmD" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L5" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmE" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L7" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmF" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmG" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L11" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmH" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L13" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmJ" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmK" = ( -/obj/effect/landmark/blobstart, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmH" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmI" = ( +/obj/effect/turf_decal/arrows/white, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bmJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bmK" = ( +/obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/department/cargo) "bmL" = ( @@ -34849,96 +33439,65 @@ /turf/closed/wall/r_wall, /area/hallway/secondary/exit/departure_lounge) "bmZ" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/security/nuke_storage"; - dir = 8; - name = "Vault APC"; - pixel_x = -26 - }, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bna" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) -"bnb" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/circuit/green{ - luminosity = 2 - }, -/area/security/nuke_storage) -"bnc" = ( +/obj/effect/turf_decal/vg_decals/department/bar, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) -"bnd" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/gateway"; - dir = 8; - name = "Gateway APC"; - pixel_x = -25 - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"bne" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/gateway) -"bnf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bnb" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/light{ + light_color = "#c9d3e8" }, /turf/open/floor/plasteel, -/area/gateway) +/area/hallway/primary/fore) +"bnc" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bnf" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/door/airlock/virology, +/turf/open/floor/plasteel/white, +/area/medical/virology) "bng" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/office/light{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -34949,132 +33508,53 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/bridge) -"bnh" = ( -/obj/structure/cable{ - icon_state = "4-8" +"bnk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"bnm" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/light{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/sign/warning/securearea{ + pixel_x = -32 }, /turf/open/floor/plasteel, -/area/gateway) -"bni" = ( -/obj/structure/cable{ - icon_state = "4-8" +/area/hallway/secondary/command) +"bnn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 + dir = 5 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central3"; + location = "central2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, /obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 + dir = 5 }, /turf/open/floor/plasteel, -/area/gateway) -"bnj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/gateway) -"bnk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Gateway Atrium"; - req_access_txt = "62" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) -"bnm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central4"; - location = "bridge2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bnn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; - health = 45; - maxHealth = 45; - name = "Officer Beepsky" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bno" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/medical/genetics) +"bnp" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -35085,43 +33565,18 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - sortType = 20 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bnq" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -35138,8 +33593,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bnr" = ( /obj/structure/grille, /obj/structure/window/reinforced, @@ -35149,103 +33607,40 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"bns" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "bnt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) "bnu" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/closet/secure_closet/injection{ + name = "educational injections"; + pixel_x = 2 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/directions/supply{ - dir = 4; - pixel_y = 40 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_y = 32 - }, -/obj/structure/sign/directions/medical{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "bnw" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/plaque{ - icon_state = "L2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bnx" = ( /obj/structure/cable{ icon_state = "4-8" @@ -35253,191 +33648,108 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/plaque{ - icon_state = "L4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bny" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/plaque{ - icon_state = "L6" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnz" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, -/obj/effect/turf_decal/plaque{ - icon_state = "L8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/landmark/observer_start, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bnA" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/plaque{ - icon_state = "L10" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bnB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/plaque{ - icon_state = "L12" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bnC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/plaque{ - icon_state = "L14" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 + dir = 10 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 10 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnE" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bnF" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/secuirty/vacantoffice/b"; +/obj/machinery/light{ dir = 4; - name = "Vacant Office APC"; - pixel_x = 27 + light_color = "#e8eaff" }, -/turf/open/floor/plasteel/grimy, -/area/security/vacantoffice/b) -"bnH" = ( -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bnE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/camera{ - c_tag = "Chapel Port"; - name = "chapel camera" +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/turf/open/floor/plasteel/chapel{ +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ dir = 1 }, -/area/chapel/main) +/obj/machinery/airalarm/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bnG" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/vacantoffice/b) "bnI" = ( /obj/structure/cable{ icon_state = "4-8" @@ -35463,17 +33775,6 @@ "bnL" = ( /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bnN" = ( -/obj/structure/chair/stool, -/obj/machinery/camera{ - c_tag = "Chapel Starboard"; - dir = 1; - name = "chapel camera" - }, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) "bnP" = ( /obj/machinery/door/airlock/external{ name = "Departure Lounge Airlock" @@ -35492,149 +33793,124 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bnR" = ( -/obj/machinery/door/airlock/external{ - name = "Departure Lounge Airlock" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/effect/turf_decal/delivery, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/light{ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) +/area/security/prison) "bnS" = ( -/obj/machinery/camera/motion{ - c_tag = "Vault"; - dir = 8; - network = list("vault") +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/turf/open/space/basic, -/area/space) +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) "bnT" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 }, -/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/bot_white/right, -/obj/machinery/computer/bank_machine, +/obj/machinery/iv_drip, /turf/open/floor/plasteel/dark, -/area/security/nuke_storage) +/area/medical/storage) "bnU" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 +/obj/structure/bodycontainer/morgue{ + dir = 8 }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/morgue) "bnV" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ dir = 1 }, -/obj/effect/turf_decal/bot_white/right, -/obj/structure/closet/crate/goldcrate, -/obj/machinery/camera/motion{ - c_tag = "Vault"; - dir = 1; - network = list("vault") - }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) "bnW" = ( -/obj/machinery/ore_silo, -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) -"bnX" = ( -/obj/structure/closet/secure_closet/exile, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/morgue) "bnY" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bnZ" = ( -/obj/machinery/light, -/obj/structure/closet/l3closet/scientist, -/obj/effect/turf_decal/bot{ - dir = 1 +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 }, -/turf/open/floor/plasteel, -/area/gateway) -"boa" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bob" = ( -/obj/structure/tank_dispenser/oxygen{ - pixel_x = -1; - pixel_y = 2 +/obj/machinery/status_display/ai{ + pixel_y = 32 }, -/obj/effect/turf_decal/bot{ - dir = 1 +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "boc" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, -/obj/item/paper/pamphlet/gateway, -/turf/open/floor/plasteel, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bod" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel, -/area/gateway) -"boe" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 }, -/obj/effect/turf_decal/bot{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/gateway) +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"boe" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 30 + }, +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/virologist, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) "bof" = ( /obj/structure/cable{ icon_state = "0-4" @@ -35650,35 +33926,29 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "boi" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/airlock/command{ + name = "Emergency Escape"; + req_access_txt = "19" }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 +/obj/machinery/door/poddoor/preopen{ + id = "bridgemaintenance"; + name = "Bridge Access Blast door" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/bridge) +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "boj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge/meeting_room) "bok" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "4-8" }, /turf/open/floor/plating, -/area/maintenance/department/cargo) +/area/maintenance/fore/secondary) "bol" = ( /obj/structure/cable{ icon_state = "4-8" @@ -35733,6 +34003,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bos" = ( @@ -35740,7 +34013,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) @@ -35751,11 +34024,22 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bou" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bov" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -35763,85 +34047,70 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bow" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/structure/table/glass, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/gateway) +/obj/item/clothing/glasses/hud/health, +/obj/item/healthanalyzer, +/obj/item/clothing/gloves/color/latex, +/turf/open/floor/plasteel/white, +/area/medical/virology) "box" = ( /turf/closed/wall, /area/maintenance/port/fore) "boy" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"boz" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/chair/comfy/black{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/white, +/area/medical/virology) +"boz" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28; + pixel_y = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) "boA" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/fore) "boB" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/secondary/command) "boC" = ( -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"boD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, +/obj/item/toy/talking/AI, /turf/open/floor/plating, -/area/maintenance/department/medical) +/area/ai_monitored/turret_protected/ai_upload_foyer) "boE" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Bridge" }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/secondary/command) +/area/bridge/meeting_room) "boF" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -35850,7 +34119,7 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "boG" = ( /obj/structure/cable{ icon_state = "4-8" @@ -35858,6 +34127,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "boH" = ( @@ -35875,7 +34150,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "boJ" = ( @@ -35906,26 +34180,38 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "boP" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 9; - height = 25; - id = "emergency_home"; - name = "MetaStation emergency evac bay"; - width = 29 +/obj/machinery/door/airlock/external{ + name = "Departure Lounge Airlock" }, -/turf/open/space/basic, -/area/space) -"boQ" = ( -/obj/structure/bed/roller, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, /turf/open/floor/plasteel, -/area/gateway) +/area/hallway/secondary/exit/departure_lounge) +"boQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/cyborg, +/obj/machinery/airalarm/directional/north, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Foyer"; + network = list("aiupload") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) "boR" = ( /turf/open/floor/plating, /area/maintenance/port/fore) @@ -35934,21 +34220,14 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "boT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/medical/virology) "boU" = ( /turf/closed/wall, /area/hallway/primary/aft) "boW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, @@ -35965,58 +34244,50 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "boY" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"boZ" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/closet/cardboard, +/mob/living/simple_animal/hostile/retaliate/poison/snake{ + desc = "Otocan, I'm trying to break into the AI upload, but the defenses are dumby thicc and I'm stuck."; + name = "Solid" }, /turf/open/floor/plating, -/area/maintenance/department/medical) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bpa" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/table, +/obj/item/circular_saw{ + pixel_y = 2 }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "2-4" +/obj/item/scalpel{ + pixel_y = 15 }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bpb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/ai{ - pixel_y = 32 +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = -30 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/white, +/area/medical/surgery) "bpc" = ( -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bpd" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/structure/sink{ + pixel_y = 22 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical) "bpe" = ( /turf/closed/wall, /area/hallway/primary/starboard) "bpg" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bpi" = ( @@ -36043,20 +34314,8 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bpl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit/departure_lounge) "bpm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -36064,39 +34323,47 @@ }, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) +"bpo" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "bpp" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/camera/autoname{ + dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/turf/open/floor/plasteel/freezer, +/area/medical/virology) "bpq" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/turf/open/floor/plasteel/white, +/area/medical/virology) "bpr" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/port/fore) -"bps" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) "bpt" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bpu" = ( /obj/machinery/mineral/stacking_unit_console{ machinedir = 8; @@ -36111,61 +34378,49 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bpv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/department/medical) "bpw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plating, /area/maintenance/department/medical) -"bpx" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics) "bpy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Genetics Maintenance"; - req_access_txt = "9" +/obj/machinery/status_display/ai{ + pixel_y = 32 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/status_display/evac{ + pixel_x = -32 }, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) "bpz" = ( -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, /area/maintenance/department/medical) "bpA" = ( -/turf/closed/wall/r_wall, -/area/medical/morgue) -"bpB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"bpC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/medical) -"bpC" = ( -/turf/closed/wall, -/area/medical/morgue) "bpE" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -36190,49 +34445,38 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bpH" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/structure/closet/crate, +/obj/item/tank/internals/oxygen/red{ + pixel_x = -4; + pixel_y = -1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/tank/internals/oxygen/red{ + pixel_x = 4; + pixel_y = -1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/item/tank/internals/anesthetic{ + pixel_x = 2 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/trimline/blue/line, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "bpI" = ( /obj/effect/mine/sound/bwoink, /turf/open/floor/plating/asteroid, /area/asteroid/nearstation) -"bpJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) "bpK" = ( /obj/structure/cable{ icon_state = "4-8" @@ -36258,10 +34502,17 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bpL" = ( /obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bpM" = ( @@ -36270,6 +34521,7 @@ codes_txt = "patrol;next_patrol=9.2-Escape-2"; location = "9.1-Escape-1" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bpN" = ( @@ -36280,31 +34532,20 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bpO" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, /obj/structure/cable{ icon_state = "0-4" }, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) "bpP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Fuel Pipe to Incinerator" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) +/obj/structure/lattice/catwalk, +/obj/item/wrench, +/turf/open/space, +/area/space/nearstation) "bpQ" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -36347,166 +34588,60 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bpV" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/port/fore"; - name = "Port Fore Maintenance APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bpW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bpX" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bpY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bqa" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/medical/genetics"; - dir = 1; - name = "Genetics Lab APC"; - pixel_y = 24 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqb" = ( -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bqc" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqd" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/requests_console{ - department = "Genetics"; - name = "Genetics Requests Console"; - pixel_x = -32 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/gloves/color/latex, -/obj/item/storage/box/disks{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqf" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/storage/pill_bottle/mutadone, -/obj/item/storage/pill_bottle/mannitol, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqg" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/camera/autoname{ dir = 10 }, -/obj/structure/noticeboard{ - dir = 4; - pixel_x = -27 - }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqh" = ( -/obj/structure/window/reinforced{ - dir = 8 +/area/medical/virology) +"bpW" = ( +/obj/machinery/smartfridge/chemistry/virology, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bpX" = ( +/obj/machinery/door/window/westright{ + name = "Monkey Enclosure"; + req_access_txt = "9" }, -/obj/structure/flora/grass/jungle, -/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, /area/medical/genetics) -"bqi" = ( -/obj/structure/flora/tree/palm, -/turf/open/floor/grass, -/area/medical/genetics) -"bqj" = ( -/obj/structure/flora/ausbushes/brflowers, -/mob/living/carbon/monkey, -/turf/open/floor/grass, -/area/medical/genetics) -"bqk" = ( -/obj/structure/flora/junglebush/large, +"bqa" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bqb" = ( +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/grass, /area/medical/genetics) "bql" = ( -/obj/structure/flora/ausbushes/ppflowers, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/grass, -/area/medical/genetics) -"bqm" = ( -/obj/structure/flora/tree/palm, -/mob/living/carbon/monkey, -/turf/open/floor/grass, -/area/medical/genetics) -"bqn" = ( -/obj/structure/flora/junglebush, -/turf/open/floor/grass, -/area/medical/genetics) -"bqo" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/medical/genetics) +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber"; + req_one_access_txt = "32;19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) "bqp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue, @@ -36525,20 +34660,19 @@ /turf/open/floor/plasteel/white, /area/medical/abandoned) "bqq" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Desk"; + req_access_txt = "5" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bqr" = ( -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) "bqs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/optable, @@ -36546,70 +34680,23 @@ /turf/open/floor/plasteel/freezer, /area/medical/abandoned) "bqt" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = -28 - }, -/obj/structure/table, -/obj/machinery/smartfridge/disks, -/turf/open/floor/plasteel, -/area/hydroponics) -"bqu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "bqv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 }, /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/goonplaque, -/area/hallway/primary/central) -"bqw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, -/turf/open/floor/plating, -/area/maintenance/central) -"bqx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -36619,15 +34706,17 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqy" = ( -/obj/structure/cable{ - icon_state = "1-2" +/area/hallway/primary/aft) +"bqx" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral, @@ -36640,22 +34729,17 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, /obj/effect/turf_decal/trimline/white/line{ dir = 8 }, +/obj/structure/disposalpipe/junction, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bqz" = ( /obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, @@ -36669,11 +34753,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 4 - }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bqA" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -36691,6 +34772,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bqB" = ( @@ -36706,6 +34797,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bqC" = ( @@ -36718,6 +34819,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bqD" = ( @@ -36738,12 +34842,12 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bqF" = ( @@ -36751,9 +34855,6 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -36821,102 +34922,12 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) -"bqN" = ( -/obj/machinery/computer/scan_consolenew{ - dir = 1 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = -30 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqO" = ( -/obj/effect/landmark/start/geneticist, -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/purple/filled/corner, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqP" = ( -/obj/effect/turf_decal/trimline/purple/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bqR" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/purple/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) "bqS" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/loading_area{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqT" = ( -/obj/machinery/dna_scannernew, -/obj/machinery/light, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bqU" = ( -/obj/machinery/door/window/westright{ - name = "Monkey Enclosure"; - req_access_txt = "9" - }, -/obj/structure/flora/ausbushes/ywflowers, -/turf/open/floor/grass, -/area/medical/genetics) -"bqV" = ( -/turf/open/floor/grass, -/area/medical/genetics) -"bqW" = ( -/obj/structure/flora/grass/jungle/b, -/turf/open/floor/grass, -/area/medical/genetics) -"bqX" = ( -/obj/structure/flora/ausbushes/ywflowers, -/mob/living/carbon/monkey, -/turf/open/floor/grass, -/area/medical/genetics) -"bqY" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/grass, -/area/medical/genetics) +/turf/open/floor/plasteel/dark, +/area/medical/storage) "bqZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/frame/computer, @@ -36941,35 +34952,18 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, /obj/effect/turf_decal/trimline/red/line{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "brb" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"brc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) +/area/hallway/primary/fore) "brd" = ( /obj/structure/cable{ icon_state = "4-8" @@ -36986,34 +34980,36 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/effect/turf_decal/vg_decals/department/cargo, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bre" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/gateway) +/turf/closed/wall, +/area/medical/virology) "brf" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/vending/cart, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/heads/hop) "brg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"brh" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, @@ -37027,41 +35023,23 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central5"; - location = "central4" +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 }, +/obj/effect/turf_decal/vg_decals/department/sci, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"brh" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bri" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Creamatorium"; - name = "chapel camera" +/obj/machinery/camera/autoname{ + dir = 9 }, /turf/open/floor/plasteel/dark, -/area/chapel/office) +/area/medical/storage) "brj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, @@ -37088,16 +35066,22 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "brl" = ( -/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "brm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -37166,47 +35150,16 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "brr" = ( +/obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/light{ - dir = 1 - }, /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"brs" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brt" = ( -/obj/effect/landmark/start/geneticist, -/obj/structure/chair/office/light, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brv" = ( -/obj/machinery/door/window/westleft{ - name = "Monkey Enclosure"; - req_access_txt = "9" - }, -/turf/open/floor/grass, -/area/medical/genetics) -"brw" = ( -/obj/structure/flora/junglebush, -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/medical/genetics) -"brx" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/tree/palm, -/turf/open/floor/grass, -/area/medical/genetics) "bry" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -37214,7 +35167,24 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) +"brz" = ( +/obj/structure/table, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "brA" = ( /turf/closed/wall, /area/library) @@ -37227,9 +35197,6 @@ name = "Library" }, /obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, @@ -37272,147 +35239,18 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/machinery/camera/autoname, /turf/open/floor/plasteel, /area/hallway/secondary/command) "brI" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"brJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brK" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brL" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/structure/table/glass, -/obj/item/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/bodybags, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brM" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/research{ - id_tag = "AuxGenetics"; - name = "Genetics Lab"; - req_access_txt = "9" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/curtain{ + icon_state = "closed" }, /turf/open/floor/plasteel/white, -/area/medical/genetics) -"brN" = ( -/obj/machinery/door/airlock/grunge{ - name = "Morgue"; - req_access_txt = "5" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"brO" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"brP" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"brQ" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/flora/grass/jungle, -/turf/open/floor/grass, -/area/medical/genetics) -"brR" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/machinery/light, -/turf/open/floor/grass, -/area/medical/genetics) -"brS" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"brT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"brU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/area/medical/patients_rooms/room_a) "brV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -37435,18 +35273,32 @@ /turf/open/floor/plasteel/white, /area/medical/abandoned) "brX" = ( +/obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_y = 24 + }, +/obj/structure/sign/directions/science{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 40 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/command) "brY" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/wood, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, /area/library) "brZ" = ( /obj/effect/turf_decal/tile/neutral{ @@ -37459,53 +35311,32 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bsa" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, /area/library) "bsb" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"bsc" = ( /obj/machinery/light{ dir = 1 }, /turf/open/floor/wood, /area/library) -"bsc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/library) -"bsd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/camera{ - c_tag = "Chapel Office"; - dir = 1; - name = "chapel camera" - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) "bse" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/light{ dir = 1; light_color = "#cee5d2" @@ -37524,6 +35355,9 @@ pixel_x = 32; pixel_y = 24 }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bsg" = ( @@ -37574,13 +35408,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bsm" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/port/fore) "bsn" = ( /turf/open/floor/plating{ icon_state = "panelscorched" @@ -37596,14 +35423,6 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/fore) -"bsp" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "bsq" = ( /obj/structure/cable{ icon_state = "1-2" @@ -37620,63 +35439,42 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, /obj/effect/turf_decal/trimline/white/line{ dir = 8 }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/hallway/primary/fore) "bsr" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bss" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bst" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bsu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/genetics) -"bsv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/tile{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bss" = ( +/obj/machinery/computer/monitor{ + name = "Bridge Power Monitoring Console" + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bst" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) "bsw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/leaper_sludge, @@ -37701,98 +35499,106 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "bsz" = ( -/obj/machinery/chem_heater{ - pixel_x = 4 +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/atmos) "bsA" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, /obj/machinery/camera/autoname{ dir = 4 }, -/obj/structure/sign/departments/custodian{ - pixel_x = -32 +/obj/effect/turf_decal/tile{ + dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bsB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/white/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bsD" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright, +/obj/machinery/door/window/brigdoor/westright{ + req_access_txt = "57" }, -/turf/open/floor/wood, -/area/library) +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/machinery/flasher{ + id = "hopflash"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) "bsE" = ( /turf/open/floor/wood, /area/library) "bsF" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/wood, -/area/library) +/turf/closed/wall/r_wall, +/area/medical/morgue) "bsG" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/wood, -/area/library) +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/turnstile{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bsH" = ( /obj/structure/bookcase/random/fiction, /turf/open/floor/wood, /area/library) "bsI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/library) "bsJ" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/machinery/power/apc{ areastring = "/area/library"; dir = 4; name = "Library APC"; pixel_x = 24 }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/carpet, /area/library) "bsK" = ( @@ -37812,243 +35618,81 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bsM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/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/bot_white/right, -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bsN" = ( /turf/closed/wall/r_wall, /area/medical/virology) "bsO" = ( -/obj/structure/bed, -/obj/item/bedsheet/hop, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/landmark/start/head_of_personnel, /turf/open/floor/carpet/blue, /area/crew_quarters/heads/hop/private) "bsP" = ( -/obj/structure/sign/warning/deathsposal, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bsQ" = ( -/turf/closed/wall, -/area/medical/chemistry) -"bsR" = ( -/turf/closed/wall/r_wall, -/area/medical/chemistry) -"bsS" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Chemistry Lab Maintenance"; - req_access_txt = "5; 33" +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bsT" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bsU" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/computer/cloning, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bsV" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/chemistry) -"bsW" = ( -/obj/item/storage/firstaid/brute{ - pixel_x = 4 - }, -/obj/item/storage/firstaid/brute{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/storage/firstaid/brute{ - pixel_x = -3; - pixel_y = 4 - }, -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bsX" = ( -/obj/item/storage/firstaid/fire{ - pixel_x = 4 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - name = "First-Aid Supplies"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bsY" = ( -/obj/machinery/camera{ - c_tag = "Chapel Service Room"; - dir = 1; - name = "chapel camera" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"bsZ" = ( -/obj/item/storage/firstaid/o2{ - pixel_x = 4 - }, -/obj/item/storage/firstaid/o2{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/storage/firstaid/o2{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/door/window/southright{ - name = "First-Aid Supplies"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bta" = ( -/obj/machinery/clonepod, -/obj/structure/window/reinforced{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access"; + req_access_txt = "16" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) -"btb" = ( -/turf/closed/wall, -/area/medical/genetics/cloning) -"btc" = ( -/obj/item/storage/box/bodybags{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/rxglasses{ - pixel_x = 1; - pixel_y = 1 - }, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"btd" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/bloodbankgen, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bte" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/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-4" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/structure/table/glass, -/obj/item/radio/headset/headset_med, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"btf" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"btg" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/area/ai_monitored/turret_protected/ai_upload_foyer) "bth" = ( -/obj/machinery/smartfridge/chemistry/virology/preloaded, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/directions/science{ + dir = 1; + pixel_x = 32 + }, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bti" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair{ @@ -38071,37 +35715,21 @@ /turf/open/floor/plasteel/white, /area/medical/abandoned) "btk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=bridge1"; - location = "central3" +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "btl" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/light{ - dir = 1 +/obj/machinery/status_display/ai{ + pixel_y = 32 }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -38118,38 +35746,14 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"btn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bto" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) "btp" = ( /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /turf/open/floor/wood, /area/library) "btq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -38157,22 +35761,20 @@ /area/library) "btr" = ( /obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/carpet, /area/library) "bts" = ( /obj/machinery/light{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet, /area/library) "btt" = ( @@ -38184,7 +35786,7 @@ dir = 6 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "btu" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile{ @@ -38201,182 +35803,29 @@ /obj/machinery/light/small, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"btw" = ( -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"btx" = ( -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bty" = ( +"btz" = ( /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/medical/virology) -"btz" = ( -/obj/structure/reagent_dispensers/virusfood{ - pixel_y = 30 - }, -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/syringe/antiviral, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/area/security/processing) "btA" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/item/book/manual/wiki/infections, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"btB" = ( -/obj/machinery/vending/wardrobe/chem_wardrobe, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"btC" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"btD" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/chem_dispenser/apothecary, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/processing) "btE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"btF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btG" = ( -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"btH" = ( -/obj/structure/table/glass, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"btI" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"btJ" = ( -/obj/item/storage/box/mousetraps, -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"btK" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"btL" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"btM" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"btN" = ( +/obj/effect/landmark/start/geneticist, +/obj/structure/chair/office/light, /obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 1 + dir = 4 }, /turf/open/floor/plasteel/white, /area/medical/genetics) -"btO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"btP" = ( -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"btQ" = ( -/obj/machinery/door/window/westright, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) "btR" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -38387,19 +35836,7 @@ }, /obj/machinery/camera/autoname, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"btS" = ( -/turf/open/floor/plasteel/white, -/area/medical/storage) -"btT" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/folder/white, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/area/hallway/primary/fore) "btU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/human, @@ -38410,27 +35847,34 @@ /turf/open/floor/plating, /area/medical/abandoned) "btV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/wood, -/area/library) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "btW" = ( /obj/structure/bookcase/random/nonfiction, /turf/open/floor/wood, /area/library) "btY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/carpet, /area/library) "btZ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/airalarm/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet, /area/library) "bua" = ( @@ -38493,6 +35937,9 @@ dir = 1 }, /obj/machinery/light, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bug" = ( @@ -38515,96 +35962,58 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bui" = ( -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile/red, -/turf/closed/wall/r_wall, -/area/hallway/secondary/exit/departure_lounge) -"buj" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bul" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buo" = ( +/obj/machinery/door/window/westleft{ + name = "Monkey Enclosure"; + req_access_txt = "9" + }, +/turf/open/floor/grass, +/area/medical/genetics) +"bup" = ( +/obj/structure/flora/junglebush, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/medical/genetics) +"buq" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/tree/palm, +/turf/open/floor/grass, +/area/medical/genetics) +"bur" = ( /obj/machinery/light{ dir = 8; light_color = "#e8eaff" }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"buk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 }, -/turf/open/floor/plating, -/area/medical/virology) -"bul" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers, -/obj/machinery/requests_console{ - department = "Virology"; - name = "Virology Requests Console"; - pixel_x = 29; - receive_ore_updates = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/item/storage/box/syringes{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bum" = ( -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bun" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"buo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bup" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/virologist, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"buq" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bur" = ( -/obj/effect/landmark/blobstart, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bus" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/bloodbankgen, +/turf/open/floor/plasteel/dark, +/area/medical/storage) "but" = ( /obj/structure/cable{ icon_state = "1-2" @@ -38627,223 +36036,38 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "buu" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"buv" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 +"buL" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"buw" = ( -/obj/effect/landmark/start/chemist, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bux" = ( -/obj/structure/table/glass, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/item/storage/pill_bottle/epinephrine{ - pixel_x = 3 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"buy" = ( -/obj/machinery/rnd/production/techfab/department/medical, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"buz" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/closed/wall, -/area/medical/chemistry) -"buA" = ( -/obj/item/storage/firstaid/toxin{ - pixel_x = 4 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/structure/table/reinforced, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Medbay Storage"; - name = "medbay camera"; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"buB" = ( /obj/structure/cable{ icon_state = "1-8" }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"buC" = ( -/obj/effect/turf_decal/trimline/purple/filled/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buD" = ( -/obj/effect/landmark/start/geneticist, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"buE" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_x = 25 - }, -/obj/machinery/door/window/westleft, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) -"buF" = ( -/obj/structure/rack, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 4 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"buG" = ( -/obj/effect/landmark/start/medical_doctor, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"buH" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buI" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/closet/secure_closet/medical3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"buJ" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"buK" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"buL" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) +/turf/open/floor/plating, +/area/maintenance/department/cargo) "buM" = ( -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/library) +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) "buN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -38885,30 +36109,6 @@ }, /turf/open/floor/carpet, /area/library) -"buS" = ( -/obj/machinery/door/airlock/virology/glass{ - name = "Test Subject Cell"; - req_access_txt = "39" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"buT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"buU" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"buV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/virology) "buW" = ( /obj/structure/cable{ icon_state = "4-8" @@ -38931,80 +36131,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"buX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table/glass, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/item/clothing/glasses/hud/health, -/obj/item/healthanalyzer, -/obj/item/clothing/gloves/color/latex, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"buY" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"buZ" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/chemistry, -/obj/item/book/manual/wiki/grenades, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bva" = ( -/obj/structure/table/glass, -/obj/item/storage/box/syringes, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bvb" = ( -/obj/item/book/manual/wiki/medical_cloning{ - pixel_x = 7; - pixel_y = 2 - }, -/obj/structure/table, -/obj/item/paper/guides/jobs/medical/cloning{ - pixel_x = -7; - pixel_y = 2 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bvc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) "bvd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -39017,111 +36143,19 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"bve" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = -30 - }, -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) -"bvf" = ( -/obj/item/storage/box/bodybags{ - pixel_y = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bvg" = ( -/obj/machinery/vending/wardrobe/medi_wardrobe, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) "bvh" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bvi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "2-4" +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: EXTERNAL AIRLOCK"; + pixel_x = -32 }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bvj" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Maintenance"; + dir = 5 }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bvk" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/storage"; - name = "Medbay Storage APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bvl" = ( -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_y = 5 - }, -/obj/item/pen{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bvm" = ( -/obj/structure/table/glass, -/obj/item/paper/guides/jobs/medical/morgue{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 7; - pixel_y = 2 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bvn" = ( -/obj/item/storage/box/bodybags{ - pixel_y = 5 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) "bvo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue{ @@ -39131,23 +36165,7 @@ /obj/machinery/iv_drip, /turf/open/floor/plasteel/white, /area/medical/abandoned) -"bvp" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bvq" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) "bvs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/library) @@ -39189,6 +36207,12 @@ /turf/open/space/basic, /area/space) "bvy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"bvz" = ( /obj/machinery/firealarm{ dir = 8; pixel_x = -26; @@ -39209,7 +36233,7 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/hop) -"bvz" = ( +"bvA" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -39227,191 +36251,69 @@ }, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) -"bvA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) "bvB" = ( +/obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bvC" = ( -/obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/command) +"bvC" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bvD" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/plasteel, /area/quartermaster/warehouse) -"bvE" = ( +"bvG" = ( +/obj/machinery/light{ + dir = 4 + }, /obj/structure/closet/secure_closet/medical3, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bvF" = ( -/obj/machinery/door/airlock/grunge{ - name = "Virology Maintenance Access"; - req_access_txt = "39" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/medical/virology) -"bvG" = ( -/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=bridge2"; - location = "bridge1" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) +/turf/open/floor/plasteel/dark, +/area/medical/storage) "bvH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/light, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bvI" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Chemistry"; - dir = 4; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/item/radio/headset/headset_med, -/obj/item/folder/white, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bvJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/genetics/cloning) -"bvK" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bvL" = ( -/turf/closed/wall, -/area/medical/storage) -"bvM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/storage) -"bvN" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Apothecary"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bvO" = ( -/turf/closed/wall, -/area/medical/cryo) -"bvP" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "CloningDoor"; - name = "Cloning Lab"; - req_access_txt = "5" - }, -/obj/machinery/door/firedoor, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/bridge"; + dir = 4; + name = "Bridge APC"; + pixel_x = 27 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/bridge) "bvQ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "bvR" = ( /obj/structure/cable{ icon_state = "1-2" @@ -39422,12 +36324,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -39438,33 +36334,47 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, /obj/effect/turf_decal/trimline/white/line{ dir = 10 }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bvT" = ( /obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet, /area/library) "bvU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, /turf/open/floor/carpet, /area/library) "bvV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/carpet, /area/library) "bvW" = ( @@ -39472,6 +36382,12 @@ dir = 4 }, /obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/carpet, /area/library) "bvX" = ( @@ -39479,6 +36395,12 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/carpet, /area/library) "bvY" = ( @@ -39502,231 +36424,15 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"bwc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/medical/virology) -"bwd" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/screwdriver{ - pixel_x = -2; - pixel_y = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwe" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Storage"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bwf" = ( -/obj/machinery/door/airlock/grunge{ - name = "Morgue"; - req_access_txt = "5" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) "bwh" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bwi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 }, /turf/open/floor/plasteel/white, -/area/medical/virology) -"bwj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwo" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bwp" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bwq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bws" = ( -/obj/machinery/chem_heater, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwt" = ( -/obj/structure/table/glass, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/item/clothing/glasses/science{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/clothing/glasses/science, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bwu" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bww" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/reagent_dispensers/water_cooler, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/sofa/right, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwy" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/sofa, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwz" = ( -/turf/closed/wall, -/area/medical/medbay/central) +/area/hallway/primary/aft) "bwA" = ( /obj/structure/cable{ icon_state = "4-8" @@ -39748,50 +36454,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"bwB" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = 30 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/table, -/obj/item/storage/box/cups, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwD" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bwE" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bwF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) "bwH" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -39804,24 +36466,15 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, /obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) -"bwI" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) "bwJ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -39844,7 +36497,7 @@ req_one_access_txt = "12;37" }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "bwL" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -39880,96 +36533,70 @@ /turf/open/floor/carpet, /area/library) "bwP" = ( -/obj/structure/window/reinforced/spawner, -/turf/open/space, -/area/space) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access_txt = "57" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) "bwQ" = ( /obj/machinery/light/small, /turf/open/floor/plating, /area/maintenance/fore) -"bwR" = ( -/turf/closed/wall, -/area/medical/virology) -"bwT" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) "bwU" = ( -/obj/machinery/disposal/bin, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bwV" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/line{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/fore) -"bwW" = ( -/obj/structure/chair/sofa/left, -/turf/open/floor/plasteel/white, /area/hallway/primary/aft) -"bwX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +"bwV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central4"; + location = "bridge2" }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bwW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/light{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bwY" = ( -/obj/machinery/sleeper, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bwZ" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=9.4-Escape-4"; @@ -39980,186 +36607,40 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bxa" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bxb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bxc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bxd" = ( -/obj/machinery/sleeper, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bxe" = ( -/obj/machinery/smartfridge/chemistry/preloaded, -/turf/closed/wall, -/area/medical/chemistry) -"bxf" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = 30 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bxg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bxh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "bxi" = ( /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bxj" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bxk" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bxl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bxm" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bxp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bxq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bxr" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bxs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bxt" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bxu" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) "bxv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=aft1"; + location = "starboard5" }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bxw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plating/asteroid, -/area/maintenance/fore) +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bxx" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -40171,7 +36652,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "bxz" = ( /obj/structure/cable{ icon_state = "1-8" @@ -40183,7 +36664,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "bxA" = ( /obj/structure/displaycase/trophy, /turf/open/floor/wood, @@ -40259,83 +36740,55 @@ /turf/closed/wall/r_wall, /area/space/nearstation) "bxN" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/space, -/area/space) +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/cargo) "bxO" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bxR" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bxS" = ( -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bxT" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/space, -/area/space) -"bxU" = ( -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bxV" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bxW" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bxX" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/item/radio/intercom{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bxR" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/emergency/starboard"; + dir = 1; + name = "Starboard Emergency Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"bxS" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"bxT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/storage/emergency/starboard) "bxY" = ( /obj/machinery/light{ dir = 4 @@ -40347,95 +36800,45 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bxZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/hallway/primary/fore) "bya" = ( /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "byb" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/light, /turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"byc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"byd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) +/area/hallway/secondary/command) "bye" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/carpet, /area/bridge) -"byf" = ( -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"byg" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"byh" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) "byi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -40443,9 +36846,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -40460,84 +36860,23 @@ dir = 4 }, /obj/effect/turf_decal/trimline/red/line, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "CMO sorting disposal pipe"; + sortType = 10 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"byj" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 +"bym" = ( +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"byk" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 }, /turf/open/floor/plasteel/white, -/area/medical/virology) -"byl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bym" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"byn" = ( -/obj/machinery/vending/wallmed{ - pixel_y = 30 - }, -/obj/structure/chair/comfy/black, -/obj/effect/landmark/start/virologist, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"byo" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"byp" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/structure/rack, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"byq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) +/area/medical/chemistry) "byr" = ( /obj/machinery/airalarm{ dir = 1; @@ -40551,178 +36890,27 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/plasteel, /area/quartermaster/warehouse) -"byt" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byw" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byx" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byz" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"byA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"byB" = ( -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"byC" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"byD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"byE" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"byF" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"byG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) "byH" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) -"byI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/medical/cryo) "byJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "byK" = ( /obj/structure/cable{ icon_state = "4-8" @@ -40747,34 +36935,9 @@ dir = 4 }, /obj/effect/turf_decal/trimline/white/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"byL" = ( -/turf/open/floor/plating, -/area/maintenance/starboard) -"byM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"byN" = ( -/obj/effect/landmark/start/medical_doctor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/area/hallway/secondary/exit) "byO" = ( /obj/effect/landmark/start/librarian, /obj/structure/disposalpipe/segment{ @@ -40785,14 +36948,6 @@ }, /turf/open/floor/carpet, /area/library) -"byP" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/camera{ - c_tag = "Garden"; - dir = 8 - }, -/turf/open/floor/grass, -/area/hydroponics/garden) "byQ" = ( /turf/open/floor/wood, /area/library/lounge) @@ -40816,415 +36971,46 @@ /area/library/lounge) "byT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, /turf/open/floor/carpet, /area/library/lounge) "byU" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ +/obj/structure/chair{ dir = 4 }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) "byV" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/evac{ + pixel_y = 32 }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"byX" = ( -/obj/structure/window/reinforced/spawner, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/dark, -/area/aisat) +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) "byY" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Fore"; - dir = 1; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/dark, -/area/aisat) -"byZ" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bza" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bzb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bzc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bzd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bze" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology/glass{ - name = "Isolation A"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bzf" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzg" = ( -/obj/effect/landmark/start/chemist, -/obj/structure/chair/office/light, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzh" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzi" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bzj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bzk" = ( -/obj/structure/table/glass, -/obj/item/paper_bin, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bzl" = ( -/obj/machinery/button/door{ - id = "chemistry_shutters_2"; - name = "chemistry shutters control"; - pixel_x = 26; - pixel_y = -26; - req_access_txt = "5; 33" - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzm" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop/private) -"bzn" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bzo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bzp" = ( -/obj/machinery/chem_dispenser, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft, -/obj/machinery/door/window/northright, -/turf/open/floor/plasteel, -/area/medical/chemistry) -"bzr" = ( -/obj/machinery/smartfridge/chemistry/preloaded, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzs" = ( -/obj/effect/landmark/start/chemist, -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzu" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzw" = ( -/obj/effect/landmark/start/medical_doctor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzz" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bzA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bzB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bzC" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bzD" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bzE" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bzF" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/trimline/neutral/filled/line, /obj/machinery/power/apc{ - areastring = "/area/medical/chemistry"; - name = "Chemistry Lab APC"; - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bzI" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/vault{ - req_access_txt = "53" - }, -/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 + areastring = "/area/hallway/secondary/exit"; + dir = 1; + name = "Escape Hallway APC"; + pixel_y = 24 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/nuke_storage) -"bzJ" = ( -/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bzb" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -41248,8 +37034,50 @@ dir = 4 }, /obj/effect/turf_decal/trimline/red/line, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) +"bzm" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bzr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bzI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bzJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/prison) "bzK" = ( /obj/machinery/light, /turf/open/floor/wood, @@ -41298,7 +37126,6 @@ /area/library/lounge) "bzQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/chair/office/dark{ dir = 8 }, @@ -41313,61 +37140,42 @@ }, /turf/open/floor/carpet, /area/library/lounge) -"bzS" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/space/basic, -/area/space) "bzT" = ( -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bzV" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/library) +"bzZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, /turf/open/floor/plasteel/dark, /area/aisat) -"bzV" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/space/basic, -/area/space) -"bzW" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"bzX" = ( -/obj/structure/window/reinforced/spawner/north, -/turf/open/space/basic, -/area/space) -"bzY" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/space/basic, -/area/space) "bAc" = ( -/obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 + dir = 8 }, -/turf/open/space/basic, -/area/space) +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/medical/genetics) "bAd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, @@ -41390,276 +37198,51 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bAg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bAh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bAi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bAj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bAk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bAl" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) "bAm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/medical/virology) +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/light, +/turf/open/floor/grass, +/area/medical/genetics) "bAn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 }, -/obj/structure/sink, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"bAo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAp" = ( -/obj/machinery/vending/wardrobe/viro_wardrobe, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bAq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bAr" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central3"; - location = "central2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/dark, +/area/medical/storage) "bAs" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central2"; - location = "central1" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "bAt" = ( /obj/item/storage/belt/utility, /turf/open/floor/plating, /area/maintenance/fore) -"bAu" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bAv" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/medical/genetics/cloning"; - dir = 8; - name = "Cloning Lab APC"; - pixel_x = -25 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Cloning"; - dir = 4; - name = "medbay camera"; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bAw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bAx" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bAz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bAA" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) "bAB" = ( /obj/machinery/light/small{ dir = 1; @@ -41683,99 +37266,106 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bAD" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bAF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bAG" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; +/obj/machinery/door/airlock/grunge{ + name = "Morgue"; req_access_txt = "5" }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bAH" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bAI" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bAJ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bAK" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = -30 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bAL" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/medical/cryo) -"bAM" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bAF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bAG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + name = "Command Hallway"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bAH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bAN" = ( /obj/machinery/door/morgue{ name = "Private Study"; @@ -41799,15 +37389,24 @@ /turf/open/floor/wood, /area/library/lounge) "bAQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, -/area/hallway/primary/aft) +/area/hallway/primary/fore) "bAT" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -41820,106 +37419,23 @@ dir = 6 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "bAV" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "bAW" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/fore/secondary) -"bAX" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/chair/comfy/teal{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bAY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/virology) -"bAZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bBa" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBb" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBc" = ( -/obj/item/storage/box/masks, -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bBe" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bBf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/turf/open/floor/wood, +/area/library) "bBg" = ( /obj/structure/cable{ icon_state = "4-8" @@ -41931,422 +37447,186 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - id_tag = "virology_airlock_interior"; - name = "Virology Interior Airlock"; - req_access_txt = "39" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"bBi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = -26; - pixel_y = 28; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"bBj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"bBk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"bBl" = ( -/obj/machinery/door/firedoor, -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_y = 24; - req_access_txt = "39" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - id_tag = "virology_airlock_exterior"; - name = "Virology Exterior Airlock"; - req_access_txt = "39" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"bBm" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBn" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBo" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bBp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bBq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bBr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) +/area/hallway/primary/fore) "bBs" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/sorting/mail{ - dir = 1; - sortType = 9 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bBt" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bBu" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/cryo"; - name = "Cryogenics APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"bBv" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"bBw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/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/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bBw" = ( /obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bBx" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bBy" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/green{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bBz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bBA" = ( /obj/item/storage/toolbox/mechanical, /turf/open/floor/plating, /area/maintenance/fore) -"bBB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) "bBC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bBD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bBE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bBF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bBG" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bBH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bBI" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/cmo) -"bBJ" = ( -/obj/structure/chair/stool, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bBK" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/line, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; + health = 45; + maxHealth = 45; + name = "Officer Beepsky" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bBF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bBH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bBJ" = ( +/obj/machinery/chem_dispenser, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bBK" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, /obj/machinery/light{ dir = 8 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBL" = ( -/obj/structure/disposalpipe/segment{ +/area/hallway/primary/fore) +"bBM" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/storage/pill_bottle/epinephrine{ + pixel_x = 3 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBM" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBN" = ( -/turf/closed/wall/r_wall, -/area/medical/cryo) -"bBO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/area/medical/chemistry) "bBP" = ( /obj/machinery/newscaster{ pixel_x = -30 @@ -42384,367 +37664,275 @@ /turf/open/floor/wood, /area/library/lounge) "bBT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/chair/office/dark{ dir = 8 }, /turf/open/floor/carpet, /area/library/lounge) "bBU" = ( -/turf/closed/wall, -/area/maintenance/starboard) -"bBV" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space, -/area/space/nearstation) -"bBW" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"bBW" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) "bBX" = ( /turf/closed/wall/r_wall, /area/aisat) "bBY" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) "bBZ" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, /obj/structure/cable{ icon_state = "0-4" }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/plating, /area/hallway/primary/fore) "bCa" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/closet/secure_closet/chemical, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bCb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bCc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bCe" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bCf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/closet/l3closet/virology, -/turf/open/floor/plasteel, -/area/medical/virology) -"bCg" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/closet/l3closet/virology, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/medical/virology) -"bCh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/medical/virology) -"bCi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCj" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bCk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCl" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCm" = ( +/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/research{ + id_tag = "AuxGenetics"; + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bCn" = ( +/area/medical/genetics) +"bCl" = ( +/turf/closed/wall, +/area/medical/medbay/central) +"bCm" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bCo" = ( +/obj/structure/table/glass, +/obj/item/paper/guides/jobs/medical/morgue{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bCq" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCo" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/medbay/front_office) -"bCp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - areastring = "/area/medical/medbay/central"; - dir = 4; - name = "Medbay Central APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCq" = ( -/turf/closed/wall, -/area/medical/medbay/front_office) -"bCr" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bCs" = ( -/turf/closed/wall/r_wall, -/area/security/checkpoint/medical) -"bCt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bCu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bCv" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bCw" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/obj/machinery/button/door{ - id = "cmoshutter"; - name = "CMO Office Shutters"; - pixel_x = -25; - req_access_txt = "40" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bCx" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bCy" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bCz" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/mob/living/simple_animal/pet/penguin/emperor{ - desc = "Malpractice Penguin reminds you to fill your hypo with clf3 for those troublesome patients."; - name = "Malpractice Penguin" - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bCA" = ( -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bCB" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/cmo{ - pixel_x = 30 - }, -/obj/machinery/computer/crew{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bCC" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ dir = 6 }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bCD" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bCs" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bCt" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bCw" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bCx" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, -/area/maintenance/department/medical) -"bCE" = ( +/area/bridge) +"bCy" = ( /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/light, /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bCz" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast door" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/command) +"bCA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Command Hallway"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bCB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=bridge2"; + location = "bridge1" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bCC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bCF" = ( /obj/machinery/vending/wardrobe/curator_wardrobe, /turf/open/floor/plasteel/cult, @@ -42794,18 +37982,12 @@ /turf/open/floor/wood, /area/library/lounge) "bCM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, /turf/open/floor/carpet, /area/library/lounge) "bCN" = ( /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /turf/open/floor/carpet, /area/library/lounge) "bCO" = ( @@ -42816,165 +37998,105 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "bCP" = ( /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/starboard) -"bCQ" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space/nearstation) +/area/maintenance/starboard/aft) "bCR" = ( /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai) -"bCS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bCT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology/glass{ - name = "Isolation B"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bCU" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) "bCW" = ( -/obj/structure/window/reinforced{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/radio/intercom{ dir = 1; - pixel_y = 1 + pixel_y = -29 }, -/obj/machinery/computer/crew, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) +/turf/open/floor/plasteel, +/area/hallway/secondary/command) "bCX" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Desk"; - req_access_txt = "5" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bCY" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=bridge1"; + location = "centrala" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bCY" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/vending/medical{ + products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, /obj/item/healthanalyzer = 4, /obj/item/sensor_device = 4, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/pill/insulin = 10, /obj/item/reagent_containers/pill/salbutamol = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, /obj/item/storage/hypospraykit/fire = 2, /obj/item/storage/hypospraykit/toxin = 2, /obj/item/storage/hypospraykit/o2 = 2, /obj/item/storage/hypospraykit/brute = 2, /obj/item/storage/hypospraykit/enlarge = 2, /obj/item/reagent_containers/glass/bottle/vial/small = 5, /obj/item/storage/briefcase/medical = 2, /obj/item/stack/sticky_tape/surgical = 3, /obj/item/healthanalyzer/wound = 4, /obj/item/stack/medical/ointment = 2, /obj/item/stack/medical/suture = 2, /obj/item/stack/medical/bone_gel = 4) + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bCZ" = ( -/obj/machinery/light{ +/obj/machinery/clonepod{ + pixel_x = 2 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bDa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bDb" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/aft) +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) "bDc" = ( -/obj/machinery/light{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=starboard4"; + location = "starboard3" }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"bDd" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bDe" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) "bDf" = ( /obj/structure/cable{ icon_state = "2-4" @@ -42987,193 +38109,135 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bDh" = ( -/turf/closed/wall/r_wall, -/area/medical/medbay/front_office) +/obj/machinery/chem_heater{ + pixel_x = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bDi" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/chem_dispenser/apothecary, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDj" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDk" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDl" = ( +/obj/structure/chair/sofa/right, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDm" = ( +/obj/structure/chair/sofa, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; pixel_y = 30 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/light{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bDj" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bDk" = ( -/obj/structure/closet/secure_closet/security/med, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bDl" = ( -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/obj/structure/filingcabinet, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bDm" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/machinery/door/window/westright, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/front_office) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bDn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/structure/chair/sofa/left, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bDo" = ( -/obj/effect/landmark/start/medical_doctor, -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Doors Control"; - normaldoorcontrol = 1; - pixel_x = 26; - pixel_y = 24; - req_access_txt = "5" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bDp" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bDq" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/table, +/obj/item/storage/box/cups, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDq" = ( +/obj/machinery/sleeper, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/area/medical/cryo) "bDr" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 +/obj/machinery/sleeper, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 }, /turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/area/medical/cryo) "bDs" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/door/airlock/grunge{ + name = "Morgue"; + req_access_txt = "5" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/table/glass, -/obj/item/storage/secure/briefcase, -/obj/item/pen, -/obj/item/clothing/neck/stethoscope, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "bDt" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -43184,650 +38248,435 @@ /turf/open/floor/carpet, /area/library) "bDu" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) "bDv" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_x = 32 }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 }, -/obj/machinery/keycard_auth{ - pixel_x = 30 - }, -/obj/machinery/computer/med_data{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/turf/open/floor/plasteel/dark, +/area/bridge) "bDw" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/airlock/command{ + name = "Vacant Office" + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice/b) "bDx" = ( /turf/closed/wall, /area/maintenance/department/medical) -"bDy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, -/area/maintenance/starboard) "bDz" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/solar{ - id = "aftstarboard"; - name = "Aft-Starboard Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/starboard/aft) -"bDA" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bDB" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "aftstarboard"; - name = "Aft-Starboard Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/starboard/aft) -"bDC" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"bDD" = ( -/obj/machinery/porta_turret/ai{ - dir = 1 - }, +/obj/structure/grille, /turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"bDE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bDF" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bDG" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bDH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bDI" = ( -/obj/machinery/door/airlock/command{ - name = "Chief Medical Officer's Office"; - req_access_txt = "40" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/cmo) -"bDK" = ( -/turf/closed/wall, -/area/maintenance/bar) -"bDL" = ( -/obj/structure/bed, -/obj/item/bedsheet/cmo, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bDM" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bDN" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bDO" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bDP" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bDQ" = ( -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white/telecomms, -/area/tcommsat/server) -"bDR" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bDS" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/machinery/camera{ - c_tag = "Security Post - Engineering" - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bDT" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bDU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop/private) -"bDV" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bDW" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bDX" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bDY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bDZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bEa" = ( -/obj/structure/chair, -/obj/effect/landmark/start/virologist, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bEb" = ( +/area/maintenance/port/fore) +"bDA" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 4 - }, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bEc" = ( +/area/hallway/primary/fore) +"bDB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bDC" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bDE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Council Chamber"; + req_access_txt = "19" + }, /obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/machinery/door/window/westleft, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bDF" = ( +/turf/closed/wall, +/area/bridge/showroom/corporate) +"bDG" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/floor/grass, +/area/library) +"bDH" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_one_access_txt = "17;19" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bDI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bDN" = ( +/obj/structure/chair/comfy/teal{ dir = 4 }, -/turf/open/floor/plating, -/area/medical/medbay/front_office) +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/wood, +/area/library) +"bDO" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/library) +"bDQ" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bDT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bDU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop/private) +"bDV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bDZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library/lounge) +"bEb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bEc" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/medical/chemistry) "bEd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/radio/headset/headset_med, +/obj/item/folder/white, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bEe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/structure/table/glass, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bEf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bEg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bEh" = ( -/obj/structure/chair/office/light, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bEi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/area/medical/chemistry) +"bEf" = ( +/obj/machinery/door/window/westright, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bEj" = ( +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"bEg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bEh" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bEj" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bEk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) +/area/medical/medbay/central) "bEl" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/cmo"; - dir = 8; - name = "Chief Medical Officer's Office APC"; - pixel_x = -26 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bEm" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bEn" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bEo" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/landmark/start/chief_medical_officer, -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bEp" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bEq" = ( -/turf/closed/wall, -/area/hydroponics/garden/abandoned) -"bEr" = ( -/obj/machinery/biogenerator, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bEs" = ( -/obj/item/reagent_containers/food/snacks/grown/banana, -/obj/item/reagent_containers/food/snacks/grown/banana, -/obj/item/reagent_containers/food/snacks/grown/wheat, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/citrus/orange, -/obj/item/reagent_containers/food/snacks/grown/grapes, -/obj/item/reagent_containers/food/snacks/grown/cocoapod, -/obj/structure/rack, -/obj/item/seeds/wheat, -/obj/item/seeds/watermelon, -/obj/item/seeds/watermelon, -/obj/item/seeds/grape, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bEt" = ( -/obj/item/storage/bag/plants/portaseeder, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/plant_analyzer, -/obj/item/cultivator, -/obj/item/reagent_containers/glass/bucket, -/obj/structure/rack, -/obj/item/seeds/corn, -/obj/item/seeds/cabbage, -/obj/item/seeds/grass, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bEu" = ( -/obj/machinery/hydroponics/soil{ - pixel_y = 8 +/area/medical/medbay/central) +"bEm" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 }, -/obj/item/seeds/carrot, -/obj/effect/turf_decal/stripes/line, -/obj/item/seeds/cannabis/white, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bEv" = ( -/obj/machinery/hydroponics/soil{ - pixel_y = 8 - }, -/obj/item/seeds/glowshroom, -/obj/item/seeds/corn, -/obj/effect/turf_decal/stripes/line, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bEw" = ( -/obj/machinery/hydroponics/soil{ - pixel_y = 8 - }, -/obj/item/plant_analyzer, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bEx" = ( -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bEy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 +/obj/machinery/power/apc{ + areastring = "/area/medical/paramedic"; + dir = 1; + name = "Paramedic's Office APC"; + pixel_y = 26 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "0-8" }, -/turf/open/floor/plating, -/area/maintenance/starboard) +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bEn" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bEo" = ( +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bEp" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/crowbar, +/obj/item/wrench/medical, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bEr" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bEv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/vault{ + req_access_txt = "53" + }, +/obj/effect/mapping_helpers/airlock/locked, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bEw" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/vending/wallmed{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bEx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bEy" = ( +/obj/effect/landmark/start/paramedic, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) "bEz" = ( /obj/structure/cable{ icon_state = "4-8" @@ -43837,330 +38686,155 @@ }, /area/maintenance/fore) "bEA" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bEB" = ( +/obj/machinery/light{ + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bED" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"bEE" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/stripes/line{ dir = 9 }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bEB" = ( -/obj/structure/lattice/catwalk, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bEF" = ( /obj/structure/cable{ icon_state = "2-4" }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bEC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "AI Chamber Fore"; - network = list("aicore") - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bED" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bEE" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Medbay Security Post"; - req_access_txt = "63" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bEF" = ( +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) +/area/ai_monitored/turret_protected/aisat/foyer) "bEG" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bEH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) +/obj/machinery/bookbinder, +/turf/open/floor/wood, +/area/library) "bEI" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Medbay Security Post"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/security/checkpoint/medical) +/turf/open/floor/plasteel, +/area/medical/cryo) "bEJ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bEL" = ( -/obj/item/electropack/shockcollar, -/obj/item/assembly/signaler, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/wood, -/area/maintenance/bar) -"bEM" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"bEN" = ( -/obj/machinery/vending/kink, -/obj/effect/decal/cleanable/semen, -/turf/open/floor/wood, -/area/maintenance/bar) -"bEO" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 +/obj/machinery/porta_turret/ai, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"bEP" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/obj/effect/turf_decal/trimline/red/filled/line{ +/turf/open/floor/carpet, +/area/library) +"bES" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bEP" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/virology) -"bEQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bER" = ( -/obj/structure/table, -/obj/item/storage/box/gloves, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bES" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) +/area/science/xenobiology) "bET" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bEW" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/turf/open/floor/carpet, +/area/library) +"bEZ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bEU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/camera{ - c_tag = "Medbay Cryogenics"; - dir = 1; - name = "medbay camera"; - network = list("ss13","medbay") +/turf/open/floor/plasteel, +/area/storage/primary) +"bFa" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/cryo) -"bEV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bEW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bEX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bEY" = ( -/obj/structure/table, +"bFb" = ( /obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/reagentgrinder, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bEZ" = ( -/obj/structure/chair{ - dir = 4 - }, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 + dir = 5 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bFa" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/medical"; - dir = 8; - name = "Medbay Security APC"; - pixel_x = -25 - }, -/obj/structure/cable, -/obj/machinery/computer/secure_data{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bFb" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Medbay"; - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/medical, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bFc" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/area/medical/cryo) "bFd" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/fore) "bFe" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, /obj/effect/turf_decal/tile{ dir = 1 }, -/obj/machinery/suit_storage_unit/cmo, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bFf" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -44172,81 +38846,45 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "bFg" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile, /obj/effect/turf_decal/tile{ - dir = 1 + dir = 4 }, -/obj/machinery/light, -/obj/structure/table/glass, -/obj/item/folder/blue, -/obj/item/folder/blue, -/obj/item/pen, -/obj/item/stamp/cmo, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bFh" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/computer/card/minor/cmo{ - dir = 1 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Medical Officer's Desk"; - departmentType = 5; - name = "Chief Medical Officer RC"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/obj/machinery/door/window/eastright, +/turf/open/floor/carpet, +/area/bridge) "bFi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/heads/hop/private) "bFj" = ( -/obj/machinery/door/airlock/maintenance{ - name = "CMO Maintenance"; - req_access_txt = "40" +/obj/machinery/vending/boozeomat, +/obj/machinery/status_display/evac{ + pixel_y = 32 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/turf/open/floor/plasteel/grimy, +/area/bridge) "bFk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice/b) "bFl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -44255,12 +38893,18 @@ /turf/open/floor/plating, /area/maintenance/fore) "bFm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bFn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -44288,190 +38932,162 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bFo" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 }, -/area/hydroponics/garden/abandoned) +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) "bFp" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 6 }, /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/hydroponics/garden/abandoned) +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) "bFq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, +/obj/effect/spawner/lootdrop/grille_or_trash, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, /turf/open/floor/plating, -/area/hydroponics/garden/abandoned) +/area/maintenance/starboard/aft) "bFr" = ( -/obj/item/seeds/watermelon, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) "bFs" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/item/radio/intercom{ + dir = 4; + pixel_y = 27 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bFt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 10 }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bFu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) +/area/security/nuke_storage) +"bFt" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bFu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/library) "bFv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bFw" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bFx" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bFy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bFz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bFA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bFB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"bFC" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"bFD" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/maintenance/bar) -"bFE" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/engineering"; - dir = 8; - name = "Engineering Security APC"; - pixel_x = -24 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bFF" = ( -/turf/open/floor/plating/asteroid, -/area/space) -"bFG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bFH" = ( -/turf/closed/wall, -/area/maintenance/port) -"bFI" = ( -/turf/open/floor/plating, -/area/maintenance/port) -"bFJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bFK" = ( -/turf/closed/wall, -/area/medical/medbay/lobby) -"bFL" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/medbay/lobby"; - name = "Medbay Lobby APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bFM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/medbay/central) -"bFN" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" }, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bFB" = ( +/obj/structure/showcase/machinery/cloning_pod, +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bFF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bFH" = ( +/turf/open/floor/plating, +/area/construction) +"bFK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/computer/bank_machine, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bFL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bFM" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_2"; + name = "Chemistry Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/chemistry) +"bFN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/obj/machinery/door/window/westleft, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) "bFO" = ( /obj/item/radio/intercom{ dir = 8; @@ -44483,117 +39099,139 @@ name = "Quartermaster's Quarters APC"; pixel_y = -24 }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/carpet/orange, /area/quartermaster/qm/private) "bFP" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/cmo/private) -"bFQ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bFR" = ( -/obj/machinery/hydroponics/soil{ - pixel_y = -8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bFS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/door/airlock/medical{ - name = "Medbay Break Room"; + name = "Apothecary"; req_access_txt = "5" }, /turf/open/floor/plasteel/white, -/area/medical) -"bFT" = ( -/obj/item/seeds/berry, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bFU" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/area/medical/medbay/central) +"bFQ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFR" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" }, -/area/hydroponics/garden/abandoned) -"bFV" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/reagent_containers/glass/bucket, /turf/open/floor/plating, -/area/hydroponics/garden/abandoned) +/area/maintenance/port/fore) +"bFS" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/closed/wall, +/area/medical/medbay/central) +"bFT" = ( +/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/structure/table, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/soap/nanotrasen, +/obj/item/gun/syringe/dart, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"bFU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"bFV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) "bFW" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bFX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFY" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bFX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/area/maintenance/aft) +"bFZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bFY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) -"bFZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bGa" = ( -/obj/structure/falsewall, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/maintenance/bar) "bGb" = ( -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_x = -30 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) "bGc" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) "bGd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 @@ -44616,28 +39254,14 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "bGe" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/structure/closet/secure_closet/security/engine, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = 26; - pixel_y = 6; - req_access_txt = "10" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 }, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/item/radio/off, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) "bGf" = ( /obj/machinery/power/apc{ areastring = "/area/science/robotics/lab"; @@ -44651,179 +39275,148 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bGg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bGk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bGl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bGm" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bGn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bGo" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bGp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bGq" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bGr" = ( +/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/trimline/neutral/filled/line, -/obj/machinery/power/apc/highcap/five_k{ - dir = 1; - name = "Central Hall APC"; - pixel_y = 25 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bGh" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/computer/med_data{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bGi" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/medbay/front_office"; - name = "Medbay Front Office APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bGj" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bGk" = ( -/obj/structure/table/glass, -/obj/item/paper_bin, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) -"bGl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGm" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGn" = ( -/obj/structure/table, -/obj/item/circular_saw{ - pixel_y = 2 - }, -/obj/item/scalpel{ - pixel_y = 15 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/item/radio/intercom{ - frequency = 1485; - name = "Station Intercom (Medbay)"; - pixel_x = -30 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bGo" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"bGp" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGq" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGr" = ( -/obj/structure/table, -/obj/machinery/light, -/obj/item/storage/box/donkpockets, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bGs" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/area/hallway/primary/fore) "bGt" = ( /obj/structure/cable{ icon_state = "4-8" @@ -44834,279 +39427,170 @@ /turf/open/floor/plating, /area/storage/emergency/starboard) "bGu" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/modular_computer/console/preset/command{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"bGv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/turf/open/floor/carpet, +/area/bridge) "bGw" = ( -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/crew_quarters/heads/hop/private"; - name = "Head of Personnel's Quarters APC"; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "2-4" }, /turf/open/floor/wood, /area/crew_quarters/heads/hop/private) "bGx" = ( -/obj/item/cultivator, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/hydroponics/soil{ - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bGy" = ( -/obj/item/seeds/ambrosia, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/hydroponics/soil{ - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bGz" = ( -/obj/item/seeds/watermelon, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/seeds/cannabis, -/obj/machinery/hydroponics/soil{ - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bGA" = ( -/obj/item/seeds/berry, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/hydroponics/soil{ - pixel_y = -8 - }, -/turf/open/floor/plating/asteroid, -/area/hydroponics/garden/abandoned) -"bGB" = ( -/turf/closed/wall/r_wall, -/area/engine/transit_tube) -"bGC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bGD" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bGE" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"bGF" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/bar"; - dir = 1; - name = "Maint Bar APC"; - pixel_y = 24 - }, /obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bGG" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) -"bGH" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/obj/machinery/computer/slot_machine{ - pixel_y = 2 + icon_state = "2-8" }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/maintenance/bar) -"bGI" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plating, -/area/maintenance/bar) -"bGJ" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/reagent_containers/dropper, -/turf/open/floor/wood, -/area/maintenance/bar) -"bGK" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/wood, -/area/maintenance/bar) -"bGL" = ( -/obj/structure/closet/secure_closet/bar{ - pixel_x = -3; - pixel_y = -1; - req_access_txt = "25" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bGM" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/wood, -/area/maintenance/bar) -"bGN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/virology, -/turf/open/floor/plasteel, -/area/medical/virology) -"bGO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/area/maintenance/starboard/aft) +"bGy" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bGP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bGQ" = ( -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bGR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bGz" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bGA" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bGB" = ( /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGT" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bGC" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGV" = ( +/turf/open/floor/plasteel/dark, +/area/bridge) +"bGD" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/wrench, +/obj/item/multitool, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bGF" = ( +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bGO" = ( +/obj/machinery/iv_drip, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/patients_rooms/room_a) +"bGQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice/b) +"bGR" = ( +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room) +"bGS" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bGT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bGU" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) "bGW" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "E.V.A. Storage Shutter" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/button/door{ + id = "evashutter"; + name = "E.V.A. Storage Shutter Control"; + pixel_y = -24; + req_access_txt = "19" }, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) "bGX" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/chem_master, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bGY" = ( /obj/effect/landmark/start/quartermaster, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ @@ -45122,78 +39606,62 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "bGZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/table, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bHa" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = 26; + pixel_y = -3 + }, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) "bHb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 }, +/obj/machinery/airalarm/directional/north, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bHc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bHd" = ( -/obj/machinery/light, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/virology) "bHe" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -45212,43 +39680,36 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/machinery/light, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bHg" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 30 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/front_office) +/area/medical/medbay/central) "bHh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/department/medical"; - dir = 4; - name = "Medical Maintenance APC"; - pixel_x = 24 +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 }, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "2-4" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bHi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -45276,208 +39737,124 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bHj" = ( +/obj/machinery/holopad, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bHk" = ( -/obj/structure/girder, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bHl" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/aft) -"bHm" = ( -/obj/structure/lattice, -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/aft) -"bHn" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_x = -10; - pixel_y = 22 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = -27 - }, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = -10; - pixel_y = -25 - }, -/obj/machinery/door/window{ - base_state = "rightsecure"; - dir = 4; - icon_state = "rightsecure"; - layer = 4.1; - name = "Secondary AI Core Access"; - obj_integrity = 300; - pixel_x = 4; - req_access_txt = "16" - }, -/turf/open/floor/circuit/green, -/area/ai_monitored/turret_protected/ai) -"bHo" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot_white/left, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/crate/silvercrate, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bHl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"bHm" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bHn" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bHo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/library/lounge"; + dir = 4; + name = "Library Lounge APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/carpet, +/area/library/lounge) +"bHp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHq" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHr" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHw" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2O to Pure" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ - dir = 1 + dir = 8 }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bHp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bHq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bHr" = ( -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = 27; - pixel_y = 7 - }, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 27 - }, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = -27; - pixel_y = 7 - }, -/obj/effect/landmark/start/ai, -/obj/machinery/button/door{ - id = "AI Core shutters"; - name = "AI Core shutters control"; - pixel_x = -24; - pixel_y = 22; - req_access_txt = "16" - }, -/obj/machinery/button/door{ - id = "AI Chamber entrance shutters"; - name = "AI Chamber entrance shutters control"; - pixel_x = 23; - pixel_y = 23; - req_access_txt = "16" - }, -/turf/open/floor/circuit/green, -/area/ai_monitored/turret_protected/ai) -"bHs" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_x = 10; - pixel_y = 22 - }, -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = 27 - }, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = 10; - pixel_y = -25 - }, -/obj/machinery/door/window{ - base_state = "leftsecure"; - dir = 8; - icon_state = "leftsecure"; - layer = 4.1; - name = "Tertiary AI Core Access"; - obj_integrity = 300; - pixel_x = -3; - req_access_txt = "16" - }, -/turf/open/floor/circuit/green, -/area/ai_monitored/turret_protected/ai) -"bHt" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/wood, -/area/maintenance/bar) -"bHu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bHv" = ( -/turf/open/floor/plating, -/area/maintenance/bar) -"bHw" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"bHx" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; - name = "old sink"; - pixel_x = 15 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bHy" = ( -/obj/machinery/atmospherics/components/unary/tank/air, /turf/open/floor/plasteel, -/area/medical/virology) +/area/engine/atmos) +"bHy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel/white, +/area/medical/cryo) "bHz" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -45486,150 +39863,113 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/camera/autoname, +/obj/machinery/airalarm/directional/north, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bHA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/medical/virology) -"bHB" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel/white, -/area/medical/virology) -"bHC" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) +/area/medical/cryo) "bHD" = ( -/obj/machinery/iv_drip, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) +/turf/open/floor/plasteel, +/area/medical/cryo) "bHE" = ( -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bHF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/bed, -/obj/item/bedsheet, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bHF" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHG" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = 30 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bHI" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHJ" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHL" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/table, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/obj/item/soap/nanotrasen, -/obj/item/gun/syringe/dart, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHM" = ( /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bHG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bHI" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bHJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/cryo) +"bHK" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/end{ + dir = 4 + }, +/obj/effect/turf_decal/vg_decals/department/med, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bHL" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"bHN" = ( +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bHO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/keycard_auth{ + pixel_x = 30 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency{ - pixel_x = -2; - pixel_y = -3 - }, -/obj/item/wrench, -/obj/item/multitool, /obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/machinery/camera/autoname{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/bridge) -"bHN" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/cmo/private) -"bHO" = ( -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/cmo/private) "bHP" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo/private) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) "bHQ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -45654,101 +39994,166 @@ dir = 8 }, /obj/effect/turf_decal/trimline/red/line, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bHR" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice/b"; + dir = 4; + name = "Vacant Office APC"; + pixel_x = 27 }, -/turf/open/floor/plating, -/area/maintenance/starboard) +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice/b) "bHS" = ( +/obj/structure/table, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"bHT" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/grimy, +/area/bridge/meeting_room) +"bHU" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bHV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/crate/silvercrate, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bHW" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bHT" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bHU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bHV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bHW" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/turf/open/floor/plating/asteroid, -/area/maintenance/starboard) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "bHX" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/machinery/power/smes/engineering{ - output_level = 80000 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "bHY" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/solars/starboard/aft"; - dir = 8; - name = "Starboard Quarter Solar APC"; - pixel_x = -26; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/cmo/private) "bHZ" = ( -/obj/machinery/camera{ - c_tag = "Aft Starboard Solar Maintenance"; - dir = 3 +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 8; + network = list("vault") }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) +/turf/open/space/basic, +/area/space) "bIa" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIb" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space, -/area/solar/starboard/aft) -"bId" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/ai_slipper{ - uses = 10 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bIb" = ( +/obj/structure/cable, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/nuke_storage"; + name = "Vault APC"; + pixel_y = -26 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"bIc" = ( +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 1; + network = list("vault") + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) "bIe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -45764,569 +40169,430 @@ /turf/open/floor/plasteel/dark, /area/security/brig) "bIf" = ( -/obj/machinery/requests_console{ - department = "AI"; - departmentType = 5; - pixel_x = -30; - pixel_y = -30 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = 23; - pixel_y = -23 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bIg" = ( -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/ai"; - icon_state = "control_stun"; - name = "AI Chamber turret control"; - pixel_x = -2; - pixel_y = 25 - }, -/obj/machinery/door/window{ - base_state = "leftsecure"; - dir = 8; - icon_state = "leftsecure"; - name = "Primary AI Core Access"; - obj_integrity = 300; - req_access_txt = "16" - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = -4; - pixel_y = -33 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bIh" = ( -/obj/machinery/door/window{ - base_state = "rightsecure"; - dir = 4; - icon_state = "rightsecure"; - name = "Primary AI Core Access"; - obj_integrity = 300; - req_access_txt = "16" - }, -/obj/machinery/camera{ - c_tag = "AI Chamber - Core"; - network = list("aicore") - }, -/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/power/apc/auto_name/north{ - areastring = "/area/ai_monitored/turret_protected/ai"; - name = "AI Chamber APC" - }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/bridge/showroom/corporate"; + dir = 4; + name = "Nanotrasen Corporate Showroom APC"; + pixel_x = 28 }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bIi" = ( -/obj/structure/girder, -/obj/structure/grille, +/area/bridge/showroom/corporate) +"bIg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bIh" = ( +/obj/machinery/light{ + dir = 8 + }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bIi" = ( +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) "bIj" = ( -/obj/structure/mineral_door/wood{ - name = "The Gobbetting Barmaid" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/port) -"bIk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/wood, -/area/maintenance/bar) -"bIl" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"bIm" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/maintenance/bar) +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) "bIn" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/tequila, -/turf/open/floor/wood, -/area/maintenance/bar) -"bIo" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/area/maintenance/bar) -"bIp" = ( -/obj/structure/rack, -/obj/item/reagent_containers/food/drinks/bottle/vodka{ - pixel_x = 3; - pixel_y = 2 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/item/reagent_containers/food/drinks/bottle/vermouth{ - pixel_x = -4; - pixel_y = 3 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/item/reagent_containers/food/drinks/bottle/whiskey, -/turf/open/floor/wood, -/area/maintenance/bar) +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/ore_silo, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) "bIq" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/machinery/camera/autoname, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bIr" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/camera/autoname{ - dir = 1 +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 9 }, +/obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bIs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 }, /turf/open/floor/plasteel, -/area/medical/virology) -"bIt" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/port) +/area/ai_monitored/storage/eva) "bIu" = ( -/turf/closed/wall, -/area/medical/patients_rooms/room_a) +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) "bIv" = ( /obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bIw" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/light, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"bIw" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"bIy" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIA" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "CloningDoor"; + name = "Cloning Lab"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bIx" = ( -/turf/closed/wall, -/area/medical/surgery) -"bIy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/surgery) -"bIz" = ( -/obj/machinery/light{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bIA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 +/area/medical/genetics/cloning) +"bIB" = ( +/obj/structure/sign/poster/official/random{ + pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 +/obj/effect/turf_decal/tile/brown{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/tile/brown{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 +/turf/open/floor/plasteel, +/area/storage/primary) +"bID" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"bIE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bIB" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bIC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"bIF" = ( +/obj/structure/cable{ + icon_state = "2-4" }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bIG" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/vending/cola/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bID" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bIE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bIF" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bIG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "bIH" = ( /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/department/cargo) "bII" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/starboard"; - dir = 4; - name = "Starboard Maintenance APC"; - pixel_x = 26 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bIJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bIK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering{ - name = "Starboard Quarter Solar Access"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIL" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIN" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIP" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bIQ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, -/turf/open/space/basic, -/area/solar/starboard/aft) -"bIR" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/solar/starboard/aft) -"bIS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bIT" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bIU" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/starboard/aft) -"bIV" = ( -/obj/structure/lattice/catwalk, -/obj/item/stack/cable_coil, -/turf/open/space, -/area/solar/starboard/aft) -"bIW" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bIX" = ( -/obj/machinery/power/tracker, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/solar/starboard/aft) -"bIY" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/space, -/area/space) -"bIZ" = ( -/obj/machinery/iv_drip, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bJa" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/bedsheet, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bJb" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIJ" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJc" = ( +/area/science/research) +"bIK" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"bIL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bIM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIN" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIO" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Core shutters"; - name = "AI core shutters" + id = "examroom"; + name = "Privacy Shutters" }, /turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"bJd" = ( -/obj/structure/chair, -/obj/effect/landmark/start/medical_doctor, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJe" = ( -/obj/structure/chair, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJf" = ( +/area/medical/patients_rooms/room_a) +"bIP" = ( +/obj/structure/window/reinforced/spawner, +/turf/open/space, +/area/space) +"bIQ" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating/asteroid/airless, +/area/medical/virology) +"bIR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bIT" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bIU" = ( /obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bIV" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/space, -/area/space) -"bJg" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bIW" = ( +/obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced{ dir = 8; layer = 2.9 }, /turf/open/space, /area/space) -"bJh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bJi" = ( -/obj/structure/girder, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +"bIZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJa" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, /turf/open/floor/plating, -/area/maintenance/port) +/area/maintenance/fore) +"bJb" = ( +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bJd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJe" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bJj" = ( -/obj/structure/mineral_door/wood{ - name = "The Gobbetting Barmaid" +/obj/effect/landmark/start/medical_doctor, +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bJk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bJl" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bJm" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"bJn" = ( -/obj/effect/turf_decal/box/white/corners{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bJn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/fore) "bJo" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -46335,54 +40601,14 @@ }, /turf/open/floor/plating, /area/science/mixing) -"bJp" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/rag, -/turf/open/floor/wood, -/area/maintenance/bar) -"bJq" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = 6; - pixel_y = -1 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/turf/open/floor/wood, -/area/maintenance/bar) -"bJr" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bJs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) "bJt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bJu" = ( /obj/structure/cable{ icon_state = "4-8" @@ -46391,20 +40617,202 @@ req_one_access_txt = "12;5;39;6" }, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "bJv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/sign/map/right{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-right-MS"; + pixel_y = 32 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/white, +/area/medical) +"bJx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bJy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bJz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bJA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bJB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bJC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/cable{ - icon_state = "1-8" +/turf/open/floor/plasteel, +/area/medical/cryo) +"bJD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bJE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bJG" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bJI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -46415,297 +40823,93 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bJw" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bJx" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bJy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJz" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/surgery"; - name = "Surgery APC"; - pixel_y = -26 - }, -/obj/machinery/light, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJC" = ( -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre A"; - req_access_txt = "45" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJD" = ( -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre B"; - req_access_txt = "45" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJE" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bJF" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Port Fore"; - dir = 8; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bJG" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bJI" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bJJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/landmark/xeno_spawn, -/obj/structure/sink{ - layer = 3; - pixel_y = 22 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJK" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJL" = ( /obj/structure/cable{ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 10 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJM" = ( -/obj/structure/table, -/obj/item/circular_saw{ - pixel_y = 2 - }, -/obj/item/scalpel{ - pixel_y = 15 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical) -"bJO" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJP" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bJK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, +/turf/open/floor/plasteel/grimy, +/area/security/vacantoffice/b) +"bJL" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 + dir = 6 }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bJQ" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 4; - freq = 1400; - location = "Medbay" - }, -/obj/structure/plasticflaps/opaque, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bJM" = ( +/obj/structure/showcase/machinery/tv, +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bJN" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "MuleBot Access"; - req_access_txt = "50" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bJR" = ( -/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{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bJO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bJP" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft, +/obj/machinery/door/window/northright{ + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_2"; + name = "Chemistry Shutters" + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bJQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_2"; + name = "Chemistry Shutters" + }, +/turf/open/floor/plating, +/area/medical/chemistry) "bJS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -46731,584 +40935,400 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bJT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bJU" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - Mix"; - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bJV" = ( -/obj/structure/cable, -/obj/machinery/power/smes/engineering{ - output_level = 80000 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bJW" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bJX" = ( -/obj/machinery/power/solar_control{ - dir = 8; - id = "aftstarboard"; - name = "Starboard Quarter Solar Control" - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"bJY" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bJZ" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 +/obj/machinery/status_display/evac{ + pixel_y = 32 }, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKa" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/area/medical/medbay/central) +"bJU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Starboard Fore"; - dir = 4; - network = list("minisat") +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bKb" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bKc" = ( +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bJV" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/ai_slipper{ - uses = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bKd" = ( -/obj/structure/window/reinforced/spawner/north, +/obj/structure/curtain, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bJW" = ( +/obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"bKe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bKf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/maintenance/bar) -"bKg" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/maintenance/bar) -"bKh" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"bKi" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plating, -/area/maintenance/bar) -"bKj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bKk" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/vacantoffice/a"; - dir = 8; - name = "Vacant Office APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"bKl" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/sign/map/left{ - desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; - icon_state = "map-left-MS"; - pixel_y = 32 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKn" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKo" = ( -/obj/machinery/computer/operating{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/sign/map/right{ - desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; - icon_state = "map-right-MS"; - pixel_y = 32 - }, -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/machinery/microwave, -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKs" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKt" = ( -/obj/structure/sink{ - pixel_y = 22 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKu" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKw" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/medical) -"bKx" = ( -/turf/open/floor/plasteel/white, -/area/medical) -"bKy" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bKz" = ( -/obj/structure/curtain, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bKA" = ( -/turf/closed/wall, -/area/medical) -"bKB" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bKC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bKD" = ( -/obj/structure/curtain, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bKE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bKF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bKG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"bKH" = ( -/obj/structure/window/reinforced/spawner, +"bJX" = ( /obj/structure/window/reinforced{ dir = 8; layer = 2.9 }, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 + dir = 9 }, /turf/open/floor/plasteel/dark, /area/aisat) -"bKI" = ( -/obj/structure/table, -/obj/item/surgicaldrill{ - pixel_y = 5 - }, -/obj/item/cautery{ - pixel_x = 5 - }, -/obj/item/radio/intercom{ - frequency = 1485; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKJ" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +"bJY" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bKK" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"bKL" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"bKM" = ( -/obj/machinery/vending/assist, -/turf/open/floor/plating, -/area/maintenance/bar) -"bKN" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/port) -"bKO" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/maintenance/port"; - name = "Port Maintenance APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bKP" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bJZ" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKa" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKb" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bKe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKf" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Fore"; + dir = 1; + network = list("minisat") + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bKg" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /obj/structure/cable{ icon_state = "2-8" }, /turf/open/floor/plating, -/area/maintenance/port) -"bKQ" = ( -/obj/effect/turf_decal/tile/neutral{ +/area/maintenance/aft) +"bKk" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bKR" = ( -/obj/structure/table, -/obj/item/surgicaldrill{ - pixel_y = 5 - }, -/obj/item/cautery{ - pixel_x = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bKl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKS" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/power/apc{ - areastring = "/area/hydroponics/garden/abandoned"; - name = "Abandoned Garden APC"; - pixel_y = -26 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/area/medical/medbay/central) +"bKm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKn" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"bKT" = ( -/obj/item/poster/random_contraband, -/turf/open/floor/plating{ - icon_state = "platingdmg2" +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKo" = ( +/obj/item/storage/box/masks, +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 }, -/area/maintenance/aft) -"bKU" = ( -/obj/effect/landmark/start/medical_doctor, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKV" = ( +/area/medical/medbay/central) +"bKp" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/reagent_containers/spray/cleaner, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bKX" = ( +/area/medical/medbay/central) +"bKq" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKr" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bKs" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/cryo"; + name = "Cryogenics APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bKt" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bKu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bKv" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"bKw" = ( +/obj/machinery/camera{ + c_tag = "Medbay Cryogenics"; + dir = 1; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bKx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"bKy" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bKz" = ( +/obj/structure/chair/stool, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28; + pixel_y = 5 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bKA" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/RnD_secure, +/turf/open/floor/plating, +/area/storage/tech) +"bKB" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bKD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/structure/extinguisher_cabinet{ dir = 4; pixel_x = 24 }, -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bKE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/landmark/start/cyborg, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical) -"bKY" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bLa" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"bKF" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bKG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Vault Storage" + }, +/turf/open/floor/plasteel, +/area/security/nuke_storage) +"bKI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=centrala"; + location = "central3" }, -/obj/machinery/camera{ - c_tag = "AI Chamber Port"; - dir = 5; - network = list("aicore") +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bKJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bLb" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bKL" = ( +/obj/structure/table/wood, +/obj/item/lighter/greyscale{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"bKN" = ( +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"bKR" = ( +/obj/structure/window/reinforced{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 + dir = 10 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 }, -/turf/open/floor/plasteel/white, -/area/medical) -"bLc" = ( -/obj/machinery/vending/wardrobe/cap_wardrobe, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) -"bLd" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/white, -/area/medical) -"bLe" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel/white, -/area/medical) -"bLf" = ( +/turf/open/floor/plasteel/dark, +/area/aisat) +"bKS" = ( /obj/machinery/power/apc{ areastring = "/area/medical/patients_rooms/room_a"; dir = 8; @@ -47321,294 +41341,410 @@ }, /turf/open/floor/plasteel/white, /area/medical/patients_rooms/room_a) -"bLg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bLh" = ( +"bKT" = ( /obj/structure/bed, /obj/item/bedsheet/medical, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/medical/patients_rooms/room_a) -"bLi" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +"bKU" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo/private) -"bLj" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bKV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bLk" = ( -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bLl" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bKX" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"bLm" = ( -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/central/secondary) -"bLn" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKY" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/sign/departments/chemistry{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLc" = ( +/obj/structure/table/wood, +/obj/item/pinpointer/nuke, +/obj/item/disk/nuclear, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) +"bLd" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/central) -"bLo" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bLp" = ( -/obj/machinery/light{ +/turf/open/floor/plasteel/dark, +/area/aisat) +"bLe" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bLf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLq" = ( -/obj/structure/table, -/obj/item/hemostat{ - pixel_x = -5 +/area/medical/medbay/central) +"bLg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 }, -/obj/item/retractor{ - pixel_x = 2 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/light{ +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; dir = 4; - light_color = "#c1caff" + name = "Medbay Central APC"; + pixel_x = 24 }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLr" = ( -/obj/structure/table, -/obj/item/hemostat{ - pixel_x = -5 - }, -/obj/item/retractor{ - pixel_x = 2 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLs" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" +/area/medical/medbay/central) +"bLi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"bLj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLt" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bLu" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/machinery/vending/cola/random, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bLv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"bLk" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bLl" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"bLm" = ( +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"bLn" = ( +/obj/machinery/door/airlock/maintenance{ + name = "CMO Maintenance"; + req_access_txt = "40" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bLo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bLp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"bLq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"bLr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"bLs" = ( +/turf/closed/wall/r_wall, +/area/medical/cryo) +"bLt" = ( +/turf/closed/wall, +/area/medical/cryo) +"bLu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bLv" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bLw" = ( +/obj/structure/window/reinforced/spawner/north, +/turf/open/space/basic, +/area/space) +"bLx" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bLy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"bLz" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"bLB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/nuke_storage) +"bLC" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bLD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 }, -/obj/machinery/camera{ - c_tag = "AI Chamber Starboard"; - dir = 9; - network = list("aicore") +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bLw" = ( -/obj/machinery/light/small, -/obj/machinery/vending/wallmed{ - pixel_x = -28 +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + sortType = 11 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bLx" = ( -/obj/structure/table/glass, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/clothing/neck/stethoscope, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bLy" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLz" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLA" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"bLB" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLC" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/surgery, -/obj/item/surgical_drapes, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLD" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/surgery, -/obj/item/surgical_drapes, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLE" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bLF" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bLE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/vg_decals/department/med, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bLF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/plasteel/white, -/area/medical/surgery) +/area/medical/medbay/lobby) "bLG" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/surgery) +/area/medical/medbay/lobby) "bLH" = ( -/obj/structure/grille, /turf/open/space/basic, -/area/space/nearstation) +/area/space/station_ruins) "bLJ" = ( /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat/foyer) -"bLK" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "16" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) "bLM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet/orange, /area/quartermaster/qm/private) "bLN" = ( @@ -47662,529 +41798,351 @@ }, /turf/open/floor/plasteel, /area/quartermaster/qm) -"bLQ" = ( -/obj/structure/cable{ - icon_state = "2-8" +"bLT" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" }, /turf/open/floor/plating, -/area/maintenance/port) -"bLR" = ( +/area/storage/tech) +"bLU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bLV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "2-8" }, -/turf/open/floor/plating, -/area/maintenance/port) -"bLS" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bLT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bLU" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bLV" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/satellite) -"bLW" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bLX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-8" }, -/obj/machinery/power/smes{ - charge = 5e+006 +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bLW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 }, -/obj/machinery/airalarm{ - pixel_y = 26 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "bLY" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bLZ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/computer/monitor, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bMa" = ( -/obj/machinery/porta_turret/ai, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons from the safety of his office."; - dir = 4; - name = "Research Monitor"; - network = list("rd"); - pixel_x = -28 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, /turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/foyer) +/area/maintenance/department/electrical) "bMb" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bMc" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel's Private Quarters"; - req_access_txt = "57" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"bMd" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical) -"bMe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bMc" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "bMf" = ( -/obj/structure/chair/stool, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -30 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/camera{ - c_tag = "Medbay Break Room"; + c_tag = "Medbay Port"; dir = 1; + name = "medbay camera"; network = list("ss13","medbay") }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel/white, -/area/medical) -"bMg" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = -30 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/table/glass, -/obj/item/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 5 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/plasteel/white, -/area/medical) +/area/medical/medbay/central) "bMh" = ( -/obj/structure/chair/stool, -/obj/machinery/newscaster{ - pixel_y = -30 +/obj/structure/cable{ + icon_state = "4-8" }, /obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /turf/open/floor/plasteel/white, -/area/medical) -"bMi" = ( -/obj/machinery/porta_turret/ai, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 8; - pixel_x = 28 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/foyer) +/area/medical/medbay/central) "bMj" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/medical) -"bMk" = ( -/obj/machinery/teleport/hub, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bMl" = ( -/obj/machinery/camera, -/obj/machinery/teleport/station, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bMm" = ( -/obj/machinery/computer/teleporter, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bMn" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"bMo" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bMp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMn" = ( +/obj/structure/chair/office/dark{ + dir = 8 }, /turf/open/floor/plating, -/area/maintenance/port) +/area/construction) +"bMo" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) "bMq" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/light_switch{ + pixel_x = 27 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bMr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bMs" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bMt" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plasteel, +/area/construction) +"bMr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/turf/open/floor/plasteel/dark, +/area/aisat) +"bMt" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) "bMu" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMw" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port) +"bMx" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"bMA" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plating, +/area/maintenance/port) +"bMB" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bMv" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMH" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Tool Storage Maintenance"; + req_access_txt = "12" }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bMw" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /turf/open/floor/plating, -/area/maintenance/department/medical) -"bMx" = ( +/area/maintenance/port/aft) +"bMI" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bMJ" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bMy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 1 }, -/obj/structure/disposalpipe/junction{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bMz" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bMA" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bMB" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "0-8" }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bMC" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bMD" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bME" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"bMF" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bMG" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/bridge) +"bML" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" }, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bMH" = ( /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "4-8" }, -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/turret_protected/aisat_interior"; - dir = 1; - name = "MiniSat Antechamber APC"; - pixel_y = 29 +/turf/open/floor/plating, +/area/security/nuke_storage) +"bMN" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bMI" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bMJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/landmark/start/cyborg, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -48195,75 +42153,27 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bMK" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bML" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/aisat) -"bMN" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) +/area/ai_monitored/turret_protected/aisat/foyer) "bMO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bMP" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -26 +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid, +/area/maintenance/port/fore) +"bMV" = ( +/obj/structure/chair{ + dir = 4 }, /obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bMS" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/window/reinforced, -/turf/open/space, -/area/space) -"bMT" = ( -/obj/structure/transit_tube/curved/flipped{ dir = 4 }, -/turf/open/space, -/area/space/nearstation) -"bMU" = ( -/obj/structure/transit_tube/curved{ - dir = 8 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"bMV" = ( -/obj/structure/transit_tube/curved/flipped{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "bMW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -48271,114 +42181,82 @@ /obj/structure/sign/plaques/kiddie/library{ pixel_y = -32 }, -/turf/open/floor/carpet, -/area/library) -"bMX" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/medical"; - name = "Breakroom APC"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical) -"bMY" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/transit_tube) -"bMZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bNa" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bNb" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bNc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"bNd" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/solar/starboard/aft) -"bNe" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"bNf" = ( -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/structure/window/reinforced/spawner, -/turf/open/space, -/area/space) -"bNh" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, +/turf/open/floor/carpet, +/area/library) +"bMX" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bNi" = ( -/obj/structure/showcase/cyborg/old{ - pixel_y = 20 +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bMY" = ( +/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNj" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bMZ" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bNa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bNc" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/front_office) +"bNd" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/table/glass, +/obj/item/reagent_containers/food/snacks/grown/apple, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bNe" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/medical) +"bNh" = ( +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) +/area/ai_monitored/turret_protected/ai) +"bNk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/medical) "bNl" = ( /obj/structure/cable{ icon_state = "1-2" @@ -48434,12 +42312,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, /obj/effect/turf_decal/trimline/red/line{ dir = 8 }, @@ -48447,319 +42319,227 @@ codes_txt = "patrol;next_patrol=9.1-Escape-1"; location = "starboard1" }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bNo" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNq" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNu" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNv" = ( /obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=central1"; - location = "aft7" - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bNw" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNx" = ( -/obj/machinery/camera{ - c_tag = "AI Chamber Aft"; - dir = 1; - network = list("aicore") - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bNy" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bNz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bNA" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bNB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bNC" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bND" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bNE" = ( -/obj/structure/transit_tube/diagonal{ - dir = 8 - }, -/turf/open/space, -/area/space/nearstation) -"bNF" = ( -/obj/structure/transit_tube/diagonal, -/turf/open/space/basic, -/area/space/nearstation) -"bNG" = ( -/obj/machinery/vending/hydroseeds, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bNH" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ dir = 5 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNI" = ( -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bNJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/area/hallway/primary/starboard) +"bNo" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNM" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNN" = ( -/turf/closed/wall, -/area/storage/tcom) -"bNO" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNP" = ( -/obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bNq" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Medbay Security Post"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bNQ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNR" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNS" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bNT" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"bNW" = ( +/area/security/checkpoint/medical) +"bNr" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Paramedic's Office"; + req_access_txt = "5;6;12;64" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bNs" = ( +/obj/structure/cable{ + icon_state = "1-2" }, /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bNt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_x = 30 + }, +/obj/machinery/computer/med_data{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bNu" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bNw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bNx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bNz" = ( +/obj/structure/sign/warning/deathsposal, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bNC" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bNH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bNJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bNM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bNO" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/surgery"; + name = "Surgery APC"; + pixel_y = -26 + }, +/obj/machinery/light, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bNP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bNQ" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/cmo/private) +"bNR" = ( +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/cmo/private) +"bNT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bNW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, @@ -48783,7 +42563,9421 @@ /obj/effect/turf_decal/trimline/white/line, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"bNX" = ( +"bNY" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bNZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bOa" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bOb" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bOc" = ( +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bOe" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOg" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOh" = ( +/obj/structure/reagent_dispensers/virusfood{ + pixel_y = 30 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe/antiviral, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOi" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bOj" = ( +/obj/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bOk" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bOl" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/front_office) +"bOm" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bOo" = ( +/obj/structure/chair/office/light, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bOs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bOw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Medbay Security Post"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bOx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bOy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/landmark/start/depsec/medical, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bOB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bOC" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bOD" = ( +/obj/structure/table/glass, +/obj/item/clothing/mask/cigarette/robust, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bOK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/table/glass, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/pen, +/obj/item/stamp/cmo, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bOL" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"bOM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"bON" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bOO" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + name = "Telecomms Control Room"; + req_one_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"bOQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bOR" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bOT" = ( +/obj/machinery/light/small, +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"bOU" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/virologist, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = 29; + pixel_y = 58; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bOW" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bOX" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bOY" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bOZ" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/lobby"; + name = "Medbay Lobby APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bPa" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bPb" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/computer/med_data{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bPc" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/front_office"; + name = "Medbay Front Office APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bPd" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bPe" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/front_office) +"bPf" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; + dir = 8; + name = "Medbay Security APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = -31 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bPg" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Medbay"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bPh" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/obj/structure/closet/secure_closet/security/med, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bPi" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bPj" = ( +/obj/machinery/suit_storage_unit/paramedic, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bPm" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/paramedic) +"bPn" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bPo" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bPp" = ( +/turf/closed/wall, +/area/maintenance/starboard/aft) +"bPq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bPs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Quarters"; + req_access_txt = "40" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo) +"bPt" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bPu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bPv" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bPw" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Test Subject Cell"; + req_access_txt = "39" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bPz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port) +"bPA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/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/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bPB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bPD" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Storage Room"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bPE" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bPF" = ( +/obj/item/bot_assembly/floorbot{ + build_step = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bPI" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bPK" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bPO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bPU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"bPW" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bPY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPZ" = ( +/obj/machinery/door/airlock/public/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bQa" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) +"bQb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQc" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQe" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQg" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + icon_state = "right" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/stock_parts/cell/crap, +/obj/structure/table/reinforced, +/turf/open/floor/plating, +/area/maintenance/port) +"bQh" = ( +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bQi" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bQj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bQm" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bQo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQp" = ( +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQq" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQr" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/medbay/lobby) +"bQs" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/medical/medbay/lobby) +"bQt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"bQv" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"bQx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bQy" = ( +/obj/item/storage/secure/safe{ + pixel_x = 6; + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bQz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/crew_quarters/heads/cmo/private"; + dir = 4; + name = "Chief Medical Officer's Quarters APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"bQA" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bQB" = ( +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/item/bot_assembly/cleanbot, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bQC" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bQE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/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/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bQF" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bQG" = ( +/obj/machinery/camera{ + c_tag = "Telecomms - Control Room"; + dir = 1; + network = list("ss13","tcomms") + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"bQI" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"bQK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bQN" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bQO" = ( +/obj/machinery/computer/communications{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/carpet, +/area/bridge) +"bQR" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bQS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQT" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bQU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"bQV" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQW" = ( +/obj/structure/sign/warning/pods, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"bQX" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bQY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bQZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bRa" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bRb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRc" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRd" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "AI Chamber Fore"; + network = list("aicore") + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRf" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRh" = ( +/obj/structure/light_construct/small, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/port) +"bRi" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bRj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bRk" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bRm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/carpet/black, +/area/bridge) +"bRn" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/folder, +/obj/item/folder, +/obj/structure/table/reinforced, +/obj/item/stack/medical/mesh{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/stack/medical/suture{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bRo" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice/b) +"bRp" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bRq" = ( +/obj/structure/showcase/mecha/marauder, +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bRs" = ( +/obj/item/bikehorn/rubberducky, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bRu" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bRw" = ( +/obj/structure/closet/crate, +/obj/item/soap/deluxe, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/clothing/suit/xenos, +/obj/item/clothing/head/xenos, +/turf/open/floor/plating, +/area/maintenance/port) +"bRx" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bRz" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port) +"bRA" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bRE" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bRH" = ( +/obj/structure/flora/rock/jungle, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"bRI" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bRJ" = ( +/obj/effect/mob_spawn/human/skeleton/alive, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/starboard) +"bRK" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bRQ" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bRR" = ( +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bRS" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bRU" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bRX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bRY" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bRZ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bSb" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bSc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bSd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bSe" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bSi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bSk" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bSm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bSn" = ( +/obj/item/bot_assembly/firebot, +/turf/open/floor/plating, +/area/maintenance/port) +"bSo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/port) +"bSp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bSq" = ( +/obj/structure/flora/ausbushes/stalkybush, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"bSr" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/starboard) +"bSs" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Port Fore"; + dir = 8; + network = list("minisat") + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bSt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bSv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bSx" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Starboard Fore"; + dir = 4; + network = list("minisat") + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bSy" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bSA" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bSB" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bSE" = ( +/turf/closed/wall/r_wall, +/area/engine/transit_tube) +"bSI" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/obj/item/poster/random_contraband, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/port) +"bSJ" = ( +/obj/structure/closet/crate, +/obj/item/coin/silver, +/obj/item/storage/box/lights/mixed, +/obj/item/storage/box/donkpockets, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/grenade/empgrenade, +/turf/open/floor/plating, +/area/maintenance/port) +"bSK" = ( +/obj/effect/landmark/start/chief_engineer, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bSL" = ( +/obj/machinery/holopad, +/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/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bSM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bSN" = ( +/obj/structure/disposalpipe/segment, +/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/kirbyplants/random, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/chief"; + dir = 4; + name = "Chief Engineer's APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bSQ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bSR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bSS" = ( +/obj/structure/table, +/obj/structure/light_construct/small, +/obj/item/book/manual/wiki/engineering_hacking, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bST" = ( +/turf/closed/wall, +/area/aisat) +"bSW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/door/airlock/virology, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bTe" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bTf" = ( +/obj/effect/spawner/lootdrop/mre, +/obj/structure/table, +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/port) +"bTg" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/port) +"bTh" = ( +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"bTj" = ( +/obj/structure/flora/stump, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/starboard) +"bTk" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bTm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bTn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bTo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/transit_tube) +"bTp" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bTq" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bTr" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bTs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bTt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bTv" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bTw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bTx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bTy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) +"bTz" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/chair/sofa/corp/right, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bTA" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/chair/sofa/corp, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bTB" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bTC" = ( +/obj/structure/chair/sofa/corp/left, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bTD" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"bTE" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/port) +"bTG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Secure Storage Room"; + req_access_txt = "65" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bTI" = ( +/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/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bTJ" = ( +/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/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bTK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bTL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/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/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bTM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bTN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bTO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bTP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bTR" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bTT" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bTU" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space/basic, +/area/space) +"bTV" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bTY" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Aft"; + dir = 6; + network = list("minisat") + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bUc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bUd" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bUe" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"bUf" = ( +/turf/open/floor/plating/asteroid, +/area/maintenance/port) +"bUg" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"bUh" = ( +/obj/structure/flora/rock/jungle, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/hallway/primary/starboard) +"bUi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bUj" = ( +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bUl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) +"bUq" = ( +/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/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/transit_tube) +"bUs" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/amplifier{ + pixel_x = -3 + }, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"bUt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bUw" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) +"bUx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bUy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bUA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bUB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bUD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bUE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) +"bUF" = ( +/obj/machinery/suit_storage_unit/ce, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bUG" = ( +/obj/machinery/computer/security/telescreen/ce{ + dir = 1; + pixel_y = -30 + }, +/obj/structure/filingcabinet/chestdrawer, +/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/gps/engineering{ + gpstag = "CE0" + }, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bUH" = ( +/obj/machinery/light, +/obj/machinery/photocopier, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bUI" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light_switch{ + pixel_x = 26; + pixel_y = -26 + }, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bUK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bUL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bUM" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bUO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"bUP" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bUT" = ( +/obj/item/toy/talking/AI{ + name = "Nanotrasen-brand toy AI"; + pixel_y = 6 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/bridge/showroom/corporate) +"bUV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bUX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/port) +"bUZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plating, +/area/maintenance/port) +"bVa" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bVb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/directions/medical{ + pixel_x = 32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bVc" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/light/small, +/turf/open/floor/grass, +/area/hallway/primary/starboard) +"bVe" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -10; + pixel_y = 22 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -27 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -10; + pixel_y = -25 + }, +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + layer = 4.1; + name = "Secondary AI Core Access"; + obj_integrity = 300; + pixel_x = 4; + req_access_txt = "16" + }, +/turf/open/floor/circuit/green, +/area/ai_monitored/turret_protected/ai) +"bVf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bVg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bVh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bVj" = ( +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 7 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 27 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -27; + pixel_y = 7 + }, +/obj/effect/landmark/start/ai, +/obj/machinery/button/door{ + id = "AI Core shutters"; + name = "AI Core shutters control"; + pixel_x = -24; + pixel_y = 22; + req_access_txt = "16" + }, +/obj/machinery/button/door{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber entrance shutters control"; + pixel_x = 23; + pixel_y = 23; + req_access_txt = "16" + }, +/turf/open/floor/circuit/green, +/area/ai_monitored/turret_protected/ai) +"bVk" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bVl" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"bVo" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 10; + pixel_y = 22 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 27 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 10; + pixel_y = -25 + }, +/obj/machinery/door/window{ + base_state = "leftsecure"; + dir = 8; + icon_state = "leftsecure"; + layer = 4.1; + name = "Tertiary AI Core Access"; + obj_integrity = 300; + pixel_x = -3; + req_access_txt = "16" + }, +/turf/open/floor/circuit/green, +/area/ai_monitored/turret_protected/ai) +"bVr" = ( +/obj/machinery/door/airlock/hatch{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"bVt" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bVw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bVz" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bVA" = ( +/obj/structure/transit_tube/curved{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/transit_tube) +"bVB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bVC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bVD" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/button/door{ + id = "transittube"; + name = "Transit Tube Lockdown"; + pixel_x = 24; + pixel_y = -5; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bVE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Research Maintenance"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bVG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bVI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bVK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bVN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Utilities Maintenance"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/machinery/light_switch{ + pixel_x = -25; + pixel_y = 25 + }, +/turf/open/floor/carpet, +/area/library) +"bVR" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/deck_relay, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVS" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = 30 + }, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bVT" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bVV" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bVW" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bVX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVZ" = ( +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"bWb" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bWc" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Engineering" + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bWd" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bWf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bWg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWh" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bWi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/machinery/camera{ + c_tag = "AI Chamber Port"; + dir = 5; + network = list("aicore") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bWl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bWn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"bWp" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bWq" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bWr" = ( +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bWs" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bWt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bWu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"bWz" = ( +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai"; + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = -2; + pixel_y = 25 + }, +/obj/machinery/door/window{ + base_state = "leftsecure"; + dir = 8; + icon_state = "leftsecure"; + name = "Primary AI Core Access"; + obj_integrity = 300; + req_access_txt = "16" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bWA" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/library/lounge) +"bWB" = ( +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + pixel_x = -30; + pixel_y = -30 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 23; + pixel_y = -23 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bWD" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/engineering"; + dir = 8; + name = "Engineering Security APC"; + pixel_x = -24 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bWE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/depsec/engineering, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bWF" = ( +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/crew_quarters/heads/chief/private"; + name = "Chief Engineer's Quarters APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"bWG" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Engineering Security Post"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bWJ" = ( +/obj/item/poster/random_contraband, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/aft) +"bWK" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bWN" = ( +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Primary AI Core Access"; + obj_integrity = 300; + req_access_txt = "16" + }, +/obj/machinery/camera{ + c_tag = "AI Chamber - Core"; + network = list("aicore") + }, +/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/power/apc/auto_name/north{ + areastring = "/area/ai_monitored/turret_protected/ai"; + name = "AI Chamber APC" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 4; + pixel_y = -33 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bWO" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bWP" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bWQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Chamber Starboard"; + dir = 9; + network = list("aicore") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bWS" = ( +/obj/structure/disposalpipe/trunk/multiz{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/aft) +"bWU" = ( +/obj/structure/transit_tube/diagonal, +/turf/open/space/basic, +/area/space/nearstation) +"bWV" = ( +/obj/structure/transit_tube/curved/flipped, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bXa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bXc" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief/private) +"bXd" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bXf" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bXg" = ( +/obj/machinery/door/poddoor/preopen{ + id = "transittube"; + name = "Transit Tube Blast Door" + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"bXi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bXl" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) +"bXm" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bXn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bXo" = ( +/obj/machinery/iv_drip, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bXp" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 3 + }, +/obj/structure/bed, +/obj/item/bedsheet, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bXs" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/obj/structure/sign/departments/science{ + name = "\improper ROBOTICS!"; + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bXt" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/engine/transit_tube) +"bXw" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bXz" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bXB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/carpet/orange, +/area/crew_quarters/heads/chief/private) +"bXC" = ( +/obj/structure/bed, +/obj/item/bedsheet/ce, +/turf/open/floor/carpet/orange, +/area/crew_quarters/heads/chief/private) +"bXD" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bXE" = ( +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bXF" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bXG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXH" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/closet/secure_closet/security/engine, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = 26; + pixel_y = 6; + req_access_txt = "10" + }, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/item/radio/off, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bXI" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"bXJ" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Foyer"; + req_one_access_txt = "32;19;24" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXK" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/vending/medical{ + products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, /obj/item/healthanalyzer = 4, /obj/item/sensor_device = 4, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/pill/insulin = 10, /obj/item/reagent_containers/pill/salbutamol = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, /obj/item/storage/hypospraykit/fire = 2, /obj/item/storage/hypospraykit/toxin = 2, /obj/item/storage/hypospraykit/o2 = 2, /obj/item/storage/hypospraykit/brute = 2, /obj/item/storage/hypospraykit/enlarge = 2, /obj/item/reagent_containers/glass/bottle/vial/small = 5, /obj/item/storage/briefcase/medical = 2, /obj/item/stack/sticky_tape/surgical = 3, /obj/item/healthanalyzer/wound = 4, /obj/item/stack/medical/ointment = 2, /obj/item/stack/medical/suture = 2, /obj/item/stack/medical/bone_gel = 4) + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bXL" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bXM" = ( +/obj/structure/chair, +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bXO" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bXP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bXQ" = ( +/obj/machinery/light, +/obj/item/bedsheet/cmo, +/obj/structure/bed, +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/cmo/private) +"bXR" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"bXS" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"bXT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bXX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bXY" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=aft6"; + location = "aft5" + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYc" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYd" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_y = 40 + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + pixel_y = 32 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYi" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"bYo" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bYr" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bYv" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Filter" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYw" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYy" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bYz" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Atmospherics - Distro Loop" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bYA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bYB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bYD" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bYF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation A"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bYG" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYJ" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Dock Aft"; + dir = 8; + name = "arrivals camera" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bYM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYR" = ( +/obj/machinery/microwave, +/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYS" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYT" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYU" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 27 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYX" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYY" = ( +/obj/machinery/vending/wardrobe/viro_wardrobe, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bZa" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bZb" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bZc" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bZh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera/motion{ + c_tag = "E.V.A. Storage" + }, +/obj/machinery/cell_charger, +/obj/structure/table, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bZk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central1"; + location = "aft6" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZo" = ( +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bZq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_x = 32; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/directions/engineering{ + dir = 4; + pixel_y = 32 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = 40 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "isola"; + name = "privacy shutters" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "examroom"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/medical/patients_rooms/room_a) +"bZz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + id_tag = "examroom"; + name = "Patient Room"; + req_access_txt = "5" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"bZF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZH" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bZI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "opth a"; + name = "Operating Theatre Privacy Shutters" + }, +/turf/open/floor/plating, +/area/medical/surgery) +"bZK" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZL" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre A"; + req_access_txt = "45" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bZM" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZO" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre B"; + req_access_txt = "45" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"bZP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/airlock/medical{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical) +"bZT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZV" = ( +/obj/structure/statue/snow/snowman, +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) +"bZW" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_y = 25 + }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_y = 33 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZX" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cag" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cai" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cal" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"cam" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"can" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cao" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cap" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"caq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Disposal Exit"; + name = "disposal exit vent" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cat" = ( +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"cau" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"caw" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cax" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI core shutters" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cay" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"caC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"caD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"caE" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"caF" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"caG" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"caM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"caO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"caP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"caQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Starboard Emergency Storage" + }, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"caR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/table, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caT" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/space/nearstation) +"caU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/medical/virology) +"caV" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"caW" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/chair/sofa/right, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"caX" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"caY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"caZ" = ( +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/structure/rack, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"cba" = ( +/obj/structure/transit_tube/horizontal, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"cbb" = ( +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Research - Director Office - South"; + dir = 1; + network = list("ss13","rd") + }, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cbe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbf" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) +"cbi" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cbq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbt" = ( +/obj/item/pipe_dispenser, +/obj/structure/table, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbu" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 6 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbx" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"cby" = ( +/obj/machinery/button/door{ + id = "examroom"; + name = "Privacy Shutters"; + pixel_x = 25; + pixel_y = 5 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"cbB" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/transit_tube/junction{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cbC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/structure/sink{ + layer = 3.1; + pixel_y = 22 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cbD" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cbE" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cbF" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cbG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/transit_tube) +"cbH" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cbJ" = ( +/obj/structure/table, +/obj/item/circular_saw{ + pixel_y = 2 + }, +/obj/item/scalpel{ + pixel_y = 15 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cbM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cbN" = ( +/obj/structure/transit_tube/station{ + dir = 4 + }, +/obj/structure/transit_tube_pod, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cbP" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid, +/area/maintenance/fore) +"cbR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cbS" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cbT" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cbU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"cbV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cbW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cbX" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) +"cbZ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/science/research) +"ccb" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cce" = ( +/obj/structure/lattice, +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) +"ccf" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard/aft) +"ccg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"cci" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/sink{ + layer = 3.1; + pixel_y = 22 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"ccj" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/button/door{ + id = "opth b"; + name = "Operation Theatre Privacy Shutters"; + pixel_x = 27; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"ccm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"ccp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "transittube"; + name = "Transit Tube Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cct" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Access"; + req_one_access_txt = "32;19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"ccv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ccA" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"ccB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccC" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"ccE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"ccG" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/yellow, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"ccH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/table, +/obj/item/lightreplacer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccK" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"ccL" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccM" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"ccU" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccZ" = ( +/obj/machinery/telecomms/hub/preset, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"cda" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cdb" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 4; + freq = 1400; + location = "Medbay" + }, +/obj/structure/plasticflaps/opaque, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 8; + name = "MuleBot Access"; + req_access_txt = "50" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cde" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cdk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdm" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdo" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/medical/virology) +"cdp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Port Mix to North Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cds" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cdu" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdy" = ( +/turf/closed/wall, +/area/engine/atmos) +"cdz" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"cdA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"cdE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"cdI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) +"cdK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"cdM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cdQ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdR" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdU" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdV" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdW" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"cdX" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cea" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cei" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cej" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable/yellow, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cek" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cel" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cem" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cep" = ( +/obj/structure/disposalpipe/segment, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"ceq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cer" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ces" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cet" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Pure to Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceu" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cev" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Port Mix to South Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cew" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cex" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cez" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceA" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ceB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/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/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ceC" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/wtf_is_co2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ceD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ceE" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"ceH" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/machinery/camera/autoname, +/obj/structure/sign/departments/science{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/fore) +"ceK" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"ceN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ceO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"ceP" = ( +/obj/machinery/light, +/obj/item/kirbyplants/random, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"ceQ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/turf/open/floor/circuit/green, +/area/engine/engine_smes) +"ceR" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/turf/open/floor/circuit/green, +/area/engine/engine_smes) +"ceT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/virology) +"ceW" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"ceY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceZ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/purple, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cfb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfc" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfe" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfg" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cfh" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cfq" = ( +/obj/structure/transit_tube/diagonal{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cfr" = ( +/obj/structure/transit_tube/curved{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cfs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cfu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cfv" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"cfw" = ( +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plating, +/area/maintenance/fore) +"cfz" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfC" = ( +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 + }, +/obj/machinery/pipedispenser/disposal, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfJ" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1" + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cfK" = ( +/obj/effect/landmark/start/atmospheric_technician, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cfL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cfM" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cfN" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cfP" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cfT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cfU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"cfV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cgn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Entrance"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgo" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cgq" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cgu" = ( +/obj/structure/particle_accelerator/end_cap, +/obj/structure/particle_accelerator/fuel_chamber, +/obj/structure/particle_accelerator/particle_emitter/center, +/obj/structure/particle_accelerator/particle_emitter/left, +/obj/structure/particle_accelerator/particle_emitter/right, +/obj/structure/particle_accelerator/power_box, +/obj/machinery/particle_accelerator/control_box, +/obj/structure/closet/crate/engineering{ + name = "Particle Accelerator Crate" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = "/area/engine/engineering"; + dir = 1; + name = "Engine Room APC"; + pixel_y = 27 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgy" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=entry1"; + location = "aft2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgA" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgB" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgC" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgF" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgH" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cgJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_interior"; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"cgK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/structure/sign/directions/dorms{ + pixel_y = -23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgZ" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cha" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"chc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chd" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/rnd/production/circuit_imprinter, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chf" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/item/kirbyplants/photosynthetic, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chh" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chj" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chl" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cho" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/structure/sign/warning/enginesafety{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/fireaxecabinet{ + pixel_x = -31 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chr" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"chv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"chB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chC" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"chE" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"chG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"chS" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"chU" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chX" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chY" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"chZ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cia" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cic" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"cid" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cie" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cif" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"cig" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cih" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cii" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cik" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cil" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciq" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cit" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cix" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"ciB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_y = 24; + req_access_txt = "39" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_exterior"; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"ciG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"ciH" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space, +/area/space/nearstation) +"ciL" = ( +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"ciS" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/transit_tube) +"ciT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ciU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ciV" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ciW" = ( +/turf/closed/wall, +/area/storage/tcom) +"ciX" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ciY" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"cja" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cjb" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 26; + pixel_y = 32; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cjc" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cje" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjg" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjh" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cji" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjl" = ( +/obj/machinery/button/door{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = 25; + pixel_y = 4; + req_access_txt = "12" + }, +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = 26; + pixel_y = -6 + }, +/obj/structure/chair/stool, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjp" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjr" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cju" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"cjv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"cjw" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjx" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Construction Area"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/construction) +"cjB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cjF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"cjN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/fore) +"cjO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjP" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjS" = ( +/turf/closed/wall, +/area/engine/engineering) +"cjT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/sign/plaques/atmos{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjY" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjZ" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "N2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cka" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckb" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckc" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "O2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckd" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + pixel_y = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cke" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckf" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckg" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckh" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cki" = ( +/obj/machinery/camera{ + c_tag = "AI Chamber Aft"; + dir = 1; + network = list("aicore") + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cko" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"ckt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cku" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckv" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cky" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"ckB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ckC" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/aisat) +"ckD" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/engine/engineering) +"ckE" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/engine/engineering) +"ckF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"ckG" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckH" = ( +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckK" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"ckL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"ckM" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"ckN" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckP" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckQ" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"ckR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckS" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"ckT" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"ckV" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Monitoring"; + req_access_txt = "12;24" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ckY" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"cld" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"clf" = ( +/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/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/transit_tube) +"clg" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/lab"; + dir = 1; + name = "Research and Development Lab APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/lab) +"cli" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clj" = ( +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/engine/engineering) +"clm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cln" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"clp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"clr" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"cls" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"clt" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clu" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"clz" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"clB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"clD" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/pen, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"clE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clF" = ( +/obj/structure/table, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"clG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clK" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"clM" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clO" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"clQ" = ( +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"clT" = ( +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/aft) +"clU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"clV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"clW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cmf" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/holopad{ + pixel_x = -9 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cmg" = ( +/obj/structure/curtain, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"cmk" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cml" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen, +/turf/open/floor/plating, +/area/engine/engineering) +"cmp" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmq" = ( +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/maintenance/department/cargo) +"cmt" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cmu" = ( +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cmv" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cmw" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cmz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cmA" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmC" = ( +/turf/closed/wall, +/area/security/vacantoffice/a) +"cmD" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cmE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cmF" = ( +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cmG" = ( +/obj/structure/table/wood, +/obj/item/paper, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cmH" = ( +/obj/structure/table/wood, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cmI" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cmJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmN" = ( +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/stalkybush, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"cmO" = ( +/obj/structure/flora/rock, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"cmP" = ( +/obj/structure/flora/junglebush/large, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"cmT" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/construction) +"cmX" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/construction) +"cmY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/construction) +"cmZ" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cnb" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/construction) +"cnc" = ( +/turf/closed/wall, +/area/storage/primary) +"cne" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cnf" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - N2"; + dir = 8 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cng" = ( +/obj/machinery/air_sensor/atmos/nitrogen_tank, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cnj" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cnk" = ( +/obj/machinery/computer/atmos_control{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"cnl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cnm" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/atmos) +"cnn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/space, +/area/space/nearstation) +"cno" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Incinerator Output Pump" + }, +/obj/structure/lattice, +/turf/open/space, +/area/engine/atmos) +"cnp" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cns" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/engine/engineering) +"cnt" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/storage) +"cnu" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/cargo) +"cnv" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/engine/storage) +"cnx" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cnB" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/storage/primary) +"cnE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"cnF" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/table, +/obj/item/analyzer, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/storage/primary) +"cnG" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnI" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/aft) +"cnM" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/aft) +"cnO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cnP" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/aft) +"cnQ" = ( +/obj/effect/spawner/lootdrop/mre, +/turf/open/floor/plating/asteroid, +/area/hallway/primary/aft) +"cnR" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/engine/engineering) +"cnS" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"cnT" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plating, +/area/medical/morgue) +"cnW" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cnY" = ( +/obj/machinery/air_sensor/atmos/oxygen_tank, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cnZ" = ( +/obj/machinery/air_sensor/atmos/air_tank, +/turf/open/floor/engine/air, +/area/engine/atmos) +"coa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cob" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"coc" = ( +/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/machinery/camera{ + c_tag = "Nanite Lab Starboard"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/sign/poster/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/science/circuit) +"coe" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"coh" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"coi" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"coj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cok" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Chamber"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"col" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"coq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"cor" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/gravity_generator"; + dir = 1; + name = "Gravity Generator APC"; + pixel_y = 24 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cos" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/bot/right, +/turf/open/floor/engine, +/area/engine/engineering) +"cot" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cox" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"coy" = ( +/obj/machinery/light, +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"coz" = ( +/obj/structure/chair/sofa{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"coE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"coF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"coG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coH" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/structure/table/reinforced, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 6 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"coI" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow, +/turf/open/floor/engine, +/area/engine/engineering) +"coL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"coM" = ( +/obj/machinery/light/small, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"coN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/button/door{ + id = "ewradiation"; + name = "Shutters Control"; + pixel_x = 26; + pixel_y = -7; + req_access_txt = "11" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coP" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/engine/engineering) +"coQ" = ( +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/transit_tube"; + name = "Transit Tube APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/engine/transit_tube) +"coR" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"coU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"coV" = ( +/turf/closed/wall, +/area/security/checkpoint/customs) +"coW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_one_access_txt = "1;4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"coX" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice/a"; + dir = 8; + name = "Vacant Office APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"coY" = ( +/obj/effect/turf_decal/vg_decals/atmos/nitrogen, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"coZ" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cpa" = ( +/obj/effect/turf_decal/vg_decals/atmos/air, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cpd" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpe" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/aft) +"cpg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/space, +/area/space/nearstation) +"cpi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cpj" = ( +/obj/machinery/igniter/incinerator_atmos, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cpk" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cpl" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cpm" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/primary"; + dir = 8; + name = "Tool Storage APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpo" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/storage) +"cpp" = ( +/turf/open/floor/plating, +/area/engine/storage) +"cpq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cpr" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/storage) +"cps" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpx" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/box/lights/mixed, +/obj/machinery/camera{ + c_tag = "Tool Storage"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cpy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cpz" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cpA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cpB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/computer/monitor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cpC" = ( +/obj/machinery/porta_turret/ai, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of his office."; + dir = 4; + name = "Research Monitor"; + network = list("rd"); + pixel_x = -28 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpD" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpE" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpF" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat_interior"; + dir = 1; + name = "MiniSat Antechamber APC"; + pixel_y = 29 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engine_smes) +"cpJ" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpL" = ( +/turf/open/floor/plating, +/area/maintenance/port) +"cpM" = ( +/obj/structure/table, +/obj/item/surgicaldrill{ + pixel_y = 5 + }, +/obj/item/cautery{ + pixel_x = 5 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cpO" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/engine, +/area/engine/engineering) +"cpQ" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/structure/table/reinforced, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/item/analyzer{ + pixel_x = 7; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"cpS" = ( /obj/structure/showcase/cyborg/old{ pixel_y = 20 }, @@ -48792,7 +51986,51 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bNY" = ( +"cpT" = ( +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cpU" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/miner/nitrogen, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cpV" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/miner/oxygen, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cpW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cpX" = ( +/obj/machinery/porta_turret/ai, +/obj/machinery/computer/security/telescreen/minisat{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"cpY" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cpZ" = ( /obj/machinery/light{ dir = 8; light_color = "#e8eaff" @@ -48802,13 +52040,454 @@ }, /turf/open/floor/plasteel/dark, /area/aisat) -"bNZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +"cqa" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cqb" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port/aft) +"cqc" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqd" = ( +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 1; + luminosity = 2 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cqe" = ( +/obj/item/radio/off, +/obj/item/crowbar, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/customs"; + dir = 1; + name = "Customs APC"; + pixel_x = 1; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cqf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cqg" = ( +/obj/machinery/door/airlock/external{ + name = "Auxiliary Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cqh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cqj" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqk" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cql" = ( +/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/security/checkpoint/customs) +"cqm" = ( +/obj/structure/table, +/obj/item/surgicaldrill{ + pixel_y = 5 + }, +/obj/item/cautery{ + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, /turf/open/floor/plasteel/white, -/area/medical) -"bOa" = ( +/area/medical/surgery) +"cqn" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqo" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cqq" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cqr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cqs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cqu" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqw" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqx" = ( +/obj/structure/disposalpipe/segment, +/turf/open/space, +/area/space/nearstation) +"cqy" = ( +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"cqA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cqD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqE" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cqF" = ( +/obj/structure/light_construct{ + dir = 8 + }, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/construction) +"cqH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plating, +/area/construction) +"cqJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cqN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/construction) +"cqO" = ( +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"cqP" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) +"cqQ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/vending/assist, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqR" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"cqS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqT" = ( +/obj/item/screwdriver, +/obj/structure/table, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/storage/toolbox/electrical, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqU" = ( +/obj/item/wrench, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqV" = ( +/obj/item/storage/toolbox/mechanical, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqY" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/t_scanner, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cqZ" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/aft) +"cra" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"crb" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/turf/open/space/basic, +/area/space/nearstation) +"crc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cre" = ( +/obj/structure/closet/firecloset, +/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/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"crf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"crg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -48816,7 +52495,1690 @@ }, /turf/open/floor/plasteel/dark, /area/aisat) -"bOb" = ( +"cri" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"crj" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/plasteel, +/area/engine/break_room) +"crm" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"crn" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cro" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"crp" = ( +/obj/machinery/camera{ + c_tag = "MiniSat Antechamber Port"; + dir = 4; + network = list("minisat") + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"crq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"crs" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"cru" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crC" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"crD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"crE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"crF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"crG" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"crH" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"crI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"crJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"crK" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/hallway/primary/fore) +"crL" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"crM" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"crN" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"crO" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crP" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"crQ" = ( +/obj/structure/transit_tube/curved{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"crR" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crS" = ( +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crT" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crU" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crV" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crW" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"crX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crY" = ( +/obj/structure/sign/poster/official/random{ + pixel_x = -32 + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"crZ" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"csa" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"csc" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"csd" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cse" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/disposal/incinerator) +"csf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"csk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, +/obj/structure/table/glass, +/turf/open/floor/plating, +/area/medical/abandoned) +"csl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"csm" = ( +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Port"; + dir = 8; + network = list("minisat") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"csn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cso" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"csp" = ( +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"csr" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/machinery/camera{ + c_tag = "Engineering - Gear Storage"; + dir = 4; + name = "engineering camera" + }, +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/item/storage/box/lights/mixed, +/obj/item/crowbar, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"css" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"csx" = ( +/turf/open/floor/engine/o2, +/area/engine/atmos) +"csy" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel, +/area/engine/break_room) +"csz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/checkpoint/customs) +"csA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"csF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Vacant Office"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"csH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -25; + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"csI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"csJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"csK" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"csL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/aft) +"csM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plating, +/area/construction) +"csN" = ( +/obj/structure/closet/crate, +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"csO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"csP" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Construction Area Maintenance"; + req_access_txt = "32" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"csQ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"csR" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/storage/primary) +"csS" = ( +/obj/structure/table, +/obj/item/multitool, +/obj/item/multitool{ + pixel_x = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"csT" = ( +/obj/item/weldingtool, +/obj/structure/table, +/obj/item/wirecutters, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"csU" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"csV" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/requests_console{ + department = "Tool Storage"; + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"csW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/stack/cable_coil/random, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"csX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical) +"csY" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/medical) +"cta" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"ctb" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"ctd" = ( +/turf/open/floor/plasteel/white, +/area/medical) +"cte" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"ctf" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"ctg" = ( +/turf/closed/wall, +/area/medical) +"cth" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/space, +/area/space) +"cti" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"ctj" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"ctk" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"ctl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ctn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cto" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ctp" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ctq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"ctr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ctt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/closet/l3closet/virology, +/turf/open/floor/plasteel, +/area/medical/virology) +"ctu" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + pixel_x = -22; + pixel_y = 26 + }, +/obj/item/radio/intercom{ + pixel_x = -26 + }, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"ctv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ctw" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat Maintenance Port"; + dir = 4; + network = list("minisat") + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cty" = ( +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ctD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctE" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector/anchored, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ctF" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctI" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctJ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/l3closet/virology, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/medical/virology) +"ctK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/medical/virology) +"ctL" = ( +/obj/machinery/status_display/ai{ + pixel_y = 31 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"ctN" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ctO" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ctP" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ctQ" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ctR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"ctS" = ( +/obj/machinery/status_display/ai{ + pixel_y = 31 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"ctT" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"ctU" = ( +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ctV" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"ctW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ctY" = ( +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cub" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuc" = ( +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cud" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cue" = ( +/obj/structure/table, +/obj/item/hemostat{ + pixel_x = -5 + }, +/obj/item/retractor{ + pixel_x = 2 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cuf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cug" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cui" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cuj" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/sunflower, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cum" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cun" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"cuo" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cup" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cur" = ( +/obj/machinery/power/apc{ + areastring = "/area/aisat"; + dir = 8; + name = "MiniSat Exterior APC"; + pixel_x = -24 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cus" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cut" = ( +/obj/structure/transit_tube/curved, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cuu" = ( +/obj/structure/transit_tube/diagonal{ + dir = 8 + }, +/turf/open/space, +/area/space/nearstation) +"cuv" = ( +/turf/open/floor/plating/asteroid, +/area/maintenance/port/aft) +"cux" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cuy" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cuz" = ( +/turf/closed/wall, +/area/maintenance/port/aft) +"cuA" = ( +/obj/effect/landmark/blobstart, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cuB" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/closet/secure_closet/security, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cuC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cuD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cuF" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cuG" = ( +/obj/machinery/door/airlock/security{ + name = "Customs Desk"; + req_access_txt = "1" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cuI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cuJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cuK" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice/a) +"cuL" = ( +/obj/machinery/door/poddoor{ + id = "SecJusticeChamber"; + name = "Justice Vent" + }, +/turf/open/floor/plating, +/area/security/execution/education) +"cuM" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet, +/area/security/vacantoffice/a) +"cuN" = ( +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice/a) +"cuP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cuR" = ( +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/wood, +/area/security/vacantoffice/a) +"cuS" = ( +/obj/structure/table, +/obj/item/hemostat{ + pixel_x = -5 + }, +/obj/item/retractor{ + pixel_x = 2 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cuT" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cuU" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cuV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cuW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cuY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cvb" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical) +"cvd" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/aft) +"cve" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cvf" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel/white, +/area/medical) +"cvg" = ( +/obj/machinery/power/apc{ + areastring = "/area/engine/storage"; + name = "Engineering Storage APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"cvh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cvi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"cvj" = ( +/turf/open/floor/engine/air, +/area/engine/atmos) +"cvk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cvl" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cvm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cvn" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cvo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"cvp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cvq" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/folder/yellow, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/storage/primary) +"cvr" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cvs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cvt" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced/spawner, +/obj/machinery/door/window/westright{ + req_one_access_txt = "32;19" + }, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cvu" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced/spawner, +/obj/machinery/door/window/eastright{ + req_one_access_txt = "32;19" + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cvv" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cvw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cvx" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cvy" = ( /obj/machinery/door/airlock/hatch{ name = "MiniSat Access"; req_one_access_txt = "32;19" @@ -48829,18 +54191,35 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) -"bOc" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" +"cvz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) -"bOd" = ( +"cvA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cvB" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -48861,7 +54240,14 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) -"bOe" = ( +"cvE" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"cvF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 @@ -48878,7 +54264,13 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) -"bOf" = ( +"cvI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cvJ" = ( /obj/structure/cable{ icon_state = "2-4" }, @@ -48903,29 +54295,27 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) -"bOg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, +"cvO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel, +/area/engine/break_room) +"cvP" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/fore) +"cvR" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bOh" = ( +/turf/open/floor/plasteel/grimy, +/area/lawoffice) +"cvS" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -48950,55 +54340,7 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/satellite) -"bOi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Antechamber"; - req_one_access_txt = "32;19" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bOj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bOk" = ( +"cvU" = ( /obj/structure/cable{ icon_state = "2-8" }, @@ -49023,24 +54365,19 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bOl" = ( -/obj/machinery/status_display/ai{ - pixel_y = 31 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bOm" = ( -/obj/machinery/porta_turret/ai, -/obj/effect/turf_decal/tile/neutral{ +"cvV" = ( +/obj/effect/turf_decal/trimline/neutral/filled/end{ dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bOn" = ( +"cvW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/end{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cvX" = ( /obj/structure/cable{ icon_state = "1-4" }, @@ -49065,124 +54402,24 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bOo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +"cvY" = ( +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"bOp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"bOq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bOr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/item/beacon, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bOs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bOt" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"cwa" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -49211,9 +54448,154 @@ req_access = null; req_access_txt = "65" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/hallway) -"bOu" = ( +"cwb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"cwh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cwi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/item/beacon, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cwj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cwl" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical) +"cwm" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cwp" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -49229,18 +54611,25 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) -"bOv" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Antechamber Port"; - dir = 4; - network = list("minisat") +"cwr" = ( +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bOw" = ( +/area/aisat) +"cws" = ( /obj/structure/cable{ icon_state = "0-4" }, @@ -49250,18 +54639,25 @@ }, /turf/open/floor/plasteel/dark, /area/aisat) -"bOx" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +"cwv" = ( +/obj/structure/transit_tube/station{ + dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bOy" = ( +/area/aisat) +"cwz" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" @@ -49275,7 +54671,7 @@ }, /turf/open/space, /area/space/nearstation) -"bOz" = ( +"cwA" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" @@ -49285,7 +54681,7 @@ }, /turf/open/space, /area/space/nearstation) -"bOA" = ( +"cwB" = ( /obj/structure/lattice/catwalk, /obj/structure/transit_tube/junction{ dir = 4 @@ -49298,7 +54694,7 @@ }, /turf/open/space, /area/space/nearstation) -"bOB" = ( +"cwC" = ( /obj/structure/lattice/catwalk, /obj/structure/transit_tube/horizontal, /obj/structure/cable{ @@ -49309,7 +54705,11 @@ }, /turf/open/space, /area/space/nearstation) -"bOC" = ( +"cwD" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cwE" = ( /obj/structure/transit_tube/horizontal, /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -49320,7 +54720,33 @@ }, /turf/open/space, /area/space/nearstation) -"bOD" = ( +"cwF" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"cwG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cwH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cwL" = ( /obj/structure/lattice/catwalk, /obj/structure/transit_tube/crossing/horizontal, /obj/structure/cable{ @@ -49331,745 +54757,562 @@ }, /turf/open/space, /area/space/nearstation) -"bOE" = ( -/obj/structure/transit_tube/horizontal, -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" +"cwM" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/camera{ + c_tag = "Cargobay Fore"; + name = "cargo camera" }, -/turf/open/space/basic, -/area/space/nearstation) -"bOF" = ( -/obj/structure/lattice/catwalk, -/obj/structure/transit_tube/crossing/horizontal, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"bOG" = ( -/obj/structure/lattice/catwalk, -/obj/structure/transit_tube/horizontal, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"bOH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/transit_tube/horizontal, -/turf/open/space/basic, -/area/space/nearstation) -"bOI" = ( -/obj/structure/transit_tube/junction{ - dir = 8 - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"bOJ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"bOK" = ( -/obj/structure/transit_tube/curved{ - dir = 8 - }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/engine/transit_tube) -"bOL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/area/quartermaster/storage) +"cwN" = ( +/obj/machinery/door/airlock/external{ + name = "Auxiliary Airlock" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bOM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bON" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light, -/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/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bOO" = ( -/obj/structure/transit_tube/curved/flipped, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bOP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bOQ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "transittube"; - name = "Transit Tube Blast Door" - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bOR" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cwO" = ( +/obj/structure/transit_tube/horizontal, +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOS" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, +/turf/open/space/basic, +/area/space/nearstation) +"cwP" = ( +/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOW" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bOX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bOZ" = ( -/obj/structure/cable{ - icon_state = "4-8" + dir = 9 }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/transit_tube/curved/flipped{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/space/basic, +/area/space/nearstation) +"cwQ" = ( +/turf/closed/wall/r_wall, +/area/engine/storage_shared) +"cwR" = ( +/obj/machinery/power/emitter/anchored{ + dir = 1; + state = 2 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPa" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPb" = ( -/obj/machinery/door/firedoor, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPc" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bPd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPe" = ( -/obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cwS" = ( +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/turf/open/space/basic, +/area/engine/engineering) +"cwT" = ( +/turf/open/space/basic, +/area/engine/engineering) +"cwU" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/engine/engineering) +"cwV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/red, +/obj/machinery/turnstile{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cwW" = ( +/obj/machinery/recharger, +/obj/structure/table, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cwX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cwY" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cwZ" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 27 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/customs) +"cxe" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cxf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cxg" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cxh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + name = "Break Room"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cxj" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/machinery/camera/autoname{ + dir = 5 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bPf" = ( -/obj/structure/cable{ - icon_state = "4-8" +"cxk" = ( +/obj/structure/table/glass, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"cxm" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxn" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 }, /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bPg" = ( +"cxo" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/camera{ + c_tag = "Nanite Lab Port"; + dir = 4; + name = "science camera"; + network = list("ss13","rd") }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 +/obj/machinery/power/apc{ + areastring = "/area/science/circuit"; + dir = 8; + name = "Circuitry Lab APC"; + pixel_x = -24 }, +/obj/structure/target_stake, +/turf/open/floor/plasteel/dark, +/area/science/circuit) +"cxq" = ( /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxr" = ( +/obj/item/folder/blue, +/obj/structure/table/wood, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/carpet, +/area/security/vacantoffice/a) +"cxs" = ( +/obj/structure/chair/office/dark{ dir = 8 }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPi" = ( +/turf/open/floor/carpet, +/area/security/vacantoffice/a) +"cxu" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cxv" = ( +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/plating, +/area/construction) +"cxw" = ( +/obj/machinery/power/apc{ + areastring = "/area/construction"; + name = "Construction Area APC"; + pixel_y = -24 + }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bPj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bPm" = ( -/obj/structure/rack, -/obj/item/circuitboard/machine/telecomms/bus{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/circuitboard/machine/telecomms/broadcaster, +/turf/open/floor/plating, +/area/construction) +"cxx" = ( /obj/machinery/camera{ - c_tag = "Telecomms - Storage"; + c_tag = "Construction Area"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction) +"cxy" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/flashlight, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction) +"cxz" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/construction) +"cxA" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/light_switch{ - pixel_x = -26; - pixel_y = -5 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"bPn" = ( -/obj/machinery/airalarm{ - pixel_y = 25 +/turf/open/floor/plasteel, +/area/storage/primary) +"cxB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/structure/table, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = 5; - pixel_y = 3 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/stock_parts/subspace/analyzer, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"bPo" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"cxC" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"bPp" = ( -/turf/closed/wall, -/area/maintenance/starboard/aft) -"bPq" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxD" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxE" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/surgery, +/obj/item/surgical_drapes, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxF" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cxG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cxH" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/table, +/obj/item/crowbar, +/obj/item/assembly/igniter{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/assembly/igniter, +/turf/open/floor/plasteel, +/area/storage/primary) +"cxI" = ( /obj/structure/window/reinforced/spawner/north, /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"bPr" = ( +"cxJ" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/window/reinforced/spawner/north, /turf/open/space, /area/space) -"bPs" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bPt" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Construction Area Maintenance"; - req_access_txt = "32" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPu" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bPv" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"bPw" = ( -/obj/machinery/status_display/ai{ - pixel_y = 31 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"bPx" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"bPy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +"cxK" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"bPz" = ( -/obj/structure/cable{ - icon_state = "1-2" +/area/aisat) +"cxL" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxM" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxN" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/sorting/mail{ - name = "CMO sorting disposal pipe"; - sortType = 10 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bPA" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxO" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/sorting/mail{ - name = "Genetics sorting disposal pipe"; - sortType = 23 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bPB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"bPC" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bPD" = ( +/area/ai_monitored/storage/satellite) +"cxP" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxQ" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxR" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxS" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/surgery, +/obj/item/surgical_drapes, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxT" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxU" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxV" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Maintenance Starboard"; + dir = 1; + network = list("minisat") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cxW" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) +"cxX" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cxY" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical"; + name = "Breakroom APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cxZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cya" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"cye" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"cyg" = ( /obj/structure/cable{ icon_state = "1-4" }, @@ -50091,7 +55334,7 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bPE" = ( +"cyh" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -50113,7 +55356,59 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bPF" = ( +"cyj" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical) +"cyk" = ( +/obj/structure/chair/stool, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -30 + }, +/obj/machinery/camera{ + c_tag = "Medbay Break Room"; + dir = 1; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical) +"cyl" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/obj/structure/table/glass, +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical) +"cym" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay Port"; + dir = 4; + name = "cargo camera" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cyo" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"cyp" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -50142,7 +55437,24 @@ /mob/living/simple_animal/bot/secbot/pingsky, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bPG" = ( +"cyq" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #4" + }, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cyr" = ( /obj/structure/cable{ icon_state = "1-8" }, @@ -50164,247 +55476,43 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bPH" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bPI" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bPJ" = ( -/obj/structure/cable, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/ai_monitored/turret_protected/aisat/foyer"; - name = "MiniSat Foyer APC"; - pixel_x = -29 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bPK" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bPL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bPM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bPN" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"bPO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, +"cys" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bPP" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 8 + dir = 9 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) -"bPQ" = ( -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/machinery/power/apc{ - areastring = "/area/aisat"; +"cyt" = ( +/obj/machinery/firealarm{ dir = 8; - name = "MiniSat Exterior APC"; - pixel_x = -24 + pixel_x = 24 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, /turf/open/floor/plasteel/dark, -/area/aisat) -"bPR" = ( -/obj/structure/transit_tube/diagonal, -/turf/open/space, -/area/space/nearstation) -"bPS" = ( -/obj/structure/transit_tube/diagonal{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"bPT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/transit_tube) -"bPU" = ( -/obj/structure/transit_tube/station{ - dir = 4 - }, -/obj/structure/transit_tube_pod, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ +/area/ai_monitored/turret_protected/aisat/foyer) +"cyu" = ( +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bPW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"bPX" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bPY" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bPZ" = ( -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt3"; - name = "Cell 3" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/poddoor/preopen{ - id = "permacell2"; - name = "cell blast door" - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"bQa" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQc" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQd" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQe" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQg" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 + dir = 1 }, -/obj/machinery/camera{ - c_tag = "Arrivals Hallway Port"; - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cyx" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bQh" = ( -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bQi" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bQj" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cyy" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, @@ -50418,5967 +55526,140 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/hallway) -"bQk" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bQl" = ( -/obj/machinery/power/apc/auto_name/east{ - areastring = "/area/ai_monitored/storage/satellite"; - name = "MiniSat Maint APC" - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bQm" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bQn" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bQo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bQp" = ( -/obj/machinery/computer/cargo/request{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/end{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bQq" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bQr" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, +"cyz" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bQs" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/turf/open/space, -/area/space) -"bQt" = ( -/obj/structure/transit_tube/curved{ - dir = 4 +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 }, -/turf/open/space, -/area/space/nearstation) -"bQu" = ( -/obj/structure/transit_tube/curved/flipped{ - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cyB" = ( +/obj/structure/chair/stool, +/obj/machinery/newscaster{ + pixel_y = -30 }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"bQv" = ( -/obj/structure/transit_tube/curved{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"bQw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bQx" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical) +"cyE" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bQy" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bQz" = ( -/turf/closed/wall, -/area/crew_quarters/fitness/recreation) -"bQA" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/fitness/recreation) -"bQB" = ( -/turf/closed/wall, -/area/crew_quarters/dorms) -"bQC" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"bQD" = ( -/obj/machinery/door/airlock{ - name = "Dormitories" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQE" = ( -/obj/machinery/door/airlock{ - name = "Dormitories" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bQG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 + dir = 1 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) -"bQH" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/satellite) -"bQI" = ( -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -29 - }, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/multitool, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/satellite) -"bQJ" = ( -/obj/structure/table, -/obj/item/radio/intercom{ - pixel_y = -28 - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/mineral/plasma{ - amount = 35 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/satellite) -"bQK" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer1{ - dir = 1; - name = "Auxiliary MiniSat Distribution Port" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/satellite) -"bQL" = ( -/obj/machinery/porta_turret/ai, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/foyer) -"bQN" = ( +"cyF" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bQO" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "bridgedoors"; - name = "Bridge Access Blastdoors"; - pixel_x = 26; - pixel_y = 32; - req_access_txt = "19" - }, -/obj/machinery/button/door{ - id = "bridgespace"; - name = "Bridge External Shutters"; - pixel_x = 36; - pixel_y = 32; - req_access_txt = "19" - }, -/turf/open/floor/carpet, -/area/bridge) -"bQQ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQR" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"bQS" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "N2O to Pure" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bQU" = ( -/obj/structure/transit_tube/curved, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bQV" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bQW" = ( -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bQX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bQY" = ( -/turf/closed/wall, -/area/storage/primary) -"bQZ" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRa" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/vending/assist, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRb" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/obj/machinery/vending/tool, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRc" = ( -/obj/item/crowbar, -/obj/structure/table, -/obj/item/assembly/igniter{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/item/assembly/igniter, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRd" = ( -/obj/structure/table, -/obj/machinery/requests_console{ - department = "Tool Storage"; - pixel_y = 30 - }, -/obj/item/folder/yellow, -/obj/item/folder/yellow, -/obj/item/storage/firstaid/regular, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRe" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/t_scanner, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRf" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRg" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/structure/table, -/obj/item/analyzer, -/obj/item/wrench, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRh" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bRi" = ( -/obj/structure/table/wood, -/obj/item/instrument/violin, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"bRj" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/security/brig) -"bRk" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bRl" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bRm" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/bridge) -"bRn" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bRo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/b) -"bRp" = ( -/obj/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bRq" = ( -/obj/structure/showcase/mecha/ripley, -/obj/machinery/camera/autoname{ - dir = 10 - }, /turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) -"bRs" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bRu" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"bRv" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/green/filled/end{ +/area/ai_monitored/turret_protected/aisat_interior) +"cyG" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bRw" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cyH" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/loading_area{ +/turf/open/floor/plating, +/area/maintenance/aft) +"cyJ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"bRx" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"bRy" = ( -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bRz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bRA" = ( -/turf/closed/wall, -/area/maintenance/department/crew_quarters/dorms) -"bRB" = ( -/turf/closed/wall/r_wall, -/area/storage/tech) -"bRC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/hatch{ - name = "Telecomms Control Room"; - req_one_access_txt = "19; 61" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"bRD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bRE" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bRF" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bRG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Tool Storage Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bRH" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRI" = ( -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRK" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/storage/box/lights/mixed, /obj/machinery/camera{ - c_tag = "Tool Storage"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bRL" = ( -/obj/machinery/light{ + c_tag = "Cargo Bay Aft"; dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/computer/arcade/minesweeper{ - dir = 4 + name = "cargo camera" }, +/obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bRN" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bRP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/area/quartermaster/office) +"cyK" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bRQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, /turf/open/floor/plasteel/white, /area/medical) -"bRR" = ( -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/status_display/evac{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) -"bRS" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/directions/security{ - dir = 1; - pixel_y = 40 - }, -/obj/structure/sign/directions/science{ - dir = 1; - pixel_y = 32 - }, -/obj/structure/sign/directions/command{ - dir = 8; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bRT" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bRU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bRV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bRX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"bRY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bRZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bSa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bSb" = ( -/turf/closed/wall, -/area/storage/tech) -"bSc" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/space/basic, -/area/space) -"bSd" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/space/basic, -/area/space) -"bSe" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSf" = ( -/obj/structure/table/wood, -/obj/item/radio/off{ - pixel_y = 4 - }, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSg" = ( -/obj/machinery/status_display/evac{ - pixel_y = 31 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSi" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSj" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSk" = ( -/obj/machinery/status_display/ai{ - pixel_y = 31 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSl" = ( -/obj/structure/table/wood, -/obj/item/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Telecomms)"; - pixel_y = 30 - }, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSm" = ( -/obj/structure/table/wood, -/obj/machinery/microwave{ - pixel_y = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSn" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bSo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bSp" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bSq" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/storage/primary) -"bSr" = ( -/obj/item/screwdriver, -/obj/structure/table, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler, -/obj/item/storage/toolbox/electrical, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bSs" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/storage/primary) -"bSt" = ( -/obj/item/wrench, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bSv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bSw" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bSx" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bSy" = ( -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"bSz" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - id_tag = "Cabin1"; - name = "Cabin 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bSA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/nuke_storage) -"bSB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - id_tag = "Cabin3"; - name = "Cabin 3" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bSD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bSE" = ( +"cyL" = ( +/obj/structure/bed, +/obj/item/bedsheet/cmo, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cyM" = ( /obj/machinery/light{ dir = 4; - light_color = "#c1caff" + light_color = "#e8eaff" }, -/obj/item/radio/intercom{ - pixel_x = 29 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bSG" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/crew_quarters/dorms) -"bSH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/end{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bSI" = ( -/obj/item/cigbutt, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bSJ" = ( -/turf/closed/wall/r_wall, -/area/maintenance/department/crew_quarters/dorms) -"bSK" = ( -/obj/machinery/vending/assist, -/turf/open/floor/plating, -/area/storage/tech) -"bSL" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/turf/open/floor/plasteel/dark, -/area/storage/tech) -"bSM" = ( -/obj/structure/table, -/obj/item/analyzer, -/obj/item/healthanalyzer, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/storage/tech) -"bSN" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/multitool, -/obj/item/clothing/glasses/meson, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/storage/tech) -"bSO" = ( -/obj/machinery/holopad, -/obj/machinery/status_display/ai{ - pixel_y = 31 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bSP" = ( -/turf/open/floor/plating, -/area/storage/tech) -"bSQ" = ( -/obj/item/radio/intercom{ - pixel_y = 28 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bSR" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bSS" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"bST" = ( -/turf/closed/wall, -/area/aisat) -"bSU" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"bSV" = ( -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSW" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bSX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSY" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bSZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTa" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTd" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/tcommsat/computer"; - dir = 4; - name = "Telecomms Control Room APC"; - pixel_x = 26 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTe" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"bTf" = ( -/turf/closed/wall, -/area/maintenance/port/aft) -"bTg" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTh" = ( -/obj/item/storage/toolbox/mechanical, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTi" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTk" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTl" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bTm" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/item/multitool, -/obj/item/multitool{ - pixel_x = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bTp" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bTq" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"bTr" = ( -/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/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bTs" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bTt" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bTu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bTv" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) -"bTw" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bTx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/camera{ - c_tag = "Medbay Port"; - dir = 1; - name = "medbay camera"; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bTy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/closed/mineral{ - baseturfs = /turf/open/floor/plating/asteroid; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid"; - turf_type = /turf/open/floor/plating/asteroid - }, -/area/asteroid/nearstation) -"bTz" = ( -/obj/machinery/door/airlock/glass{ - name = "Cryodorms" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bTA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bTB" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/green/filled/corner, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bTC" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bTD" = ( -/obj/effect/turf_decal/trimline/green/filled/end{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bTE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bTF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bTG" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/effect/spawner/lootdrop/techstorage/AI, -/obj/structure/rack, -/turf/open/floor/plating, -/area/storage/tech) -"bTH" = ( -/obj/machinery/camera{ - c_tag = "Secure Tech Storage"; - dir = 8 - }, -/obj/item/radio/intercom{ - pixel_x = 29 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bTI" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/tech"; - dir = 8; - name = "Tech Storage APC"; - pixel_x = -27 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bTJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bTK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bTL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/storage/tech) -"bTM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bTN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bTO" = ( +"cyN" = ( /obj/structure/table, -/obj/item/stock_parts/subspace/ansible{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/stock_parts/subspace/ansible{ - pixel_y = 1 - }, -/obj/item/stock_parts/subspace/ansible{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/stock_parts/subspace/crystal{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"bTP" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bTR" = ( -/obj/item/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTS" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -1; - pixel_y = 6 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTT" = ( -/obj/structure/table/wood, -/obj/item/folder, -/obj/item/folder, -/obj/item/pen, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTV" = ( -/obj/machinery/camera{ - c_tag = "Telecomms - Control Room"; - dir = 1; - network = list("ss13","tcomms") - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTW" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Telecomms Admin"; - departmentType = 5; - name = "Telecomms RC"; - pixel_y = -30 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTY" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bTZ" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/port/aft) -"bUa" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUd" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/storage/primary"; - dir = 8; - name = "Tool Storage APC"; - pixel_x = -25 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUe" = ( -/obj/item/weldingtool, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/item/wirecutters, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/item/stack/cable_coil{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUk" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bUl" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bUm" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bUn" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bUo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bUp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/end, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUr" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"bUs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/starboard) -"bUt" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bUu" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUv" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUx" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay Aft"; - dir = 8; - name = "medbay camera"; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bUy" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUz" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bUA" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bUB" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"bUC" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bUD" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bUE" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/RnD_secure, -/turf/open/floor/plating, -/area/storage/tech) -"bUF" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Tech Storage"; - req_access_txt = "19;23" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bUG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, -/area/storage/tech) -"bUH" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/security, -/turf/open/floor/plating, -/area/storage/tech) -"bUI" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/service, -/turf/open/floor/plating, -/area/storage/tech) -"bUJ" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/tcomms, -/turf/open/floor/plating, -/area/storage/tech) -"bUK" = ( -/obj/structure/rack, -/obj/item/electronics/apc, -/obj/item/electronics/airlock, -/turf/open/floor/plating, -/area/storage/tech) -"bUL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plating, -/area/storage/tech) -"bUM" = ( -/obj/structure/table, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/item/wirecutters, -/obj/item/multitool, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bUO" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/fore"; - dir = 4; - name = "Fore Maintenance APC"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"bUP" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"bUQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/tcommsat/server) -"bUR" = ( -/obj/machinery/door/airlock/hatch{ - name = "Telecomms Server Room" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/server) -"bUS" = ( -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bUT" = ( -/obj/structure/table/wood, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/bridge/showroom/corporate) -"bUU" = ( -/obj/structure/sign/poster/official/random{ - pixel_x = -32 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUV" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUW" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUX" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/storage/primary) -"bUY" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/storage) -"bUZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"bVa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/structure/sign/directions/supply{ - dir = 1; - pixel_x = 32; - pixel_y = 8 - }, -/obj/structure/sign/directions/medical{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bVc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - id_tag = "Cabin4"; - name = "Cabin 4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"bVe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - id_tag = "Cabin5"; - name = "Cabin 5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bVf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - id_tag = "Cabin6"; - name = "Cabin 6" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"bVg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVi" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVj" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/command, -/turf/open/floor/plating, -/area/storage/tech) -"bVk" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft2"; - location = "aft1" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVm" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bVo" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/directions/medical{ - dir = 4; - pixel_y = 40 - }, -/obj/structure/sign/directions/engineering{ - dir = 4; - pixel_y = 32 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVp" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bVq" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bVr" = ( -/obj/machinery/telecomms/server/presets/science, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bVs" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Telecomms - Server Room - Fore-Port"; - network = list("ss13","tcomms") - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bVt" = ( -/obj/machinery/camera/autoname{ - dir = 4 - }, -/obj/machinery/computer/arcade/orion_trail{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) -"bVu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/server) -"bVv" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Chemistry Lab"; - req_access_txt = "5; 33" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bVw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bVx" = ( -/obj/machinery/telecomms/server/presets/engineering, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bVy" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/announcement_system, -/obj/machinery/status_display/ai{ - pixel_x = 31 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bVz" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/closet/crate/internals, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVA" = ( -/obj/machinery/light, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVB" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVC" = ( -/obj/item/storage/box/lights, -/obj/structure/table, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVD" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVE" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVF" = ( -/obj/machinery/light, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVG" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bVH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bVI" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVJ" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bVK" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=starboard4"; - location = "starboard3" - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bVL" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bVO" = ( -/obj/machinery/button/door{ - id = "Cabin4"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 5; - pixel_y = 30; - specialfunctions = 4 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"bVP" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/machinery/light_switch{ - pixel_x = -25; - pixel_y = 25 - }, -/turf/open/floor/carpet, -/area/library) -"bVQ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bVR" = ( -/obj/machinery/button/door{ - id = "Cabin5"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 5; - pixel_y = 30; - specialfunctions = 4 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bVS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bVT" = ( -/obj/machinery/button/door{ - id = "examroom"; - name = "Privacy Shutters"; - pixel_x = 25; - pixel_y = 5 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"bVU" = ( -/obj/machinery/button/door{ - id = "Cabin6"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 5; - pixel_y = 30; - specialfunctions = 4 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"bVV" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_x = 32; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"bVX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bVY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bVZ" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bWa" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/engineering, -/turf/open/floor/plating, -/area/storage/tech) -"bWb" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/medical, -/turf/open/floor/plating, -/area/storage/tech) -"bWc" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/rnd, -/turf/open/floor/plating, -/area/storage/tech) -"bWd" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/t_scanner, -/obj/item/multitool, -/turf/open/floor/plating, -/area/storage/tech) -"bWe" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table, -/obj/item/aicard, -/obj/item/aiModule/reset, -/turf/open/floor/plating, -/area/storage/tech) -"bWf" = ( -/obj/machinery/telecomms/processor/preset_one, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWg" = ( -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWh" = ( -/obj/machinery/telecomms/server/presets/service, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWi" = ( -/obj/machinery/door/airlock/hatch{ - name = "Telecomms Server Room" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/server) -"bWj" = ( -/obj/machinery/telecomms/server/presets/command, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWk" = ( -/obj/machinery/telecomms/processor/preset_four, -/obj/machinery/camera{ - c_tag = "Telecomms - Server Room - Aft-Starboard"; - dir = 8; - network = list("ss13","tcomms") - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWl" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bWm" = ( -/obj/machinery/computer/message_monitor{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bWn" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore) -"bWo" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/machinery/camera/autoname{ - dir = 1 - }, +/obj/structure/bedsheetbin, /turf/open/floor/plasteel/freezer, /area/medical/virology) -"bWp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/medical/virology) -"bWq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bWr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bWs" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"bWt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"bWu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"bWv" = ( -/obj/machinery/button/door{ - id = "Cabin1"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -5; - pixel_y = -30; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bWw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bWy" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bWz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"bWA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/library/lounge) -"bWB" = ( -/turf/closed/wall, -/area/crew_quarters/toilet) -"bWC" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bWD" = ( -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bWE" = ( -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, -/area/storage/tech) -"bWF" = ( -/obj/structure/closet/secure_closet/engineering_chief, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bWG" = ( -/obj/structure/table, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/turf/open/floor/plating, -/area/storage/tech) -"bWH" = ( -/obj/machinery/telecomms/bus/preset_one, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWI" = ( -/obj/machinery/telecomms/processor/preset_two, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWJ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWL" = ( -/obj/machinery/telecomms/processor/preset_three, -/obj/machinery/camera{ - c_tag = "Telecomms - Server Room - Fore-Starboard"; - network = list("ss13","tcomms") - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWM" = ( -/obj/machinery/telecomms/bus/preset_four, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWN" = ( -/obj/machinery/button/door{ - id = "Cabin3"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -5; - pixel_y = -30; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bWO" = ( -/obj/machinery/computer/telecomms/monitor{ - dir = 8; - network = "tcommsat" - }, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Telecomms Camera Monitor"; - network = list("tcomms"); - pixel_x = 26 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bWP" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bWQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bWR" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bWS" = ( -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"bWT" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWU" = ( -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"bWV" = ( -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"bWW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bWX" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bWY" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 25 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bWZ" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXa" = ( -/obj/item/soap, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bXb" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bXc" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/chief) -"bXd" = ( -/turf/closed/wall, -/area/engine/break_room) -"bXe" = ( -/turf/closed/wall/r_wall, -/area/engine/break_room) -"bXf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Telecomms Storage"; - req_access_txt = "61" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"bXg" = ( -/obj/machinery/telecomms/server/presets/medical, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXi" = ( -/obj/machinery/telecomms/bus/preset_two, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXj" = ( -/obj/structure/table/glass, -/obj/item/folder{ - pixel_y = 2 - }, -/obj/item/folder{ - pixel_y = 2 - }, -/obj/item/pen, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXk" = ( -/obj/machinery/telecomms/bus/preset_three, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXl" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/fore) -"bXm" = ( -/obj/machinery/telecomms/server/presets/common, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bXo" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bXp" = ( -/obj/machinery/camera{ - c_tag = "Telecomms - Control Room"; - dir = 8; - network = list("ss13","tcomms") - }, -/obj/machinery/computer/telecomms/server{ - dir = 8; - network = "tcommsat" - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bXq" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"bXr" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXs" = ( -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/obj/structure/sign/departments/science{ - name = "\improper ROBOTICS!"; - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"bXt" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bXu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/locker) -"bXv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/item/radio/intercom{ - dir = 1; - name = "Station Intercom"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bXw" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bXx" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bXy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bXz" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bXA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bXB" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Engineer's Desk"; - departmentType = 3; - name = "Chief Engineer RC"; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bXC" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bXD" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bXE" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/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/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"bXF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceblast"; - name = "Chief's Lockdown Shutters" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bXG" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXH" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXI" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"bXM" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bXN" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXO" = ( -/obj/machinery/telecomms/server/presets/supply, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXP" = ( -/obj/machinery/telecomms/hub/preset, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXQ" = ( -/obj/machinery/telecomms/server/presets/security, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXR" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXS" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/filingcabinet{ - pixel_x = 3 - }, -/obj/machinery/status_display/evac{ - pixel_x = 31 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bXT" = ( -/obj/structure/transit_tube/station{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bXU" = ( -/obj/structure/chair, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXV" = ( -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bXW" = ( -/obj/machinery/airalarm/directional/south, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"bXX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bXY" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bXZ" = ( -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/holodeck) -"bYa" = ( -/turf/open/floor/plating, -/area/maintenance/aft) -"bYb" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bYc" = ( -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/crew_quarters/dorms) -"bYd" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bYe" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bYf" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/item/radio/intercom{ - dir = 1; - name = "Station Intercom"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bYg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bYh" = ( -/obj/machinery/button/door{ - id = "engstorage"; - name = "Engineering Secure Storage Control"; - pixel_x = -38; - pixel_y = 8; - req_access_txt = "11" - }, -/obj/machinery/keycard_auth{ - pixel_x = -26 - }, -/obj/machinery/button/door{ - id = "ceblast"; - name = "Lockdown Control"; - pixel_x = -38; - pixel_y = -8; - req_access_txt = "56" - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = -38; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/turf/open/floor/plating, -/area/hallway/secondary/command) -"bYj" = ( -/obj/structure/table/reinforced, -/obj/item/cartridge/engineering{ - pixel_x = 6 - }, -/obj/item/cartridge/engineering{ - pixel_x = -6 - }, -/obj/item/cartridge/engineering{ - pixel_y = 6 - }, -/obj/item/reagent_containers/pill/patch/silver_sulf, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYl" = ( -/obj/structure/disposalpipe/segment, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"bYm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceblast"; - name = "Chief's Lockdown Shutters" - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bYn" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bYp" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bYq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYs" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bYu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYv" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYw" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/maintenance/starboard/aft"; - name = "Starboard Quarter Maintenance APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYy" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYz" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/starboard/aft) -"bYA" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"bYB" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"bYC" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYD" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYF" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/tcommsat/server"; - dir = 4; - name = "Telecomms Server Room APC"; - pixel_x = 25 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Telecomms - Server Room - Aft-Starboard"; - dir = 8; - network = list("ss13","tcomms") - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYG" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bYH" = ( -/obj/structure/table/wood, -/obj/item/phone{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = 5; - pixel_y = -1 - }, -/obj/item/radio/intercom{ - dir = 4; - freerange = 1; - name = "Station Intercom (Telecomms)"; - pixel_x = 30 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"bYI" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat Maintenance Port"; - dir = 4; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"bYJ" = ( -/turf/closed/wall, -/area/crew_quarters/locker) -"bYK" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bYL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bYM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bYN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bYO" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bYP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/light_switch{ - pixel_x = -26 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bYQ" = ( -/obj/machinery/door/airlock{ - name = "Unisex Showers" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bYR" = ( -/obj/structure/table/reinforced, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/obj/item/paper/monitorkey, -/obj/item/stamp/ce, -/obj/machinery/camera{ - c_tag = "Engineering - Chief Engineer's Office"; - dir = 4; - name = "engineering camera" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYS" = ( -/obj/structure/table/reinforced, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/folder/yellow, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYT" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bYV" = ( -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/chair/stool, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYY" = ( -/obj/machinery/airalarm/server{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/camera{ - c_tag = "Telecomms - Server Room - Aft-Port"; - dir = 4; - network = list("ss13","tcomms") - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYZ" = ( -/obj/machinery/telecomms/receiver/preset_left, -/turf/open/floor/circuit/green/telecomms/mainframe, -/area/tcommsat/server) -"bZa" = ( -/obj/machinery/telecomms/broadcaster/preset_left, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZb" = ( -/obj/machinery/telecomms/message_server, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZc" = ( -/obj/machinery/light/small, -/obj/machinery/camera{ - c_tag = "Telecomms - Server Room - Aft"; - dir = 1; - network = list("ss13","tcomms") - }, -/obj/machinery/ntnet_relay, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bZd" = ( -/obj/machinery/blackbox_recorder, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZe" = ( -/obj/machinery/telecomms/broadcaster/preset_right, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZf" = ( -/obj/machinery/telecomms/receiver/preset_right, -/turf/open/floor/circuit/green/telecomms/mainframe, -/area/tcommsat/server) -"bZg" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bZh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/closet/crate/rcd{ - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/northleft{ - dir = 2; - name = "RCD Storage"; - pixel_x = 1; - req_access_txt = "19" - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"bZi" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bZj" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bZk" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/obj/item/flashlight, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bZl" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bZm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bZo" = ( -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bZp" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bZq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Unisex Restroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZt" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bZy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bZz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"bZA" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/computer/card/minor/ce{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bZB" = ( -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bZC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"bZD" = ( -/obj/structure/disposalpipe/segment, -/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/machinery/modular_computer/console/preset/engineering{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"bZE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceblast"; - name = "Chief's Lockdown Shutters" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bZF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/junction/flip, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"bZH" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZI" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/structure/closet/secure_closet/CMO, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"bZK" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"bZL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/nuke_storage) -"bZM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/crew_quarters/toilet) -"bZN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"bZO" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"bZP" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Telecommunications Maintenance"; - req_access_txt = "61" - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"bZQ" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -26; +"cyO" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; pixel_y = 28 }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bZR" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bZS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bZT" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Dormitories Hallway Port Fore"; - dir = 4; - name = "dormitories camera" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bZU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"bZV" = ( -/obj/structure/statue/snow/snowman, -/turf/open/floor/plating/asteroid, -/area/asteroid/nearstation) -"bZW" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Unisex Restroom" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZX" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZY" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/toilet"; - name = "Restrooms APC"; - pixel_y = -26 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"bZZ" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"caa" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/computer/station_alert{ - dir = 4 - }, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cab" = ( -/obj/effect/landmark/start/chief_engineer, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cac" = ( -/obj/machinery/holopad, -/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/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cad" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cae" = ( -/obj/structure/disposalpipe/segment, -/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/kirbyplants/random, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/chief"; - dir = 4; - name = "Chief Engineer's APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"caf" = ( -/obj/machinery/door/poddoor/preopen{ - id = "ceblast"; - name = "Chief's Lockdown Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cag" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cai" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"caj" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cak" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cal" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cam" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"can" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cao" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"cap" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/lattice, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"caq" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Disposal Exit"; - name = "disposal exit vent" - }, -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"car" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/locker"; - dir = 8; - name = "Locker Room APC"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cas" = ( -/obj/structure/table, -/obj/item/storage/crayons, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cat" = ( -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/maintenance/department/cargo) -"cau" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"caw" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cax" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/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/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cay" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"caz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"caA" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"caC" = ( -/obj/machinery/computer/apc_control{ - dir = 4 - }, -/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/machinery/status_display/evac{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"caD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"caE" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"caF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"caG" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"caH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/door/airlock/command{ - name = "Chief Engineer's Office"; - req_access_txt = "56" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"caI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "ceblast"; - name = "Chief's Lockdown Shutters" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/area/medical/virology) +"cyP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 9 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 5 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caO" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"caP" = ( -/obj/structure/table, -/obj/machinery/power/apc{ - areastring = "/area/storage/tcom"; - dir = 8; - name = "Telecomms Storage APC"; - pixel_x = -28 - }, -/obj/structure/cable, -/obj/item/stock_parts/subspace/treatment{ - pixel_x = -5; - pixel_y = -2 - }, -/obj/item/stock_parts/subspace/treatment{ - pixel_x = 5; - pixel_y = -2 - }, -/obj/item/stock_parts/subspace/treatment{ - pixel_y = 3 - }, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"caQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Starboard Emergency Storage" - }, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"caR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"caS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"caT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"caU" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"caV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/port) -"caW" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cyR" = ( /obj/machinery/camera{ - c_tag = "MiniSat Exterior Port"; - dir = 8; + c_tag = "MiniSat Exterior Starboard"; + dir = 4; network = list("minisat") }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 + dir = 8 }, /turf/open/floor/plasteel/dark, /area/aisat) -"caX" = ( +"cyU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel/dark, /area/aisat) -"caY" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/space/basic, -/area/space) -"caZ" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"cba" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cbb" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced/spawner, -/obj/machinery/door/window/westright{ - req_one_access_txt = "32;19" - }, -/obj/structure/fans/tiny, -/obj/effect/turf_decal/trimline/blue/filled/end{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cbc" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Research - Director Office - South"; - dir = 1; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cbd" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"cbe" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cbf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbg" = ( -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbi" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/medical/virology) -"cbj" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbm" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/dorms"; - dir = 4; - name = "Dormitories APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbn" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cbo" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cbp" = ( -/obj/machinery/door/airlock{ - name = "Unit B" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cbq" = ( -/obj/machinery/suit_storage_unit/ce, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cbr" = ( -/obj/machinery/computer/security/telescreen/ce{ - dir = 1; - pixel_y = -30 - }, -/obj/structure/filingcabinet/chestdrawer, -/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/gps/engineering{ - gpstag = "CE0" - }, -/mob/living/simple_animal/parrot/Poly, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cbs" = ( -/obj/machinery/light, -/obj/machinery/photocopier, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cbt" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light_switch{ - pixel_x = 26; - pixel_y = -26 - }, -/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 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cbu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cbv" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cbw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cbx" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cby" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = -3 - }, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = 3 - }, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"cbz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cbA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cbB" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cbC" = ( -/obj/structure/window/reinforced/spawner, -/turf/open/space/basic, -/area/space) -"cbD" = ( +"cyV" = ( /obj/structure/transit_tube/curved/flipped{ dir = 1 }, @@ -56391,6347 +55672,63 @@ }, /turf/open/floor/plasteel/dark, /area/aisat) -"cbE" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/space, -/area/space) -"cbF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cbG" = ( -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cbH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cbJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "isola"; - name = "privacy shutters" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "examroom"; - name = "Privacy Shutters" - }, -/turf/open/floor/plating, -/area/medical/patients_rooms/room_a) -"cbK" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"cbL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - id_tag = "examroom"; - name = "Patient Room"; - req_access_txt = "5" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +"cyW" = ( +/obj/structure/chair, +/obj/effect/landmark/start/virologist, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 }, /turf/open/floor/plasteel/white, -/area/medical/patients_rooms/room_a) -"cbN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"cbP" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbQ" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/crew_quarters/fitness/recreation"; - dir = 8; - name = "Recreation APC"; - pixel_x = -26 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbR" = ( -/obj/structure/dresser, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"cbS" = ( -/obj/structure/weightmachine/weightlifter, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cbT" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cbU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"cbV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"cbW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/command{ - name = "Chief Medical Officer's Quarters"; - req_access_txt = "40" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo) -"cbX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"cbY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"cbZ" = ( -/turf/closed/wall, -/area/security/checkpoint/engineering) -"cca" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccd" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cce" = ( -/obj/structure/lattice, -/turf/closed/mineral{ - baseturfs = /turf/open/floor/plating/asteroid; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid"; - turf_type = /turf/open/floor/plating/asteroid - }, -/area/asteroid/nearstation) -"ccf" = ( -/turf/closed/wall/r_wall, -/area/maintenance/starboard/aft) -"ccg" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cch" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cci" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Maintenance Starboard"; - dir = 1; - network = list("minisat") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"ccj" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/mob/living/simple_animal/bot/floorbot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cck" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"ccl" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccm" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ccn" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cco" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/computer/holodeck{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ccp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ccq" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"ccr" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/obj/machinery/camera{ - c_tag = "Fitness Room Starboard"; - dir = 9; - name = "dormitories camera" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ccs" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cct" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"ccu" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"ccv" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ccw" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/landmark/blobstart, -/obj/machinery/button/door{ - id = "Toilet1"; - name = "Lock Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"ccx" = ( -/obj/machinery/door/airlock{ - id_tag = "Toilet1"; - name = "Unit 1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"ccy" = ( -/obj/machinery/door/airlock{ - id_tag = "Toilet3"; - name = "Unit 3" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"ccz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"ccA" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"ccB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"ccC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo/private) -"ccD" = ( -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"ccE" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ccF" = ( -/obj/structure/sign/poster/official/random{ - pixel_x = -32 - }, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/machinery/camera{ - c_tag = "Security Checkpoint"; - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"ccG" = ( -/obj/structure/flora/ausbushes/grassybush, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/turf/open/floor/grass, -/area/asteroid/nearstation) -"ccH" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/grass, -/area/asteroid/nearstation) -"ccI" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccJ" = ( -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/aft) -"ccK" = ( -/obj/structure/flora/ausbushes, -/turf/open/floor/grass, -/area/asteroid/nearstation) -"ccL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/engine/break_room) -"ccM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/break_room) -"ccN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/engine/break_room) -"ccO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccQ" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ccR" = ( -/obj/item/pickaxe{ - pixel_x = 5 - }, -/obj/structure/rack, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ccS" = ( -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ccT" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"ccU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ccW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"ccX" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"ccY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"ccZ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cda" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/crew_quarters/heads/cmo/private"; - dir = 4; - name = "Chief Medical Officer's Quarters APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo/private) -"cdb" = ( -/obj/structure/dresser, -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/cmo/private) -"cdc" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"cdd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cde" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"cdf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"cdg" = ( -/obj/machinery/recharger, -/obj/structure/table, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cdh" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Engineering Security Post"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"cdi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdj" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/structure/flora/ausbushes/reedbush, -/turf/open/floor/plating/asteroid, -/area/asteroid/nearstation) -"cdk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdl" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/structure/window/reinforced/spawner, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdm" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdn" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdo" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/chair/sofa/corp, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cdp" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on, -/obj/structure/window/reinforced/spawner/east, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cdq" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdr" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, +/area/medical/virology) +"cyX" = ( +/obj/structure/transit_tube/diagonal, /turf/open/space, /area/space/nearstation) -"cds" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"cdt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cdu" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"cdv" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"cdw" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdx" = ( -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdy" = ( -/turf/closed/wall, -/area/engine/atmos) -"cdz" = ( -/obj/structure/window/reinforced/spawner/north, -/turf/open/space, -/area/space) -"cdA" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/fore) -"cdE" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 4 - }, -/obj/effect/landmark/blobstart, +"cyY" = ( /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/button/door{ - id = "Toilet2"; - name = "Lock Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cdF" = ( -/obj/machinery/door/airlock{ - id_tag = "Toilet2"; - name = "Unit 2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cdG" = ( -/obj/machinery/door/airlock{ - id_tag = "Toilet4"; - name = "Unit 4" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cdH" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/button/door{ - id = "Toilet4"; - name = "Lock Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cdI" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/dormitory"; - name = "Dormitory Maintenance APC"; - pixel_y = -28 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cdJ" = ( -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cdK" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo/private) -"cdL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/table, -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cdM" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"cdN" = ( -/obj/machinery/computer/card{ - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cdO" = ( -/obj/machinery/microwave, -/obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdP" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "Engineering Security Doors" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdQ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "Engineering Security Doors" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdR" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "Engineering Security Doors" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdS" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdU" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Distro" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdW" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/crew_quarters/heads/captain/private) -"cdX" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/meter/atmos/atmos_waste_loop, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cdZ" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) -"cea" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ceb" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/space, -/area/space/nearstation) -"cec" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"ced" = ( -/obj/item/storage/box/lights, -/turf/open/floor/plating, -/area/maintenance/aft) -"cee" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cef" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceg" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"ceh" = ( -/obj/machinery/requests_console{ - department = "Engineering"; - departmentType = 4; - name = "Engineering RC" - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cei" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/engine/break_room) -"cej" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/engine/break_room) -"cek" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/engine/break_room) -"cel" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/break_room) -"cem" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Foyer"; - req_one_access_txt = "32;19;24" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cen" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Foyer"; - req_one_access_txt = "32;19;24" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceo" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Distro to Waste" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cep" = ( -/obj/structure/sink/puddle, -/turf/open/floor/plating/asteroid, -/area/asteroid/nearstation) -"ceq" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/purple/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cer" = ( -/obj/machinery/atmospherics/pipe/manifold/purple/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ces" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cet" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Mix" - }, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ceu" = ( -/obj/machinery/meter/atmos/distro_loop, -/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cev" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"cew" = ( -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"cex" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"cey" = ( -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"cez" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"ceA" = ( -/turf/open/floor/engine/co2, -/area/engine/atmos) -"ceB" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"ceC" = ( -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"ceD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"ceE" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ceF" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ceG" = ( -/turf/closed/wall, -/area/maintenance/aft) -"ceH" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 10 - }, -/obj/machinery/camera/autoname, -/obj/structure/sign/departments/science{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/fore) -"ceI" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/structure/bedsheetbin, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ceJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"ceK" = ( -/obj/structure/sign/warning/radiation/rad_area{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"ceL" = ( -/obj/structure/plasticflaps/opaque, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - freq = 1400; - location = "Engineering" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plating, -/area/engine/break_room) -"ceM" = ( -/obj/machinery/door/window/southright{ - name = "Engineering Deliveries"; - req_access_txt = "10" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceN" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"ceO" = ( -/obj/machinery/light, -/obj/item/bedsheet/cmo, -/obj/structure/bed, -/obj/machinery/status_display/ai{ - pixel_x = -32 - }, -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/cmo/private) -"ceP" = ( -/obj/structure/closet/radiation, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceQ" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceR" = ( -/obj/machinery/vending/tool, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceS" = ( -/obj/structure/chair/sofa/corp/left, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"ceT" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"ceU" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ceW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"ceX" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/turf/open/floor/plating/asteroid, -/area/asteroid/nearstation) -"ceY" = ( -/obj/machinery/atmospherics/pipe/manifold/purple/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ceZ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfa" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Unfiltered & Air to Mix" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfb" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air to Distro" - }, -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Atmospherics - Distro Loop" - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cfc" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"cfd" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"cfe" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"cff" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/machinery/atmospherics/miner/n2o, /turf/open/floor/engine/n2o, /area/engine/atmos) -"cfg" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/miner/carbon_dioxide, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"cfh" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/miner/toxins, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"cfi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cfj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cfk" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/costume, -/obj/effect/spawner/lootdrop/costume, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfl" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/costume, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfm" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/aft) -"cfn" = ( -/obj/structure/rack, -/obj/item/storage/box, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfo" = ( -/turf/closed/wall, -/area/chapel/main) -"cfp" = ( +"cyZ" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid, +/area/maintenance/port/aft) +"cza" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance{ - name = "Chapel Office Maintenance"; - req_one_access_txt = "22" + name = "Medbay Maintenance"; + req_access_txt = "5" }, /turf/open/floor/plating, -/area/maintenance/aft) -"cfq" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cfr" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cfs" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cft" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cfu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cfv" = ( -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"cfw" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/highsecurity{ - name = "Gravity Generator Foyer"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cfx" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cfy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cfz" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cfA" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cfB" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfC" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfD" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfE" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cfF" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/open/space, -/area/space/nearstation) -"cfG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"cfH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"cfI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"cfJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"cfK" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"cfL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"cfM" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"cfN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cfO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cfP" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cfQ" = ( -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cfR" = ( -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cfS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cfT" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"cfU" = ( -/obj/item/cigbutt, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfV" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfW" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cfX" = ( -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cfY" = ( -/obj/machinery/power/apc{ - areastring = "/area/chapel/main"; - dir = 1; - name = "Chapel APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/carpet, -/area/chapel/main) -"cfZ" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/chapel/main) -"cga" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"cgb" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cgc" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/structure/chair/stool, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cgd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/chapel/main) -"cge" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"cgf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cgg" = ( -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"cgh" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cgi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/chapel/main) -"cgj" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cgk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cgl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"cgm" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cgn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cgo" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cgp" = ( +/area/maintenance/department/medical) +"czc" = ( /obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/fore) -"cgq" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cgr" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/highsecurity{ - name = "Gravity Generator Foyer"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cgs" = ( -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgt" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgw" = ( -/obj/structure/chair, -/obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgy" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 32 - }, -/obj/structure/closet/radiation, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cgz" = ( -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Mix" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgB" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgD" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cgE" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"cgF" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"czd" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"cgG" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"cgH" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"cgI" = ( -/obj/structure/lattice, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"cgJ" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgK" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/aft) -"cgL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Storage Room"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgN" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgO" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cgP" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cgQ" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lantern, -/turf/open/floor/carpet, -/area/chapel/main) -"cgR" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/chapel/main) -"cgS" = ( -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"cgT" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"cgU" = ( -/turf/open/floor/carpet, -/area/chapel/main) -"cgV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"cgW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"cgX" = ( -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"cgY" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Unisex Restroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cgZ" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cha" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"chb" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"chc" = ( -/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/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"chd" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/engine/gravity_generator"; - dir = 1; - name = "Gravity Generator APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"che" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chf" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chi" = ( -/obj/structure/rack, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/item/clothing/gloves/color/yellow{ - pixel_x = 3; - pixel_y = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chj" = ( -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/wiki/engineering_construction, -/obj/effect/landmark/event_spawn, -/obj/structure/table, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chk" = ( -/obj/item/electronics/airalarm, -/obj/item/electronics/apc, -/obj/structure/table, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chl" = ( -/obj/item/electronics/airlock, -/obj/item/electronics/firelock, -/obj/item/electronics/firealarm, -/obj/structure/table, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chn" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/sorting/mail/flip{ - sortType = 6 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cho" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"chq" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Distribution Loop"; - req_access_txt = "24" - }, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"chr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"chs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"cht" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"chu" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"chv" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/aisat) -"chw" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"chx" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"chy" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"chz" = ( -/obj/structure/window/reinforced/spawner, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"chA" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"chB" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"chC" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"chD" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"chE" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/maintenance/department/cargo) -"chF" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"chG" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"chH" = ( -/obj/structure/closet, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plating, -/area/maintenance/aft) -"chI" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/aft) -"chJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/item/radio/intercom{ - pixel_x = -30 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"chK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"chL" = ( -/obj/effect/landmark/start/chaplain, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"chM" = ( -/obj/structure/table/wood, -/obj/item/storage/book/bible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"chN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"chO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"chP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"chQ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/chapel/main) -"chR" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"chS" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"chT" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"chU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ icon_state = "0-4" }, /turf/open/floor/plating, -/area/engine/gravity_generator) -"chV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"chW" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"chX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"chY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"chZ" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cia" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cib" = ( -/obj/item/gps/engineering, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cic" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced/spawner, -/obj/machinery/door/window/eastright{ - req_one_access_txt = "32;19" - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cid" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cie" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cif" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"cig" = ( -/obj/structure/sign/warning/radiation/rad_area{ - pixel_x = -32 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cih" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cii" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cij" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cik" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cil" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/computer/atmos_control/tank/nitrous_tank, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cim" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cin" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cio" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cip" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/stripes/full, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciq" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/stripes/full, -/obj/machinery/computer/atmos_control/tank/mix_tank, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cir" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cis" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cit" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "CO2 to Pure" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ciu" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/computer/atmos_control/tank/carbon_tank, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"civ" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ciw" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cix" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/computer/atmos_control/tank/oxygen_tank{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciy" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 0; - name = "Plasma to Pure" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciz" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/machinery/computer/atmos_control/tank/toxin_tank, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciA" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciB" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciC" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ciD" = ( -/turf/closed/wall/r_wall, -/area/maintenance/port) -"ciE" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/medical/virology) -"ciF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ciG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ciH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Arrivals Hallway Stern"; - name = "arrivals camera" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ciI" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciJ" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciK" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/aft) -"ciL" = ( -/obj/structure/musician/piano, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"ciM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"ciN" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/chapel/main) -"ciO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/carpet, -/area/chapel/main) -"ciP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/carpet, -/area/chapel/main) -"ciQ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/chapel/main) -"ciR" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness/recreation) -"ciS" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"ciT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"ciU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"ciV" = ( -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"ciW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard) -"ciX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ciY" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cja" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cjc" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cjd" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cje" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjg" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjh" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/table, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cji" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjk" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjl" = ( -/obj/machinery/button/door{ - id = "Disposal Exit"; - name = "Disposal Vent Control"; - pixel_x = 25; - pixel_y = 4; - req_access_txt = "12" - }, -/obj/machinery/button/massdriver{ - id = "trash"; - pixel_x = 26; - pixel_y = -6 - }, -/obj/structure/chair/stool, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"cjm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjn" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjo" = ( -/obj/machinery/atmospherics/pipe/manifold/dark/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjq" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjs" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cju" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cjv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cjw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cjx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cjy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cjz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cjA" = ( -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cjB" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjC" = ( -/obj/structure/mirror{ - pixel_y = -28 - }, -/obj/item/lipstick/black, -/obj/item/lipstick/jade{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/lipstick/purple{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjD" = ( -/obj/structure/table, -/obj/item/clothing/mask/cigarette/pipe, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjE" = ( -/obj/structure/rack, -/obj/item/clothing/mask/horsehead, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjF" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cjG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cjH" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cjI" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cjJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cjK" = ( -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"cjL" = ( -/obj/machinery/vending/cola/random, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness/recreation) -"cjM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cjN" = ( -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cjO" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cjP" = ( -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cjQ" = ( -/turf/closed/wall, -/area/engine/engine_smes) -"cjR" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engine_smes) -"cjS" = ( -/turf/closed/wall, -/area/engine/engineering) -"cjT" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"cjU" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cjV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cjZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Air to Ports" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cka" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckb" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Port Mix to North Ports" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckc" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckd" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Port to Turbine" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cke" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckf" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckg" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Pure to Fuel Pipe" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckh" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cki" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/port/aft"; - dir = 4; - name = "Aft Port Maintenance APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ckj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ckk" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/aft) -"ckl" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"ckm" = ( -/obj/structure/chair/stool, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"ckn" = ( -/obj/machinery/light, -/turf/open/floor/carpet, -/area/chapel/main) -"cko" = ( -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Arrivals Dock Starboard Fore"; - dir = 4; - name = "arrivals camera" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ckp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"ckq" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/obj/machinery/light, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"ckr" = ( -/obj/machinery/vending/coffee, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness/recreation) -"cks" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"ckt" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cku" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ckv" = ( -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"ckw" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance"; - req_access_txt = "24" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ckx" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - N2O"; - dir = 8 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"cky" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/rcl/pre_loaded, -/obj/item/rcl/pre_loaded, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ckz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"ckA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ckB" = ( -/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/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"ckC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ckD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/cargo) -"ckG" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckH" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckI" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckJ" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckK" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Ports" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Storage Room"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/department/cargo) -"ckM" = ( -/obj/structure/closet/firecloset, -/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/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/starboard) -"ckN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckP" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckR" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckS" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckT" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"ckU" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckV" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckX" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ckY" = ( -/turf/closed/wall, /area/security/checkpoint/customs) -"ckZ" = ( +"cze" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_one_access_txt = "1;4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cla" = ( -/turf/closed/wall, -/area/security/vacantoffice/a) -"clb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"clc" = ( -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cld" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cle" = ( -/turf/closed/wall, -/area/chapel/office) -"clf" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office"; - req_access_txt = "22" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"clg" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"clh" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Funeral Parlour" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cli" = ( -/obj/machinery/gravity_generator/main/station, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"clj" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/station_engineer, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"clk" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cll" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"clm" = ( -/obj/machinery/power/apc{ - areastring = "/area/engine/engine_smes"; - dir = 1; - name = "SMES room APC"; - pixel_x = -26 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cln" = ( -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"clo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"clp" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"clq" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"clr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cls" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"clt" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/item/wrench, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clu" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clx" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Ports" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cly" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clz" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Port Mix to South Ports" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clA" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clB" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"clC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clD" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clE" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"clF" = ( -/obj/structure/table, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/storage/crayons, -/obj/item/storage/crayons, -/obj/item/storage/crayons, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/storage/art) -"clG" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/engine/break_room"; - name = "Engineering Foyer APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"clH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"clI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"clJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"clK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"clL" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"clM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"clN" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/aft) -"clO" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"clP" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/carpet, -/area/chapel/office) -"clQ" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"clR" = ( -/obj/item/instrument/violin, -/obj/item/instrument/saxophone, -/obj/item/instrument/guitar, -/obj/item/instrument/eguitar, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"clS" = ( -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"clT" = ( -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/structure/closet/crate{ - name = "Burial Garment Crate" - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"clU" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1481; - name = "Confessional Intercom"; - pixel_y = -30 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"clV" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/chapel/office) -"clW" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1481; - name = "Confessional Intercom"; - pixel_y = 30 - }, -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"clX" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"clY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"clZ" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/chapel/main) -"cma" = ( -/obj/structure/closet/crate/coffin, -/turf/open/floor/plating, -/area/chapel/main) -"cmb" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hydroponics/garden) -"cmc" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Garden" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cmd" = ( -/turf/closed/wall, -/area/hydroponics/garden) -"cme" = ( -/obj/effect/landmark/start/chief_engineer, -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cmf" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cmg" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/machinery/button/door{ - id = "transittube"; - name = "Transit Tube Lockdown"; - pixel_x = 24; - pixel_y = -5; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cmh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/engineering{ - name = "Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmi" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/aft) -"cmj" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cmk" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/turf/open/floor/plasteel/dark, -/area/storage/tcom) -"cml" = ( -/obj/item/kirbyplants/random, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cmm" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - icon_state = "right" - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/stock_parts/cell/crap, -/obj/structure/table/reinforced, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cmn" = ( -/obj/structure/cable{ - icon_state = "1-2" + name = "Medbay Maintenance"; + req_access_txt = "5" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cmo" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, -/area/engine/transit_tube) -"cmp" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/item/crowbar, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmq" = ( -/turf/closed/mineral{ - baseturfs = /turf/open/floor/plating/asteroid; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid"; - turf_type = /turf/open/floor/plating/asteroid - }, -/area/maintenance/department/cargo) -"cmr" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cms" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmt" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmu" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmv" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmw" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmx" = ( -/obj/structure/bed, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cmy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cmz" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cmA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cmB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cmC" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/color/black, -/obj/item/wrench, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cmD" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cmE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cmF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Vacant Office"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cmG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"cmH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cmI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cmJ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cmK" = ( -/obj/effect/landmark/start/chaplain, -/obj/structure/chair/comfy/black, -/turf/open/floor/carpet, -/area/chapel/office) -"cmL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/aft) -"cmM" = ( -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/aft) -"cmN" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cmO" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth (Chaplain)"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cmP" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cmQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cmR" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/window/southleft, -/turf/open/floor/plating, -/area/chapel/main) -"cmS" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/chapel/main) -"cmT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cmU" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cmV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cmW" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cmX" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cmY" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cmZ" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cna" = ( -/obj/machinery/power/terminal, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable, -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/engine/atmos"; - dir = 1; - name = "Atmospherics APC"; - pixel_x = -27 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnc" = ( -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cne" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/atmos) -"cng" = ( -/obj/machinery/pipedispenser, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cni" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnj" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"cnk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/dark/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnn" = ( -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"cno" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cnp" = ( -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cnq" = ( -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage"; - req_one_access_txt = "23;30" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/storage/tech) -"cnr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cns" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnt" = ( -/obj/machinery/door/airlock/security{ - name = "Customs Desk"; - req_access_txt = "1" - }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cnu" = ( -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/department/cargo) -"cnv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cnw" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/a) -"cnx" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/carpet, -/area/security/vacantoffice/a) -"cny" = ( -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/a) -"cnz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"cnA" = ( -/obj/structure/table/wood, -/obj/item/storage/book/bible, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet, -/area/chapel/office) -"cnB" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/holywater, -/obj/item/nullrod, -/obj/item/organ/heart, -/turf/open/floor/carpet, -/area/chapel/office) -"cnC" = ( -/obj/machinery/computer/arcade{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/aft) -"cnD" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/aft) -"cnE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cnF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/grunge{ - name = "Crematorium"; - req_access_txt = "22;27" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cnG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cnH" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Arrivals Dock Starboard Fore"; - dir = 8; - name = "arrivals camera" - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cnI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/grunge{ - req_access_txt = "22;27" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cnJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cnK" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cnL" = ( -/obj/item/storage/box/bodybags{ - pixel_y = 5 - }, -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cnM" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cnN" = ( -/turf/open/floor/grass, -/area/hydroponics/garden) -"cnO" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cnP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cnQ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cnR" = ( -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnS" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/item/weldingtool, -/obj/item/clothing/head/welding, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cnT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/central) -"cnU" = ( -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness/recreation) -"cnV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnW" = ( -/obj/machinery/vending/engineering{ - products = list(/obj/item/clothing/under/rank/engineering/engineer = 4, /obj/item/clothing/shoes/sneakers/orange = 4, /obj/item/clothing/head/hardhat = 4, /obj/item/storage/belt/utility = 4, /obj/item/clothing/glasses/meson/engine = 4, /obj/item/clothing/gloves/color/yellow = 2, /obj/item/screwdriver = 12, /obj/item/crowbar = 12, /obj/item/wirecutters = 12, /obj/item/multitool = 12, /obj/item/wrench = 12, /obj/item/t_scanner = 12, /obj/item/stock_parts/cell = 8, /obj/item/weldingtool = 8, /obj/item/clothing/head/welding = 8, /obj/item/light/tube = 10, /obj/item/clothing/suit/fire = 4, /obj/item/stock_parts/scanning_module = 5, /obj/item/stock_parts/micro_laser = 5, /obj/item/stock_parts/matter_bin = 5, /obj/item/stock_parts/manipulator = 5) - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cnX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/item/book/manual/wiki/engineering_singulo_tesla, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnY" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/light, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cnZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/table, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clothing/head/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/effect/turf_decal/delivery, -/obj/item/clothing/mask/gas{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/item/clothing/mask/gas{ - pixel_x = 5; - pixel_y = -2 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coa" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cob" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"coc" = ( -/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/machinery/camera{ - c_tag = "Nanite Lab Starboard"; - dir = 8; - name = "science camera"; - network = list("ss13","rd") - }, -/obj/structure/sign/poster/random{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/dark, -/area/science/circuit) -"cod" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"coe" = ( -/obj/structure/table, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cof" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/bot, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cog" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"coh" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/department/electrical) -"coi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"coj" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cok" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"col" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"com" = ( -/obj/machinery/rnd/production/protolathe/department/engineering, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"con" = ( -/obj/item/folder/blue, -/obj/structure/table/wood, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/a) -"coo" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/a) -"cop" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"coq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cor" = ( -/obj/structure/table, -/obj/item/paper/fluff/holodeck/disclaimer, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cos" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cot" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/button/crematorium{ - id = "crematoriumChapel"; - pixel_x = -26; - pixel_y = -58; - req_access_txt = "27" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cou" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cov" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cow" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cox" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/window/northright, -/turf/open/floor/plating, -/area/chapel/main) -"coy" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plating, -/area/chapel/main) -"coz" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/grass, -/area/hydroponics/garden) -"coA" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/hydroponics/garden) -"coB" = ( -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"coC" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/hydroponics/garden) -"coD" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"coE" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"coF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/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/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"coG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"coH" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"coI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"coJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) -"coK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/modular_computer/console/preset/engineering, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"coL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port/fore) -"coM" = ( -/obj/machinery/light/small, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"coN" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"coO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coP" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coQ" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coT" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coV" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"coW" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coX" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/mixer/airmix{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coY" = ( -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/machinery/pipedispenser/disposal, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"coZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cpa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cpb" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1" - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cpc" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cpd" = ( -/obj/effect/landmark/start/atmospheric_technician, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cpe" = ( -/obj/machinery/door/airlock/atmos{ - name = "Turbine Access"; - req_access_txt = "32" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cpf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cpg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cph" = ( -/obj/structure/dresser, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cpi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cpj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cpk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cpl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/smes{ - capacity = 9e+006; - charge = 10000 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cpm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/checkpoint/customs) -"cpn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/checkpoint/customs) -"cpo" = ( +/area/maintenance/department/medical) +"czf" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/machinery/door/window, @@ -62744,4705 +55741,160 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/checkpoint/customs) -"cpp" = ( +"czg" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-8" }, /turf/open/floor/plating, /area/security/checkpoint/customs) -"cpq" = ( -/obj/structure/window/reinforced/spawner, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +"czi" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cpr" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"czj" = ( /obj/machinery/door/airlock/maintenance{ name = "Vacant Office Maintenance"; req_access_txt = "32" }, /turf/open/floor/plating, /area/maintenance/aft) -"cps" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cpt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cpu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Chapel Office Maintenance"; - req_one_access_txt = "22" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cpv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cpw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/camera{ - c_tag = "Arrivals Dock Fore"; - dir = 8; - name = "arrivals camera" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cpx" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/chapel/office"; - name = "Chapel Office APC"; - pixel_y = -25 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cpy" = ( -/obj/machinery/disposal/bin, -/obj/machinery/light, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cpz" = ( -/obj/machinery/vending/wardrobe/chap_wardrobe, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cpA" = ( -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cpB" = ( -/obj/structure/bodycontainer/crematorium{ - dir = 1; - id = "crematoriumChapel" - }, -/obj/machinery/light, -/obj/item/radio/intercom{ - dir = 1; - pixel_y = -29 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cpC" = ( -/obj/structure/bodycontainer/morgue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cpD" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/light, -/turf/open/floor/plating, -/area/chapel/main) -"cpE" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cpF" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cpG" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cpH" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cpI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/start/depsec/engineering, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"cpJ" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/rnd/production/circuit_imprinter, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cpK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpL" = ( -/obj/effect/spawner/lootdrop/mre, -/obj/structure/table, -/obj/item/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cpM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/wood, -/area/crew_quarters/heads/cmo/private) -"cpN" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/modular_computer/console/preset/engineering, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cpP" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpQ" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cpR" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cpS" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cpT" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cpU" = ( -/obj/machinery/pipedispenser/disposal/transit_tube, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cpV" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cpW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"cpX" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cpY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"cpZ" = ( -/obj/structure/closet/emcloset, -/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/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/starboard) -"cqa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "plasma tank pump" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqd" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqg" = ( -/turf/closed/wall, -/area/hallway/secondary/entry) -"cqh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cqi" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cqj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cqk" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cql" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqm" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cqn" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cqo" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cqp" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cqq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqu" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqv" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"cqw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Arrivals Dock Starboard Aft"; - dir = 8; - name = "arrivals camera" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cqx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 6 - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cqy" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cqz" = ( -/obj/machinery/light, -/obj/item/kirbyplants/random, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cqA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/apc/highcap/fifteen_k{ - areastring = "/area/engine/engineering"; - dir = 1; - name = "Engine Room APC"; - pixel_y = 27 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqC" = ( -/obj/machinery/power/terminal, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/cable/yellow, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cqD" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/vending/wardrobe/engi_wardrobe, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cqE" = ( -/obj/structure/particle_accelerator/end_cap, -/obj/structure/particle_accelerator/fuel_chamber, -/obj/structure/particle_accelerator/particle_emitter/center, -/obj/structure/particle_accelerator/particle_emitter/left, -/obj/structure/particle_accelerator/particle_emitter/right, -/obj/structure/particle_accelerator/power_box, -/obj/machinery/particle_accelerator/control_box, -/obj/structure/closet/crate/engineering{ - name = "Particle Accelerator Crate" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqH" = ( -/obj/item/radio/off, -/obj/item/crowbar, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/customs"; - dir = 1; - name = "Customs APC"; - pixel_x = 1; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cqI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqJ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqK" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/port/aft) -"cqN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqO" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqP" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqQ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqR" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"cqS" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/obj/machinery/suit_storage_unit/engine, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cqT" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqV" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqX" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cqZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cra" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"crc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "input port pump" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"crd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/aft) -"cre" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"crf" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cri" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"crj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"crk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"crl" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"crm" = ( -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/aft) -"crn" = ( -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/maintenance/aft) -"cro" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"crp" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"crq" = ( -/obj/item/shovel/spade, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/grass, -/area/hydroponics/garden) -"crr" = ( -/obj/item/cultivator, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/grass, -/area/hydroponics/garden) -"crs" = ( -/turf/closed/wall/r_wall, -/area/engine/storage) -"crt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cru" = ( -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crv" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crx" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cry" = ( -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crz" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crB" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crC" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crD" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Waste Release" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crE" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crF" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crG" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "O2 to Airmix" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crH" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crI" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crJ" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small{ - pixel_y = 5 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "N2 to Pure" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crK" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/hallway/primary/fore) -"crL" = ( -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crM" = ( -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crN" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "O2 to Pure" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crO" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "N2 to Airmix" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crP" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crQ" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/small{ - pixel_y = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crR" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crS" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crU" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crV" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crW" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crY" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"crZ" = ( -/obj/structure/window/reinforced/spawner, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csa" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/disposal/incinerator"; - dir = 1; - name = "Incinerator APC"; - pixel_y = 26 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "input port pump" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cse" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"csg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/item/stack/medical/gauze, -/obj/item/stack/medical/suture, -/obj/item/stack/medical/mesh, -/obj/structure/table/glass, -/turf/open/floor/plating, -/area/medical/abandoned) -"csl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - sortType = 17 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"csm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"csn" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cso" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/engineering) -"csp" = ( -/turf/open/floor/carpet, -/area/hydroponics/garden) -"csq" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/ywflowers, -/turf/open/floor/grass, -/area/hydroponics/garden) -"csr" = ( -/obj/machinery/shieldgen, -/turf/open/floor/plating, -/area/engine/storage) -"css" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plating, -/area/engine/storage) -"cst" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/engine/storage) -"csu" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"csv" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"csw" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/turf/open/floor/plasteel, -/area/engine/break_room) -"csx" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"csy" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"csz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"csA" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow, -/obj/effect/turf_decal/bot, -/turf/open/floor/engine, -/area/engine/engineering) -"csB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"csC" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/engine/engineering) -"csD" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall, -/area/engine/engineering) -"csE" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csF" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csG" = ( -/obj/structure/window/reinforced/spawner/north, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csH" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csI" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csJ" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csK" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csL" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csM" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"csN" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"csO" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Monitoring"; - req_access_txt = "12;24" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/atmos) -"csP" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"csQ" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/engine/atmos) -"csR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"csX" = ( -/turf/closed/wall/r_wall, -/area/construction/mining/aux_base) -"csY" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cta" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ctb" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/computer/atmos_control/tank/air_tank{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ctc" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctd" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cte" = ( -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctf" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cth" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cti" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctk" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cto" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctp" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctq" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cts" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctt" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/turf/open/floor/grass, -/area/hydroponics/garden) -"ctu" = ( -/turf/open/floor/plating, -/area/engine/storage) -"ctv" = ( -/obj/machinery/power/terminal, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"ctw" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ctx" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cty" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ctz" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/item/kirbyplants/photosynthetic, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ctA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ctB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ctC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ctD" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/engine/engineering) -"ctE" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"ctF" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/engine/engineering) -"ctG" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ctH" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"ctI" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ctJ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Arrivals Dock Starboard Aft"; - dir = 4; - name = "arrivals camera" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ctM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"ctO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ctP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/valve{ - name = "output gas to space" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ctQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ctR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/trinary/filter/flipped, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ctS" = ( -/obj/machinery/button/ignition/incinerator/atmos{ - pixel_x = 8; - pixel_y = -36 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the turbine vent."; - dir = 8; - name = "turbine vent monitor"; - network = list("turbine"); - pixel_x = 29 - }, -/obj/machinery/button/door/incinerator_vent_atmos_main{ - pixel_x = -8; - pixel_y = -36 - }, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = -8; - pixel_y = -24 - }, -/obj/machinery/computer/turbine_computer{ - dir = 1; - id = "incineratorturbine" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ctT" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"ctU" = ( -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"ctV" = ( -/turf/closed/wall, -/area/construction/mining/aux_base) -"ctW" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cua" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cub" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cuc" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cud" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cue" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cuf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cug" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cuh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cui" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/dark/visible, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cuj" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/sunflower, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"cuk" = ( -/obj/machinery/power/apc{ - areastring = "/area/hydroponics/garden"; - name = "Garden APC"; - pixel_y = -26 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cul" = ( -/obj/machinery/airalarm/directional/south, -/obj/structure/flora/ausbushes/grassybush, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cum" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cun" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/engine/storage) -"cuo" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/t_scanner, -/obj/item/t_scanner, -/obj/item/t_scanner, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cup" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cuq" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"cur" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cus" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cut" = ( -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cuu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cuv" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cuw" = ( -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cux" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cuy" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cuz" = ( -/turf/open/floor/engine/air, -/area/engine/atmos) -"cuA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cuB" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cuC" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cuD" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cuE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cuF" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cuG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/atmospheric_technician, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cuH" = ( -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cuI" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/atmos) -"cuJ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cuK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cuL" = ( -/obj/machinery/door/poddoor{ - id = "SecJusticeChamber"; - name = "Justice Vent" - }, -/turf/open/floor/plating, -/area/security/execution/education) -"cuM" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ - pixel_x = 40; - pixel_y = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cuN" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cuP" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"cuQ" = ( -/obj/structure/chair/sofa{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cuR" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cuS" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"cuT" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"cuU" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/satellite) -"cuV" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Starboard"; - dir = 4; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cuW" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cuX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1; - sortType = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cuY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/closed/wall, -/area/engine/break_room) -"cuZ" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cva" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/telecomms, -/area/tcommsat/server) -"cvb" = ( -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cvc" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cvd" = ( -/obj/effect/turf_decal/tile/blue, -/mob/living/simple_animal/bot/cleanbot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cve" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cvf" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cvg" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/storage) -"cvh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cvi" = ( -/obj/structure/window/reinforced/spawner/east, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"cvj" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cvk" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/miner/nitrogen, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cvl" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - N2"; - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cvm" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cvn" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/pen, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cvo" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cvp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Arrivals Dock Aft"; - dir = 8; - name = "arrivals camera" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvq" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"cvr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cvs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/space, -/area/space/nearstation) -"cvt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Incinerator Output Pump" - }, -/turf/open/space, -/area/engine/atmos) -"cvu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cvv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/sign/warning/fire{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 - }, -/obj/machinery/airlock_sensor/incinerator_atmos{ - pixel_x = -8; - pixel_y = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cvw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cvx" = ( -/obj/structure/sign/warning/fire{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cvy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cvz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/space/basic, -/area/space) -"cvA" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvB" = ( -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/obj/structure/table/reinforced, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 6 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -6 - }, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cvC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvF" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall, -/area/hallway/secondary/entry) -"cvG" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cvH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvJ" = ( -/obj/machinery/door/airlock/external{ - name = "Transport Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cvK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cvM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cvN" = ( -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/engine/storage) -"cvO" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cvP" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cvQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cvR" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/lawoffice) -"cvS" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cvT" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cvU" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cvV" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cvW" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cvX" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cvY" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/item/radio/intercom{ - dir = 1; - name = "Station Intercom"; - pixel_y = -28 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cvZ" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/pipe_dispenser, -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cwa" = ( -/obj/structure/disposalpipe/segment, -/turf/open/space, -/area/space/nearstation) -"cwb" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/space, -/area/space/nearstation) -"cwc" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cwd" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/rods/fifty, -/obj/item/storage/box/lights/mixed, -/obj/machinery/power/apc{ - areastring = "/area/construction/mining/aux_base"; - dir = 4; - name = "Auxillary Base Construction APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cwe" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwf" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwg" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwi" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 3; - height = 15; - icon_state = "pinonalert"; - id = "arrivals_stationary"; - name = "arrivals"; - roundstart_template = /datum/map_template/shuttle/arrival/box; - width = 7 - }, -/turf/open/space/basic, -/area/space) -"cwj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/entry"; - dir = 4; - name = "Entry Hall APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwl" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cwm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwn" = ( -/obj/machinery/light/small, -/obj/machinery/power/rad_collector, -/turf/open/floor/plating, -/area/engine/storage) -"cwo" = ( -/obj/machinery/power/rad_collector, -/turf/open/floor/plating, -/area/engine/storage) -"cwp" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cwq" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cwr" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/power/grounding_rod, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cws" = ( -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cwv" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cww" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwy" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cwA" = ( -/obj/machinery/igniter/incinerator_atmos, -/obj/machinery/air_sensor/atmos/incinerator_tank{ - pixel_x = -32; - pixel_y = -32 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cwB" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cwC" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cwD" = ( -/obj/docking_port/stationary{ - area_type = /area/construction/mining/aux_base; - dheight = 4; - dir = 8; - dwidth = 4; - height = 9; - id = "aux_base_zone"; - name = "aux base zone"; - roundstart_template = /datum/map_template/shuttle/aux_base/default; - width = 9 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"cwE" = ( -/obj/docking_port/stationary/public_mining_dock{ - dir = 8 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"cwF" = ( -/obj/machinery/door/airlock/external{ - name = "Construction Zone" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"cwG" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwH" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwI" = ( -/obj/machinery/door/airlock/engineering{ - name = "Auxillary Base Construction"; - req_one_access_txt = "32;47;48" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cwJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwM" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/machinery/camera{ - c_tag = "Cargobay Fore"; - name = "cargo camera" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"cwN" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall, -/area/hallway/secondary/entry) -"cwO" = ( -/obj/machinery/door/airlock/external{ - name = "Transport Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cwP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwQ" = ( -/turf/closed/wall/r_wall, -/area/engine/storage_shared) -"cwR" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cwS" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cwT" = ( -/turf/open/space/basic, -/area/engine/engineering) -"cwU" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/engine/engineering) -"cwV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/turnstile{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cwW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"cwX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"cwY" = ( -/obj/machinery/power/compressor{ - comp_id = "incineratorturbine"; - dir = 1; - luminosity = 2 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cwZ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxa" = ( -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxc" = ( -/obj/machinery/door/airlock/external{ - name = "Arrival Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external{ - name = "Arrival Airlock" - }, -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external{ - name = "Arrival Airlock" - }, -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxh" = ( -/obj/machinery/door/airlock/external{ - name = "Arrival Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxi" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cxj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxk" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 2; - height = 13; - id = "ferry_home"; - name = "port bay 2"; - width = 5 - }, -/turf/open/space/basic, -/area/space) -"cxl" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"cxm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cxo" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/camera{ - c_tag = "Nanite Lab Port"; - dir = 4; - name = "science camera"; - network = list("ss13","rd") - }, -/obj/machinery/power/apc{ - areastring = "/area/science/circuit"; - name = "Circuitry Lab APC"; - pixel_x = -24 - }, -/obj/structure/target_stake, -/turf/open/floor/plasteel/dark, -/area/science/circuit) -"cxp" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cxq" = ( -/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/machinery/vending/cola/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/starboard) -"cxr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cxs" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/structure/sign/poster/official/report_crimes{ - pixel_y = 32 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 26 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cxt" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cxu" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cxv" = ( -/obj/machinery/power/emitter/anchored{ - dir = 8; - state = 2 - }, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cxw" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cxx" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/turf/open/space/basic, -/area/space/nearstation) -"cxy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) -"cxz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/disposal/incinerator) -"cxA" = ( -/obj/machinery/power/turbine{ - luminosity = 2 - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cxB" = ( -/obj/structure/lattice/catwalk, -/obj/item/wrench, -/turf/open/space, -/area/space/nearstation) -"cxC" = ( -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxD" = ( -/obj/machinery/door/poddoor/shutters{ - id = "aux_base_shutters"; - name = "Auxillary Base Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cxE" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxG" = ( -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -32 - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cxH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/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 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cxI" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cxJ" = ( -/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 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cxK" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/engine/storage_shared) -"cxL" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) -"cxM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"cxN" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/maintenance/disposal/incinerator) -"cxO" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cxP" = ( -/obj/machinery/door/poddoor/incinerator_atmos_main, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cxQ" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxT" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxU" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxY" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cxZ" = ( -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/obj/machinery/camera{ - c_tag = "Engineering - Gear Storage"; - dir = 4; - name = "engineering camera" - }, -/obj/item/stack/rods/fifty, -/obj/item/wrench, -/obj/item/storage/box/lights/mixed, -/obj/item/crowbar, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cya" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/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 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cyb" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyc" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cyd" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cye" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"cyg" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cyh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyk" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyl" = ( -/obj/item/beacon, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cym" = ( -/obj/structure/closet/wardrobe/cargotech, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Cargo Bay Port"; - dir = 4; - name = "cargo camera" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"cyn" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"cyo" = ( -/turf/closed/wall/r_wall, -/area/maintenance/aft) -"cyp" = ( -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/obj/machinery/light_switch{ - pixel_x = -22; - pixel_y = 26 - }, -/obj/item/radio/intercom{ - pixel_x = -26 - }, -/obj/item/stack/cable_coil/white{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil/white{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/rcl/pre_loaded, -/obj/item/rcl/pre_loaded, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cyq" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"cyr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cys" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/obj/structure/table/reinforced, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/item/analyzer{ - pixel_x = 7; - pixel_y = 3 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cyt" = ( -/obj/machinery/door/airlock/engineering/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cyu" = ( -/obj/machinery/power/tesla_coil, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cyv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyw" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyx" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyz" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cyA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyD" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyE" = ( -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24; - pixel_y = -32 - }, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/stack/sheet/rglass{ - amount = 50; - pixel_x = 2; - pixel_y = -2 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cyF" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cyG" = ( -/obj/machinery/computer/atmos_control{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cyH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cyI" = ( -/turf/closed/wall/mineral/plastitanium, -/area/hallway/secondary/entry) -"cyJ" = ( -/obj/machinery/rnd/production/protolathe/department/cargo, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Cargo Bay Aft"; - dir = 8; - name = "cargo camera" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cyK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyL" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyN" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyP" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"cyQ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyR" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = -32 - }, -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cyS" = ( -/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/machinery/vending/cigarette, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/starboard) -"cyT" = ( -/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/machinery/vending/cola/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/transit_tube) -"cyU" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/machinery/status_display/ai{ - pixel_y = -32 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cyV" = ( -/turf/closed/wall, -/area/engine/storage_shared) -"cyW" = ( -/obj/structure/fans/tiny/invisible, -/turf/open/space/basic, -/area/space) -"cyX" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"cyY" = ( -/obj/effect/landmark/blobstart, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cyZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cza" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"czb" = ( -/obj/structure/cable/yellow, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/engine, -/area/engine/engineering) -"czc" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"czd" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_lavaland1"; - name = "lavaland" - }, -/turf/open/space/basic, -/area/space) -"cze" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 1; - height = 4; - icon_state = "pinonalert"; - roundstart_template = /datum/map_template/shuttle/escape_pod/default; - width = 3 - }, -/obj/structure/fans/tiny/invisible, -/turf/open/space/basic, -/area/space) -"czf" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"czg" = ( -/obj/machinery/door/airlock/external{ - name = "Arrival Airlock" - }, -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"czh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external{ - name = "Arrival Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"czi" = ( -/obj/machinery/door/airlock/external{ - name = "Auxiliary Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"czj" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"czk" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) "czl" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plating, /area/maintenance/aft) "czm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/internals, /turf/open/floor/plasteel, -/area/engine/engineering) +/area/storage/primary) "czn" = ( -/obj/machinery/power/tesla_coil, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"czo" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/rad_collector/anchored, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"czp" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmoslock"; - name = "Atmospherics Lockdown Blast door" - }, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"czq" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/storage/primary) +"czo" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/structure/closet/crate{ + icon_state = "crateopen" }, /obj/item/radio/intercom{ dir = 1; pixel_y = -29 }, /turf/open/floor/plasteel, -/area/crew_quarters/bar) -"czr" = ( -/obj/structure/sign/warning/pods, -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"czs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"czt" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"czv" = ( -/obj/item/storage/toolbox/artistic, -/turf/open/floor/plating, -/area/maintenance/aft) -"czw" = ( -/obj/machinery/door/airlock/external{ - name = "Auxiliary Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"czx" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czy" = ( -/obj/machinery/power/tesla_coil, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"czz" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 11; - height = 22; - id = "whiteship_home"; - name = "SS13: Auxiliary Dock, Station-Port"; - width = 35 - }, +/area/storage/primary) +"czp" = ( +/obj/structure/grille, /turf/open/space/basic, -/area/space) -"czA" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/area/space/nearstation) +"czq" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" +/obj/structure/table/glass, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czB" = ( -/obj/structure/window/reinforced/spawner, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ +/obj/item/storage/pill_bottle/mutadone, +/obj/item/storage/pill_bottle/mannitol, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"czs" = ( +/obj/item/storage/box/lights, +/obj/structure/table, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ dir = 8 }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Pure" - }, /turf/open/floor/plasteel, -/area/engine/atmos) -"czC" = ( +/area/storage/primary) +"czv" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/storage/primary) +"czx" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"czy" = ( +/obj/machinery/light, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"czz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"czA" = ( +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/storage/primary) +"czB" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "czD" = ( /obj/structure/cable{ icon_state = "1-4" @@ -67452,14 +55904,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) -"czE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/gateway) "czF" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 6 @@ -67470,53 +55914,50 @@ /turf/open/floor/plasteel/white, /area/hallway/primary/fore) "czG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/end{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/gateway) +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) "czH" = ( -/obj/structure/closet/crate, -/obj/item/poster/random_contraband, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/turf/open/floor/plasteel/white, +/area/medical/virology) "czI" = ( /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"czJ" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"czK" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 }, -/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"czJ" = ( +/obj/structure/girder, /turf/open/floor/plating, -/area/maintenance/department/medical) +/area/maintenance/port) +"czK" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/button/door{ + id = "opth a"; + name = "Operating Theatre Privacy Shutters"; + pixel_x = -26; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) "czL" = ( /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating{ @@ -67524,177 +55965,70 @@ }, /area/maintenance/fore) "czM" = ( -/obj/item/storage/box/lights/mixed, -/obj/item/extinguisher, -/obj/machinery/light/small, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/hallway/primary/central) -"czN" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile{ dir = 1 }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) +"czN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"czO" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/item/reagent_containers/food/snacks/grown/wheat, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/citrus/orange, -/obj/item/reagent_containers/food/snacks/grown/grapes, -/turf/open/floor/plasteel, -/area/hydroponics) +/area/hallway/secondary/entry) "czP" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 }, -/area/maintenance/department/medical) +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/microwave, +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical) "czQ" = ( /obj/structure/closet/crate, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "czR" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"czS" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/central) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) "czT" = ( -/obj/machinery/computer/secure_data{ - dir = 4 +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, /area/bridge) "czU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) -"czV" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"czW" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) -"czX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/keycard_auth{ - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/bridge) -"czY" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) -"czZ" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/bridge) -"cAa" = ( /obj/machinery/computer/security{ dir = 4 }, @@ -67703,7 +56037,43 @@ }, /turf/open/floor/plasteel/dark, /area/bridge) -"cAb" = ( +"czV" = ( +/obj/machinery/door/poddoor{ + id = "engstorage"; + name = "Secure Storage" + }, +/turf/open/floor/plating, +/area/engine/storage) +"czW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"czX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"czY" = ( /obj/machinery/modular_computer/console/preset/engineering{ dir = 4 }, @@ -67715,94 +56085,83 @@ }, /turf/open/floor/plasteel/dark, /area/bridge) -"cAc" = ( -/obj/structure/chair/stool, -/obj/machinery/light{ +"czZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 28; - pixel_y = 5 - }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cAc" = ( +/obj/structure/chair/stool, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/bridge) "cAd" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgespace"; + name = "bridge external shutters" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/bridge) +"cAe" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/bridge) -"cAe" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/bridge) "cAf" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/cargo) "cAg" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cAh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/turf/closed/wall, +/area/medical/patients_rooms/room_a) "cAi" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel/white, -/area/hallway/primary/aft) +/area/medical/virology) "cAj" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cAk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cAl" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cAm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/junction/flip{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, /area/hallway/primary/aft) "cAo" = ( /obj/effect/turf_decal/stripes/red/line, @@ -67836,63 +56195,31 @@ }, /turf/open/floor/plasteel/dark, /area/security/armory) -"cAr" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "cAs" = ( -/obj/item/vending_refill/snack, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cAt" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/chair/sofa/left, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cAu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"cAt" = ( +/obj/machinery/power/apc/auto_name/east{ + areastring = "/area/ai_monitored/storage/satellite"; + name = "MiniSat Maint APC" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cAu" = ( +/mob/living/simple_animal/opossum, +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) "cAv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67903,46 +56230,27 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/machinery/light, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/radio/intercom{ - dir = 1; - pixel_y = -29 - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"cAw" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) "cAx" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/item/cultivator, -/obj/item/crowbar, -/obj/item/plant_analyzer, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hydroponics) -"cAy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"cAz" = ( -/obj/machinery/vending/hydroseeds, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) "cAA" = ( /obj/structure/cable{ icon_state = "1-2" @@ -67970,64 +56278,23 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"cAB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "cAC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) "cAD" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cAF" = ( @@ -68037,20 +56304,23 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 + dir = 4 }, /obj/effect/turf_decal/trimline/yellow/line{ dir = 4 @@ -68088,31 +56358,18 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cAI" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/cable, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/aisat/foyer"; + dir = 8; + name = "MiniSat Foyer APC"; + pixel_x = -29 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cAJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -68142,180 +56399,107 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cAL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/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/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cAM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/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/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/white, +/area/medical/virology) "cAO" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/engine/break_room) "cAP" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 +/obj/structure/disposalpipe/sorting/mail{ + sortType = 5 }, -/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "2-8" }, /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/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cAQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/structure/table, /turf/open/floor/plasteel, /area/engine/break_room) "cAR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 }, -/obj/structure/table, /turf/open/floor/plasteel, /area/engine/break_room) -"cAS" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/hydroponics) "cAT" = ( -/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/break_room) "cAU" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/air_sensor{ + id_tag = "mix_sensor" }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/turf/open/floor/engine/vacuum, +/area/engine/atmos) "cAW" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/camera/motion{ + c_tag = "MiniSat Foyer Starboard"; + dir = 8; + network = list("minisat") + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cAX" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/r_wall, -/area/maintenance/aft) -"cAY" = ( -/obj/structure/rack, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/assault_pod/mining, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/space) "cAZ" = ( /obj/structure/table/wood, -/obj/item/pinpointer/nuke, -/obj/item/disk/nuclear, -/obj/machinery/status_display/evac{ - pixel_y = 32 +/obj/machinery/light{ + dir = 1 + }, +/obj/item/aicard, +/obj/item/reagent_containers/food/drinks/flask/gold{ + pixel_y = 5 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) @@ -68333,169 +56517,82 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cBb" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cBg" = ( +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"cBi" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cBj" = ( /obj/machinery/computer/arcade, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, /turf/open/floor/plasteel/dark, /area/bridge) -"cBc" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Antechamber Starboard"; - dir = 8; - network = list("minisat") - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cBd" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Port Aft"; - dir = 9; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cBe" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ +"cBk" = ( +/obj/structure/transit_tube/curved/flipped{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cBf" = ( -/obj/machinery/airalarm{ - dir = 8; +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cBl" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/aft"; + dir = 4; + name = "Aft Port Maintenance APC"; pixel_x = 24 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cBg" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 4; - layer = 4; - name = "Engine Monitor"; - network = list("engine"); - pixel_x = -24 +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"cBh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cBi" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cBj" = ( -/obj/machinery/computer/slot_machine, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/bridge) -"cBk" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"cBl" = ( -/obj/machinery/computer/atmos_alert{ - dir = 8 - }, -/obj/item/radio/intercom{ - pixel_x = 26 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) +/turf/open/floor/plating, +/area/maintenance/port/aft) "cBm" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"cBn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cBo" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) "cBp" = ( -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/fore) +"cBs" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, /turf/open/floor/plasteel, -/area/engine/storage) -"cBr" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cBs" = ( -/obj/effect/spawner/lootdrop/mre, -/turf/open/floor/plating/asteroid, -/area/asteroid/nearstation) +/area/engine/break_room) "cBt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -68508,21 +56605,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"cBu" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"cBx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) "cBz" = ( /obj/machinery/power/apc{ areastring = "/area/hallway/primary/starboard"; @@ -68533,921 +56615,529 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cBB" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/light{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBC" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/area/hallway/secondary/entry) "cBD" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/engineering{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"cBE" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 +"cBF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cBH" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/hallway/secondary/entry) +"cBI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/medical) +"cBJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cBF" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/sign/directions/medical{ + dir = 1; + pixel_x = 32; + pixel_y = 40 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBH" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/hallway/primary/aft"; - dir = 4; - name = "Aft Hallway APC"; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBI" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBJ" = ( /obj/structure/cable{ icon_state = "4-8" }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cBK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cBL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cBM" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cBN" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cBO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cBP" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"cBQ" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cBR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cBS" = ( +/obj/machinery/light, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cBT" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cBU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cBV" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/lab) +"cBW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cBY" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cBZ" = ( +/obj/structure/table/glass, +/obj/item/lighter, +/obj/item/clothing/mask/cigarette, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/fore) +"cCm" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cCp" = ( +/turf/closed/wall/r_wall, +/area/engine/storage) +"cCq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cCu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/effect/turf_decal/tile{ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cBK" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBL" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBN" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBP" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBQ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft7"; - location = "aft6" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBR" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBS" = ( -/obj/effect/turf_decal/tile/neutral{ +/area/hallway/secondary/entry) +"cCw" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBU" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBV" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBX" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBY" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBZ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cCa" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft3"; - location = "aft2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCd" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/chaplain, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cCe" = ( -/obj/machinery/button/door{ - id = "Cabin2"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -5; - pixel_y = -30; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cCg" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage) -"cCl" = ( -/obj/machinery/light, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCm" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCn" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cCo" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxillary Mining Base."; - dir = 8; - name = "Auxillary Base Monitor"; - network = list("auxbase"); - pixel_x = 25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cCp" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/engine/break_room) -"cCq" = ( +"cCx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cCy" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cCA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cCB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"cCC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cCE" = ( +/obj/item/storage/belt/utility, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cCJ" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCt" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"cCu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cCv" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"cCw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cCx" = ( -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCy" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cCz" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCA" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCB" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cCC" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cCE" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCF" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cCG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cCH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/coffee, -/obj/machinery/newscaster{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cCI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cCJ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cCK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cCL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cCM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/closed/wall, -/area/engine/break_room) -"cCN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cCO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 26; - pixel_y = -32 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cCP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cCQ" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cCR" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, /turf/open/floor/plating, -/area/engine/engineering) -"cCS" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cCT" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Starboard Aft"; - dir = 5; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cCV" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, +/area/maintenance/aft) +"cCM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cCW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cCX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cCY" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 + dir = 10 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) -"cCZ" = ( -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cDa" = ( +"cCN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cCO" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/satellite) +"cCP" = ( +/obj/machinery/computer/security/telescreen/minisat{ + dir = 1; + pixel_y = -29 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/satellite) +"cCS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/engine/engineering) +"cCW" = ( +/obj/structure/table, /obj/item/radio/intercom{ pixel_y = -28 }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cDb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/mineral/plasma{ + amount = 35 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel, +/area/ai_monitored/storage/satellite) +"cCX" = ( +/obj/machinery/ai_slipper{ + uses = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) -"cDc" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) "cDe" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cDf" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cDi" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat Foyer Starboard"; - dir = 8; - network = list("minisat") - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cDj" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cDj" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer1{ + dir = 1; + name = "Auxiliary MiniSat Distribution Port" }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) +/turf/open/floor/plasteel, +/area/ai_monitored/storage/satellite) "cDk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/machinery/power/turbine{ + luminosity = 2 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/turf/open/floor/plasteel, +/obj/structure/cable/yellow, +/turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) -"cDl" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cDm" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cDn" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) "cDp" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/airless, /area/engine/engineering) "cDq" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Telecomms - Server Room - Aft"; + dir = 1; + network = list("ss13","tcomms") }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cDr" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cDs" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"cDt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmoshutter"; - name = "CMO Office Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"cDu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmoshutter"; - name = "CMO Office Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"cDv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmoshutter"; - name = "CMO Office Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"cDw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmoshutter"; - name = "CMO Office Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "cDx" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -69462,20 +57152,14 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"cDy" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) "cDz" = ( +/obj/machinery/light, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"cDA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ @@ -69487,17 +57171,9 @@ /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"cDA" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "cDB" = ( -/turf/open/floor/plating/asteroid/basalt, -/area/maintenance/starboard/aft) -"cDC" = ( -/turf/open/floor/plating/asteroid, +/obj/structure/grille, +/turf/open/floor/plating, /area/maintenance/starboard/aft) "cDD" = ( /obj/effect/spawner/structure/window, @@ -69538,18 +57214,14 @@ icon_state = "2-8" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cDI" = ( /obj/structure/cable/white{ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cDJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cDK" = ( /obj/structure/cable{ icon_state = "4-8" @@ -69558,7 +57230,7 @@ dir = 5 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cDL" = ( /obj/structure/cable{ icon_state = "4-8" @@ -69567,7 +57239,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cDM" = ( /obj/structure/cable{ icon_state = "4-8" @@ -69577,7 +57249,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cDN" = ( /obj/structure/cable{ icon_state = "2-4" @@ -69590,7 +57262,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cDO" = ( /obj/machinery/door/airlock/maintenance{ name = "Robotics Maintenance"; @@ -69603,11 +57275,17 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "cDP" = ( -/obj/effect/turf_decal/trimline/yellow/filled/corner{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/engineering) "cDQ" = ( /obj/effect/turf_decal/trimline/white/filled/line, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ @@ -69615,13 +57293,6 @@ }, /turf/open/floor/plasteel, /area/science/robotics/lab) -"cDR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "cDS" = ( /obj/structure/cable{ icon_state = "1-2" @@ -69650,6 +57321,9 @@ /obj/machinery/status_display/evac{ pixel_y = 32 }, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "cDV" = ( @@ -69688,300 +57362,48 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"cDY" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plating, -/area/medical/morgue) -"cDZ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEa" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEb" = ( -/obj/structure/bodycontainer/morgue{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/morgue) "cEc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cEd" = ( -/obj/structure/bodycontainer/morgue{ - dir = 8 - }, -/turf/open/floor/plating, -/area/medical/morgue) -"cEe" = ( -/obj/effect/landmark/xeno_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cEg" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEh" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/medical/morgue"; - dir = 4; - name = "Morgue APC"; - pixel_x = 26 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEi" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEj" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/landmark/blobstart, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEk" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cEn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Console"; + pixel_x = 26; + pixel_y = 26; + req_access_txt = "39" }, -/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cEf" = ( +/obj/machinery/porta_turret/ai, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"cEm" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, +/mob/living/simple_animal/bot/floorbot, /turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cEo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/area/ai_monitored/turret_protected/aisat/foyer) "cEp" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) "cEq" = ( -/obj/item/chair/stool, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cEr" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/aft) -"cEs" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/engine/n2o, +/area/engine/atmos) "cEt" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -70003,59 +57425,16 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"cEu" = ( -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/storage) "cEv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cEw" = ( -/obj/effect/turf_decal/tile/blue, -/obj/structure/sign/departments/medbay/alt{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cEx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/status_display/ai{ + pixel_y = -32 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "cEy" = ( /obj/machinery/firealarm{ pixel_y = 24 @@ -70063,433 +57442,116 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/mixing) -"cEz" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/structure/closet/wardrobe/chemistry_white, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cEA" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/structure/closet/secure_closet/chemical, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cEB" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/item/crowbar, -/obj/item/wrench/medical, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/turf/open/floor/plasteel/white, -/area/medical/cryo) -"cEC" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/machinery/computer/pandemic, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"cED" = ( -/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/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/starboard) "cEE" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - dir = 8; - freq = 1400; - location = "Bar" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"cEF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - name = "Break Room"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, /turf/open/floor/plasteel/white, -/area/medical/virology) +/area/medical/genetics) "cEG" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cEH" = ( -/obj/structure/chair/stool, +/obj/machinery/vending/engivend, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname, /turf/open/floor/plasteel, /area/engine/break_room) "cEI" = ( -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cEJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/atmos) +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) "cEK" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to Filter" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/engine/atmos) "cEL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cEM" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/obj/effect/turf_decal/tile/blue, +/mob/living/simple_animal/bot/cleanbot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) "cEN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cEO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cEP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/landmark/event_spawn, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cEQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=starboard5"; - location = "starboard4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cER" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cES" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cET" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cEU" = ( -/obj/structure/closet/cardboard, -/mob/living/simple_animal/hostile/retaliate/poison/snake{ - name = "Solid" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload_foyer) -"cEV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cEW" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cEY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cEZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cFa" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFb" = ( -/obj/machinery/light, -/obj/item/kirbyplants{ - icon_state = "plant-18" - }, -/obj/item/radio/intercom{ - dir = 1; - pixel_y = -29 - }, -/obj/effect/turf_decal/trimline/green/filled/end, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"cFc" = ( -/obj/machinery/light/small{ +/obj/machinery/airalarm{ dir = 4; - light_color = "#d8b1b1" + pixel_x = -22 }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cFd" = ( -/obj/machinery/computer/station_alert{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = 24; - pixel_y = 4; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cFe" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/turf/open/floor/plasteel/dark, +/area/aisat) +"cEQ" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/maintenance/port"; + name = "Port Maintenance APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cEU" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/starboard) +"cFd" = ( +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cFf" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/port/aft) "cFg" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/camera{ - c_tag = "Dormitories Hallway Starboard Fore"; - dir = 9; - name = "dormitories camera" +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/power/grounding_rod, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cFj" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/atmospherics, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFh" = ( -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cFi" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -70500,24 +57562,20 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFj" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - CO2"; - dir = 8 +/obj/effect/turf_decal/delivery, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = 3; + pixel_y = 4 }, -/turf/open/floor/engine/co2, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "cFk" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - Toxins"; - dir = 8 +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) +/turf/open/floor/plating, +/area/maintenance/port/aft) "cFl" = ( /obj/structure/cable{ icon_state = "1-2" @@ -70535,116 +57593,33 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "cFm" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, /obj/machinery/monkey_recycler, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cFn" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cFp" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/pool/filter{ - pixel_y = -20 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFq" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cFr" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/pool/controller, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFs" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cFt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/dark/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cFu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cFv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/fireaxecabinet{ - pixel_x = -31 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cFw" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFx" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/miner/oxygen, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cFy" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - O2"; - dir = 8 +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=aft5"; + location = "entry2" }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cFz" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cFC" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cFp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -70656,7 +57631,83 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/secondary/entry) +"cFq" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cFr" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=entry2"; + location = "entry1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cFs" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"cFt" = ( +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway Aft"; + dir = 8; + name = "arrivals camera" + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cFv" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/aft) +"cFx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cFy" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/closet, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cFz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) "cFD" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -70665,553 +57716,136 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "cFE" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFF" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFG" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFH" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFI" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, -/area/crew_quarters/fitness/recreation) -"cFJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Dormitories" +/area/maintenance/aft) +"cFF" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/telecomms/bus{ + pixel_x = -3; + pixel_y = -2 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cFK" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFL" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/item/circuitboard/machine/telecomms/broadcaster, +/obj/machinery/camera{ + c_tag = "Telecomms - Storage"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFM" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFN" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/turf/open/floor/plasteel/dark, +/area/storage/tcom) "cFQ" = ( -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/machinery/airalarm{ + pixel_y = 25 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/table, +/obj/item/stock_parts/subspace/analyzer{ + pixel_x = 5; + pixel_y = 3 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/stock_parts/subspace/analyzer{ + pixel_x = -5; + pixel_y = 3 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/obj/item/stock_parts/subspace/analyzer, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) "cFV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFW" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFX" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFY" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cFZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/vending/cola/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/aft) -"cGa" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/aft) -"cGb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/aft) -"cGc" = ( -/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/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/transit_tube) -"cGd" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/structure/sign/departments/medbay/alt{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cGe" = ( -/obj/machinery/vending/clothing, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cGf" = ( -/obj/item/radio/intercom{ - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Locker Room Aft"; - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/vending/kink, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cGg" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Dorms - Port Fore"; - name = "dormitories camera" - }, -/obj/structure/sign/poster/official/no_erp{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGh" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plating, +/area/maintenance/aft) +"cGb" = ( +/obj/machinery/door/airlock/external{ + name = "Transport Airlock" }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGj" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cGc" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGk" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGl" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGm" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/secondary/entry) +"cGg" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/ansible{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/stock_parts/subspace/ansible{ + pixel_y = 1 + }, +/obj/item/stock_parts/subspace/ansible{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/stock_parts/subspace/crystal{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) "cGp" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cGq" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cGr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cGr" = ( +/area/hallway/secondary/command) +"cGs" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -71229,36 +57863,13 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"cGs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "cGt" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/cable{ + icon_state = "2-4" + }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -71273,54 +57884,64 @@ dir = 8 }, /obj/effect/turf_decal/trimline/blue/line, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cGu" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) +/turf/closed/wall, +/area/medical/chemistry) "cGv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cGw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cGx" = ( /obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cGy" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cGz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"cGA" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -71329,152 +57950,53 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"cGA" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) "cGC" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/light{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"cGE" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/door/airlock/virology, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"cGF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/door/airlock/virology, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"cGG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cGI" = ( -/obj/machinery/button/door{ - id = "aux_base_shutters"; - name = "Public Shutters Control"; - pixel_x = 24; - req_one_access_txt = "32;47;48" - }, -/obj/machinery/camera{ - c_tag = "Auxillary Base Construction"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) +/area/hallway/primary/aft) "cGJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, /turf/open/floor/plasteel, -/area/engine/storage_shared) +/area/hallway/secondary/entry) "cGK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /turf/open/floor/plasteel, -/area/engine/atmos) -"cGL" = ( -/obj/machinery/computer/camera_advanced/base_construction{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cGM" = ( -/obj/machinery/computer/shuttle/mining{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) +/area/hallway/secondary/entry) "cGN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 }, /turf/open/floor/plasteel, -/area/engine/storage_shared) +/area/hallway/secondary/entry) "cGO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, /turf/open/floor/plasteel, -/area/engine/storage_shared) +/area/hallway/secondary/entry) "cGP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 }, /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/engine/storage_shared) +/area/hallway/secondary/entry) "cGQ" = ( /obj/machinery/light{ dir = 4 @@ -71486,7 +58008,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "cGR" = ( /obj/structure/chair{ dir = 1 @@ -71497,21 +58019,14 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "cGS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "transittube"; - name = "Transit Tube Blast Door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /turf/open/floor/plasteel, -/area/engine/transit_tube) +/area/hallway/secondary/entry) "cGT" = ( /obj/machinery/light/small, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -71521,26 +58036,16 @@ /area/security/courtroom) "cGU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 + dir = 5 }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-4" }, -/obj/effect/landmark/event_spawn, /turf/open/floor/carpet/red, /area/crew_quarters/heads/captain) -"cGV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "cGW" = ( /obj/structure/table, /obj/item/storage/fancy/donut_box, @@ -71562,121 +58067,37 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "cGZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Access"; - req_one_access_txt = "32;19" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, -/area/engine/transit_tube) +/area/hallway/secondary/entry) "cHa" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" +/obj/item/storage/box/lights, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 }, -/turf/open/floor/plating/asteroid, -/area/maintenance/starboard/aft) -"cHb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cHc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cHd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/turf/open/floor/plating, +/area/maintenance/aft) "cHe" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/engine/air, -/area/engine/atmos) +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/aft) "cHf" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank - Air"; - dir = 8 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cHg" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/obj/machinery/button/door{ - id = "engstorage"; - name = "Engineering Secure Storage Control"; - pixel_x = -28; - pixel_y = 8; - req_access_txt = "11" +/area/maintenance/aft) +"cHg" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 }, /turf/open/floor/plasteel, -/area/engine/storage) -"cHh" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space/basic, /area/engine/engineering) "cHi" = ( /obj/machinery/light{ @@ -71712,16 +58133,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"cHl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Garden Maintenance"; - req_one_access_txt = "12;5;39;6" - }, -/turf/open/floor/plating, -/area/maintenance/aft) "cHm" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall, @@ -71734,6 +58145,7 @@ /obj/structure/sign/departments/evac{ pixel_y = 32 }, +/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cHo" = ( @@ -71744,87 +58156,30 @@ /obj/structure/sign/departments/evac{ pixel_y = -32 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cHp" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/aft) -"cHq" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cHq" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "cHr" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft5"; - location = "aft4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cHs" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft1"; - location = "starboard6" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cHt" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=starboard6"; - location = "starboard5" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cHv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=entry1"; - location = "aft3" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cHw" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft4"; - location = "entry2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cHx" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -71835,24 +58190,59 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cHy" = ( +/area/hallway/primary/starboard) +"cHt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cHv" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=entry2"; - location = "entry1" +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/area/hallway/primary/starboard) +"cHw" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) "cHz" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -71881,14 +58271,7 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"cHA" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/engine/engineering) "cHB" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/engine/engineering) @@ -71897,285 +58280,153 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/engine/break_room) "cHE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall, +/area/maintenance/aft) "cHF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Telecomms Storage"; + req_access_txt = "61" + }, +/obj/effect/turf_decal/delivery, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) "cHG" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/turf/open/floor/plasteel/dark, +/area/storage/tcom) "cHH" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "cHI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) "cHJ" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/structure/closet/radiation, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cHK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, /area/engine/break_room) "cHL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/engine/break_room) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/engine/atmos) "cHM" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop"; + req_access_txt = "24" }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/atmos) "cHN" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cHO" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/break_room) "cHP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/vending/wardrobe/atmos_wardrobe, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/atmos) "cHQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cHR" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"cHS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, +"cHR" = ( +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/engine/break_room) -"cHT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/area/engine/atmos) +"cHS" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/break_room) "cHU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/atmos) "cHV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 + dir = 6 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/atmos) "cHW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/atmos) "cHX" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/item/clothing/gloves/color/yellow{ - pixel_x = 5; - pixel_y = 8 - }, -/obj/item/clothing/gloves/color/yellow{ - pixel_x = 3; +/obj/structure/cable/yellow, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/engine/engineering) +"cHY" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ pixel_y = 4 }, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cHY" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/structure/rack, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/item/screwdriver, -/obj/item/wirecutters, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) "cHZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -72185,144 +58436,126 @@ pixel_y = 32 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "cIa" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - id_tag = "Cabin2"; - name = "Cabin 2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/carpet/royalblack, -/area/crew_quarters/dorms) -"cIb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/command{ - name = "Head of Personnel"; - req_access_txt = "57" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"cIc" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Foyer"; - req_one_access_txt = "32;19" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile{ dir = 1 }, -/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cIb" = ( +/obj/machinery/porta_turret/ai{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cIc" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Security Doors" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/break_room) -"cId" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/carpet, -/area/chapel/office) "cIe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cIf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cIg" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cIh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cIi" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cIf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cIg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cIh" = ( -/obj/structure/closet/crate, -/obj/item/coin/silver, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cIi" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile{ dir = 1 }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/secondary/entry) "cIj" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cIk" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cIl" = ( -/obj/machinery/computer/rdconsole/production{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/hallway/secondary/entry) +"cIl" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/fore) "cIm" = ( /obj/structure/cable{ icon_state = "0-4" @@ -72384,6 +58617,9 @@ pixel_x = 26; pixel_y = -26 }, +/obj/effect/turf_decal/arrows/red{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "cIs" = ( @@ -72395,154 +58631,143 @@ pixel_y = 32 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"cIt" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "cIu" = ( -/mob/living/simple_animal/hostile/retaliate/goose, -/turf/open/floor/wood{ - icon_state = "wood-broken6" +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/area/maintenance/bar) -"cIv" = ( -/obj/machinery/vending/cola/random, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/bot, +/obj/machinery/light, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cIw" = ( -/obj/structure/closet/wardrobe/white, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cIx" = ( -/obj/structure/closet/wardrobe/grey, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/hallway/secondary/entry) "cIy" = ( +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cIz" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cIA" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cIB" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cIC" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cID" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cIG" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cII" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cIJ" = ( -/obj/machinery/computer/atmos_control, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/status_display/ai{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cIz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/poster/official/random{ pixel_y = 32 }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cIG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cII" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cIJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "bridgespace"; + name = "Bridge External Shutters"; + pixel_x = -25; + pixel_y = 35; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "bridgedoors"; + name = "Bridge Access Blastdoors"; + pixel_x = -25; + pixel_y = 26; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "bridgemaintenance"; + name = "Bridge Maintenance Blastdoor"; + pixel_x = -35; + pixel_y = 30; + req_access_txt = "19" + }, /turf/open/floor/plasteel/dark, /area/bridge) "cIK" = ( -/obj/machinery/computer/monitor{ - name = "Bridge Power Monitoring Console" - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/status_display/evac{ +/obj/machinery/computer/atmos_alert, +/obj/structure/fireaxecabinet{ pixel_y = 32 }, /turf/open/floor/plasteel/dark, /area/bridge) "cIL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/hallway/primary/fore) "cIN" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/airalarm/directional/west, +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/effect/turf_decal/tile{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /obj/effect/turf_decal/tile/blue{ - dir = 8 + dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/hallway/secondary/entry) "cIO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -72556,30 +58781,26 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cIP" = ( -/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-8" + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 }, -/obj/machinery/status_display/evac{ - pixel_y = 32 +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/command) @@ -72590,274 +58811,144 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cIR" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cIS" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/service"; - dir = 1; - name = "Service Hall APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"cIT" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/table, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"cIU" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/bridge) -"cIV" = ( -/obj/machinery/vending/boozeomat, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/bridge) -"cIW" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plating, -/area/maintenance/central) -"cIX" = ( -/obj/machinery/door/airlock{ - name = "Service Hall"; - req_one_access_txt = "25;26;35;28" +/area/maintenance/port) +"cIU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"cIV" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_y = 21 + }, +/turf/open/floor/plasteel/grimy, +/area/bridge) +"cIY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plating, -/area/maintenance/central) -"cIY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/glass/bucket, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/janitor) -"cIZ" = ( -/obj/machinery/rnd/production/protolathe/department/service, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) +/area/maintenance/department/medical) "cJa" = ( -/obj/machinery/light{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"cJb" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/sofa/left, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cJc" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/cryo) +/area/hallway/primary/aft) "cJd" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, /area/hallway/primary/aft) "cJe" = ( -/obj/structure/chair/sofa/right, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cJf" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/hallway/primary/aft) -"cJg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/machinery/light{ dir = 1 }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"cJh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"cJi" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cJj" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cJk" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cJl" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes/engineering{ - output_level = 80000 - }, -/turf/open/floor/circuit/green, -/area/engine/engine_smes) -"cJm" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/smes/engineering{ - output_level = 80000 - }, -/turf/open/floor/circuit/green, -/area/engine/engine_smes) -"cJn" = ( -/obj/machinery/light, -/obj/machinery/power/smes/engineering{ - output_level = 80000 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/circuit/green, -/area/engine/engine_smes) -"cJo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 + dir = 4 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, /turf/open/floor/plasteel, -/area/engine/engineering) +/area/hallway/secondary/entry) +"cJi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cJj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway Stern"; + name = "arrivals camera" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cJk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) "cJp" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/storage/box/lights/mixed, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/break_room) "cJq" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) "cJr" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -72878,6 +58969,9 @@ pixel_x = -26; pixel_y = 23 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "cJt" = ( @@ -72936,87 +59030,80 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "cJx" = ( -/turf/open/pool, -/area/crew_quarters/fitness/recreation) -"cJy" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJz" = ( -/obj/machinery/light, -/obj/structure/closet/wardrobe/green, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ dir = 1 }, -/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/hallway/secondary/entry) "cJA" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJD" = ( -/obj/structure/table, -/obj/item/paicard, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/razor{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJF" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJG" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/hallway/secondary/entry) "cJH" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cJI" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/hallway/secondary/entry) "cJJ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/port) "cJK" = ( -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cJL" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/hallway/primary/central) +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/medical/genetics) "cJM" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -73033,365 +59120,191 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "cJN" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"cJO" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cJP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cJQ" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Storage Room"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cJR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cJT" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cJU" = ( -/obj/structure/closet, -/obj/item/flashlight, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cJV" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/fore) -"cJW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/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/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cJX" = ( -/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/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cJY" = ( -/obj/item/pipe_dispenser, -/obj/structure/table, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cJZ" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage) -"cKa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cKb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cKc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cKd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/storage) -"cKe" = ( -/obj/structure/sink{ - layer = 3; - pixel_y = 22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/effect/landmark/xeno_spawn, +/obj/machinery/light_switch{ + pixel_x = 25; + pixel_y = 25 + }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, -/area/medical/surgery) -"cKf" = ( -/obj/effect/turf_decal/loading_area{ - dir = 4 +/area/medical/genetics) +"cJO" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 26; - pixel_y = 32; - req_access_txt = "11" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cKg" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cKh" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cKi" = ( -/obj/structure/table, /obj/structure/disposalpipe/segment{ dir = 4 }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cJP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/closed/wall, +/area/engine/break_room) +"cJQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/break_room) +"cJR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/break_room) +"cJT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro" }, /turf/open/floor/plasteel, -/area/engine/break_room) -"cKj" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 +/area/engine/atmos) +"cJU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/item/gps, -/turf/open/floor/plating, -/area/engine/storage) -"cKk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/plating, -/area/maintenance/central) -"cKl" = ( -/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cJW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, +/obj/structure/table, +/obj/item/gps/engineering, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cJX" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plasteel, +/area/engine/break_room) +"cJY" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cKc" = ( +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cKd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/engine/engineering) -"cKm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cKn" = ( +"cKe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cKg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cKo" = ( /obj/structure/cable{ icon_state = "1-8" }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cKh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cKi" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cKj" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"cKl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cKm" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"cKn" = ( +/turf/open/floor/wood, +/area/crew_quarters/heads/cmo/private) +"cKo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -73402,8 +59315,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "cKp" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/crate{ @@ -73411,73 +59330,18 @@ }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) -"cKq" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) "cKr" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"cKs" = ( -/turf/closed/wall, -/area/construction) -"cKt" = ( -/turf/open/floor/plating, -/area/construction) -"cKu" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/construction) -"cKv" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/construction) -"cKw" = ( -/turf/open/floor/plasteel, -/area/construction) -"cKx" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/construction) -"cKy" = ( -/obj/structure/light_construct{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, -/turf/open/floor/plating, -/area/construction) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cKz" = ( -/obj/structure/light_construct{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /turf/open/floor/plasteel, -/area/construction) -"cKA" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cKB" = ( -/obj/machinery/pool/drain, -/turf/open/pool, -/area/crew_quarters/fitness/recreation) -"cKC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/secondary/entry) "cKD" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -73506,467 +59370,156 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/security/brig) -"cKE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/construction) -"cKF" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/construction) "cKG" = ( -/obj/machinery/light_switch{ - pixel_x = 27 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 4 }, /turf/open/floor/plasteel, -/area/construction) -"cKH" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/construction) -"cKI" = ( -/obj/machinery/power/apc{ - areastring = "/area/construction"; - name = "Construction Area APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/construction) -"cKJ" = ( -/obj/machinery/camera{ - c_tag = "Construction Area"; - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"cKK" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hazardvest, -/turf/open/floor/plating, -/area/construction) +/area/hallway/secondary/entry) "cKL" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - amount = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/item/flashlight, -/turf/open/floor/plating, -/area/construction) +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cKM" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/construction) -"cKN" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plating, -/area/construction) -"cKO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cKP" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cKQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cKR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cKS" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cKT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/hallway/secondary/entry) "cKU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "cKV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "cKW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/computer/station_alert{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 4; + req_access_txt = "24" }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cKX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "cKY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/hallway/secondary/entry) "cKZ" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cLa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cLb" = ( -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cLd" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cLh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cLi" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/turf/open/floor/carpet/black, -/area/crew_quarters/dorms) -"cLj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cLk" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cLl" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cLm" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"cLn" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/structure/closet/wardrobe/mixed, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cLo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cLp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ +/obj/effect/turf_decal/tile{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cLq" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cLr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cLs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cLt" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" +/obj/machinery/camera{ + c_tag = "Arrivals Dock Starboard Fore"; + name = "arrivals camera" }, /turf/open/floor/plasteel, -/area/engine/storage_shared) +/area/hallway/secondary/entry) +"cLa" = ( +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cLo" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cLr" = ( +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cLs" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/aft) +"cLt" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) "cLu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/storage_shared) -"cLv" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/engine/engineering) +/area/hallway/primary/starboard) +"cLv" = ( +/obj/structure/table, +/obj/machinery/power/apc{ + areastring = "/area/storage/tcom"; + dir = 8; + name = "Telecomms Storage APC"; + pixel_x = -28 + }, +/obj/structure/cable, +/obj/item/stock_parts/subspace/treatment{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/item/stock_parts/subspace/treatment{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/stock_parts/subspace/treatment{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) "cLw" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -74035,125 +59588,70 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"cLB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/hallway/primary/aft) "cLC" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#706891" +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/hallway/primary/aft) +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "cLD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cLE" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cLF" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cLG" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cLH" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cLI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cLJ" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/computer"; + dir = 4; + name = "Telecomms Control Room APC"; + pixel_x = 26 }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"cLL" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"cLE" = ( +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cLH" = ( +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Dock Starboard Fore"; + dir = 4; + name = "arrivals camera" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cLI" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cLJ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cLM" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cLM" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark/corner{ - dir = 8 - }, -/area/hallway/primary/aft) +/area/hallway/secondary/entry) "cLN" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/disposalpipe/junction/yjunction{ dir = 1 }, -/turf/open/floor/plasteel/dark/corner{ - dir = 8 - }, -/area/hallway/primary/aft) +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cLP" = ( /obj/effect/turf_decal/bot, /obj/structure/disposalpipe/segment, @@ -74165,6 +59663,10 @@ dir = 8; name = "cargo camera" }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cLQ" = ( @@ -74176,14 +59678,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) -"cLR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/port/aft) "cLS" = ( /obj/structure/closet/secure_closet/miner, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -74194,71 +59688,36 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"cLT" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Exterior Aft"; - dir = 6; - network = list("minisat") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"cLU" = ( -/obj/structure/transit_tube/curved{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/transit_tube) "cLV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cLX" = ( -/obj/structure/transit_tube/curved/flipped{ - dir = 8 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/transit_tube) -"cLY" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/fore) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cMa" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/maintenance{ +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/fore) "cMb" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/secondary/entry) "cMc" = ( /obj/effect/turf_decal/tile/red, /obj/machinery/door/firedoor, @@ -74270,21 +59729,12 @@ /turf/open/floor/plasteel, /area/security/brig) "cMd" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/door/airlock/command{ - name = "Chief Engineer's Quarters"; - req_access_txt = "56" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) +/turf/open/floor/plasteel, +/area/engine/break_room) "cMe" = ( /obj/machinery/light{ dir = 4 @@ -74311,30 +59761,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/server) -"cMg" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/atmospherics, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/item/clothing/gloves/color/yellow{ - pixel_x = 3; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) "cMh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -74392,15 +59818,14 @@ /turf/open/floor/plasteel/white, /area/science/research) "cMk" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 + dir = 5 }, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) @@ -74415,15 +59840,6 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"cMm" = ( -/obj/machinery/light, -/obj/structure/closet/secure_closet/personal, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) "cMn" = ( /obj/structure/cable{ icon_state = "2-8" @@ -74432,12 +59848,12 @@ dir = 9 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cMo" = ( /turf/open/floor/plating{ icon_state = "platingdmg1" }, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cMp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/mirror{ @@ -74448,6 +59864,10 @@ }, /area/medical/abandoned) "cMq" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"cMr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/cable{ @@ -74458,15 +59878,6 @@ }, /turf/open/floor/plasteel, /area/security/nuke_storage) -"cMr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/security/nuke_storage) "cMs" = ( /obj/machinery/hydroponics/constructable, /obj/item/seeds/poppy, @@ -74481,11 +59892,14 @@ /turf/open/floor/plating, /area/maintenance/department/science) "cMu" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 }, -/turf/open/floor/plating/asteroid, -/area/maintenance/port/fore) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cMv" = ( /obj/structure/cable{ icon_state = "4-8" @@ -74493,50 +59907,10 @@ /turf/open/floor/plating/asteroid, /area/maintenance/fore) "cMw" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cMx" = ( -/obj/structure/weightmachine/stacklifter, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cMy" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cMz" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/medical/virology) "cMA" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -74545,217 +59919,112 @@ /obj/machinery/camera/autoname, /obj/machinery/airalarm/directional/north, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"cMB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plating, -/area/construction) -"cMC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Dormitories" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/area/hallway/primary/fore) +"cMF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cMD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plating, -/area/construction) -"cME" = ( -/obj/structure/closet/crate, -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"cMF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"cMG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"cMH" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"cMI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, -/area/construction) -"cMJ" = ( -/obj/machinery/door/airlock/engineering/abandoned{ - name = "Construction Area"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) +/area/hallway/secondary/entry) "cMK" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/chair/comfy/brown{ + dir = 4 }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cML" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cMM" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cMN" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/engineering{ + pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cML" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/landmark/event_spawn, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 9 - }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cMM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"cMN" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/hallway/primary/starboard) "cMO" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) "cMQ" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/kirbyplants{ + icon_state = "plant-21" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cMR" = ( -/obj/structure/closet/firecloset, -/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/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) "cMS" = ( -/obj/machinery/camera{ - c_tag = "Hydroponics Storage"; +/obj/item/storage/firstaid/o2{ + pixel_x = 4 + }, +/obj/item/storage/firstaid/o2{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/firstaid/o2{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + name = "First-Aid Supplies"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/open/floor/plasteel/dark, +/area/medical/storage) "cMT" = ( -/obj/machinery/plantgenes, -/obj/structure/table, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/camera{ - c_tag = "Hydroponics Port"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/hydroponics) +/turf/open/floor/plasteel/white, +/area/medical/genetics/cloning) "cMU" = ( /obj/effect/turf_decal/tile{ dir = 8 @@ -74794,12 +60063,12 @@ c_tag = "Escape Hallway"; name = "departures camera" }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "cMX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/camera{ c_tag = "Library"; name = "library camera" @@ -74828,296 +60097,204 @@ /turf/open/floor/carpet, /area/library/lounge) "cNb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"cNc" = ( +/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/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, +/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cNc" = ( -/obj/effect/turf_decal/tile/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cNd" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cNe" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/area/engine/atmos) +"cNf" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/break_room"; + name = "Engineering Foyer APC"; + pixel_y = -24 }, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cNf" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 4 + icon_state = "0-4" }, +/obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/plasteel, /area/engine/break_room) "cNg" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, +/obj/structure/rack, +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, /obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cNh" = ( -/obj/machinery/vending/engivend, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cNi" = ( -/obj/structure/table/reinforced, -/obj/item/paper/guides/jobs/engi/gravity_gen, -/obj/machinery/power/terminal, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cNj" = ( -/obj/structure/closet/radiation, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"cNk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cNl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics - Entrance"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cNm" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cNn" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Port to Filter " - }, -/obj/machinery/camera{ - c_tag = "Atmospherics - Amidship"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cNo" = ( -/obj/machinery/computer/arcade{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cNp" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cNq" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cNr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cNs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname{ dir = 6 }, /turf/open/floor/plasteel, /area/engine/break_room) +"cNh" = ( +/obj/machinery/light, +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/circuit/green, +/area/engine/engine_smes) +"cNi" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cNj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cNk" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cNl" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cNm" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cNn" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cNp" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cNq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plating, +/area/construction) +"cNr" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/fore) "cNt" = ( /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "1-8" }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, /area/engine/engineering) "cNu" = ( -/turf/open/floor/engine, +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, /area/engine/engineering) "cNv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/closed/mineral{ - baseturfs = /turf/open/floor/plating/asteroid; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid"; - turf_type = /turf/open/floor/plating/asteroid - }, -/area/asteroid/nearstation) -"cNw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) -"cNx" = ( -/obj/item/kirbyplants/random, -/obj/machinery/camera{ - c_tag = "Atmospherics - Control Room"; - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ +"cNw" = ( +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/area/engine/atmos) +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/brig) +"cNx" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cNy" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/camera/autoname{ - dir = 4 - }, /turf/open/floor/plasteel, -/area/engine/storage) +/area/hallway/secondary/entry) "cNz" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 +/obj/effect/turf_decal/tile{ + dir = 8 }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "ewradiation"; - name = "Shutters Control"; - pixel_x = 33; - req_access_txt = "11" +/obj/effect/turf_decal/stripes/corner{ + dir = 1 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, -/area/engine/engineering) -"cNA" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ewradiation"; - name = "radiation shutters" - }, -/turf/open/floor/plating, -/area/engine/engineering) +/area/hallway/secondary/entry) "cNB" = ( +/obj/machinery/light, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=fore2"; - location = "fore1" - }, /obj/effect/turf_decal/tile/purple, -/obj/machinery/camera/autoname{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "cNC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/purple, -/obj/machinery/camera/autoname{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -75133,143 +60310,71 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"cNE" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/botanist, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"cNF" = ( -/obj/structure/cable, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/ai_monitored/turret_protected/ai_upload"; - name = "Upload APC"; - pixel_y = -24 - }, -/obj/machinery/camera/motion{ - c_tag = "AI Upload Chamber - Port"; - dir = 1; - network = list("aiupload") - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) "cNG" = ( -/obj/machinery/camera/motion{ - c_tag = "AI Upload Chamber - Starboard"; - dir = 1; - network = list("aiupload") - }, -/turf/open/floor/circuit, +/obj/machinery/porta_turret/ai, +/turf/open/floor/plating, /area/ai_monitored/turret_protected/ai_upload) "cNH" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/secure/briefcase, -/obj/machinery/camera/autoname{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plating, -/area/security/vacantoffice/a) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) "cNI" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/landmark/start/cyborg, -/obj/machinery/airalarm/directional/north, -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/obj/machinery/camera/motion{ - c_tag = "AI Upload Foyer"; - network = list("aiupload") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload_foyer) -"cNJ" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"cNK" = ( -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen/backroom) -"cNL" = ( -/obj/machinery/computer/teleporter{ - 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/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/teleporter) -"cNM" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"cNN" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/structure/table, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/storage/belt/utility, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/camera/autoname{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/gateway) -"cNO" = ( -/obj/machinery/vending/wardrobe/gene_wardrobe, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_x = -32; + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cNL" = ( +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cNN" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cNP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -75277,6 +60382,12 @@ /obj/machinery/camera/autoname{ dir = 1 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/carpet, /area/library) "cNQ" = ( @@ -75287,280 +60398,149 @@ pixel_x = 5; pixel_y = -32 }, -/turf/open/floor/carpet, -/area/library) -"cNR" = ( -/obj/machinery/smartfridge/chemistry/virology, -/turf/closed/wall/r_wall, -/area/medical/virology) -"cNS" = ( -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cNT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cNU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/camera{ - c_tag = "Restrooms"; - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cNV" = ( -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"cNW" = ( -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cNX" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 - }, /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cNY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/turf/open/floor/carpet, +/area/library) +"cNT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"cNX" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/engine/atmos) +"cNZ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cOa" = ( +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cOb" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fore) +"cOd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cOe" = ( +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cOf" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes{ + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cOg" = ( +/obj/structure/table/wood, +/obj/item/paicard, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cOh" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/satellite) +"cOi" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"cOj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 6 +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cNZ" = ( -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/machinery/modular_computer/console/preset/engineering{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"cOa" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cOb" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/fore) -"cOc" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cOd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cOe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/closet/secure_closet/medical2, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"cOf" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cOg" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/airless, -/area/medical/virology) -"cOh" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) -"cOi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/landmark/start/paramedic, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cOj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) "cOk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) -"cOl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) -"cOm" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) -"cOn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/airless, -/area/asteroid/nearstation) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) "cOo" = ( /obj/structure/closet/crate, /turf/open/floor/plating/asteroid, /area/maintenance/fore) "cOp" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/vending/assist, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/storage/tech) "cOq" = ( /obj/structure/grille, /turf/open/floor/plating/asteroid, /area/maintenance/fore) -"cOr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/fore) "cOs" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/fore) -"cOt" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/machinery/teleport/hub, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/camera{ - c_tag = "Cryogenic Storage"; - dir = 1; - name = "dormitories camera" - }, -/obj/effect/turf_decal/loading_area{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"cOu" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cOv" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/fore/secondary) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cOw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"cOx" = ( /obj/structure/cable{ icon_state = "1-4" }, @@ -75570,225 +60550,181 @@ /obj/structure/grille, /turf/open/floor/plating/asteroid, /area/maintenance/fore) -"cOx" = ( -/obj/structure/cable{ - icon_state = "4-8" +"cOz" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cOA" = ( +/obj/machinery/camera, +/obj/machinery/teleport/station, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cOC" = ( +/obj/structure/table, +/obj/item/plant_analyzer, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"cOE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plating/asteroid, -/area/maintenance/fore) -"cOy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"cOz" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/port/fore) -"cOA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/port/fore) -"cOB" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/port) -"cOC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cOD" = ( -/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ - dir = 1 + dir = 8 }, /obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) -"cOE" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "cOF" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 }, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cOG" = ( +/obj/effect/turf_decal/box, +/obj/machinery/the_singularitygen, +/turf/open/floor/plasteel/airless, +/area/engine/engineering) +"cOI" = ( +/obj/structure/table, +/obj/item/analyzer, +/obj/item/healthanalyzer, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"cOJ" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/multitool, +/obj/item/clothing/glasses/meson, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"cOM" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cON" = ( +/obj/machinery/holopad, +/obj/machinery/status_display/ai{ + pixel_y = 31 + }, +/turf/open/floor/plating, +/area/storage/tech) +"cOP" = ( +/obj/item/radio/intercom{ + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/storage/tech) +"cOQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = 32 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical) +"cOR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/door/poddoor/preopen{ - id = "atmoslock"; - name = "Atmospherics Lockdown Blast door" +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cOG" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine, -/area/engine/engineering) -"cOH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cOI" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cOJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +/obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cOK" = ( -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/bot/right, -/turf/open/floor/engine, -/area/engine/engineering) -"cOL" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine, -/area/engine/engineering) -"cOM" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/bot/left, -/turf/open/floor/engine, -/area/engine/engineering) -"cON" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/tile/green{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cOP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cOQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/medical) -"cOR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/port/fore) +/turf/open/floor/plasteel/white, +/area/medical/virology) "cOS" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/medical) +/obj/structure/curtain, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) "cOT" = ( -/obj/item/cigbutt, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cOU" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Storage Room"; - req_access_txt = "12" +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 }, /turf/open/floor/plating, -/area/maintenance/port/fore) +/area/storage/tech) "cOV" = ( /turf/closed/wall/r_wall, /area/maintenance/port/fore) "cOW" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/port/fore) +/turf/open/floor/plating, +/area/maintenance/port) "cOX" = ( -/obj/item/bot_assembly/floorbot{ - build_step = 1 +/obj/structure/chair, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cOY" = ( -/obj/item/storage/secure/safe{ - pixel_x = 6; - pixel_y = 28 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/medical/virology) "cOZ" = ( /obj/structure/closet/crate, /obj/item/storage/box/donkpockets, @@ -75797,119 +60733,43 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"cPa" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) "cPb" = ( -/obj/structure/light_construct/small, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPc" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/structure/table, +/obj/machinery/light{ + dir = 4 }, -/obj/item/folder, -/obj/item/folder, -/obj/structure/table/reinforced, -/obj/item/stack/medical/mesh{ - pixel_x = 3; - pixel_y = -2 +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 }, -/obj/item/stack/medical/suture{ - pixel_x = -3; - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPd" = ( -/obj/item/bikehorn/rubberducky, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/turf/open/floor/plasteel/white, +/area/medical/virology) "cPe" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-8" }, /turf/open/floor/plating, -/area/maintenance/port/fore) +/area/maintenance/port) "cPf" = ( -/obj/structure/closet/crate, -/obj/item/soap/deluxe, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband, -/obj/item/clothing/suit/xenos, -/obj/item/clothing/head/xenos, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPh" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port/fore) -"cPi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPj" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPk" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cPl" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, /turf/open/floor/plasteel, @@ -75918,129 +60778,108 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cPn" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cPn" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/medical) -"cPo" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/port/fore) +/area/hallway/primary/starboard) "cPp" = ( -/obj/structure/closet/crate, -/obj/item/coin/silver, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/donkpockets, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/grenade/empgrenade, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel, +/area/science/research) "cPq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Secure Storage Room"; - req_access_txt = "65" +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cPr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/research) "cPs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, -/area/maintenance/port/fore) +/area/maintenance/port) "cPt" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 + icon_state = "2-8" }, /turf/open/floor/plating, -/area/maintenance/port/fore) +/area/maintenance/port) "cPu" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/port/fore) +/turf/closed/wall, +/area/maintenance/port) "cPv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard) +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cPw" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard) -"cPx" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/port) -"cPy" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard) -"cPz" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cPx" = ( +/obj/machinery/door/airlock/external{ + name = "Transport Airlock" }, -/area/maintenance/port) +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cPy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cPA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -76051,56 +60890,20 @@ /turf/open/floor/plating{ icon_state = "panelscorched" }, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPB" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/port) -"cPC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/medical) -"cPD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/crew_quarters/dorms) -"cPE" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/department/crew_quarters/dorms) -"cPG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/aft) -"cPH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Arrivals Dock Fore"; + dir = 8; + name = "arrivals camera" }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/secondary/entry) "cPI" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, @@ -76114,17 +60917,6 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/maintenance/fore) -"cPK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/aft) "cPL" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -76144,22 +60936,6 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) -"cPO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/fore/secondary) -"cPP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/fore/secondary) "cPQ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -76175,15 +60951,15 @@ /obj/structure/table, /obj/machinery/microwave, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPS" = ( /obj/structure/table, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPT" = ( /obj/structure/closet/secure_closet/freezer/kitchen/maintenance, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPU" = ( /obj/structure/cable{ icon_state = "1-2" @@ -76191,39 +60967,33 @@ /turf/open/floor/plating{ icon_state = "platingdmg1" }, -/area/maintenance/fore/secondary) -"cPV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 8 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPX" = ( /obj/structure/sink/kitchen{ dir = 8; pixel_x = 11 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPY" = ( /obj/machinery/light/small, /turf/open/floor/plating{ icon_state = "platingdmg1" }, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cPZ" = ( /obj/structure/table, /obj/item/kitchen/rollingpin, /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/reagent_containers/food/condiment/sugar, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQa" = ( /obj/machinery/light/small{ dir = 4; @@ -76231,17 +61001,17 @@ }, /obj/structure/chair/stool, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQb" = ( /obj/structure/table, /obj/item/storage/box/donkpockets, /obj/item/kitchen/knife, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQc" = ( /obj/structure/chair/stool, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQd" = ( /obj/structure/table/glass, /obj/item/reagent_containers/food/condiment/saltshaker{ @@ -76254,11 +61024,11 @@ pixel_y = 9 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQe" = ( /obj/machinery/processor, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQf" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance{ @@ -76266,12 +61036,6 @@ name = "2maintenance loot spawner" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cQg" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" - }, -/turf/open/floor/plating, /area/maintenance/fore) "cQh" = ( /obj/structure/cable{ @@ -76280,19 +61044,19 @@ /turf/open/floor/plating{ icon_state = "platingdmg3" }, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQi" = ( /turf/open/floor/plating{ icon_state = "panelscorched" }, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQj" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cQk" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -76318,7 +61082,8 @@ }, /area/maintenance/fore) "cQn" = ( -/obj/machinery/door/airlock/maintenance{ +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; req_access_txt = "12" }, /turf/open/floor/plating, @@ -76373,150 +61138,59 @@ /area/maintenance/fore) "cQv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 + dir = 5 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, +/turf/open/floor/plating, /area/maintenance/fore) "cQw" = ( -/turf/open/floor/plating{ - initial_gas_mix = "o2=0.01;n2=0.01"; - luminosity = 2 - }, -/area/maintenance/fore) -"cQx" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cQy" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port/fore) -"cQz" = ( -/obj/item/bot_assembly/firebot, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cQA" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port/fore) -"cQB" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port) -"cQC" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor5" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"cQD" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/decal/cleanable/insectguts, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/maintenance/port) -"cQE" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/area/maintenance/fore/secondary) +"cQx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/structure/extinguisher_cabinet{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cQA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cQD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; dir = 4; + name = "Entry Hall APC"; pixel_x = 24 }, +/obj/structure/cable, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/entry) "cQF" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/maintenance/starboard) -"cQG" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port/aft) -"cQH" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/maintenance/starboard/aft) "cQI" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cQJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cQK" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor5" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cQL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/maintenance/aft) "cQM" = ( @@ -76529,18 +61203,7 @@ }, /turf/open/floor/plasteel/grimy, /area/security/brig) -"cQN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/aft) "cQO" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, @@ -76548,20 +61211,12 @@ dir = 4; pixel_x = 24 }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"cQP" = ( -/obj/structure/chair/sofa/corp{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cQQ" = ( -/obj/structure/chair/sofa/corp/left{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/hallway/primary/fore) "cQR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -76569,8 +61224,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, /area/maintenance/fore) "cQS" = ( /obj/effect/spawner/lootdrop/grille_or_trash, @@ -76591,49 +61247,7 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/cargo) -"cQV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cQW" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cQX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "cQY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/effect/spawner/lootdrop/maintenance, /obj/structure/closet, /obj/item/tank/internals/oxygen, @@ -76652,127 +61266,109 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "cRb" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cRc" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -26; + pixel_y = 28; + req_access_txt = "39" }, -/area/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/virology) "cRd" = ( /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "cRe" = ( -/obj/structure/cable, -/obj/machinery/power/apc/highcap/five_k{ - name = "Kitchen APC"; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/food_cart, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/closet/secure_closet/CMO, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "cRf" = ( /obj/effect/spawner/lootdrop/grille_or_trash, /obj/structure/closet, /turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cRg" = ( -/obj/structure/closet/crate, -/obj/item/storage/belt/utility, -/obj/item/stack/cable_coil/random, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"cRh" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) +/area/maintenance/fore) "cRi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cRj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) +/turf/open/floor/carpet, +/area/hallway/secondary/entry) "cRk" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"cRl" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cRl" = ( -/obj/structure/chair/sofa/right{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/engine/transit_tube"; - name = "Transit Tube APC"; - pixel_y = -26 - }, -/obj/structure/cable, /turf/open/floor/plasteel, -/area/engine/transit_tube) +/area/hallway/secondary/entry) "cRm" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cRn" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/area/engine/atmos) "cRo" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 27 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) "cRp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "cRq" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) "cRr" = ( /obj/structure/cable{ icon_state = "1-4" @@ -76780,66 +61376,42 @@ /obj/item/storage/toolbox/emergency, /turf/open/floor/plating, /area/maintenance/department/cargo) -"cRs" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) "cRt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cRu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/aft) -"cRv" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plating/airless, +/area/engine/atmos) "cRw" = ( /obj/structure/rack, /obj/item/tank/internals/oxygen, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/storage/emergency/starboard) -"cRx" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "cRy" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"cRz" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cRA" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/structure/grille, /turf/open/floor/plating, -/area/maintenance/port/fore) -"cRB" = ( -/obj/structure/cable{ - icon_state = "4-8" +/area/maintenance/aft) +"cRA" = ( +/obj/machinery/status_display/ai{ + pixel_y = -32 }, -/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/hallway/primary/aft) +"cRB" = ( +/obj/structure/grille, /turf/open/floor/plating, /area/maintenance/aft) "cRC" = ( @@ -76848,703 +61420,319 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "cRD" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cRE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/camera/autoname{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/turf/open/floor/plasteel/white, +/area/medical/virology) "cRF" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) "cRG" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste to Filter" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) "cRH" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/effect/spawner/lootdrop/techstorage/AI, +/obj/structure/rack, +/turf/open/floor/plating, +/area/storage/tech) +"cRI" = ( +/obj/machinery/camera{ + c_tag = "Secure Tech Storage"; + dir = 8 + }, +/turf/open/floor/plating, +/area/storage/tech) +"cRK" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/maintenance/disposal/incinerator) +"cRO" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/tech"; + dir = 8; + name = "Tech Storage APC"; + pixel_x = -27 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"cRQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, /obj/structure/cable{ icon_state = "4-8" }, +/turf/open/floor/plating, +/area/storage/tech) +"cRS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cRW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cRI" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 +/turf/open/floor/plating, +/area/storage/tech) +"cSb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cRK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cRM" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cRN" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cRO" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cRP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cRQ" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cRR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cRS" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cRT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cRU" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cRV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cRW" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/aft) -"cRX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cRY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cRZ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cSa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cSb" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cSc" = ( -/turf/closed/wall, -/area/maintenance/department/electrical) +/area/storage/tech) "cSd" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cSe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"cSe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) "cSf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cSg" = ( -/obj/structure/dresser, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/chief/private) -"cSh" = ( -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = 25 - }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/wood, -/area/crew_quarters/heads/chief/private) -"cSi" = ( -/obj/structure/bed/dogbed/ian, -/obj/item/radio/intercom{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"cSj" = ( -/turf/open/floor/plating, -/area/crew_quarters/heads/captain/private) -"cSk" = ( -/obj/machinery/computer/security/telescreen/vault{ - pixel_y = 30 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"cSl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"cSm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice/b) -"cSn" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSp" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cSq" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSr" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, +/turf/open/floor/plating, +/area/storage/tech) +"cSg" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSs" = ( -/obj/machinery/light, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSt" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSu" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/area/engine/break_room) +"cSh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 1 }, +/obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSv" = ( +/area/engine/break_room) +"cSi" = ( +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_one_access_txt = "23;30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/machinery/door/poddoor/preopen{ - id = "atmoslock"; - name = "Atmospherics Lockdown Blast door" - }, -/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/engine/break_room) -"cSw" = ( +/area/storage/tech) +"cSj" = ( +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"cSk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"cSl" = ( +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 + dir = 5 + }, +/turf/open/floor/carpet/blackred, +/area/crew_quarters/heads/captain/private) +"cSm" = ( +/obj/structure/cable{ + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 }, +/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "2-8" }, +/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/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cSv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) +"cSw" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Telecomms - Server Room - Fore-Port"; + network = list("ss13","tcomms") + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "cSx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -32 +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Waste Release" }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) -"cSz" = ( +"cSy" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSA" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/item/reagent_containers/food/snacks/mint, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"cSC" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/area/science/research) "cSD" = ( -/turf/closed/wall/r_wall, -/area/maintenance/port/aft) -"cSE" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cSG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/brig) +"cSJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSG" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cSH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cSI" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cSJ" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/east, -/turf/open/floor/plating, -/area/hallway/primary/central) -"cSK" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cSL" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/aft) +/area/security/brig) "cSM" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -77555,48 +61743,17 @@ /obj/structure/sign/directions/engineering{ pixel_x = 32 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"cSN" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cSO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cSP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "cSQ" = ( -/obj/item/toy/talking/AI, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cSR" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -77607,27 +61764,43 @@ /turf/open/floor/plating, /area/maintenance/solars/port/fore) "cSS" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cST" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"cST" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) "cSU" = ( /obj/structure/rack, /obj/item/tank/internals/air, /obj/item/wrench, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cSV" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) "cSW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -77637,12 +61810,11 @@ }, /obj/structure/grille, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/maintenance/fore) "cSX" = ( /obj/machinery/mech_bay_recharge_port, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -77652,18 +61824,10 @@ "cSZ" = ( /obj/machinery/computer/mech_bay_power_console, /obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 + icon_state = "0-2" }, /turf/open/floor/circuit, /area/maintenance/department/cargo) -"cTa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "cTb" = ( /obj/structure/cable{ icon_state = "1-2" @@ -77713,17 +61877,13 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating{ icon_state = "panelscorched" }, /area/maintenance/department/cargo) -"cTi" = ( -/obj/machinery/power/smes, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) "cTj" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -77764,6 +61924,9 @@ }, /obj/item/flashlight/seclite, /obj/effect/spawner/lootdrop/maintenance, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, /turf/open/floor/plating, /area/maintenance/department/cargo) "cTn" = ( @@ -77780,6 +61943,9 @@ pixel_y = -3 }, /obj/effect/spawner/lootdrop/maintenance, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -77796,121 +61962,116 @@ /turf/open/floor/plating, /area/storage/emergency/starboard) "cTr" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cTs" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard) +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cTt" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel, +/area/construction) "cTu" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cTv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/turf/closed/wall/r_wall, +/area/engine/break_room) "cTw" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cTx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"cTx" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "cTy" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Filter" +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/atmos"; + dir = 1; + name = "Atmospherics APC"; + pixel_x = -27 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 }, +/turf/open/floor/plasteel, /area/engine/atmos) "cTz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 +/obj/machinery/pipedispenser, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" }, -/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "cTA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cTB" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cTC" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cTD" = ( -/obj/effect/landmark/blobstart, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cTE" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/aft) -"cTF" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/space_heater, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cTG" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cTH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cTB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cTC" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cTD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"cTF" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/security, +/turf/open/floor/plating, +/area/storage/tech) +"cTG" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cTH" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cTI" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/service, +/turf/open/floor/plating, +/area/storage/tech) +"cTL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/aft) +"cTT" = ( +/obj/machinery/computer/teleporter, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -77918,121 +62079,17 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cTI" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cTJ" = ( -/obj/machinery/camera{ - c_tag = "Holodeck Starboard"; - dir = 9; - name = "holodeck camera" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/item/radio/intercom{ - pixel_x = 29 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cTK" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/punching_bag, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cTL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cTM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cTN" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cTO" = ( -/obj/structure/flora/tree/palm, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/grass, -/area/medical/genetics) -"cTP" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/obj/structure/sign/departments/restroom{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cTQ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/structure/sign/departments/restroom{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cTR" = ( -/obj/structure/grille, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/aft) -"cTS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/aft) -"cTT" = ( /obj/effect/turf_decal/tile/neutral{ - dir = 4 + dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/structure/sign/directions/evac{ - dir = 8; - pixel_x = 32 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "cTU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/grille, +/obj/structure/rack, +/obj/item/electronics/apc, +/obj/item/electronics/airlock, /turf/open/floor/plating, -/area/maintenance/aft) +/area/storage/tech) "cTV" = ( /obj/machinery/door/airlock/maintenance/abandoned{ name = "Storage Room"; @@ -78047,103 +62104,57 @@ }, /area/maintenance/department/cargo) "cTW" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/directions/engineering{ - dir = 4; - pixel_y = 32 - }, -/obj/structure/sign/directions/medical{ - dir = 1; - pixel_y = 40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plating, +/area/storage/tech) "cTX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/obj/structure/sign/directions/medical{ - dir = 1; - pixel_x = 32; - pixel_y = 40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/turf/open/floor/plating, +/area/maintenance/department/medical) "cTY" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/structure/chair/stool, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/structure/sign/departments/engineering{ - pixel_x = -32 - }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/engine/break_room) "cTZ" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/light{ dir = 4 }, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/structure/sign/departments/engineering{ - pixel_x = 32 - }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/engine/break_room) "cUa" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/cargo) -"cUb" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "Dormitories Hallway Port Fore"; - dir = 4; - name = "dormitories camera" - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUc" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/structure/sign/departments/holy{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) "cUd" = ( -/obj/item/kirbyplants/random, -/obj/structure/sign/departments/holy{ - pixel_x = -32 +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) "cUe" = ( /obj/structure/cable{ icon_state = "4-8" @@ -78156,851 +62167,412 @@ icon_state = "panelscorched" }, /area/maintenance/fore) -"cUf" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/port) "cUg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/item/wirecutters, +/obj/item/multitool, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 }, -/obj/structure/grille, /turf/open/floor/plating, -/area/maintenance/fore) -"cUh" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/port/aft) +/area/storage/tech) "cUi" = ( +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_x = 32 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = 32; + pixel_y = -8 + }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 9 }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cUj" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cUk" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cUl" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/aft) -"cUm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/aft) -"cUn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/aft) -"cUo" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"cUp" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"cUq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "virology_airlock_exterior"; - idInterior = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Console"; - pixel_x = 26; - pixel_y = 26; - req_access_txt = "39" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) "cUr" = ( /obj/item/tank/internals/oxygen, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/maintenance/starboard/aft) "cUs" = ( -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cUt" = ( -/obj/item/storage/box/donkpockets, -/obj/structure/closet, -/turf/open/floor/plating, -/area/hydroponics/garden/abandoned) -"cUu" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/machinery/telecomms/processor/preset_four, +/obj/machinery/camera{ + c_tag = "Telecomms - Server Room - Aft-Starboard"; + dir = 8; + network = list("ss13","tcomms") }, -/turf/open/floor/plating, -/area/maintenance/port) -"cUv" = ( -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets, -/obj/item/storage/pill_bottle/breast_enlargement, -/obj/item/storage/pill_bottle/penis_enlargement, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cUw" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cUx" = ( -/obj/structure/table/wood, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cUy" = ( -/obj/structure/table, -/obj/structure/bedsheetbin/towel, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUz" = ( -/obj/item/toy/poolnoodle/blue, -/obj/item/toy/poolnoodle/red, -/obj/item/toy/poolnoodle/yellow, -/obj/item/toy/poolnoodle/blue, -/obj/item/toy/poolnoodle/red, -/obj/item/toy/poolnoodle/yellow, -/obj/structure/closet/crate{ - name = "noodle crate" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUA" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/personal, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUB" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUC" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/table, -/obj/item/storage/box/cups, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cUE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cUF" = ( -/obj/item/storage/daki, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cUG" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cUH" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/starboard/aft) -"cUI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/table, -/obj/item/lightreplacer, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cUJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/table, -/obj/item/storage/box/lights, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cUK" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cUL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/skub, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cUM" = ( -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cUN" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood, -/area/crew_quarters/heads/chief/private) -"cUO" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/item/tank/internals/oxygen, -/obj/item/storage/box/lights, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cUP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cUQ" = ( -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cUR" = ( -/obj/structure/chair/sofa/corp/right{ - dir = 8 - }, -/obj/item/storage/daki, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cUS" = ( -/obj/structure/table/wood, -/obj/item/lighter/greyscale{ - pixel_x = 4; - pixel_y = 2 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cUT" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cUU" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes{ - pixel_y = 2 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cUV" = ( -/obj/structure/table/wood, -/obj/item/paicard, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cUW" = ( -/obj/item/storage/box/lights, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cUX" = ( -/obj/structure/closet, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plating, -/area/maintenance/aft) -"cUY" = ( -/obj/item/storage/belt/utility, -/turf/open/floor/plating, -/area/maintenance/aft) -"cVa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 30 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cVb" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cVc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/security/checkpoint/customs) -"cVd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cVe" = ( /obj/structure/chair/office/dark{ dir = 4 }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cVf" = ( -/obj/machinery/light{ - dir = 1 - }, /turf/open/floor/carpet, -/area/chapel/office) -"cVg" = ( -/obj/item/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Telecomms)"; - pixel_y = 30 +/area/tcommsat/computer) +"cUx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/turf/open/floor/carpet, -/area/chapel/office) -"cVh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cVi" = ( -/obj/machinery/computer/security{ +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"cUy" = ( +/obj/machinery/computer/message_monitor{ dir = 8 }, -/obj/effect/turf_decal/trimline/red/filled/line{ +/turf/open/floor/carpet, +/area/tcommsat/computer) +"cUz" = ( +/turf/closed/wall/r_wall, +/area/construction) +"cUD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cUE" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, /turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cVj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, +/area/security/brig) +"cUG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, /turf/open/floor/plating, -/area/security/checkpoint/customs) -"cVk" = ( -/obj/structure/table/wood, -/obj/item/folder, -/turf/open/floor/carpet, -/area/chapel/office) -"cVl" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cVm" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/area/construction) +"cUH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, -/obj/structure/closet/secure_closet/security, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 +/turf/closed/wall/r_wall, +/area/engine/break_room) +"cUI" = ( +/obj/machinery/vending/engineering{ + products = list(/obj/item/clothing/under/rank/engineering/engineer = 4, /obj/item/clothing/shoes/sneakers/orange = 4, /obj/item/clothing/head/hardhat = 4, /obj/item/storage/belt/utility = 4, /obj/item/clothing/glasses/meson/engine = 4, /obj/item/clothing/gloves/color/yellow = 2, /obj/item/screwdriver = 12, /obj/item/crowbar = 12, /obj/item/wirecutters = 12, /obj/item/multitool = 12, /obj/item/wrench = 12, /obj/item/t_scanner = 12, /obj/item/stock_parts/cell = 8, /obj/item/weldingtool = 8, /obj/item/clothing/head/welding = 8, /obj/item/light/tube = 10, /obj/item/clothing/suit/fire = 4, /obj/item/stock_parts/scanning_module = 5, /obj/item/stock_parts/micro_laser = 5, /obj/item/stock_parts/matter_bin = 5, /obj/item/stock_parts/manipulator = 5) + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 }, -/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel, -/area/security/checkpoint/customs) -"cVn" = ( +/area/engine/break_room) +"cUK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/table/wood, -/obj/item/storage/crayons, -/obj/item/storage/fancy/candle_box, -/turf/open/floor/carpet, -/area/chapel/office) -"cVo" = ( +/turf/open/floor/plating, +/area/construction) +"cUL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cUM" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/space, +/area/space/nearstation) +"cUN" = ( +/obj/machinery/light, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/vending/wardrobe/engi_wardrobe, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cUO" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cUP" = ( +/obj/machinery/vending/wallmed{ + pixel_x = -28 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) +"cVf" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cVm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/vending/cola/random, +/obj/machinery/status_display/evac{ + pixel_y = -32 }, /turf/open/floor/plasteel/grimy, -/area/chapel/office) +/area/hallway/secondary/entry) "cVp" = ( -/obj/effect/landmark/blobstart, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cVq" = ( -/obj/item/vending_refill/cola, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/curtain{ + icon_state = "closed" + }, +/turf/open/floor/plasteel/white, +/area/medical/patients_rooms/room_a) "cVr" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/turf/closed/wall, +/area/medical/surgery) "cVs" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/medical) +/obj/machinery/vending/coffee, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) "cVt" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/flashlight, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cVu" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cVv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cVw" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cVx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/item/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cVy" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"cVz" = ( -/obj/structure/closet/crate, -/obj/item/stack/cable_coil/random, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical) -"cVA" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"cVB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port) -"cVC" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/medical) -"cVD" = ( -/obj/structure/cable{ - icon_state = "1-8" +"cVu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/grille, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"cVv" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/command, /turf/open/floor/plating, -/area/maintenance/port) -"cVE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cVF" = ( -/obj/item/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cVG" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/area/storage/tech) +"cVx" = ( +/obj/item/radio/intercom{ + pixel_x = 29 }, /turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cVH" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cVI" = ( -/obj/structure/cable{ - icon_state = "1-4" +/area/storage/tech) +"cVz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 }, -/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, -/area/maintenance/starboard) +/area/storage/tech) +"cVC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) "cVJ" = ( -/obj/structure/closet/crate, -/obj/item/stack/cable_coil/random, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 }, /turf/open/floor/plating, -/area/maintenance/port/aft) +/area/storage/tech) "cVK" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/aft) -"cVL" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/item/stack/cable_coil, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 }, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/aft) -"cVM" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 }, -/obj/structure/grille, /turf/open/floor/plating, -/area/maintenance/aft) +/area/storage/tech) "cVN" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/grille, +/obj/structure/closet/crate, +/obj/item/coin/silver, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, -/area/maintenance/aft) +/area/maintenance/starboard/aft) "cVO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet, /turf/open/floor/plating, -/area/maintenance/starboard) -"cVP" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cVQ" = ( -/obj/item/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/aft) -"cVR" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/aft) +/area/maintenance/starboard/aft) "cVS" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/telecomms/bus/preset_one, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cVT" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/telecomms/processor/preset_three, +/obj/machinery/camera{ + c_tag = "Telecomms - Server Room - Fore-Starboard"; + network = list("ss13","tcomms") }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cVU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port) +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cVV" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 }, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) "cVW" = ( -/obj/structure/closet/crate, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/aft) -"cVX" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cVY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/machinery/computer/telecomms/monitor{ + dir = 8; + network = "tcommsat" }, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cVZ" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/machinery/computer/security/telescreen{ + dir = 8; + name = "Telecomms Camera Monitor"; + network = list("tcomms"); + pixel_x = 26 }, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cWa" = ( -/obj/structure/dresser, /turf/open/floor/carpet, -/area/crew_quarters/dorms) -"cWb" = ( -/obj/structure/cable{ - icon_state = "1-2" +/area/tcommsat/computer) +"cVZ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/turf/open/space, +/area/space/nearstation) +"cWb" = ( +/obj/structure/bonfire, +/turf/open/floor/plating/asteroid/basalt, +/area/asteroid/nearstation) "cWc" = ( -/obj/structure/closet, +/obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" + lootcount = 2; + name = "2maintenance loot spawner" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cWd" = ( -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) -"cWe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cWf" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/area/hallway/secondary/entry) "cWg" = ( -/obj/structure/table/wood, -/obj/item/paper, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cWh" = ( -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, /turf/open/floor/plating, -/area/maintenance/aft) -"cWi" = ( -/obj/machinery/space_heater, +/area/storage/tech) +"cWh" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/engineering, /turf/open/floor/plating, -/area/maintenance/port) -"cWj" = ( +/area/storage/tech) +"cWi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/aft) -"cWk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/light_switch{ - pixel_x = 25; - pixel_y = -25 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) "cWl" = ( -/obj/structure/pool/ladder{ - dir = 2; - pixel_y = 24 - }, -/turf/open/pool, -/area/crew_quarters/fitness/recreation) +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/medical, +/turf/open/floor/plating, +/area/storage/tech) "cWm" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1" +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/wood, -/area/crew_quarters/heads/chief/private) -"cWn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cWo" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/rnd, +/turf/open/floor/plating, +/area/storage/tech) +"cWq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = -25; - pixel_y = 25 - }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) -"cWo" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/item/crowbar, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cWp" = ( -/obj/structure/pool/ladder{ - pixel_x = -3 - }, -/turf/open/pool, -/area/crew_quarters/fitness/recreation) -"cWq" = ( -/obj/structure/pool/Lboard, -/turf/open/pool, -/area/crew_quarters/fitness/recreation) -"cWr" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/structure/pool/Rboard, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) "cWs" = ( -/obj/structure/pool/ladder{ - dir = 1; - pixel_y = -24 +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 }, -/turf/open/pool, -/area/crew_quarters/fitness/recreation) +/obj/item/clothing/gloves/color/yellow, +/obj/item/t_scanner, +/obj/item/multitool, +/turf/open/floor/plating, +/area/storage/tech) "cWt" = ( /obj/structure/cable{ icon_state = "1-8" @@ -79012,20 +62584,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) -"cWu" = ( -/obj/machinery/computer/monitor, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) "cWv" = ( /obj/structure/sign/warning/electricshock, /turf/closed/wall/r_wall, @@ -79034,26 +62592,47 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: EXTERNAL AIRLOCK"; - pixel_x = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cWx" = ( -/obj/machinery/power/terminal{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ dir = 8 }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "2-4" }, -/obj/machinery/light/small, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cWx" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) "cWy" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -79062,87 +62641,48 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/airalarm/directional/north, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cWz" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cWA" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/camera/autoname, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cWB" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/structure/sign/warning/enginesafety{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cWC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced/spawner/north, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cWD" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/sign/plaques/kiddie/badger{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"cWE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/structure/sign/plaques/atmos{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cWF" = ( -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/turf/open/floor/grass, -/area/hydroponics/garden) -"cWG" = ( -/obj/structure/cable/yellow{ +/obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cWB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cWC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cWE" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cWG" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cWH" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -79153,16 +62693,26 @@ pixel_y = 32 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "cWI" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/telecomms, +/area/tcommsat/server) "cWJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -79170,208 +62720,88 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "cWK" = ( -/obj/machinery/light, -/obj/machinery/status_display/evac{ - pixel_y = -32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cWL" = ( -/obj/machinery/power/apc{ - areastring = "/area/engine/storage"; - name = "Engineering Storage APC"; - pixel_y = -26 +/obj/structure/table/glass, +/obj/item/folder{ + pixel_y = 2 }, -/obj/structure/cable, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/storage_shared) +/obj/item/folder{ + pixel_y = 2 + }, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "cWM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/medical"; + dir = 4; + name = "Medical Maintenance APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"cWN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cWN" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=aft6"; - location = "aft5" - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cWO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/trimline/neutral/filled/line, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"cWP" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cWQ" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) "cWR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 +/obj/effect/turf_decal/tile/green{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cWS" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/tcomms, -/obj/item/folder/blue, -/obj/item/pen, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/carpet, -/area/tcommsat/computer) -"cWT" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "cWU" = ( -/obj/structure/table, -/obj/item/folder, -/obj/item/storage/firstaid/regular, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cWV" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"cWW" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cWX" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"cWY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cWZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cXa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cXb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "cXc" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -79383,277 +62813,54 @@ /turf/open/floor/plasteel, /area/security/brig) "cXd" = ( -/obj/structure/light_construct/small{ - dir = 1 - }, -/obj/item/bot_assembly/cleanbot, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cXe" = ( -/obj/structure/table, -/obj/structure/light_construct/small, -/obj/item/book/manual/wiki/engineering_hacking, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cXf" = ( -/obj/structure/toilet/secret/low_loot{ +/obj/structure/chair/office/dark{ dir = 8 }, +/turf/open/floor/carpet, +/area/tcommsat/computer) +"cXe" = ( +/turf/closed/wall, +/area/medical/medbay/lobby) +"cXf" = ( +/obj/machinery/camera{ + c_tag = "Telecomms - Control Room"; + dir = 8; + network = list("ss13","tcomms") + }, +/obj/machinery/computer/telecomms/server{ + dir = 8; + network = "tcommsat" + }, +/turf/open/floor/carpet, +/area/tcommsat/computer) +"cXh" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cXi" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cXj" = ( /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/button/door{ - id = "Toilet3"; - name = "Lock Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cXg" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, /turf/open/floor/plating, -/area/maintenance/department/crew_quarters/dorms) -"cXh" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cXi" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/wtf_is_co2{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"cXj" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/area/maintenance/fore/secondary) "cXk" = ( -/obj/machinery/photocopier, -/turf/open/floor/plasteel/grimy, +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet, /area/bridge/meeting_room) -"cXl" = ( -/obj/machinery/power/smes, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXm" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cXn" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXo" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXp" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/department/electrical) "cXq" = ( /obj/structure/chair, /turf/open/floor/plasteel/white, /area/hallway/primary/fore) -"cXr" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/obj/item/poster/random_contraband, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXs" = ( -/obj/structure/rack, -/obj/item/stack/rods/fifty, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 10 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/department/electrical) -"cXt" = ( -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXu" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXv" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/department/electrical"; - dir = 4; - name = "Electrical Maintenance APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cXx" = ( -/obj/machinery/door/airlock/engineering/abandoned{ - name = "Electrical Maintenance"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/electrical) -"cXz" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXA" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"cXB" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) "cXC" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, +/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cXD" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/structure/chair/sofa/corp/right, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cXE" = ( -/obj/machinery/light, -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/obj/machinery/status_display/ai{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/engine/transit_tube) -"cXF" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet/black, -/area/bridge) +/area/ai_monitored/turret_protected/aisat/foyer) "cXG" = ( /obj/structure/cable{ icon_state = "1-2" @@ -79661,40 +62868,58 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/security/checkpoint/supply) -"cXH" = ( -/obj/structure/extinguisher_cabinet{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/vending/medical{ - products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, /obj/item/healthanalyzer = 4, /obj/item/sensor_device = 4, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/pill/insulin = 10, /obj/item/reagent_containers/pill/salbutamol = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, /obj/item/storage/hypospraykit/fire = 2, /obj/item/storage/hypospraykit/toxin = 2, /obj/item/storage/hypospraykit/o2 = 2, /obj/item/storage/hypospraykit/brute = 2, /obj/item/storage/hypospraykit/enlarge = 2, /obj/item/reagent_containers/glass/bottle/vial/small = 5, /obj/item/storage/briefcase/medical = 2) - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "cXI" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cXJ" = ( +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cXK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cXM" = ( +/turf/closed/wall, +/area/engine/break_room) +"cXN" = ( +/turf/closed/wall, +/area/engine/engine_smes) +"cXO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/turf/open/floor/plasteel, +/area/engine/break_room) +"cXP" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 }, -/obj/effect/turf_decal/tile, -/obj/effect/turf_decal/tile{ - dir = 1 +/turf/open/floor/plasteel, +/area/engine/break_room) +"cXQ" = ( +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"cXR" = ( +/obj/machinery/camera{ + c_tag = "Cargo - Quartermaster's Quarters"; + dir = 8; + name = "cargo camera" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"cXJ" = ( +/turf/open/floor/plasteel, +/area/quartermaster/qm/private) +"cXU" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -79704,113 +62929,42 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/trimline/purple/line{ + dir = 1 }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cXK" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/vending/medical{ - products = list(/obj/item/reagent_containers/syringe = 12, /obj/item/reagent_containers/dropper = 3, /obj/item/healthanalyzer = 4, /obj/item/sensor_device = 4, /obj/item/pinpointer/crew = 2, /obj/item/reagent_containers/medspray/sterilizine = 1, /obj/item/stack/medical/gauze = 8, /obj/item/reagent_containers/pill/patch/styptic = 5, /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/pill/insulin = 10, /obj/item/reagent_containers/pill/salbutamol = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 4, /obj/item/reagent_containers/glass/bottle/epinephrine = 4, /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, /obj/item/storage/hypospraykit/fire = 2, /obj/item/storage/hypospraykit/toxin = 2, /obj/item/storage/hypospraykit/o2 = 2, /obj/item/storage/hypospraykit/brute = 2, /obj/item/storage/hypospraykit/enlarge = 2, /obj/item/reagent_containers/glass/bottle/vial/small = 5, /obj/item/storage/briefcase/medical = 2) - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"cXL" = ( -/obj/effect/turf_decal/tile{ - dir = 8 - }, -/obj/effect/turf_decal/tile, -/obj/effect/landmark/event_spawn, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cXM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/orange, -/area/crew_quarters/heads/chief/private) -"cXN" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/carpet/orange, -/area/crew_quarters/heads/chief/private) -"cXO" = ( -/obj/machinery/status_display/ai{ - pixel_x = -32 - }, -/obj/machinery/power/apc/highcap/ten_k{ - areastring = "/area/crew_quarters/heads/chief/private"; - name = "Chief Engineer's Quarters APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/chief/private) -"cXP" = ( -/obj/item/radio/intercom{ - dir = 1; - pixel_y = -29 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/carpet/orange, -/area/crew_quarters/heads/chief/private) -"cXQ" = ( -/obj/structure/bed, -/obj/item/bedsheet/ce, -/turf/open/floor/carpet/orange, -/area/crew_quarters/heads/chief/private) -"cXR" = ( -/obj/machinery/camera{ - c_tag = "Cargo - Quartermaster's Quarters"; - dir = 8; - name = "cargo camera" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm/private) -"cXU" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/area/hallway/primary/fore) "cXV" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cXX" = ( -/obj/machinery/power/emitter/anchored{ - dir = 1; - state = 2 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 27 }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "cXY" = ( /obj/structure/chair/office/light{ dir = 8 @@ -79818,55 +62972,16 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/quartermaster/sorting) -"cXZ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/obj/machinery/camera/autoname, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/cafeteria) -"cYa" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Kitchen Starboard" - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) "cYb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/item/radio/intercom{ - dir = 1; - pixel_y = -29 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cYc" = ( /obj/machinery/light, /obj/effect/turf_decal/tile/neutral{ @@ -79882,123 +62997,207 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "cYd" = ( -/obj/machinery/door/poddoor{ - id = "engstorage"; - name = "Secure Storage" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cYe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cYg" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 }, /turf/open/floor/plating, -/area/engine/storage) -"cYe" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/paramedic, -/turf/open/floor/plasteel/white, -/area/medical) -"cYf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance"; - req_access_txt = "10" - }, +/area/storage/tech) +"cYh" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"cYg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cYh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/airless, /area/engine/engineering) "cYi" = ( -/turf/closed/mineral{ - baseturfs = /turf/open/floor/plating/asteroid; - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid"; - turf_type = /turf/open/floor/plating/asteroid - }, -/area/maintenance/department/crew_quarters/dorms) -"cYj" = ( -/obj/effect/turf_decal/box, -/obj/machinery/the_singularitygen, -/turf/open/floor/plasteel/airless, -/area/engine/engineering) -"cYl" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/camera/autoname{ dir = 1 }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/structure/fans/tiny, /turf/open/floor/plating, -/area/maintenance/aft) -"ddh" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/area/storage/tech) +"cYj" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/storage/tech) +"cYl" = ( +/obj/structure/table, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"dgb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 }, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/turf/open/floor/plating, +/area/storage/tech) +"dcB" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=starboard5"; + location = "starboard4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"diH" = ( +/area/hallway/primary/starboard) +"ddM" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"deJ" = ( +/obj/machinery/light, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) +"dfp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"djc" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"djd" = ( /obj/structure/window/reinforced/spawner/north, /obj/structure/window/reinforced{ dir = 4 }, +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Port Aft"; + dir = 9; + network = list("minisat") + }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 }, /turf/open/floor/plasteel/dark, /area/aisat) +"dkS" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dlj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"dmW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) "doD" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/structure/sign/directions/dorms{ + pixel_y = -23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"dpg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"dps" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"dqe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"dso" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/medical/virology) "dsE" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -80011,6 +63210,18 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"dsO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) "duB" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/effect/turf_decal/trimline/purple/filled/corner{ @@ -80027,6 +63238,94 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"dxH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dym" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dyx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dzA" = ( +/obj/machinery/status_display/ai{ + pixel_y = 31 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"dzR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"dAU" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"dBF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "AuxShower"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = 27; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"dCu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/filingcabinet{ + pixel_x = 3 + }, +/obj/machinery/status_display/evac{ + pixel_x = 31 + }, +/turf/open/floor/carpet, +/area/tcommsat/computer) +"dDJ" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/cable_coil, +/turf/open/space, +/area/solar/starboard/aft) "dEp" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -80036,28 +63335,37 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"dFe" = ( -/obj/structure/cable{ - icon_state = "1-2" +"dEO" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/camera{ + c_tag = "MiniSat Exterior Starboard Aft"; + dir = 5; + network = list("minisat") }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark, +/area/aisat) +"dEX" = ( +/obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ +/turf/open/floor/plasteel, +/area/engine/atmos) +"dFe" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) +/area/hallway/secondary/entry) "dFG" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -80066,7 +63374,18 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) +"dGO" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) "dGX" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -80076,12 +63395,81 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"dIt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/engine/engineering) "dIv" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/cmo) +"dIV" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dJh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"dJk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"dKp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "input port pump" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"dKy" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dKz" = ( +/obj/machinery/button/door{ + id = "AuxToilet1"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/toilet/secret/low_loot{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"dNZ" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plasteel, +/area/medical/virology) +"dOY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "dPK" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -80089,84 +63477,150 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) -"dQa" = ( -/obj/structure/window/reinforced{ - dir = 4 +"dPX" = ( +/obj/machinery/newscaster{ + pixel_y = 33 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"dQT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"dQE" = ( +/obj/structure/table/reinforced, +/obj/item/paper/guides/jobs/engi/gravity_gen, +/obj/machinery/power/terminal, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 4 +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 }, /turf/open/floor/plasteel, +/area/engine/gravity_generator) +"dQT" = ( +/obj/structure/stairs, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"dRC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dRD" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/aft) "dRM" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) -"dSS" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"dSE" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/engine/atmos) +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"dSQ" = ( +/obj/machinery/atmospherics/pipe/simple/multiz, +/turf/open/floor/plating, +/area/maintenance/aft) +"dUB" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) "dWj" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/open/floor/plasteel/dark, -/area/gateway) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/medical/virology) "dWs" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, /turf/open/floor/plasteel/white, /area/science/research) -"dZP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/line{ +"dXg" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"ean" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/stripes/corner{ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"ebs" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ +/area/engine/atmos) +"dXs" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/computer/atmos_control/tank/nitrous_tank, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hydroponics) +/area/engine/atmos) +"dZS" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"eaa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"ean" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"eaE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ebs" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/grass, +/area/medical/genetics) +"eck" = ( +/obj/structure/table, +/obj/structure/bedsheetbin/towel, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) "ect" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -80179,6 +63633,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"edL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "eec" = ( /obj/effect/turf_decal/tile{ dir = 8 @@ -80189,40 +63649,96 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"eeU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/construction) +"efS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) "ehl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/paramedic) "eia" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel/dark, -/area/aisat) -"ely" = ( +/area/ai_monitored/turret_protected/ai) +"ejv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ejX" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"ely" = ( +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"elW" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"emm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"eom" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/storage/tech) +"eov" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Telecommunications Maintenance"; + req_access_txt = "61" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"epI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "eqe" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -80230,27 +63746,136 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "eqk" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"eqX" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ +/turf/closed/wall, +/area/quartermaster/sorting) +"esb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"etb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"euD" = ( +/obj/machinery/door/airlock/hatch{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"evc" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/machinery/light/small{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"evx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"evL" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) +"ewm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat/hallway"; dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 + name = "Minisat Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"exl" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 }, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 + dir = 10 }, /turf/open/floor/plasteel/dark, /area/aisat) -"etb" = ( +"exu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"eyo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"ezo" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Foyer"; + req_one_access_txt = "32;19" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -80267,62 +63892,89 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"evX" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/area/engine/break_room) +"eAb" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 }, /turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ezo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" +/area/hallway/secondary/exit/departure_lounge) +"eAT" = ( +/obj/machinery/power/terminal{ + dir = 1 }, -/turf/open/space/basic, -/area/engine/engineering) -"eCO" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/opossum/poppy, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/aft) -"eDP" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/small{ dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"eCz" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Toxins"; + dir = 8 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"eEi" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"eEy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eFh" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/obj/item/crowbar, +/turf/open/floor/plasteel, +/area/engine/atmos) "eFp" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/aft"; + dir = 1; + name = "Aft Hall APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-2" }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "eFG" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, +/obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "eGt" = ( -/obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "eHx" = ( /obj/structure/cable{ icon_state = "1-2" @@ -80348,16 +64000,81 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"eHQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) "eIr" = ( /turf/open/floor/plasteel/cult, /area/library) "eJn" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 +/obj/structure/closet, +/obj/item/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"eJx" = ( +/obj/machinery/power/emitter, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/storage) +"eKh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"eMH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"eMI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"eNE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "eNI" = ( +/obj/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -80370,18 +64087,46 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/camera/autoname{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/secondary/command) -"ePb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" +"eNV" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/open/space/basic, -/area/engine/engineering) +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"ePb" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/server"; + dir = 4; + name = "Telecomms Server Room APC"; + pixel_x = 25 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Telecomms - Server Room - Aft-Starboard"; + dir = 8; + network = list("ss13","tcomms") + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "ePe" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -80390,29 +64135,206 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"eTx" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/area/hallway/primary/fore) +"eQi" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"eQt" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - O2"; + dir = 8 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"eSx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"eTx" = ( +/obj/structure/table/wood, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/item/radio/intercom{ + dir = 4; + freerange = 1; + name = "Station Intercom (Telecomms)"; + pixel_x = 30 + }, +/turf/open/floor/carpet, +/area/tcommsat/computer) "eVg" = ( -/obj/machinery/cryopod{ +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) +/area/aisat) +"eVi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/plasteel/dark, +/area/aisat) +"eVS" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eWd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "eXk" = ( /obj/effect/turf_decal/tile{ dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"eXo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eXt" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/sign/directions/science{ + dir = 1; + pixel_x = 32 + }, +/obj/structure/sign/directions/security{ + dir = 4; + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/directions/command{ + pixel_x = 32; + pixel_y = -7 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"eYm" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/southright{ + name = "Engineering Deliveries"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"eZq" = ( +/obj/machinery/gravity_generator/main/station, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"fei" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/table, +/obj/item/storage/box/gloves, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ffZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"fgm" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"fgE" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"fhl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/aft) "fjH" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -80423,20 +64345,64 @@ /turf/open/floor/plasteel, /area/security/prison) "fjJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/shutters/radiation/preopen, +/turf/open/floor/plating, +/area/engine/engineering) +"flb" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"flf" = ( +/obj/item/beacon, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"fmq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/starboard/aft) +"fnx" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxShower"; + name = "Shower" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"fnG" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, -/area/engine/engineering) +/area/hallway/primary/starboard) "fow" = ( /obj/effect/turf_decal/tile{ dir = 4 @@ -80447,6 +64413,10 @@ /obj/structure/chair, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"fqq" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) "fqL" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -80457,42 +64427,283 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"fsj" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ +"fty" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 9; + height = 25; + id = "emergency_home"; + name = "MetaStation emergency evac bay"; + width = 29 + }, +/turf/open/space/basic, +/area/space) +"ftS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"fvd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Dock Starboard Aft"; + dir = 8; + name = "arrivals camera" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"fvI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "plasma tank pump" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"fwm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"fwC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"fwF" = ( +/obj/machinery/door/airlock/engineering/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"fwg" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/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/effect/turf_decal/trimline/neutral/filled/line{ +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"fzR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"fAp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Fuel Pipe to Incinerator" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"fAx" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"fCi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"fCX" = ( +/obj/item/poster/random_official, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"fDL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/locker) +/area/maintenance/disposal/incinerator) "fDN" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/obj/structure/closet/secure_closet/engineering_chief, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"fEH" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ +/area/crew_quarters/heads/chief) +"fEg" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/primary/fore) +"fFp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"fFq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"fFJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"fHC" = ( +/obj/structure/rack, +/obj/item/stack/rods/fifty, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/electrical) +"fHV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fJD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/white/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"fJH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "fKc" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 @@ -80502,37 +64713,128 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"fKl" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "fMb" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) +"fMI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) "fOO" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"fQN" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +"fQa" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"fSW" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/space/basic, +/area/space) +"fQS" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/computer/atmos_control/tank/carbon_tank, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"fRb" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, +/area/maintenance/aft) +"fRT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"fSt" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 3; + height = 15; + icon_state = "pinonalert"; + id = "arrivals_stationary"; + name = "arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/box; + width = 7 + }, +/turf/open/space/basic, +/area/space) +"fSG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plasteel, /area/engine/engineering) +"fSW" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"fVg" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) "fXq" = ( /obj/structure/disposaloutlet{ dir = 8 @@ -80540,64 +64842,395 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/engine, /area/science/xenobiology) -"fZL" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"fZN" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"ggi" = ( +"fYe" = ( /obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" + dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"gqj" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" +/area/crew_quarters/heads/chief) +"fYn" = ( +/obj/machinery/firealarm{ + pixel_y = 24 }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"fYI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/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/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"fYO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"fZL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"gar" = ( +/obj/structure/window/reinforced/spawner/north, +/turf/open/space, +/area/space) +"gaT" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gbr" = ( +/obj/effect/turf_decal/vg_decals/atmos/plasma, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"gbw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"gcM" = ( +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"geG" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"geJ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"gfn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gfv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ggi" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ghs" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"ghE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"giH" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/computer/atmos_control/tank/mix_tank, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"giI" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"gkt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/camera/autoname, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gmo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"gnx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/sink/kitchen{ + dir = 4; + pixel_x = -15 + }, +/obj/structure/mirror{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"gny" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gnM" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"goU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gpe" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gqj" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) "gra" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"guj" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"gsy" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-4" }, /turf/open/floor/plating/airless, /area/engine/engineering) +"gsN" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gsP" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"guj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"guv" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gvt" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"gwg" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gwK" = ( +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"gxc" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gxP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "gyY" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -80612,6 +65245,43 @@ /obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/science/circuit) +"gAO" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gBE" = ( +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Telecomms - Server Room - Aft-Port"; + dir = 4; + network = list("ss13","tcomms") + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"gCA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"gDd" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gFI" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) "gIA" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -80621,31 +65291,78 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"gMF" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 8 +"gIB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/bar{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"gMV" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gKz" = ( +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"gLI" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"gTB" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/area/hallway/secondary/entry) +"gMi" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"gMF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"gRb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"gSi" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"gSA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gSZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, /area/engine/atmos) +"gTp" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/starboard/aft) "gVl" = ( /obj/structure/cable{ icon_state = "1-2" @@ -80665,53 +65382,511 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"gVS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"gVY" = ( +/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/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"gWC" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gWP" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"gXc" = ( +/obj/structure/urinal{ + pixel_y = 29 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"gXq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gZq" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/computer/atmos_control/tank/toxin_tank, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gZM" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"hai" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "haK" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"hcn" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +"hbS" = ( +/obj/machinery/button/door{ + id = "engstorage"; + name = "Engineering Secure Storage Control"; + pixel_x = -38; + pixel_y = 8; + req_access_txt = "11" + }, +/obj/machinery/keycard_auth{ + pixel_x = -26 + }, +/obj/machinery/button/door{ + id = "ceblast"; + name = "Lockdown Control"; + pixel_x = -38; + pixel_y = -8; + req_access_txt = "56" + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -38; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"hci" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"hcq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/announcement_system, +/obj/machinery/status_display/ai{ + pixel_x = 31 + }, +/turf/open/floor/carpet, +/area/tcommsat/computer) +"hcu" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hfu" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hgf" = ( +/obj/machinery/light/small, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"hgE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"hhg" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, /turf/open/floor/plasteel, /area/engine/atmos) -"hof" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +"hhm" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"hhB" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"hhH" = ( +/obj/machinery/door/airlock/engineering{ + name = "Auxillary Base Construction"; + req_one_access_txt = "32;47;48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/engine/engineering) -"hwC" = ( -/obj/machinery/door/firedoor, +/area/construction) +"hir" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the Engine."; + dir = 4; + layer = 4; + name = "Engine Monitor"; + network = list("engine"); + pixel_x = -24 + }, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"hnj" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"hnt" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hnW" = ( +/obj/effect/landmark/start/chief_engineer, +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"hof" = ( +/obj/structure/table/reinforced, +/obj/item/cartridge/engineering{ + pixel_x = 6 + }, +/obj/item/cartridge/engineering{ + pixel_x = -6 + }, +/obj/item/cartridge/engineering{ + pixel_y = 6 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"hpI" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/light{ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"hBS" = ( -/obj/machinery/deepfryer, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ +/area/engine/storage_shared) +"hpU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/obj/effect/turf_decal/tile{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"hpW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"hrD" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"hsV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"htX" = ( +/obj/structure/sign/warning/fire{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"htY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"hum" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"huX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hwx" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera{ + c_tag = "Atmospherics - Control Room"; + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"hwC" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hxz" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"hyu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hzv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/engine/engineering) +"hAR" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/rack, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/item/screwdriver, +/obj/item/wirecutters, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hBS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hDs" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"hEj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/item/book/manual/wiki/engineering_singulo_tesla, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hEW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"hEZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hHu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) "hIv" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -80722,6 +65897,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"hMl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "hMI" = ( /obj/effect/turf_decal/tile{ dir = 4 @@ -80732,40 +65914,256 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"hST" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ +"hML" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hMW" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"hPc" = ( +/turf/closed/wall, +/area/storage/tech) +"hPU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"hQe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser, +/obj/structure/sign/poster/official/report_crimes{ + pixel_y = 32 }, -/obj/effect/turf_decal/tile{ - dir = 8 +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"hST" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"hTm" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"hVb" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hVf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"hVs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "hVN" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/maintenance/starboard/aft"; + name = "Starboard Quarter Maintenance APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"hXt" = ( +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"hXO" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"hZs" = ( +/turf/closed/wall/mineral/plastitanium, +/area/hallway/secondary/entry) +"hZH" = ( +/obj/effect/turf_decal/delivery, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, +/turf/open/floor/plasteel, /area/engine/engineering) -"ihw" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +"ibx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"iej" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ dir = 8 }, /obj/effect/turf_decal/tile{ dir = 4 }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ifC" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Dock Starboard Aft"; + dir = 4; + name = "arrivals camera" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"igf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"igj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ihw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=aft2"; + location = "aft1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"ihU" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"iiq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/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/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"iiu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"iiC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"iiF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"iiX" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/light{ + light_color = "#c9d3e8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ikb" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) "ikz" = ( /obj/structure/window/reinforced{ dir = 4 @@ -80777,65 +66175,405 @@ }, /turf/open/floor/plating, /area/quartermaster/sorting) -"ipL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +"ipB" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "iqD" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"iup" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "iyH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"izi" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"izm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"iAi" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"iCA" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/aft) +"iJd" = ( +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/obj/item/paper/monitorkey, +/obj/item/stamp/ce, +/obj/machinery/camera{ + c_tag = "Engineering - Chief Engineer's Office"; + dir = 4; + name = "engineering camera" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"iJE" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"iLj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"iLz" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/turf/open/floor/grass, +/area/hallway/primary/aft) +"iMM" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"iPp" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/machinery/light{ + light_color = "#c9d3e8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"iRD" = ( +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"iRQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"iSf" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table, +/obj/item/aicard, +/obj/item/aiModule/reset, +/turf/open/floor/plating, +/area/storage/tech) +"iSm" = ( +/obj/structure/disposalpipe/trunk/multiz{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/department/cargo) +"iSy" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) +"iSJ" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "aftport"; + name = "Port Quarter Solar Control" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"iTh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/engine/engineering) +"iUa" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"iVr" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"iVC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"iVJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"iWA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iXq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"iXw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"iYm" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"iYn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"iYL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"iZc" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"iZg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jad" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"jas" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"jbY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"jey" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jeN" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "Engineering" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/aft) +"jfq" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jhy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"jhY" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/aisat) -"iAi" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/area/tcommsat/computer) +"jiS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock{ + name = "Auxiliary Bathrooms" }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"iJE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) +"jiT" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"jld" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/space/basic, -/area/engine/engineering) -"iPN" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"iVC" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/space, +/area/solar/starboard/aft) +"jnJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/turf/open/floor/plasteel, +/area/engine/atmos) "joZ" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ @@ -80845,7 +66583,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "jqb" = ( /obj/structure/chair, /obj/effect/turf_decal/tile/red{ @@ -80856,6 +66594,22 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"jqK" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"jqV" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"jto" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "juo" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -80865,14 +66619,142 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"jCQ" = ( -/obj/effect/turf_decal/delivery, +/area/hallway/primary/fore) +"juW" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"jwn" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"jwK" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jEf" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space/station_ruins) +"jEA" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"jEO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/chair{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/secondary/entry) +"jFB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"jFH" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"jGl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"jHx" = ( +/obj/machinery/light, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"jIt" = ( +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering_construction, +/obj/effect/landmark/event_spawn, +/obj/structure/table, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"jJj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jKe" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "jLE" = ( /obj/machinery/light/small{ dir = 4 @@ -80882,67 +66764,445 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"jNI" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 +"jMW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"jSU" = ( +/area/hallway/secondary/entry) +"jNV" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"jOF" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jPs" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"jQh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"jQI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, /turf/open/floor/plasteel, -/area/engine/storage_shared) -"kcN" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/vr_sleeper{ +/area/engine/engineering) +"jSU" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, /turf/open/floor/plasteel, -/area/crew_quarters/locker) -"kdD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/area/engine/engineering) +"jSZ" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jTA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"jTP" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"jUe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jVw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"jWb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/newscaster{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"jWP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"jXM" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jYr" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/engine/break_room) +"jZq" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"jZG" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/computer/card/minor/ce{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"jZV" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"kac" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"kas" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"kcf" = ( +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"kcN" = ( +/turf/closed/wall, +/area/maintenance/aft) +"kdD" = ( +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"kdL" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction) +"kdX" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kev" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"keH" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"kgv" = ( +/obj/structure/table, +/obj/item/flashlight/lamp/green{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) "khi" = ( /obj/machinery/light{ dir = 4; light_color = "#c1caff" }, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"kkw" = ( -/obj/effect/turf_decal/tile/bar, +"khn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"kid" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kif" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"kjg" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"kkn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/engine/atmos) +"kkS" = ( +/obj/structure/disposalpipe/segment, +/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/machinery/modular_computer/console/preset/engineering{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"krZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ksr" = ( +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) "kuT" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 10 }, /turf/open/floor/plasteel, /area/security/brig) +"kzi" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/closet, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"kAs" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"kBD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"kCP" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "kDs" = ( /obj/effect/turf_decal/tile{ dir = 8 @@ -80953,32 +67213,270 @@ /obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"kNb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/effect/turf_decal/trimline/blue/filled/line{ +"kEv" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/break_room) +"kFC" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 1; + name = "Station Intercom"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"kJN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/table, +/obj/item/storage/box/lights, +/turf/open/floor/plasteel, +/area/engine/break_room) +"kKY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/junction/flip, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"kLq" = ( +/obj/machinery/button/door{ + id = "AuxToilet2"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/toilet/secret/low_loot{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"kNb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"kQR" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kSI" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"kSY" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"kWi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"kWP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"kXf" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/engine/atmos) "kXQ" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"lik" = ( -/obj/structure/cable/yellow{ +/area/hallway/primary/fore) +"kYo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"kZF" = ( +/obj/machinery/power/emitter/anchored{ + dir = 8; + state = 2 + }, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"lbs" = ( +/obj/structure/table/wood, +/obj/item/radio/off{ + pixel_y = 4 + }, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"lbT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"lcE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"ldy" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/warning/fire{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_x = -8; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"leo" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"leD" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/hallway/primary/aft) +"lfg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"lhm" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/structure/cable/yellow{ - icon_state = "1-8" + icon_state = "4-8" }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, +/turf/open/floor/plasteel, /area/engine/engineering) +"lik" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) "lkU" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -80995,14 +67493,88 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"lpx" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +"llg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"llr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"lma" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"lmX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/space, +/area/solar/starboard/aft) +"lnq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/aft) +"lnA" = ( +/obj/structure/closet/firecloset, +/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/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"lox" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/break_room) +"loE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lpO" = ( +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) "lqd" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -81013,8 +67585,328 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) -"lCX" = ( +"luG" = ( /obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"luQ" = ( +/obj/machinery/power/rad_collector, +/turf/open/floor/plating, +/area/engine/storage) +"lvp" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space/nearstation) +"lvJ" = ( +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"lwg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"lCl" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"lCu" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/item/poster/random_contraband, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"lCX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"lDH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plating, +/area/construction) +"lEz" = ( +/obj/item/instrument/violin, +/obj/item/instrument/saxophone, +/obj/item/instrument/guitar, +/obj/item/instrument/eguitar, +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"lEB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"lEY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "opth b"; + name = "Operating Theatre Privacy Shutters" + }, +/turf/open/floor/plating, +/area/medical/surgery) +"lFr" = ( +/obj/structure/closet/emcloset, +/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/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"lFs" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"lHx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lLo" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door" + }, +/obj/machinery/conveyor{ + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"lMY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard/aft) +"lNj" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "Supply Dock Loading Door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"lNw" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lNx" = ( +/obj/machinery/telecomms/bus/preset_four, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"lNz" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/aft) +"lOG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lOJ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"lOQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"lPw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"lPF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/aft) +"lQs" = ( +/obj/machinery/power/apc{ + areastring = "/area/engine/engine_smes"; + dir = 1; + name = "SMES room APC"; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"lQC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"lQP" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"lRt" = ( +/obj/structure/flora/ausbushes/ppflowers, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/grass, +/area/medical/genetics) +"lSf" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -81031,41 +67923,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"lLo" = ( -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "Supply Dock Loading Door" - }, -/obj/machinery/conveyor{ - id = "QMLoad2" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"lNj" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "Supply Dock Loading Door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"lRt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) +/area/hallway/primary/fore) +"lSK" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) "lTj" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ @@ -81080,34 +67943,220 @@ }, /turf/open/floor/plasteel/dark, /area/science/circuit) +"lVT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lWh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lWk" = ( +/obj/machinery/button/ignition/incinerator/atmos{ + pixel_x = 8; + pixel_y = -36 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the turbine vent."; + dir = 8; + name = "turbine vent monitor"; + network = list("turbine"); + pixel_x = 29 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = -8; + pixel_y = -36 + }, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = -8; + pixel_y = -24 + }, +/obj/machinery/computer/turbine_computer{ + dir = 1; + id = "incineratorturbine" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"lWu" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) "lWO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/turf/open/space/basic, +/turf/open/floor/plating/airless, /area/engine/engineering) -"mdU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" +"lXa" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lXT" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/aft) +"maF" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ + pixel_x = 40; + pixel_y = 8 }, -/turf/open/space/basic, -/area/engine/engineering) -"mfy" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"maX" = ( +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"mbj" = ( +/obj/machinery/light{ dir = 8 }, -/obj/machinery/power/grounding_rod, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"mdh" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#706891" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mdU" = ( +/obj/machinery/computer/arcade{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"meg" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"mfy" = ( +/turf/open/floor/plating/asteroid/basalt, +/area/maintenance/starboard/aft) +"mgh" = ( +/obj/effect/turf_decal/box/white/corners, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"mgk" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/storage/primary) +"mhL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mid" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"mii" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/starboard/aft) +"mik" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"miA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/engine/engineering) "mks" = ( @@ -81118,27 +68167,72 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) +"mmA" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "mqh" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) -"msN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ +"mqF" = ( +/turf/open/floor/plating/asteroid, +/area/maintenance/starboard/aft) +"mrp" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, +/obj/machinery/computer/rdconsole/production, +/turf/open/floor/plasteel, +/area/engine/break_room) +"msA" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space/basic, +/area/space) +"msN" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/button/door{ + id = "cmoshutter"; + name = "CMO Office Shutters"; + pixel_x = -25; + req_access_txt = "40" + }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/crew_quarters/heads/cmo) "mtV" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -81148,26 +68242,260 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"mNk" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/engine/break_room) -"neT" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +"mus" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ +/turf/open/space/basic, +/area/space/nearstation) +"mvY" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"mzz" = ( +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"mzU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile{ +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mAH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"mCJ" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"mFM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"mGy" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"mGB" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"mGY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"mHU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"mJj" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"mKe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mKu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"mMu" = ( +/obj/machinery/button/door{ + id = "AuxToilet3"; + name = "Lock Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/toilet/secret/low_loot{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"mNk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/break_room) +"mPW" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"mQo" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland1"; + name = "lavaland" + }, +/turf/open/space/basic, +/area/space) +"mQI" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mQT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"mTM" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Storage Room"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"mXh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"nab" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"nek" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 1; + height = 4; + icon_state = "pinonalert"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"neT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"nfX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ngc" = ( +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 + }, +/obj/machinery/modular_computer/console/preset/engineering{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"ngo" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "ngt" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -81175,18 +68503,75 @@ /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"nkH" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, +"nkd" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) +/area/engine/atmos) +"nkH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"nkU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"nkY" = ( +/obj/structure/chair, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nld" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"nlm" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nlB" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecomms)"; + pixel_y = 30 + }, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) "nmx" = ( /obj/structure/cable{ icon_state = "4-8" @@ -81221,69 +68606,427 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"noe" = ( +/obj/structure/sign/warning/radiation/rad_area{ + pixel_x = -32 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nov" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space/basic, +/area/space) +"npc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"npe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) +"npB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "ntW" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"nuo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"nuC" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"nuO" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Foyer"; + req_one_access_txt = "32;19;24" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nuU" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nvN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "engstorage"; + name = "Engineering Secure Storage Control"; + pixel_x = -28; + pixel_y = 8; + req_access_txt = "10" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"nvP" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/port) +"nwy" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"nwz" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Foyer"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/hallway/secondary/command) -"nuO" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/area/engine/gravity_generator) +"nxW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/break_room) -"nFt" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +"nyU" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ dir = 1 }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nAx" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"nBT" = ( +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"nDC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nDE" = ( +/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/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/foyer) +/area/hallway/primary/fore) +"nEf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nFt" = ( +/obj/machinery/telecomms/message_server, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"nIP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"nJd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nJi" = ( +/obj/item/storage/toolbox/artistic, +/turf/open/floor/plating, +/area/maintenance/aft) +"nJM" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/aft) +"nLj" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"nLA" = ( +/turf/closed/wall, +/area/construction) +"nNk" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nNI" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"nPC" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"nPK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nPQ" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxToilet2"; + name = "Unit 2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"nPZ" = ( +/obj/effect/landmark/blobstart, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "nRc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"nUG" = ( -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel/white, -/area/science/research) -"nXH" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/area/medical/medbay/central) +"nSH" = ( +/turf/open/floor/engine, +/area/engine/engineering) +"nSZ" = ( +/obj/item/chair/stool, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nUG" = ( +/obj/machinery/computer/arcade{ + dir = 8 }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nUI" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"nVD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"nXH" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ofD" = ( /obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nXI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nYU" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"obT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/aft) +"ocU" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"oex" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space, +/area/space) +"oeB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ofD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -81296,50 +69039,237 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/camera/autoname{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) +"oge" = ( +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ogu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solar/starboard/aft) +"ohf" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxToilet1"; + name = "Unit 1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"ohk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "ojZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"okc" = ( +/obj/machinery/atmospherics/pipe/simple/multiz, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"olF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/electrical) +"olR" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"olS" = ( +/obj/machinery/computer/apc_control{ + dir = 4 + }, +/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/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"ooE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Office"; + req_access_txt = "56" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/fore) -"onU" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ +/area/crew_quarters/heads/chief) +"oqf" = ( +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"orm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"oxP" = ( -/obj/structure/showcase/cyborg/old{ - pixel_y = 20 +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"osx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel/grimy, -/area/tcommsat/computer) -"oCd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, +/area/hallway/secondary/entry) +"ovJ" = ( +/obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"owp" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/aft) +"oxX" = ( +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/purple/line{ +/turf/open/floor/plasteel, +/area/engine/break_room) +"oBc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"oBl" = ( +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"oCd" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"oFc" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oFF" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 13; + id = "ferry_home"; + name = "port bay 2"; + width = 5 + }, +/turf/open/space/basic, +/area/space) +"oGg" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"oKd" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Air"; + dir = 8 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"oKl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, @@ -81352,14 +69282,254 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/obj/effect/turf_decal/tile{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"oLX" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/folder, +/obj/item/pen, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"oOl" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Port to Filter " + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Amidship"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oOR" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"oPp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"oPN" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/hallway) +"oPT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"oQo" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"oQq" = ( +/obj/machinery/air_sensor{ + id_tag = "n2o_sensor" + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"oQH" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/engine/storage) +"oRP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"oSS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"oTo" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5;39;6" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"oUp" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/gps, +/turf/open/floor/plating, +/area/engine/storage) +"oUD" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"oUM" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/toilet/auxiliary"; + dir = 1; + name = "Auxiliary Restrooms APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + dir = 4; + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"oXg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oXB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"oXC" = ( +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"oYK" = ( +/obj/structure/urinal{ + pixel_y = 29 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) +"pbg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"pbY" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"pch" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"pcA" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_home"; + name = "SS13: Auxiliary Dock, Station-Port"; + width = 35 + }, +/turf/open/space/basic, +/area/space) +"pdx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/aft) +"pgc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"phk" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "phO" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -81370,6 +69540,95 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"pin" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24; + pixel_y = -32 + }, +/obj/item/stack/sheet/plasteel/fifty, +/obj/item/stack/sheet/rglass{ + amount = 50; + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"pkz" = ( +/obj/structure/transit_tube/diagonal, +/turf/open/space/basic, +/area/space) +"pkI" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"pmK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"pnS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"pnT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"poY" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ppK" = ( +/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/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) "pqo" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -81385,6 +69644,70 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"prG" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"prM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"puQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"pwk" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecomms Admin"; + departmentType = 5; + name = "Telecomms RC"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"pwT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"pwU" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"pxi" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"pxl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"pyI" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "pza" = ( /obj/machinery/light, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -81392,130 +69715,33 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"pHw" = ( -/obj/effect/turf_decal/tile{ - dir = 8 +"pAv" = ( +/obj/machinery/status_display/evac{ + pixel_y = 31 }, -/obj/effect/turf_decal/tile/red{ +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"pAO" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating/asteroid, +/area/maintenance/starboard/aft) +"pBe" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) -"pWd" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"qae" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/green{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"qax" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"qUA" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"reY" = ( -/obj/effect/turf_decal/tile{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) -"rqY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"rIV" = ( -/obj/structure/closet/wardrobe/cargotech, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"rUI" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"rYm" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"spX" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"sDf" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"sZf" = ( -/obj/machinery/rnd/bepis, -/turf/open/floor/engine, -/area/science/explab) -"tbT" = ( -/obj/machinery/power/emitter/anchored{ - dir = 1; - state = 2 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"tfI" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"thv" = ( +/turf/open/floor/plasteel/white/telecomms, +/area/tcommsat/server) +"pCX" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -81538,177 +69764,757 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 1 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"tjc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar{ +"pGl" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - N2O"; dir = 8 }, -/obj/effect/turf_decal/tile/bar{ +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"pGm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"tjO" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"tkv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"tkG" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"tln" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"pGt" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1"; + pixel_y = -5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 + dir = 4 }, /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"tlP" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/gateway) -"tnV" = ( -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/area/aisat) +"pHw" = ( +/obj/effect/turf_decal/tile{ + dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"pIr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/plasteel/dark, /area/aisat) -"tpJ" = ( -/obj/structure/disposalpipe/segment{ +"pII" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"pIK" = ( +/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/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/command) -"tsA" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"tvc" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"pKn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"pLj" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"pLv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 6 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"pRv" = ( +/obj/machinery/air_sensor{ + id_tag = "tox_sensor" + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"pSt" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"txO" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +"pTt" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"pUi" = ( +/obj/machinery/door/airlock/virology, +/turf/open/floor/plasteel, +/area/medical/virology) +"pVy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"pVz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"uaq" = ( +/area/engine/break_room) +"pWd" = ( /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/security/prison) -"ubl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" +/area/security/brig) +"pWT" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, -/turf/open/space/basic, -/area/engine/engineering) -"ucq" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"pXA" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"pXR" = ( +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"pXT" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"pZi" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"ufs" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"qae" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"ulq" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"qaj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 40 + }, +/obj/structure/sign/directions/medical{ + dir = 1; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"qax" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"qci" = ( +/obj/effect/turf_decal/vg_decals/atmos/oxygen, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"qgT" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"qlI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"qnG" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"qnQ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"qos" = ( +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"qpo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Quarters"; + req_access_txt = "56" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"qqN" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"qrz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qrB" = ( +/obj/item/reagent_containers/food/snacks/raisincookie{ + pixel_x = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/sillycup/smallcarton{ + list_reagents = list(/datum/reagent/consumable/milk = 20); + name = "small milk carton"; + pixel_x = -8; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) +"qsj" = ( +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"quL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"quP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"qxo" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"qyD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"qzu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"qzB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/solar/starboard/aft) +"qBy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"qIM" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/department/electrical) +"qIN" = ( +/turf/open/floor/carpet, +/area/hallway/primary/aft) +"qLB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"qMO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"qOl" = ( +/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) +"qOF" = ( +/obj/machinery/atmospherics/pipe/manifold/dark/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qPq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"qSJ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Foyer"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"qTk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"qTU" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/poster/random_contraband, +/turf/open/floor/plating, +/area/maintenance/aft) +"qUA" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"qVj" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"qVN" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"qYQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"qZz" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"qZU" = ( +/obj/structure/closet/crate, +/obj/item/poster/random_contraband, +/turf/open/floor/plating, +/area/maintenance/aft) +"rav" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"raV" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"rbw" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rby" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rbV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"rcz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"rcU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rey" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Port to Turbine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"reY" = ( +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"rgr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"umI" = ( -/obj/structure/urinal{ - dir = 8; - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"unn" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/vr_sleeper{ +"rgw" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/construction) +"rgL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"rhO" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rlL" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) -"upC" = ( +/area/engine/atmos) +"rnt" = ( +/obj/structure/closet/emcloset, +/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/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"rpQ" = ( +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"rqH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/sink/kitchen{ + dir = 4; + pixel_x = -15 + }, +/obj/structure/mirror{ + pixel_x = -27 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"rqY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rrU" = ( +/obj/machinery/power/deck_relay, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) +"rtC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/table, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel, +/area/engine/break_room) +"rtM" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"rwo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Pure to Fuel Pipe" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rwH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rxJ" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rxN" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rzz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"rBw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"rCc" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -81725,31 +70531,844 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"urx" = ( -/obj/structure/chair/comfy/teal{ +/area/hallway/primary/fore) +"rCg" = ( +/obj/machinery/light, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"rCq" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/wood, -/area/library) -"utM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"rCB" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/storage_shared) +"rCH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"rCU" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rDr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"rDI" = ( +/obj/structure/dresser, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"rEw" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"rEL" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"rFZ" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; + dir = 1; + name = "Incinerator APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"rHa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/break_room) +"rIr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"rIV" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"rJj" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"rMo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/aft) +"rMq" = ( +/obj/effect/turf_decal/tile/blue{ dir = 8 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"rNH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"uwg" = ( +/area/maintenance/disposal/incinerator) +"rPP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rUH" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 27 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"rUI" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"rVf" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"rYm" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"saP" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/aft"; + dir = 1; + name = "Starboard Quarter Solar APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"sbk" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"sci" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"scp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sdf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"sdy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/valve{ + name = "output gas to space" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"sfN" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"sgV" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/engine/break_room) +"sjs" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/break_room) +"sjw" = ( +/turf/open/floor/plating, +/area/storage/tech) +"sjJ" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"smK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, /obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"snv" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/engine/atmos) +"spX" = ( +/obj/item/electronics/airlock, +/obj/item/electronics/firelock, +/obj/item/electronics/firealarm, +/obj/structure/table, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"srA" = ( +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"svn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/engine/break_room) +"swF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"sxV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"szn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/tank/internals/oxygen, +/obj/item/storage/box/lights, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sBB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"sDf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sEy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"sEC" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sFt" = ( +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"sHi" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"sHs" = ( +/obj/machinery/vending/snack/random, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"sJs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"sKh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"sKS" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"sMr" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"sMW" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"sNh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"sPC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) +"sTw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sUI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/customs) +"sVb" = ( +/obj/structure/transit_tube/diagonal/crossing, +/turf/open/space/basic, +/area/space) +"sVY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard/aft) +"sYf" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"sYO" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sZf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"sZw" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"sZA" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"tbH" = ( +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"tbT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"tcg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"tci" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"tcW" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"tdt" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/engine/storage) +"tfI" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"tgp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"thV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"tip" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tiF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"tiT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"tjc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"tjO" = ( +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/break_room) +"tkv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"tkG" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/break_room) +"tln" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter/atmos/atmos_waste_loop, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"tlP" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/folder/white, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"tmb" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"toM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"tpu" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"tpJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"tpY" = ( +/obj/machinery/meter/atmos/distro_loop, +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"trF" = ( +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/dark, +/area/aisat) +"tsA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"tuL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"tvc" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -81758,18 +71377,536 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"uFf" = ( -/turf/closed/wall/r_wall, -/area/science/circuit) -"uIi" = ( +"tvA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"twd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"twF" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"txt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"txO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"tyR" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"tzE" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/maintenance/aft) +"tAF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tBM" = ( +/turf/closed/wall, +/area/engine/storage_shared) +"tDk" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"tDV" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/library) +"tEq" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"tFC" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"tIu" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"tIJ" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/hallway/secondary/entry) +"tKd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"tKL" = ( +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"tKY" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on, +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"tLA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/server) +"tMv" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"tNZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"tPt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"tPH" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"tQh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"tRs" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"tUH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"tWj" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/aft) +"tWq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"tWJ" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"tYl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uap" = ( +/obj/structure/sign/warning/radiation/rad_area{ + pixel_y = -32 + }, +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) +"uaq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"uaS" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/chips, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"ubl" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/engine/engineering) +"ubI" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) +"ufs" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"uiC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"uje" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ujf" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ujn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/space/basic, +/area/space) +"ulq" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"umd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"umv" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxToilet3"; + name = "Unit 3" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) +"umI" = ( +/obj/item/poster/random_contraband, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/aft) +"unn" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom"; + pixel_x = -28 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/chief/private) +"unY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"uoQ" = ( +/obj/structure/closet/firecloset, +/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/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"uoR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"upk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/orange, +/area/crew_quarters/heads/chief/private) +"ups" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space/basic, +/area/space/nearstation) +"upC" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet/orange, +/area/crew_quarters/heads/chief/private) +"uqr" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/hallway/primary/aft) +"urx" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/rock/jungle, +/turf/open/floor/grass, +/area/library) +"urG" = ( +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"uss" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"usZ" = ( +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) +"utp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"utM" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "E.V.A. Storage Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"uvQ" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"uwg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"uBL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"uBQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"uFe" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"uFf" = ( +/turf/closed/wall/r_wall, +/area/science/circuit) +"uHm" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uHn" = ( +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"uIh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"uIi" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Utilities Maintenance"; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) "uJe" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -81782,82 +71919,82 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"uJR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "uKJ" = ( -/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"uLi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"uKM" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"uLi" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=central5"; + location = "central4" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "uLH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"uLR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/turf/open/floor/plating, +/area/maintenance/port/fore) "uMl" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) -"uNK" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"uPt" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +"uNc" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, -/obj/effect/turf_decal/tile{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /turf/open/floor/plasteel, -/area/hallway/primary/starboard) +/area/engine/atmos) +"uNr" = ( +/obj/item/storage/daki, +/turf/open/floor/plating, +/area/maintenance/aft) +"uOf" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"uPt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) "uQf" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -81866,25 +72003,43 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) +"uQh" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/tcomms, +/obj/item/folder/blue, +/obj/item/pen, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/tcommsat/computer) +"uQB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output, +/turf/open/floor/engine/plasma, +/area/engine/atmos) "uRi" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/obj/structure/window/reinforced/spawner, +/turf/open/space/basic, +/area/space) "uRw" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) +/area/security/checkpoint/engineering) +"uRP" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"uSw" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "uSM" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -81893,7 +72048,22 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) +"uTf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"uUy" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) "uVs" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -81932,99 +72102,273 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "uWS" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/vg_decals/department/hop, +/turf/open/floor/plasteel, +/area/hallway/secondary/command) +"uWT" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/tcomms, +/turf/open/floor/plating, +/area/storage/tech) +"uWV" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) +/turf/open/floor/plasteel/dark, +/area/aisat) +"uXS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/plasteel, +/area/engine/break_room) "uYv" = ( -/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"uYC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"uYG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "uZH" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Security Doors" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"vaH" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"veE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"vhh" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 +/area/engine/storage_shared) +"vfZ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/plasteel/dark, -/area/aisat) -"voR" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"voS" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"vhd" = ( +/obj/machinery/shower{ + dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) -"vrE" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/area/crew_quarters/toilet/auxiliary) +"vja" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"vtT" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 +/obj/structure/cable/yellow, +/turf/open/floor/engine, +/area/engine/engineering) +"vjQ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Security Doors" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) -"vwv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/light{ +/area/engine/break_room) +"vjV" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vka" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vkS" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"vlM" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets, +/obj/item/vending_refill/cola, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"vmy" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vmO" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/electrical"; dir = 4; - light_color = "#e8eaff" + name = "Electrical Maintenance APC"; + pixel_x = 24 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"vxz" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1"; - pixel_y = -5 +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"vnI" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"voS" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 10 + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/aisat) +/area/ai_monitored/storage/satellite) +"vrE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/space/basic, +/area/space) +"vsH" = ( +/obj/machinery/rnd/production/protolathe/department/engineering, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"vtT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"vuN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space) +"vuY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"vvk" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"vyb" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vyn" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vzJ" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vzV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"vBt" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "vBE" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -82034,39 +72378,64 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"vDt" = ( -/obj/effect/turf_decal/tile/bar{ +"vCd" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/tile/bar{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"vDO" = ( -/mob/living/simple_animal/opossum, -/turf/open/floor/plating, -/area/maintenance/fore) -"vDW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"vCZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Mix" + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/secondary/command) +/area/engine/atmos) +"vDL" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"vDW" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"vEe" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"vEG" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"vEP" = ( +/turf/open/floor/carpet, +/area/tcommsat/computer) "vFo" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -82075,13 +72444,24 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"vFP" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +"vFp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = -32 }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"vFP" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) "vGr" = ( /obj/structure/cable{ icon_state = "1-2" @@ -82107,18 +72487,46 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"vGI" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"vGY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"vHL" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/medical/virology) "vJb" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "vKZ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/machinery/power/apc{ + areastring = "/area/maintenance/dormitory"; + name = "Dormitory Maintenance APC"; + pixel_y = -28 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/aft) +"vLH" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/air, +/area/engine/atmos) "vLQ" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -82128,56 +72536,313 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) +"vLR" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"vMw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"vNr" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vOr" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"vOB" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Mix"; + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) "vPQ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"vTO" = ( +"vPX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"vQl" = ( +/obj/machinery/power/emitter/anchored{ + dir = 1; + state = 2 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"vRm" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Unfiltered & Air to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vSN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) +"vTb" = ( +/obj/effect/turf_decal/vg_decals/atmos/mix, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"vTr" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space/basic, +/area/space/nearstation) +"vTA" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/aft) +"vUC" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"vVH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"vWi" = ( /obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 + dir = 4 + }, +/turf/open/space, +/area/space) +"vXt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"vZK" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"waa" = ( +/obj/item/electronics/airalarm, +/obj/item/electronics/apc, +/obj/structure/table, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wav" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"wdC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/transit_tube/horizontal, +/turf/open/space/basic, +/area/space/nearstation) +"wdP" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wfR" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"wgU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"wic" = ( +/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/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"wif" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"wiD" = ( +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"wjn" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"wlN" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/auxiliary) +"woU" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"wrs" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wsH" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"wsS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/table, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/effect/turf_decal/delivery, +/obj/item/clothing/mask/gas{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 5; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wsT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"wtQ" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"wtV" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wuj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 5 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"vWi" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/aisat) -"wsH" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"wtQ" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/turf/open/floor/plating, +/area/maintenance/aft) "wwa" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -82185,13 +72850,56 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"wEY" = ( +"wyC" = ( +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"wzM" = ( /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"wAl" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/construction) +"wBu" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wDn" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile, +/obj/effect/turf_decal/tile{ + dir = 8 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wEY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -82202,11 +72910,52 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"wJD" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"wJZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"wLo" = ( +/obj/machinery/door/airlock/atmos{ + name = "Turbine Access"; + req_access_txt = "32" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/aft) +/area/maintenance/disposal/incinerator) +"wMr" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/flashlight, +/turf/open/floor/plating, +/area/maintenance/department/medical) "wNs" = ( /obj/structure/cable{ icon_state = "4-8" @@ -82230,23 +72979,132 @@ /turf/open/floor/plasteel/dark, /area/science/circuit) "wOj" = ( -/obj/structure/cable/yellow{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wOF" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"wUP" = ( -/obj/structure/window/reinforced/spawner/north, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) +"wOT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"wPh" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"wQP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"wSL" = ( +/obj/structure/girder, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"wTC" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"wUN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"wUP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/aisat) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wWr" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - CO2"; + dir = 8 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"wXI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"wYk" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wYv" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"wZA" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "wZC" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -82257,16 +73115,66 @@ pixel_y = -29 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "xag" = ( /turf/closed/wall, /area/science/circuit) -"xfQ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ +"xaB" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/primary/fore) +"xfQ" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xhe" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/aft) +"xih" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"xiH" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/aisat) +"xiJ" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "xjG" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -82274,21 +73182,161 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"xkO" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"xlk" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/transit_tube/horizontal, +/turf/open/space/basic, +/area/space/nearstation) "xmV" = ( /turf/open/floor/plasteel/dark, /area/science/circuit) -"xyH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ +"xnU" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/tile{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"xoN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"xqu" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/space, +/area/space/nearstation) +"xrg" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"xri" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/turf/open/floor/plating, +/area/maintenance/aft) +"xrA" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"xtx" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xwv" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "ewradiation"; + name = "Shutters Control"; + pixel_x = 33; + req_access_txt = "11" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xyl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"xzj" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"xAN" = ( +/turf/closed/wall, +/area/maintenance/department/electrical) +"xCM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"xDj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"xDJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"xEK" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"xFn" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/aisat) +"xFI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) "xGE" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -82303,29 +73351,186 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) +"xHw" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"xHW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"xMt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"xPK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) "xQx" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"xQX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, /turf/open/floor/plasteel, -/area/crew_quarters/fitness/recreation) +/area/hallway/primary/starboard) +"xSf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"xSk" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"xSQ" = ( +/obj/machinery/camera{ + c_tag = "MiniSat Antechamber Starboard"; + dir = 8; + network = list("minisat") + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"xTW" = ( +/obj/item/poster/random_official, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"xUE" = ( +/turf/open/floor/engine/co2, +/area/engine/atmos) +"xVa" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide, +/obj/machinery/atmospherics/miner/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/engine/atmos) "xYx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xYL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"xYX" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"xZe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"xZS" = ( +/obj/machinery/air_sensor/atmos/carbon_tank, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"xZW" = ( +/obj/machinery/light/small{ dir = 1 }, -/obj/machinery/light, +/obj/machinery/atmospherics/miner/toxins, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"ybs" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/storage/box/lights/mixed, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ybS" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/closet/crate, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/maintenance/department/medical) +"ycl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/maintenance/disposal/incinerator) +"ycq" = ( +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"yeB" = ( +/obj/structure/table, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft) "yfq" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -82338,3863 +73543,4011 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"yfB" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ygd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"yhm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"yhM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch/abandoned{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"yij" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"yiG" = ( +/obj/effect/landmark/blobstart, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"yiO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"yiX" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"yjs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"yjC" = ( +/obj/structure/cable, +/obj/machinery/power/smes/engineering{ + output_level = 80000 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ykg" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"ykL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ykP" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ylM" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) (1,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (2,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (3,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (4,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (5,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (6,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (7,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (8,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (9,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (10,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (11,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (12,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (13,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (14,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (15,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (16,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -86297,189 +77650,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (17,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -86582,133 +77907,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (18,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -86811,161 +78164,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (19,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -87068,161 +78421,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (20,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -87325,189 +78678,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (21,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -87610,161 +78935,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (22,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -87880,8 +79205,6 @@ aaa aaa aaa aaa -aaa -aaa aab aab aab @@ -87909,119 +79232,121 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (23,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -88137,148 +79462,148 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (24,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -88391,151 +79716,151 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab bLH -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM bLH -bxM -bxM -bxM -bxM -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (25,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -88639,160 +79964,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (26,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -88896,97 +80221,35 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -89019,37 +80282,99 @@ aaa aaa aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (27,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -89153,160 +80478,160 @@ aaa aaa aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (28,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -89427,91 +80752,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab aaa aaa aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -89533,37 +80796,99 @@ aaa aaa aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (29,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -89674,13 +80999,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa bxM bxM bxM @@ -89692,6 +81010,7 @@ bxM bxM bxM bxM +czp bxM bxM bxM @@ -89702,69 +81021,12 @@ bxM bxM bxM bxM +czp bxM bxM bxM bxM bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -bxM -aax -aax -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -89775,6 +81037,7 @@ aaa aaa aaa aaa +aaw aaa aaa aaa @@ -89790,37 +81053,99 @@ aaa aaa aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (30,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -89931,20 +81256,34 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aac +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM aaa aaa aaa @@ -89957,11 +81296,6 @@ aaa aaa aaa aaa -aac -aaa -aaa -aaa -aac aaa aaa aaa @@ -89971,25 +81305,11 @@ aaa aaa aaa aaa -aac aaa aaa aaa aaa aaa -aaa -aaa -aac -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -89999,85 +81319,90 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (31,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -90089,11 +81414,11 @@ aaC aaE aaI aaI -aaI +abu aaE aaI aaI -aaI +aba aaO aaI aaI @@ -90110,7 +81435,7 @@ aaI abu abu abu -acV +aaI abu abu aex @@ -90188,56 +81513,51 @@ aaa aaa aaa aaa +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM aaa aaa aaa aaa aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aaa -aaa -aac -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -90256,85 +81576,90 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (32,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -90440,20 +81765,7 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac +aaw aaa aaa aaa @@ -90465,10 +81777,10 @@ aaa aaa aaa aaa -aab -aab -aab -aab +aaa +aaa +aaa +aaa aaa aaa aac @@ -90491,10 +81803,18 @@ aaa aaa aaa aaa -aaa -aaa -aac -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -90513,85 +81833,90 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (33,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -90627,7 +81952,7 @@ aaa aaa aaa aaa -aaI +aBk aaa aaa aaa @@ -90702,19 +82027,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aac -aaa -aaa -aaa -aaa aac aaa aaa @@ -90722,10 +82034,10 @@ aaa aaa aaa aaa -aab -aab -aab -aab +aaa +aaa +aaa +aaa aaa aaa aac @@ -90748,10 +82060,18 @@ aaa aaa aaa aaa -aaa -aaa -aac -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -90770,85 +82090,90 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (34,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -90883,9 +82208,9 @@ aaa aaa aaa aaa -aaa +adM aey -aaa +adM aaa aab aaa @@ -90953,6 +82278,54 @@ aaa aaa aaa aaa +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +bxM +aax +aax +bxM +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -90966,146 +82339,98 @@ aaa aaa aaa aab -aaa -aac -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab -aaa -aaa -aac -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa +aab +aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx "} (35,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -91142,7 +82467,7 @@ aaa aaa adM aez -adq +adM aaa aaa aaa @@ -91211,19 +82536,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aaa aaa @@ -91244,7 +82556,7 @@ aaa aaa aac aaa -aSp +aaa aaa aac aaa @@ -91266,103 +82578,116 @@ aaa aaa aac aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM -aav +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (36,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -91387,7 +82712,7 @@ aaD aaK aaM aab -abl +aav aab aaa aaa @@ -91468,19 +82793,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aaa aaa @@ -91493,16 +82805,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab aaa aaa aac -aSp -aSp -aSp +aaa +aaa +aaa aac aaa aaa @@ -91525,101 +82837,114 @@ aac aaa aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (37,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -91725,20 +83050,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac aaa aaa aaa aaa aac +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab aab aab aaa @@ -91747,19 +83072,6 @@ aac aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aSp -aSp -aSp aac aaa aaa @@ -91782,101 +83094,114 @@ aac aaa aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (38,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -91980,6 +83305,31 @@ aaa aaa aaa aaa +aab +aaa +aac +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aaa +aaa +aac +aaa +aaa +aaa +aac aaa aaa aaa @@ -91989,44 +83339,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aav -aav -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -bNe -cbb -bPq -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac aac aaa aaa @@ -92039,101 +83351,114 @@ aac aaa aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (39,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -92237,22 +83562,22 @@ aaa aaa aaa aaa +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac aaa aaa aaa aaa aac +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab aab aab aaa @@ -92261,19 +83586,6 @@ aac aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -bNf -cic -bPr aac aaa aaa @@ -92295,102 +83607,115 @@ aaa aac aaa aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM -aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (40,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aab @@ -92496,10 +83821,15 @@ aaa aaa aaa aaa +aac aaa aaa aaa aaa +aac +aaa +aaa +aaa aaa aaa aaa @@ -92510,8 +83840,17 @@ aaa aaa aaa aac -aab -aab +aaa +aSp +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aac @@ -92521,133 +83860,119 @@ aaa aaa aaa aaa -bIY -bIY -bIY -bIY -bIY -bIY -byU -uRi -bVp -tnV -bKd -bIY -bIY -bSc -bSc -bSc -bSc -aab +aaa +aac +aaa aab aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxM aav +czp +aab +aab +aab +aab aab aab aab aab aaa -aaa -aaa -aac -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM -aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (41,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -92753,10 +84078,15 @@ aaa aaa aaa aaa +aac aaa aaa aaa aaa +aac +aaa +aaa +aaa aaa aaa aaa @@ -92767,54 +84097,36 @@ aaa aaa aaa aac +aSp +aSp +aSp +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa aab aab -aab -aaa -aac aaa aaa aaa aaa aaa -bxN -uRi -ucq -ucq -ucq -ucq -ucq -ucq -bPK -bRU -bYA -ucq -ucq -ucq -ucq -ucq -ucq -tnV -bzY -aab -aab -aav -aav -aav -aav -aav -aac -aac -aac -aac -aac -aav -aav -aac -aac -aac -aac -aaa aaa aaa aaa @@ -92824,87 +84136,100 @@ aaa aaa bxM aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (42,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -93010,8 +84335,13 @@ aaa aaa aaa aaa +aac +aab +aab aaa aaa +aac +aaa aaa aaa aaa @@ -93024,42 +84354,24 @@ aaa aaa aaa aac -aab -aab -aab -aab -aav -aab -aab -aab -aab -bzS -uRi -eia -dQa -dQa -dQa -dZP -vwv -bOa -bPL -bVq -caW -dZP -vwv -dZP -dQa -dQa -dQa -cAh -vTO -bzY -aab -aav -aab -aab -aab -aab +aSp +aSp +aSp +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa aaa aaa aaa @@ -93070,7 +84382,7 @@ aab aaa aaa aaa -aac +aaa aaa aaa aaa @@ -93081,87 +84393,100 @@ aaa aaa bxM aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (43,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -93267,56 +84592,43 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac -aab -aab -aab -aab aav -aab -aab -aab -bzS -ddh -eia -tln -bBW -bJg -bJg -bBX -bLV -bLV -bLV -bOb -bLV -bLV -bLV -bBX -bSd -bSS -bAc -eqX -xyH -vTO -bzY aav -aab -aab -aab -aab +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +ctb +cvt +cxI +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa aaa aaa aaa @@ -93327,7 +84639,7 @@ aab aaa aaa aaa -aac +aaa aaa aaa aaa @@ -93339,86 +84651,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (44,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -93524,8 +84849,13 @@ aaa aaa aaa aaa +aac +aab +aab aaa aaa +aac +aaa aaa aaa aaa @@ -93538,42 +84868,24 @@ aaa aaa aaa aac -aab -aab -aab -aab -aav -aab -aab -bzS -uRi -eia -tln -bzV -aav +cth +cvu +cxJ +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa aaa aaa -bBX -bLW -bMA -bYI -bPO -cao -bQk -bQH -bBX -aab -aav -aab -bAc -diH -xyH -vTO -bBY -aab -aab -aab -aab aaa aaa aaa @@ -93584,7 +84896,7 @@ aab aaa aaa aaa -aac +aaa aaa aaa aaa @@ -93596,86 +84908,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (45,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -93753,7 +85078,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -93781,61 +85106,41 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aab aab -aab -aab -aav -aab -bzS -uRi -eia -tln -bzV -aab -aav aaa aaa -bBX -bLX -bMB -bNy -bOd -cbK -bQk +aac +aaa +aaa +aaa +aaa +aaa +aaa bQI -bBX +bQI +bQI +bQI +bQI +bQI +bJW +xiH +cvv +exl +ceE +bQI +bQI +tDk +tDk +tDk +tDk +aab +aab aab aav aab aab -bAc -diH -xyH -vTO -bzY -aab -aab -aab -aaa -aaa -aaa -aac -aaa aab aab aaa @@ -93843,6 +85148,13 @@ aaa aaa aac aaa +aab +aab +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -93853,86 +85165,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (46,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -93981,8 +85306,8 @@ aaA aaA aaA aaA -aaA -aaA +aco +aco aaA aaA aaA @@ -94010,7 +85335,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -94038,66 +85363,53 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aab aab aab -aab -aav -bzS -ddh -eia -tln -bzV -aab -aab -aav -aaa -aaa -bBX -bLY -bMC -bNz -bOe -bSW -bQk -bQJ -bBX -aab -aav -aab -aab -aab -bAc -eqX -xyH -vTO -bzY -aab -aab -aaa -aaa aaa aac aaa +aaa +aaa +aaa +aaa +vWi +xiH +cbE +cbE +cbE +cbE +cbE +cbE +cve +cvw +cxK +cbE +cbE +cbE +cbE +cbE +cbE +exl +kjg aab aab -aaa -aaa -aaa +aav +aav +aav +aav +aav +aac +aac +aac +aac +aac +aav +aav +aac +aac +aac aac aaa aaa @@ -94109,87 +85421,100 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +czp +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (47,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -94237,7 +85562,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -94251,7 +85576,7 @@ aaR aaR aaR aaR -aaR +cAu aaR aaA aaA @@ -94295,56 +85620,43 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aab aab aab aab -bDC -uRi -eia -bKY -bzV -aab -aab -aab aav -aaa -aaa -bBX -bLZ -bMD -bNB -bOf -crk -bQl +aab +aab +aab +aab +cvE +xiH +bWf +mCJ +mCJ +mCJ bQK -bBX +cpA +crg +ctq +cvx +csm +bQK +cpA +bQK +mCJ +mCJ +mCJ +mFM +bWs +kjg aab aav aab aab aab aab -bAc -diH -xyH -vTO -bzY -aab aaa aaa aaa @@ -94366,87 +85678,100 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +czp +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (48,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -94491,9 +85816,9 @@ aco aco aaA aaA +aco aaA -aaA -aaA +aco aaA aaA aaA @@ -94526,7 +85851,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaR aaA @@ -94552,158 +85877,158 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aab aab aab -bzS -uRi -eia -bJF -bBW -aab -aab -aab aab aav -aaa -aaa -bBX -bBX -bBX -bNC -bOg -cuS -bBX -bBX -bBX aab +aab +aab +cvE +bSe +bWf +bTB +bPt +bQv +bQv +bBX +cOh +cOh +cOh +cvy +cOh +cOh +cOh +bBX +bTU +cLC +nov +jZV +bWu +bWs +kjg aav aab aab aab aab +aaa +aaa +aaa +aac +aaa +aab aab -bAc -cBd -cBh -tnV -bzY aaa aaa aaa aac -aac -aav -aav -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bxM -aav +aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (49,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -94773,7 +86098,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aco @@ -94809,57 +86134,44 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aac aab aab -bzS -ddh -vhh -bKy -bzV +aab +aab aav aab aab -aab -aab +cvE +xiH +bWf +bTB +fQa aav aaa aaa -aab -aab bBX -bNC -bOg -cuT +cST +cri +ctw +cvz +cxL +czG +cCO bBX aab -aab -aab aav aab +nov +meg +bWu +bWs +bPv aab aab aab aab -aab -bAc -clQ -eDP -tnV -bzY +aaa aaa aaa aac @@ -94881,86 +86193,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (50,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -95002,8 +86327,8 @@ asd aaA aaA aaA -aaA -aaA +aco +aco aaA aaA aaA @@ -95030,7 +86355,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aco @@ -95066,58 +86391,45 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa aac aab -bzS -uRi -vhh -iVC -bzV -aab -aav -aab aab aab aab aav aab +cvE +xiH +bWf +bTB +fQa aab -aab -aab +aav +aaa +aaa bBX -bNC -bOg -cuS +ctW +crm +ctF +cvB +cxM +czG +cCP bBX aab -aab -aab aav aab aab +nov +meg +bWu +bWs +kjg aab aab aab -aab -aab -bYB -diH -eDP -tnV -bJf +aaa +aaa aaa aac aaa @@ -95138,86 +86450,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (51,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -95255,26 +86580,26 @@ abY abY aeG abY -ajw -abY -abY -abY -abY -abY +asd aaA aaA -abY -abY -abY -abY -abY aaA -abY -abY -abY -abY -ayw -abY +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +bTy +aaA aaA aaA aaA @@ -95283,7 +86608,7 @@ aaR aaA aaA aaA -aaA +aco aaA aaA aaA @@ -95323,59 +86648,46 @@ aaa aaa aaa aaa +aac +aab +aab +aab +aab +aav +cvE +bSe +bWf +bTB +fQa +aab +aab +aav aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bBX +cuf +crn +ctG +cvF +cxN +czG +cCW +bBX +aab +aav +aab +aab +aab +nov +jZV +bWu +bWs +kjg +aab aab aaa aaa -aac -bzS -uRi -vhh -iVC -bBW -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -bBX -bOc -bOg -cuU -bBX -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -bYB -diH -eDP -tnV -bJf +aaa aac aaa aab @@ -95395,86 +86707,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (52,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -95512,24 +86837,24 @@ acw abY aeG afB -ajy -acw -acw -cQg -acw -cOs -adr -adr -adr -cOr -cOr -afE -acw -acw -afB -acw -acj -aMt +ajw +abY +abY +abY +abY +abY +aaA +aaA +abY +abY +abY +abY +abY +aaA +abY +abY +abY +abY ayx abY aaA @@ -95539,7 +86864,7 @@ aaA aaR aaR aaA -aaA +aco aaA aaA aaA @@ -95577,63 +86902,50 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa -byU -ddh -vhh -iVC -bBW -aab -aab -bBX -bBX -bBX -bBX -bBX -bBX -bBX +aaa +aac aab aab aab aab -bBX -bOl -bOg -cci -bBX +bRa +xiH +bWf +bTk +fQa aab aab aab aav +aaa +aaa +bBX +cpB +cro +ctH +cvJ +cxO +cAt +cDj +bBX +aab +aav aab aab aab aab +nov +meg +bWu +bWs +kjg aab -aab -aab -aav -aab -bAc -eqX -eDP -tnV -bKd +aaa +aaa +aaa +aac aaa aab aab @@ -95652,86 +86964,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (53,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -95767,26 +87092,26 @@ acw aoT bwQ abY -aeH -afC -ajz -adr -adr -aiH -cOr -bXl -abY -abY -abY -afB +aeG acw -cJV -adr -adr -adr +ajy +acw +acw +afC +acw +bXl adr adr adr +afT +afT +afE +acw +afB +afB +abY +acj +aMt cOw abY aaA @@ -95834,161 +87159,161 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab -bxN -byV -vhh -iVC -bBW -aav -aav -bBX -bCR -bCR -bCR -bCR -bCR -bCR -bCR -bBX +aaa +aaa +aac aab aab aab -bBX -bNC -bOh -cuS -bBX +cvE +xiH +bWf +bSs +bPt +aab aab aab aab aav -bST -bST -bST -bST -bST -bST -bST -bST -bST +aaa +aaa +bBX +bBX +bBX +gCA +voS +cxP +bBX +bBX +bBX +aab aav -bYB -diH -eDP -tnV -bJf aab aab +aab +aab +aab +nov +djd +eMI +exl +kjg aaa aaa aaa aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac +aav +aav +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac bxM +aav +czp +aab +aab +aab +aab +aab +aab +aab aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (54,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -96009,7 +87334,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -96024,26 +87349,26 @@ bhu cPJ aXy abY -acw -aeG -ajw -aaA -aaA +aeH +aeX +aeZ +adr +adr +aiH +aAS +ais abY abY abY -abY -aaA -abY -abY -abY -abY -abY -abY -abY -abY -abY -acw +afB +afB +ccE +adr +adr +adr +adr +adr +caY cOx abY aaA @@ -96094,62 +87419,49 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -bxO -vhh -iVC -bzV +aac +aab +aab +cvE +bSe +bJY +bRK +fQa +aav +aab +aab +aab aab aav -bBX -bCR -bCR -cDb -bCR -bHn -bCR -cDb -bCR -bCR -bBX -aab -bBX -bBX -bNC -bOg -cuT -bBX +aaa +aaa aab aab bBX -bST +gCA +voS +cxQ bBX -bUP -bUP -bUP -bUP -bUP -bUP -bUP -bBX -bBX -bST -bAc -diH -eDP -tnV -bzX +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +nov +eNV +gvt +exl +kjg +aaa +aaa +aac +aaa +aab aab aaa aaa @@ -96165,87 +87477,100 @@ aaa aaa bxM aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (55,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -96274,7 +87599,7 @@ abY acw acw bal -bWn +aaZ aSn bhe bmw @@ -96286,22 +87611,22 @@ aeG ajw aaA aaA +abY +abY +abY +abY aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA +abY +abY +abY +abY +abY +abY +abY +abY abY acw -ayz +aRe abY aaA aaA @@ -96351,62 +87676,49 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -uKM -byX -bzV +aac +aab +cvE +xiH +bJY +bLd +fQa +aab +aav +aab +aab +aab +aab +aav +aab +aab aab aab bBX -bBX -bCR -bDD -bDN -bGC -bHo -bLa -bLj -bDD -bCR -bBX -bBX -bBX -bME -bNC -bOg -cuS +gCA +voS +cxP bBX aab -bBX -bBX -bSU -bSU -bUP -bVr -bWf -bWH -bXg -bWg -bYC -bYY -bUP -bST aab -bAc -vFP -byX -cdz +aab +aav +aab +aab +aab +aab +aab +aab +aab +bSB +meg +gvt +exl +cay +aaa +aac +aaa +aab aab aaa aaa @@ -96422,87 +87734,100 @@ aaa aaa bxM aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (56,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -96522,7 +87847,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -96531,7 +87856,7 @@ aaA acw acw bal -bhe +abc bkD bhe bmw @@ -96608,62 +87933,49 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byX -bzW +aac +cvE +xiH +bJY +bLd +bPt +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav aav bBX -bCR -bCR -bCR -bDN -bDN -bEF -bFw -bEF -bLj -bLj -bCR -bCR -bLJ -bLJ -bLJ -bLJ -bOi -bLJ +ctI +voS +cxR bBX -bBX -bBX -bSe -bSV -bTR -bUP -bVs -bWg -bWg -cva -bXN -bWg -bYZ -bUP -bST +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +bSB +meg +gvt +exl +cay +aac +aaa aab -cbC -uKM -byX -cdz aab aaa aaa @@ -96680,86 +87992,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (57,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -96790,7 +88115,7 @@ acw bal bhe bWn -bWn +aaZ bmw aoT acw @@ -96806,8 +88131,8 @@ ahS amj and aos -apJ ahS +aCn ahS ahd aaA @@ -96863,66 +88188,53 @@ aaa aaa aaa aaa +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byX -bzX +bJW +bSe +bJY +bLd +bPt +aab aab bBX -bCR -bDD -bDN -bDN -bEF -bFw -bFw -bFw -bEF -bLj -bLU -bDD -bLJ -bMa -bOv -bOx -bOj -cuW -can -bQL -bLJ -bSf -bZG -bTS -bUP -bDQ -bWh -bWI -bXi -bXO -bWg -bZa -bUP -bST -aab -cbC -vFP -byX -cdz +bBX +bBX +bBX +bBX +bBX +bBX aab aab +aab +aab +bBX +ctL +voS +cxV +bBX +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +aav +aab +nov +jZV +gvt +exl +ceE +aaa +aab +aab +aaa aaa aaa aac @@ -96937,86 +88249,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (58,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -97035,7 +88360,7 @@ aco aco aco aaA -aaA +aco aaA aaA aaA @@ -97120,68 +88445,55 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byX -bzX aab +vWi +bJX +bJY +bLd +bPt +aav +aav bBX bCR -cXB -bEW -bFv -bFY -bFv -bHp -bFw -bEF -bFw -bLj -bLj -bLJ -bNi -bMK -bOW -bOj -cDc -cDn -ccj -bLJ -bSg -bSX -bTT -bUQ -bUQ -bUQ -bWJ -bWg -bWg -bWg -bZb -bUP +bCR +bCR +bCR +bCR +bCR +bCR +bBX +aab +aab +aab +bBX +gCA +cvS +cxP +bBX +aab +aab +aab +aav bST -aab -cbC -vFP -byX -cdz +bST +bST +bST +bST +bST +bST +bST +bST +aav +bSB +meg +gvt +exl +cay aab aab aaa aaa +aaa aac aaa aaa @@ -97194,86 +88506,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (59,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -97377,160 +88702,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byX -bzX +bIP +bIT +bJY +bLd +fQa aab +aav bBX bCR -bDO -bEF -bFw -bFw -bFw -bHq -bId -bFv -bFv -bKE -bLj -bLJ -bNo -bNj -bNq -bOk -bPD -nFt -ccT -bLJ -oxP -bSY -bTU -bUR -bVu -bWi -bWK -bXj -bXP -bYD -bZc -bUP +bCR +cIy +bCR +bVe +bCR +cIy +bCR +bCR +bBX +aab +bBX +bBX +gCA +voS +cxQ +bBX +aab +aab +bBX bST +bBX +bUP +bUP +bUP +bUP +bUP +bUP +bUP +bBX +bBX +bST +nov +meg +gvt +exl +bLw aab -cbC -vFP -byX -cdz -aab -aab -aab -aab +aaa +aaa +aaa aac -aab -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +czp +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (60,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -97634,160 +88959,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byX -bzX +bIP +bTV +trF +fQa +aab aab bBX +bBX bCR -bDN -bEF -bFw -bEF +cIb +eia +cOj +bVf +bWi +iyH +cIb bCR -bCR -bIg -bCR -bFw -bKF -bNx -bLJ -bMH -bNk -bNr -bPP -bPE -bWs -cDr -bLJ -bSi -bSZ -bSV -bUQ -bUQ -bUQ -bWJ -bWg -bWg -bYE -bZd +bBX +bBX +bBX +oPN +gCA +voS +cxP +bBX +aab +bBX +bBX +qVj +qVj +bUP +elW +cUs +cVS +cWG +qsj +cnO +gBE bUP bST aab -cbC -uKM -byX -cdz -aab -aab -aab +nov +xFn +trF +gar aab +aaa +aaa +aaa aac -aab -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +czp +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (61,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -97823,7 +89148,7 @@ abY aaA abY abY -aeG +aeJ acw ajw aaA @@ -97891,160 +89216,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -bxR -byY -bzX -aab +bIP +xFn +trF +bLe +aav bBX bCR -bDG -bEG -bFx -bDD bCR -bHr -bIf -bJc -bFw -bKG -bLg -bLK -bMe -bMJ -bNs -bOm -bPF -bQn -bQn -bRC -bSj -bTa -bTV +bCR +eia +eia +cOk +cXJ +cOk +iyH +iyH +bCR +bCR +bLJ +bLJ +bLJ +bLJ +bql +bLJ +bBX +bBX +bBX +cHI +tKL +cMQ bUP -cuZ -bWj -bWL -bXk -bXQ -bYE -bZe +cSw +qsj +qsj +cWI +bOm +qsj +rEL bUP bST aab -cbC -cLT -cpq -bPq -aav -aav -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac +uRi +bTV +trF +gar +aab +aaa +aaa +aaa aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bxM -aav +aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (62,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -98058,13 +89383,13 @@ aco aco aaA aaA +aco aaA aaA aaA aaA aaA -aaA -aaA +aco aco aaA aaA @@ -98081,7 +89406,7 @@ aaA aaA abY aeJ -acw +aXy ajw aaA aaA @@ -98148,64 +89473,51 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byZ -bzX +bIP +xFn +trF +bLw aab bBX bCR -bEC -bEF -bFw -bEF -bCR -bCR -bIh -bCR -bFw +cIb +eia +eia +cOk +cXJ +cXJ +cXJ +cOk +iyH +cix +cIb +bLJ +cpC +crp +ctN +bMN +cxZ +iiu +cEf +bLJ +lbs +bJc bKF -bMF -bLJ -bMI -bNp -bNt -bQm -bOj -dRM -cDs -bLJ -bSi -bTb -bTW bUP -bWJ -bWg -bWg -cvb -bXR -bYE -bZf +pBe +bMI +bWO +cWK +bQm +qsj +ctj bUP bST aab -cbC -wUP -byX -cdz +uRi +xFn +trF +gar aab aab aaa @@ -98221,87 +89533,100 @@ aaa aaa bxM aab -aax -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (63,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -98316,7 +89641,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -98371,7 +89696,7 @@ aHm aHm aHm aFL -aFL +cWb aFL aHm aHm @@ -98405,64 +89730,51 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byZ -bzX +bIP +xFn +trF +bLw aab bBX bCR +bRb +bRX +cXI +bTm +cXI +bVg +cXJ +cOk +cXJ +iyH +iyH +bLJ +cpD bED -bEH -bFy -bFy -bFy -bFy -bKb -bFw -bFw -bKF -bLk +ctO +bMN +cya +cAC +cEm bLJ -bND -bNj -bNu -bOn -bPG +pAv +vuY +oLX +tLA +tLA +tLA +bPu +qsj +qsj +qsj nFt -cvc -bLJ -oxP -bTb -bSV -bUP -bVx -bWk -bWM -bXm -bWg -bYF -bWg bUP bST aab -cbC -wUP -byX -cdz +uRi +xFn +trF +gar aab aab aaa @@ -98478,87 +89790,100 @@ aaa aaa bxM aab -aax -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (64,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -98583,7 +89908,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -98662,160 +89987,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byZ -bzX +bIP +xFn +trF +bLw aab bBX bCR -cXC -bFu -bFz +bRc +cOk +cXJ +cXJ +cXJ +bVh +bWl +cXI +cXI bFZ -bFz -bFz -bFz -bFZ -bFz -bPy -bLk +iyH bLJ -bNX +cpE +cXC +bEF +cvU +cyg +mGy +cEp +bLJ +lWu +xrg +bPy +euD +fzR +bVr bNw -bPc -bOj +cWL +ccZ dRM cDq -cvd -bLJ -bSk -bTb -bSV -bUP -bUP -bUQ -bUQ -bUQ -bUP -bUP -bUP bUP bST aab -cbC -cCV -byX -cdz +uRi +xFn +trF +gar +aab +aab +aab aab -aaa -aaa -aaa aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab bxM aab -aax -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (65,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -98835,8 +90160,8 @@ aaA aaA aaA aaA -aaA -aaA +aco +aco aaA aaA aaA @@ -98919,160 +90244,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byZ -bzX +bIP +xFn +trF +bLw aab bBX bCR -bDD -bEJ -bEJ -bEF -bFw -bFw -bFw -bEF -bLk -bMz -bDD +eia +cOk +cXJ +cOk +bCR +bCR +bWz +bCR +cXJ +neT +cki bLJ -bMi +cpF +crq +sEy +cvV +cyh +hhm +rMq +bLJ +uFe +gbw +tKL +tLA +tLA +tLA bPu -bPs -bOj +qsj +qsj cDe -cBc -bQL -bLJ -bSl -bTc -bTX -bTX -bTX -bTX -cgl -bXn -bXn -cnz -bSV -bSU +gFI +bUP bST -bSc -bzS -wUP -byX -cdz aab -aaa -aaa -aaa +uRi +bTV +trF +gar +aab +aab +aab +aab aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (66,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx aaa aaa aaa @@ -99109,7 +90434,7 @@ aaA aaA abY aeG -acw +afB ajw ahf ahd @@ -99176,160 +90501,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -vFP -byZ -bzW -aav +bIP +bIU +bKf +bLw +aab bBX bCR +bRd +bRY +cCX +cIb bCR -bCR +bVj +bWB +cax +cXJ +kNb +uPt +cok +cpG +bKE +bLj bEJ -bEJ -bEF -bFw -bEF +cyp +rDr +rDr +bOP bLk -bLk -bCR -bCR -bLJ -bLJ -bLJ -bLJ +gZM +bQG +bUP +bTe +bWK +cVT +bYD bOi -bLJ -bBX -bBX -bBX -bSm -bTd +cDe +ctk +bUP +bST +aab +uRi bTY -bUS -bUS -bWl -bWl -bXo -bUS -bUS -bSV -bZP -bZO -ucq -ucq -cCW -byX -cdz -aab -aaa -aaa -aaa +srA +cxI +aav +aav aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +bxM +aav bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (67,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -99371,7 +90696,7 @@ bdb acw ahd ahP -aiI +ahx alg amq aiI @@ -99433,66 +90758,53 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -uKM -byZ -bzY +bIP +xFn +bKk +bLw aab -aab -bBX bBX bCR -bDD -bEJ -bGD -bHo -bLv -bLk -bDD +bRe +cOk +cXJ +cOk bCR -bBX -bBX -bBX -bME -bPv -bOt -ufs -bBX +bCR +bWN +bCR +cXJ +neT +cko +bLJ +cpH +crD +xYL +cvW +bMN +cys +geJ +bLJ +uFe +uBL +pwk +bUP +bPu +qsj +qsj +cWR +dAU +cDe +fgm +bUP +bST +aab +uRi +uWV +trF +gar aab -bBX -bBX -bSU -bSU -cWS -bVy -bWm -bWO -bXp -bXS -bYH -bSV -bZP -cBu -cBr -cCQ -bza -byX -cdz aab -aaa aaa aaa aac @@ -99506,87 +90818,100 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aax +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (68,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -99609,7 +90934,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aco @@ -99690,66 +91015,53 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bwP -bxS -bzb -tnV -bzY -aab -aav -bBX -bCR -bCR -cDb -bCR -bHs -bCR -cDb -bCR -bCR -bBX -aab -bBX -bBX -bPv -bOo -gra -bBX -aab +bIP +xFn +bKk +bLw aab bBX +bCR +bRf +bSc +bSt +bSt +bSt +bSt +bWP +cXJ +cXJ +neT +bNh +bLJ +cpJ +cXC +bLl +cvX +cyr +mGy +cEI +bLJ +lWu +uBL +tKL +bUP +gSi +cUt +lNx +cWU +qsj +ePb +qsj +bUP bST -bBX -bSU -bSU -bSU -bSU -bSU -bSU -bSU -bBX -bBX -bST -caY -vFP -cCX -iVC -bzX aab -aaa +uRi +uWV +trF +gar +aab +aab aaa aaa aac @@ -99763,87 +91075,100 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aax +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (69,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -99947,64 +91272,51 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -bxT -bzT -uLR -tnV -bBY -aav -aav -bBX -bCR -bCR -bCR -bCR -bCR -bCR -bCR -bBX -aab -aab +bIP +xFn +bKk +bLw aab bBX -bPv -bOp -ufs -bBX +bCR +bRg +bSd +cXK +bTn +cXK +cXK +cXK +bTn +cXK +nkH +bNh +bLJ +cpS +crE +ctP +bMN +cys +fMI +cEL +bLJ +dzA +uBL +tKL +bUP +bUP +tLA +tLA +tLA +bUP +bUP +bUP +bUP +bST aab -aab -aab -aav -bST -bST -bST -bST -bST -bST -bST -bST -bST -aav -cap uRi -eia -tln -cbE -aab +pGt +trF +gar aab aaa aaa @@ -100020,87 +91332,100 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aax +aab +aab +aab +aab +aab +aab +aab +aab aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (70,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -100204,64 +91529,51 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -bxT -vxz -uLR -tnV -bBY -aab +bIP +xFn +bKk +bLw aab bBX -bBX -bBX -bBX -bBX -bBX -bBX -aab -aab -aab -aab -bBX -bPw -bOo +bCR +cIb +bSi +bSi +cOk +cXJ +cXJ +cXJ +cOk +bNh +qUA +cIb +bLJ +cpX +crF +ctQ +bMN +cyt +xSQ +cEf +bLJ +nlB +bPJ +hVf +hVf +hVf +hVf +cVV +uiC +uiC bQj -bBX -aab -aab -aab -aav -aab -aab -aab -aab -aab -aab -aab -aav -aab -bzS -ddh -eia -tln -cbE -aaa -aab +tKL +qVj +bST +tDk +cvE +uWV +trF +gar aab aaa aaa @@ -100278,86 +91590,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (71,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -100461,64 +91786,51 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -bAc -fsj -uLR -tnV -bBY -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav +bIP +xFn +bKk +bLe aav bBX -bPx -bOo -cDf +bCR +bCR +bCR +bSi +bSi +cOk +cXJ +cOk +bNh +bNh +bCR +bCR +bLJ +bLJ +bLJ +bLJ +bql +bLJ bBX -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -bDC -uRi -eia -tln +bBX +bBX +cHY +cLD +cNb +vEP +vEP +cUw +cUw +cXd +vEP +vEP +tKL +eov +jhY cbE -aaa -aaa -aab +cbE +cwf +trF +gar aab aaa aaa @@ -100535,86 +91847,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (72,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -100718,160 +92043,160 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aab -bAc -fsj -uLR -tnV -bzY -aab -aav -aab -aab -aab -aab -aav -aab -aab +bIP +bTV +bKk +kjg aab aab bBX -bPv -bOo -ufs +bBX +bCR +cIb +bSi +cvA +bVf +bWQ +bNh +cIb +bCR +bBX +bBX +bBX +oPN +ewm +cwa +cyu bBX aab +bBX +bBX +qVj +qVj +uQh +hcq +cUy +cVW +cXf +dCu +eTx +tKL +eov +mGB +pTt +bzZ +vMw +trF +gar aab -aab -aav -aab -aab -aab -aab -aab -aab -aab -bDC -uRi -eia -tln -caZ -aac -aac -aac -aav -aav -aac -aac -aac -cgI -aac -aac -aac -aac -aac -aac -aac +aaa +aaa +aaa aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bxM -aav +aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (73,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -100975,64 +92300,51 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aab -aab -bAc -vxz -uLR -bKH -bzY -aav -aab -aab -aab +bIP +bIV +bKC +exl +kjg aab aav -aab -aab -aab +bBX +bCR +bCR +cIy +bCR +bVo +bCR +cIy +bCR +bCR +bBX aab bBX -bPv -bOo -gra +bBX +ctR +cwb +cyx bBX aab aab -aab -aav -aab -aab -aab -aab -aab -aab -bzS -cnO -eia -tln -bzV -aaa -aaa -aaa -aab -aab +bBX +bST +bBX +qVj +qVj +qVj +qVj +qVj +qVj +qVj +bBX +bBX +bST +msA +xFn +pIr +bLd +bLw aab aaa aaa @@ -101049,86 +92361,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (74,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -101232,63 +92557,50 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab -aaa -aaa -aab -aab -aab -bAc -fsj -bFX -bKa -bBY -aab -aab -aab -aaa -aac -aaa -aab -bBX -bBX -bBX +bIW +bKR +bMr +exl bPv -bOo -ufs -bBX +aav +aav bBX +bCR +bCR +bCR +bCR +bCR +bCR +bCR bBX aab -aac -aaa -aaa -aaa -aaa -aaa -bzS -cCT -cBn -tln -bzV aab -aaa -aaa -aaa -aaa +aab +bBX +ctR +cwc +cyu +bBX +aab +aab +aab +aav +bST +bST +bST +bST +bST +bST +bST +bST +bST +aav +jiT +xiH +bWf +bTB +oex aab aab aaa @@ -101306,86 +92618,99 @@ aaa bxM aab bxM +aab +aab +aab +aab +aab +aab +aab +aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (75,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -101440,7 +92765,7 @@ ahV ahV ahd abY -acw +aUU aeG abY aaA @@ -101489,62 +92814,49 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa -aaa +bIW +bMt +bMr +exl +bPv aab aab -aab -aab -bAc -fsj -uLR -tnV -bzY -aab -aab -aaa -aac -aaa -aab bBX -bMP -bNh -bPI -bOq -cDj -bPJ -cCZ +bBX +bBX +bBX +bBX +bBX bBX aab -aac -aaa -aaa -aaa -aaa -bxN -uRi -eia -tln -bzV aab aab -aaa -aaa -aaa +aab +bBX +ctS +cwb +cyy +bBX +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +aav +aab +cvE +bSe +bWf +bTB +oex aaa aab aab @@ -101563,25 +92875,6 @@ aaa bxM aab bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -101591,64 +92884,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (76,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -101687,7 +93012,7 @@ aiM ahS aln ams -ank +ajx are arw aqY @@ -101697,7 +93022,7 @@ auE avu ahd abY -acw +afa aeG abY aaA @@ -101746,61 +93071,48 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa -aab -aab -aab -aab -aab -bAc -vxz -uLR -tnV -bzY -aab -aaa -aac -aaa -aab +nov +bNo +bMr +exl +bPv +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav bBX -bMk -bMN -bPI -bOr -bTv -bNA -cDa +ctT +cwb +cyz bBX -aab -aac -aaa -aaa -aaa -bxN -ddh -eia -tln -bzV -aab -aab -aab -aaa -aaa +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +bRa +xiH +bWf +bTB +oex aaa aaa aab @@ -101820,25 +93132,6 @@ aaa bxM aab bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -101848,64 +93141,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (77,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -102003,100 +93328,68 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa aab +nov +bNo +bMr +exl +kjg +aab +aav aab aab aab aab +aav +aab +aab aab -bAc -fsj -uLR -tnV -bzY -aaa -aac -aaa aab bBX -bMl -bMO -bPM -bOs -cDl -bNA -cCZ +ctR +cwb +cyu bBX aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +bRa +xiH +bWf +bTB +mPW aac -aaa -aaa -bxN -uRi -eia -tln -bzV -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aab -aab -aaa -aaa -aaw aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac +aav +aav +aac +aac +aac +wjn +aac +aac +aac +aac +aac +aac +aac +aac +bxM +aav bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -102105,64 +93398,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (78,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -102192,7 +93517,7 @@ aaA aaA aaA abY -aeG +aeJ acw abY ahd @@ -102203,7 +93528,7 @@ alp amu anl atC -ary +ayw ara asz ahS @@ -102260,63 +93585,50 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa aab aab +nov +bMt +bMr +bSk +kjg +aav aab aab aab aab +aav +aab +aab aab -bAc -fsj -uLR -tnV -bJf -aac -aaa aab bBX -bMm -bPC -bPN -bQG -cDm -cDi -cCZ +ctR +cwb +cyx bBX aab -aac -aaa -bxN -uRi -eia -tln -bzV aab +aab +aav +aab +aab +aab +aab +aab +aab +cvE +eVg +bWf +bTB +fQa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +aab aab aab aaa @@ -102333,93 +93645,106 @@ aaa aaa bxM aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (79,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -102512,73 +93837,60 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaw aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa aab aab aab +nov +bNo +bSm +bSx +bPv aab aab aab +aaa +aac +aaa aab -aab -bAc -vxz -uLR -tnV -bKd -bIY -chv bBX -bMn -bMn -bMn -bOu -bMn -bMn -bMn bBX -bSc -bTe -bzS -ddh -eia -tln -bBW -aav -aac -aac -aac -aac -aac -aac -aac -aac -aav -aav -aav -aac -aac +bBX +ctR +cwb +cyu +bBX +bBX +bBX +aab aac +aaa +aaa +aaa +aaa +aaa +cvE +dEO +eVi +bTB +fQa +aab +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa aac aaa aaa @@ -102590,93 +93902,106 @@ aaa aaa bxM aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aaa +acx +acx bLH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (80,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -102715,7 +94040,7 @@ aiM ahS alq ams -ank +ajz are arw aqY @@ -102774,19 +94099,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa @@ -102794,35 +94106,45 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -bxT -fsj -uLR -ucq -ucq -bMG -iyH -bNY -bRT -bPQ -bXM -cuV -iyH -cve -iyH -ucq -ucq -ucq -eia -tln -bzV -aav +nov +bNo +bMr +exl +kjg +aab aab aaa +aac +aaa +aab +bBX +cpY +crG +cub +cwh +cyE +cAI +cEN +bBX +aab +aac +aaa +aaa +aaa +aaa +vWi +xiH +bWf +bTB +fQa +aab +aab +aaa +aaa +aaa +aaa +aab +aab aaa aaa aaa @@ -102831,16 +94153,6 @@ aaa aaa aaa aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -102848,25 +94160,6 @@ aaa bxM aab bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -102876,64 +94169,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (81,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -103031,19 +94356,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa @@ -103051,50 +94363,50 @@ aab aab aab aab +aab +nov +bMt +bMr +exl +kjg +aab +aaa +aac +aaa +aab +bBX +cOs +crH +cub +cwi +cyF +cAL +cFd +bBX +aab +aac aaa aaa aaa -aaa -aaa -aaa -bxT -fsj -dQa -dQa -bML vWi -vWi -bPH -bQT -bOw -caX -vWi -cvf -dQa -dQa -dQa -dQa -tln -bzV +bSe +bWf +bTB +fQa +aab aab -aav aab aaa aaa aaa aaa +aab +aab +aaa +aaa +aaa aac aaa -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -103105,25 +94417,6 @@ aaa bxM aab bxM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -103133,64 +94426,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (82,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -103231,7 +94556,7 @@ als amu anl atC -ary +ayW ara asC ahS @@ -103288,61 +94613,43 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aaa aaa -aaa aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bLl -bJg -bJg -bMS -bQU -bXT -cbD -bQs -bJg -bJg -bJg -bLl -bJg -bJg -aaa -aaa -aac -aaa -aaa -aaa -aaa +aab +aab +aab +bSB +bNo +bMr +exl +kjg aaa aac aaa aab +bBX +cOA +crI +cug +cwj +cyG +cAL +cEN +bBX +aab +aac +aaa +aaa +vWi +xiH +bWf +bTB +fQa +aab aab aab aab @@ -103350,8 +94657,13 @@ aaa aaa aaa aaa +aab +aab aaa aaa +aaw +aac +aaa aaa aaa aaa @@ -103362,25 +94674,6 @@ aaa bxM aab bxM -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -103390,64 +94683,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (83,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -103545,11 +94870,42 @@ aaa aaa aaa aaa +aab aaa aaa +aab +aab +aab +aab +aab +aab +aav +nov +bNo +bMr +exl +cay +aac aaa +aab +bBX +cTT +crJ +cum +mAH +cyM +cAW +cEN +bBX +aab +aac aaa -aaa +vWi +xiH +bWf +bTB +fQa +aab aaa aaa aaa @@ -103559,57 +94915,13 @@ aaa aaa aaa aab -aaa -aaa -aaa aab -aab -aab -aaa -aaa -aab -aab -aab -aab -aaa aaa aaa aaa aac aaa aaa -bMT -bJg -bOy -bJg -bQt -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aac -aaa -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -103618,26 +94930,7 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +czp aab aab aab @@ -103647,64 +94940,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (84,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -103743,7 +95068,7 @@ aiM ahS alt ams -ank +apJ are arw aqY @@ -103802,25 +95127,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aab -aab aab aaa aaa @@ -103829,42 +95135,48 @@ aab aab aab aab -aaa -aaa -aaa -aac -aac -aac -bMU -aac -bOz -aac -bQu -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aaa aab +aav aab -aab -aab -aaa -aaa -aaa -aaa -aaa +nov +bMt +bMr +exl +ceE +bQI +ckC +bBX +lSK +lSK +lSK +cwp +lSK +lSK +lSK +bBX +tDk +cLE +cvE +bSe +bWf +bTB +bPt +aav +aac +aac +aac +aac +aac +aac +aac +aac +aav +aav +aav +aac +aac +aac +aac aaa aaa aaa @@ -103875,26 +95187,7 @@ aaa aaa bxM aab -bxM -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +czp aab aab aab @@ -103904,64 +95197,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (85,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx aaa aaa aaa @@ -104059,25 +95384,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aab -aab aab aaa aaa @@ -104085,73 +95391,60 @@ aab aab aab aab -aab -aaa aaa aaa aac aaa aaa -aaa -bNE -bOz -bPR -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aaa -aac -aaa -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bxM +bIW +bNo +bMr +cbE +cbE +ckM +bWh +cpZ +cEP +cur +cwr +cyR +bWh +bHn +bWh +cbE +cbE +cbE +bWf +bTB +fQa aav +aab +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bxM -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab aab +bxM aab aab aab @@ -104161,64 +95454,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (86,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -104259,7 +95584,7 @@ alv amu anp auF -anp +aAb ara asF ahS @@ -104317,98 +95642,66 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aab -aaa -aaa aaa aaa aab aab aab aab -aab -aaa aaa aaa aac aaa aaa aaa -aaa -bOA -aaa +bIW +bNo +mCJ +mCJ +ckS +cot +cot +crL +cus +cws +cyU +cot +bWq +mCJ +mCJ +mCJ +mCJ +bTB +fQa +aab +aav +aab aaa aaa aaa aaa aac aaa -aaa -aaa -aaa -aac -aaa -aaa aab aab aab -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab aab aab aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxM +aab +bxM aab aab aab @@ -104418,64 +95711,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (87,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -104506,7 +95831,7 @@ aaA aaA abY acw -aeG +bJa abY ahd ahd @@ -104527,9 +95852,9 @@ abY abY aeG acw +cfw acw -aeI -cLY +aMt abY aaA aaA @@ -104574,33 +95899,12 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aaa aaa aaa aab -aaa -aaa -aaa -aaa aab aab -aab -aab -aaa -aaa aaa aaa aac @@ -104608,7 +95912,26 @@ aaa aaa aaa aaa -bOB +bQv +bQv +ciH +bTU +bQv +bQv +crN +cut +cwv +cyV +cAX +bQv +bQv +bQv +xzj +bQv +bQv +aaa +aaa +aac aaa aaa aaa @@ -104616,56 +95939,26 @@ aaa aaa aac aaa -aaa -aaa -aaa -aac -aaa -aaa -aab -aab -aab -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxM +aab +bxM aab aab aab @@ -104675,64 +95968,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (88,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -104773,7 +96098,7 @@ aoy aoE aoI awq -amy +aoI cFm cHi cHj @@ -104785,8 +96110,8 @@ acw aeH adr adr -afD -aeG +adr +afE abY aaA aaA @@ -104795,9 +96120,9 @@ aaA aaA aaA aaA +aco aaA -aaA -aaA +aco aaA aaA aaA @@ -104839,35 +96164,22 @@ aab aab aab aab +aav aab aab aab aab aab aab +aav aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aac -aaa -aaa -aaa -aaa -bOC aaa aaa +crO +bQv +cwz +bQv +cBg aaa aaa aaa @@ -104879,50 +96191,31 @@ aaa aac aaa aaa -aab -aab -aab +aaa +aaa +aaa aac aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxM aab -aab -bvx -aab -aab -aab -aab -aab -aab +bxM aab aab aab @@ -104932,64 +96225,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +jEf +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (89,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -105052,13 +96377,13 @@ aaA aaA aaA aaA +aco aaA aaA -aaA -aaA -aaA -aaA -aaA +aco +aco +aco +aco aaA aaA aaA @@ -105096,87 +96421,58 @@ aab aab aab aab +aav aab aab aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav +aac +aac +aac +crQ +aac +cwA +aac +cBk +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac aac aaa -aaa -aaa -aaa -bOD -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aaa -aac -aaa -aaa -aab -aab -aab -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab aaa -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxM +aab +bxM aab aab aab @@ -105186,67 +96482,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (90,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -105353,21 +96678,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -105376,64 +96687,49 @@ aab aab aav aab -aab -aab -aab -bOE -aab -aab -aab -aab -aab -aav -aab -aab -aab -aab -aav -aab -aab -aab -aab -aab +aaa +aaa +aaa +cuu +cwA +cyX +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa aac aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac aaa aab aab aab aab aaa -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxM +aav +bxM aab aab aab @@ -105443,67 +96739,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (91,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -105580,7 +96905,7 @@ aaA aaA aaA aaA -aaA +aco aaA aab aab @@ -105610,21 +96935,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -105633,23 +96944,24 @@ aab aab aav aab -aab -aab -aab -bOE -aab -aab -aab -aab -aab -aav -aab -aab -aab -aab -aav -aab -aab +aaa +aaa +aaa +aaa +cwB +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aac +aaa +aaa aab aab aab @@ -105675,22 +96987,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab aab aab aab @@ -105700,67 +96996,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (92,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -105789,12 +97114,12 @@ aaA aaA aaA abY -acw -acw -aeG -abY +adR +adr +afF abY aaA +aaA ahd amA aoz @@ -105867,21 +97192,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -105890,23 +97201,24 @@ aab aab aav aab -aab -aab -aab -bOE -aab -aab -aab -aab -aab -aav -aab -aab -aab -aab -aav -aab -aab +aaa +aaa +aaa +aaa +cwC +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aac +aaa +aaa aab aab aab @@ -105932,22 +97244,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab aab aab aab @@ -105957,67 +97253,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (93,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -106046,10 +97371,10 @@ aaA aaA aaA abY -adR -adr -afF -aMt +acw +abY +axR +abY ahf ahd ahd @@ -106075,7 +97400,7 @@ aeG cQn acw cQr -acw +aXy abY aaA aaA @@ -106124,21 +97449,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -106146,27 +97457,28 @@ aab aab aab aav -aav -aav -aav -aav -bOE -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav +aab +aaa +aaa +aaa +aaa +cwE +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aac +aaa +aaa +aab +aab +aab aac aaa aaa @@ -106189,22 +97501,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab aab aab aab @@ -106214,67 +97510,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (94,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -106305,7 +97630,7 @@ aaA abY acw abY -aeJ +aeG acw ahf ahX @@ -106381,21 +97706,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -106404,30 +97715,28 @@ aab aab aav aab -aab -aab -aab -bOE -aab -aab -aab -aab -aab -aav -aab -aab -aab -aab -aav -aab -aab -aab -aab -aab aaa aaa aaa aaa +cwL +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa +aac +aaa +aaa +aab +aab +aab +aac aaa aaa aaa @@ -106450,19 +97759,6 @@ aaa aaa aaa aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -106471,67 +97767,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (95,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -106562,8 +97887,8 @@ aaA abY acj abY -aeK -afE +aeJ +acw ahf ahY aiU @@ -106571,7 +97896,7 @@ akn akm ahd anu -aoH +auh beb ahV ahV @@ -106584,8 +97909,8 @@ aaA aaA aaA abY -aeI -afD +acw +aeG abY abY abY @@ -106638,21 +97963,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -106664,7 +97975,8 @@ aab aab aab aab -bOE +aab +cwO aab aab aab @@ -106681,19 +97993,19 @@ aab aab aab aab +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aaa aaa aaa @@ -106709,86 +98021,99 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (96,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -106819,7 +98144,7 @@ aaA abY aCy abY -aeG +aeY agl ahg ahZ @@ -106828,7 +98153,7 @@ akm akm ahd anv -aoH +auh apR arh asL @@ -106841,8 +98166,8 @@ aaA aaA aaA abY -aeG acw +aeG abY aaA aaA @@ -106895,21 +98220,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -106921,7 +98232,8 @@ aab aab aab aab -bOE +aab +cwO aab aab aab @@ -106938,19 +98250,19 @@ aab aab aab aab +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aaa aaa aaa @@ -106962,22 +98274,6 @@ aaa aaa aab aab -csX -csX -csX -csX -csX -csX -csX -csX -csX -csX -csX -aab -aab -aab -aab -aab aab aab aab @@ -106985,67 +98281,96 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (97,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -107084,9 +98409,9 @@ aiW akm alA ahd -ann -aoH -aiJ +aqy +axE +bES aiJ asM atH @@ -107098,8 +98423,8 @@ aaA aaA aaA abY -aeG -aCy +acw +bac abY aaA aaA @@ -107152,21 +98477,7 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav aab aab aab @@ -107178,7 +98489,8 @@ aab aab aab aab -bOE +aab +cwO aab aab aab @@ -107195,41 +98507,8 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aaa -aab -aab -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX +aac +aaa aab aab aab @@ -107250,59 +98529,105 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (98,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -107343,7 +98668,7 @@ akm ahd anv aoH -apP +bHU ari asN atH @@ -107355,8 +98680,8 @@ abY abY abY abY -aeG acw +aeG abY aaA aaA @@ -107409,84 +98734,38 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aav -aab -aab -aab -aab -bOE -aab -aab -aab -aab -aab aav -aab -aab -aab -aab aav -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +cwO +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aac aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aaA -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX aab aab aab @@ -107507,59 +98786,105 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +bvx +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (99,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -107585,12 +98910,12 @@ aaA aaA aaA abY -ayy -acw -vDO -acw -acw -aeG +bXl +adr +adr +adr +aqf +afD acw ahf aib @@ -107612,8 +98937,8 @@ acw acw aMt acw -aeG acw +aeG abY abY abY @@ -107622,6 +98947,12 @@ aaA aco aaA aaA +aco +aco +aco +aco +aaA +aaA aaA aaA aaA @@ -107631,33 +98962,6 @@ aaA aaA aaA aaA -aaA -aaA -aaA -aaA -aaA -aaA -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -107692,7 +98996,15 @@ aab aab aab aab -bOF +aab +aab +aav +aab +aab +aab +aab +aab +vTr aab aab aab @@ -107732,18 +99044,6 @@ aab aab aab aab -aaA -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX aab aab aab @@ -107752,71 +99052,96 @@ aab aab aab aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (100,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -107842,12 +99167,12 @@ aaA aaA aaA abY -acx -acW -adr -aiH -adr -afD +aUL +afP +afB +acw +abY +aMt bmL ahf aic @@ -107869,8 +99194,8 @@ acw acw acw acw -aeG acw +aeG acw aEc abY @@ -107879,6 +99204,9 @@ aaA aaA aaA aaA +aco +aaA +aco aaA aaA aaA @@ -107891,30 +99219,6 @@ aaA aaA aaA aaA -aaA -aaA -aaA -aab -aab -aab -baZ -aYN -aYN -aYN -bfJ -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -107949,7 +99253,15 @@ aab aab aab aab -bOE +aab +aab +aav +aab +aab +aab +aab +aab +cwO aab aab aab @@ -107982,25 +99294,8 @@ aab aab aab aab -aaa -aab -aab -aab -aab -aaA -aaA -aaA -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX +aab +aab aab aab aab @@ -108013,67 +99308,97 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (101,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -108122,14 +99447,14 @@ aaQ avy aaQ aaQ -axH +bVE aaQ acw acw -cJV -adr +aMt +aeH afE -ayy +cbP abY aaA aaA @@ -108154,32 +99479,11 @@ aab aab aab aab -bba -bcf -bdg -bev -bba -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bCx +cAd +cAd +cAd +bHL aab aab aab @@ -108206,7 +99510,15 @@ aab aab aab aab -bOE +aab +aab +aav +aab +aab +aab +aab +aab +wdC aab aab aab @@ -108231,33 +99543,6 @@ aab aab aab aab -cOp -cOp -cOp -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaA -aaA -aaA -aaA -csX -ctU -ctU -ctU -ctU -cwD -ctU -ctU -ctU -ctU -csX aab aab aab @@ -108269,68 +99554,108 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (102,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -108352,12 +99677,12 @@ afJ abm atJ aca -abe +adL abe abH agn acz -abe +afm uFf adS aeL @@ -108414,7 +99739,7 @@ aab bba bcg bQO -bcg +bGu bba aab aab @@ -108437,43 +99762,30 @@ aab aab aab aab +aav aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +caT +wTC +wTC +wTC +wTC +wTC +wTC +wTC +cwP aab aab aab aab aab aav -aav -aav -aav -aav -bOE -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav +aab +aab +aab +aab aav aab aab @@ -108487,34 +99799,6 @@ aab aab aab aab -cOp -abc -abc -abc -cOp -aab -aab -aab -aab -aab -aab -aab -aaA -aaA -aaA -aaA -aaA -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX aab aab aab @@ -108526,68 +99810,109 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (103,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -108609,7 +99934,7 @@ abx abn abs abs -abs +aen abs abI adQ @@ -108632,7 +99957,7 @@ aqc aqc asP aqc -aqc +bIJ avE awv dWs @@ -108664,36 +99989,15 @@ aaA aaA aaA aaA -aWM -aXN -aYN -aYN -bbb -bch +aab +aab +aab +aab +bba +bew bdi bew -bfK -aYN -aYN -aYN -bfJ -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bba aab aab aab @@ -108720,7 +100024,15 @@ aab aab aab aab -bOE +caV +aab +aab +aab +aab +aab +aab +pkz +aav aab aab aab @@ -108743,38 +100055,6 @@ aab aab aab aab -cOp -cRN -cUR -cQP -cQQ -abc -cOp -aab -aab -aab -aab -aaA -aaA -aaA -aaA -aaA -aco -aaA -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX -aab -aab -czd aab aab aab @@ -108783,68 +100063,113 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (104,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -108864,7 +100189,7 @@ aaQ aaQ aaQ abo -abt +acV abv aaQ aaQ @@ -108882,17 +100207,17 @@ aif aja xag anU -nUG +atW apa arj atb avc avJ avO -atW +bQa ayR aPu -dWs +aHq aCU aaV azy @@ -108916,45 +100241,24 @@ aaA aaA aaA aaA -ahf -ahf -ahf -ahf -ahf +aaA +aaA +aaA +aaA +aaA aWM aZQ -bbe -bci +cAd +cAd beA bgV -bcj +bFh bye czT -cAa -cAb cAd -biH -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +cAd +cAd +bHL aab aab aab @@ -108977,7 +100281,15 @@ aab aab aab aab -bOG +caV +aab +aab +aab +aab +aab +sVb +aab +aav aab aab aab @@ -109000,35 +100312,6 @@ aab aab aab aab -cOp -abc -abc -abc -abc -abc -cOp -aab -aab -aab -aaA -aaA -aaA -aaA -aaA -aaA -aco -aaA -csX -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -ctU -csX aab aab aab @@ -109040,68 +100323,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (105,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -109126,7 +100451,7 @@ abk abk aaA aaA -abp +abY acC acY uFf @@ -109165,28 +100490,28 @@ aaA aco aaA aaA -ahf -ahf -ahf -ahf -ahf -ahf -ahf -ahf -ahf -acw -acw -acw -aVM -aWN +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +beQ +beQ +beQ +beQ +beQ +aWM baf aZR bcj bfL bgU -bhY -bgU -bgU +czX +bGC +bHN czU czY cAe @@ -109208,33 +100533,20 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aav aab aab aab aab -bOF +caV +aab +aab +aab +aab +pkz +aab +aab +aav aab aab aab @@ -109257,108 +100569,121 @@ aab aab aab aab -cOp -abc -abc -abc -abc -boY -cOp -aab -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -csX -ctU -ctU -ctU -ctU -cwE -ctU -ctU -ctU -ctU -csX -cyI -aab -aab -aab -cyI aab aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (106,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -109383,9 +100708,9 @@ aaA aaA aaA aaA -abp +abY acD -boY +afa uFf adW xmV @@ -109407,7 +100732,7 @@ aqd azd awy axS -nUG +aAV aaV azA aAO @@ -109422,28 +100747,28 @@ aaA aco aaA aaA -ahf -cOs -adr -adr -adr -adr -adr -aQB -afE -acw -afB -cgp -acw -aWM +beQ +beQ +beQ +beQ +beQ +beQ +beQ +beQ +beQ +cSj +cSj +cSj +blF +boi cIJ bbf -bdj +czX bfM -bcj +bDu bhZ -bcj -bcj +bDu +bDu bng czZ cBb @@ -109465,33 +100790,20 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aav aab aab aab aab -bOH +caV +aab +aab +aab +pkz +aab +aab +aab +aav aab aab aab @@ -109515,107 +100827,120 @@ aab aab aab aab -cOp -aAb -abc -abc -abp -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -csX -csX -cuP -cuP -cuP -cwF -cuP -cuP -cuP -csX -csX -cyn -aab -aab -aab -cyn aab aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (107,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -109640,9 +100965,9 @@ aaA aaA aco aaA -abp +abY acD -abc +acw uFf adX aeO @@ -109679,27 +101004,27 @@ aaA aaA aaA aaA -ahf -aeG -acw -acw -acw -afB -acw +beQ +aWJ +aYf +aYf +aYf +aYf +aYf bUO -aGz +bsb cSj cdW -cSj +bjO cSj aWM bbc bbg bdk bfN -bia +czX bib -bHM +czX czX czW cAc @@ -109722,157 +101047,157 @@ aab aab aab aab -aab -aab -bvx -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aav aab aab aab aab -bOE +caV aab aab +pkz +aab aab aab aab aav -aab -aab -aab -aab +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav aav aab aab aab aab aab -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -aDB -abp -abp -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -csX -cvZ -cAY -cCn -cFh -cFh -cFh -cFh -cGL -csX -cyn -cyW -cze -cyW -cyn aab aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (108,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -109897,9 +101222,9 @@ aaA aaA aco aaA -abp +abY acD -cOv +ayy uFf adY aeP @@ -109936,53 +101261,32 @@ aaA aaA aaA aaA -ahf -aeG -aMh -aMh -aMh -aMh -aMh -aMh +beQ +bok +cSj +cSj +bmd +cdW +cSj +bcM aRn -aMh -aMh -aMh -aMh +cSj +cdW +bmd +cSj aWM cIK bbh bdl bgS -aXT +bDv bck -bck -aXT +bGD +bHO bfP -aXT +bKz bic -biI -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +biH aab aab aab @@ -110005,131 +101309,152 @@ aab aab aab aab -bOG +caV aab +sVb aab aab aab aab -aaA -aab -aab -aab aab aav -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -abc -abp -aaA -aaA -aaA -aaA -aaA -aaA -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -csX -cwd -cBf -cCo -cFo -cGI -cGG -cFh -cGM -csX -cyn -cxd -cxd -cxd -cyn +aab +aab +aab +aab +aab +aav +aab +aab +aab +aab +aav aab aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (109,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -110154,9 +101479,9 @@ aaA aaA aaA aaA -abp +abY acD -abc +acw adu adu adu @@ -110193,53 +101518,32 @@ aaA aaA aaA aaA -ahf -aeG +beQ +bok +aMh +aMh +aMh +aMh +aMh aMh -aNd -aOd -aOQ -aPI -aPJ aUN -avC -aTu -aWJ -aVN +aMh +aMh +aMh +aMh aWM -aXT -aXT +bss +bvH bex -bfM +bCy aXT cIU -bez -bfO +cIU +aXT bfQ -bfO +aXT bid -biH -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bMK aab aab aab @@ -110262,63 +101566,26 @@ aab aab aab aab -bOF +caV +pkz aab aab aab aab aab -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aco -abp -abc -abp -aaA -aaA -aaA -aaA -aaA -aaA -aco -aco -aco -aco -aco -aaA -cqg -cqg -ctV -ctV -ctV -ctV -cwI -ctV -cxD -cxD -ctV -csX -cyn -cyn -czf -czr -cyn +aab +aav +aab +aab +aab +aab +aab +aav +aab +cUz +cUz +cUz +cUz aab aab aab @@ -110328,59 +101595,117 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (110,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -110402,6 +101727,8 @@ aab aaA aaA aaA +aco +aco aaA aaA aaA @@ -110409,11 +101736,9 @@ aaA aaA aaA aaA -aaA -aaA -abp +abY cSW -abc +acw adu adZ bbU @@ -110427,14 +101752,14 @@ alG amE anF aoV -aqf +abJ arn arn arn bJo azd awz -dWs +aHq aCU any azD @@ -110449,29 +101774,29 @@ aaA aaA aaA aaA -ahf -ahf -aeG +beQ +beQ +bok aMh aNe aOe aOR bbl -aQD -aeG -aMh +bcO +cQw +bfZ aTv aUM aYc -aMh -aaR -aYQ +aWM +aXT +aXT bbs -bey +bfN aXT bdn bez -cXF +bfO bHe bfO bie @@ -110493,20 +101818,12 @@ aab aab aab aab +aav aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +cbi aab aab aab @@ -110519,63 +101836,17 @@ aab aab aab aab -bOH -aab -aab -aab -aab -aab aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -abp -abc -abp -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -aco -aco -aaA -aaA -cqg -cte -cko -cwe -cqk -cwf -cwJ -cvH -cxE -cwf -cSP -cyv -ctK -cyj -cvH -czs -cyn +cUz +cUz +cUz +bFH +bFH +cUz +cUz +cUz +cUz +cUz aab aab aab @@ -110585,59 +101856,113 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (111,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -110663,14 +101988,14 @@ aaA aaA aaA aaA +aco aaA aaA aaA aaA -aaA -abp +abY aJN -abc +acw adu aea aeQ @@ -110692,7 +102017,7 @@ bJo azd awA aBV -aDe +azQ ayC azE aAH @@ -110706,54 +102031,33 @@ aaA aaA aaA aaA -ahf -bmL -aeG +beQ +beQ +bok aMh aNg -aOf -aOS +aZU +bbb aRr aQD beB -aSq -beQ +aMh +bhJ cSl -beQ -aSq +blI +aMh aaR aYQ aZZ -bbo -aWM +bCz +aXT cIV -blR +bez bmp bRm -boi +bfO bif -bbb -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +biH aab aab aab @@ -110776,17 +102080,13 @@ aab aab aab aab -bOH +xlk +aab aab aab aab aab aaA -aaA -aaA -aaA -aco -aco aco aaA aaA @@ -110794,45 +102094,19 @@ aaA aaA aaA aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -cRO -abc -abp -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cqg -ctf -ctX -cww -cvC -cvC -cwK -cqk -ipL -cqk -cqk -cqk -cyK -iup -cqk -cza -cvG +cUz +bFH +bFH +bFH +bFH +bFH +bFH +bFH +bFH +cUz +aab +aab +mQo aab aab aab @@ -110842,59 +102116,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (112,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -110925,9 +102250,9 @@ aaA aaA aaA aaA -abp +abY cPA -abc +acw adu aeb aeR @@ -110948,7 +102273,7 @@ aro abJ azd aww -dWs +aHr aFN any azF @@ -110956,61 +102281,40 @@ abZ aBI aCB aaQ -acw +bBA aeG abY +abY +abY +abY aaA -aaA -aaA -aaA -ahf -acw -aeG +beQ +aVM +bok aMh aNi aOf aOS -aOh -aOh +bbJ +aQD aRp -aSq -aSq +aMh +qrB aUO -aSq -aSq -aSq -aSq +sPC +aMh +aaR +aYQ cIO bbo aWM -aWM -aWM -aWM -aWM -aWM -aWM -aWM -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bFj +bGF +bHP +bJJ +bKD +bLy +beA aab aab aab @@ -111029,67 +102333,34 @@ aab aab aab aav -aab -aab -aab -aab -bOI -aab -aab -aab -aab -aaA -aaA -aaA -aaA -aaA -aaA -aco -aaA -aaA -aaA +aav +aav +aav +aav +xlk +aav +aav +aav +aav aaA aaA aaA aaA aco aco +aco aaA aaA -aaA -abp -abc -bAW -abp -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cqg -ctp -ctY -cwx -cvD -cwg -cwL -cxb -cxj -cxR -cvK -cvK -cyL -cvE -cvE -cyM -cvG +cUz +bFH +bFH +bFH +bFH +bFH +bFH +bFH +bFH +cUz aab aab aab @@ -111099,59 +102370,113 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (113,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -111178,13 +102503,13 @@ aco aco aco aaA +aco aaA aaA aaA -aaA -abp +abY acD -abc +acw adu aec aeS @@ -111214,60 +102539,39 @@ aBJ aCC aaQ acw -aeG -abY -abY -abY +aeH +adr +afE +aMt abY aaA -ahf -acw -aeG +beQ +cXj +bok aMh cAZ -aOg -aOT -aPL +aOf +aOS +aQE aQE beJ aSq -aTw +aSq aUP -aVP -aWO -aXV +aSq +aSq +aSq aSq bdN -bbp -bcu -beO -cSm -blu -bhm -bcu -aab -aab -aab -aab -aab -aab -aab -aab -bnS -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bbo +aWM +aWM +aWM +aWM +aWM +aWM +aWM +aWM aab aab aab @@ -111289,20 +102593,12 @@ aav aab aab aab -bNF -bOJ -bPS +aab +cba +aab aab aab aab -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA aaA aaA aaA @@ -111310,43 +102606,23 @@ aaA aaA aaA aco -aco -aco aaA aaA -abp -abc -boY -abp -aaA -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -aaA -cqg -ctq -ctZ -cwy -cvE -cwh -cqg -cxc -cvG -cxS -cvE -cvE -cyM -cvG -cxc -cyn -cyn +cUz +bFH +bFH +bFH +bFH +bFH +bFH +bFH +bFH +cUz +hZs +aab +aab +aab +hZs aab aab aab @@ -111356,31 +102632,97 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (114,1,1) = {" +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab aab aab aab @@ -111392,23 +102734,6 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -111439,9 +102764,9 @@ aaA aaA aaA aaA -abp +abY acD -ais +bmL adu aed aed @@ -111461,8 +102786,8 @@ asW atM abJ bdT -aww -dWs +bUl +bUw axL axL axL @@ -111470,16 +102795,16 @@ axL axL aaQ aaQ -bBA -aeH -adr -afE -aMt +aDg +aDg +aDg +aeG +acw abY aaA -ahf -acw -aeG +beQ +cSj +bok aMh bLc aOh @@ -111487,13 +102812,13 @@ aOU aPM aQF cMk -aSr +aSq aTx aUQ aVQ aWP aXW -aYR +aSq cGr bIr bcu @@ -111505,27 +102830,6 @@ bcu aab aab aab -biL -biL -biL -biL -biL -biL -biL -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab @@ -111545,40 +102849,14 @@ aab aav aab aab -bMV -aab -bOJ -aab -bQv aab aab -cSD -cSD -cSD -cSD -cUh -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -abc -abq -abp -aaA -aaA -aaA -aaA +ups +aab +aab +aab +aab +aco aaA aco aaA @@ -111587,22 +102865,21 @@ aaA aaA aaA aaA -cqg -cWY -cqk -cwG -cvF -cqg -cqg -cxd -cvG -cxT -cyk -cyw -cyw -cvG -cxd -cyn +cUz +bFH +cNq +lDH +cUG +eeU +tWq +bFH +bFH +cUz +nNI +aab +aab +aab +nNI aab aab aab @@ -111613,31 +102890,96 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (115,1,1) = {" +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab aab aab aab @@ -111649,23 +102991,6 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -111696,9 +103021,9 @@ aaA aco aaA aaA -abp -acD -abc +abY +aRG +acw adu adu adu @@ -111724,27 +103049,27 @@ axM aIJ azH aAJ -ayN +aRw axL -aDg -aDg -aDg +baZ +blm +blM aDg aeG acw abY aaA -ahf -aeI -afF +beQ +bmd +bok aMh -aMh -aMh -aMh -aMh -aMh -aMh -aSq +aYX +aQE +bbi +bbM +bdp +beN +bgj aTy aUR aVR @@ -111753,7 +103078,7 @@ aXY bbO cGs bbr -bdF +bcu bdH bgg bnG @@ -111762,13 +103087,6 @@ bcu aab aab aab -biL -blk -blL -bmc -bmZ -bnT -biL aab aab aab @@ -111785,35 +103103,16 @@ aab aab aab aab +aav aab aab aab aab +xlk aab aab aab aab -aab -aab -aab -aab -aab -aab -bGB -bMY -bMY -bOK -bMY -bPT -bMY -cLX -bMY -bMY -bGB -bQW -bTZ -bTZ -bTZ aaA aaA aaA @@ -111823,43 +103122,21 @@ aaA aaA aaA aaA -aaA -aaA -aaA -aaA -aaA -abp -abc -abc -abp -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cqg -ctr -cqk -cwG -cqg -aab -cqg -cxe -cyn -cvG -cvG -cvG -cvG -cyX -cxe -cyn +cUz +bFH +bFH +bFH +bPU +bFH +bFH +bFH +bFH +bFH +nNI +jqV +nek +jqV +nNI aab aab aab @@ -111870,31 +103147,96 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (116,1,1) = {" +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab aab aab aab @@ -111906,23 +103248,6 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -111953,7 +103278,7 @@ aaA aaA aaA aaA -abp +abY acE acZ acZ @@ -111961,7 +103286,7 @@ acZ acZ acZ agx -aUg +bBA abJ ajl akw @@ -111981,26 +103306,26 @@ axN ayE azI aAK -ayN +aTW axL -aDh aPO -aEW +aPO +aPO aDg aeG afB abY abY -abY +beQ aKr aLp -ahf -aaA -aaA -aaA -aaA -aaA -aaA +aMh +aMh +aMh +aMh +aMh +aMh +aMh aSq aTz aXx @@ -112010,22 +103335,15 @@ aYS aYT ntW bbq -bcu -bcu -bcu -bcu -bcu +bDw +bFk +bGQ +bHR +bJK bcu aab aab aab -biL -bll -blM -bmd -bna -bsM -biL aab aab aab @@ -112042,70 +103360,40 @@ aab aab aab aab +aav aab aab aab aab +cbB aab aab aab aab -aab -aab -aab -aab -aab -aab -bGB -bRD -bMZ -bOL -bOO -bPU -cLU -bOL -bMZ -cQJ -bGB -bQW -bQW -bTZ -bTZ -aaA -aaA -aaA -aco +cqb +cqb +cqb +cqb +cyZ aaA aaA aaA aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -ccR -abc -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTf -cqg -cts -cqk -cwG -cqg +cUz +bFH +bFH +bFH +cUK +bFH +bFH +bFH +bFH +bFH +nNI +cJk +cJk +cJk +nNI aab aab aab @@ -112127,31 +103415,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bvx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (117,1,1) = {" +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab aab aab aab @@ -112163,23 +103505,6 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -112214,11 +103539,11 @@ abJ abJ abJ abJ -abc -abq -abc +acw +afB +acw agy -abc +acw abJ ajm akx @@ -112244,19 +103569,19 @@ aPP aPQ aQJ aDg -aGy +aeH adr adr -adr -adr -adr -afF -ahf -ahf -ahf -ahf -aaR -aaR +afE +abY +aVN +aWN +beQ +aaA +aaA +aaA +aaA +aaA aaA aSq aTA @@ -112265,24 +103590,14 @@ aVT aXU aYV aYU -bae +bdh bed -bcn -bds -beE -boC -bnU -bcn -aab -acv -aab -biL -blm -blN -bme -bnb -bnV -biL +bcu +bcu +bcu +bcu +bcu +bcu aab aab aab @@ -112302,67 +103617,42 @@ aab aab aab aab +aav aab aab aab +bWU +cbF +cfq aab aab aab -aab -aab -aab -aab -aab -bGB -cXD -bNI -bNI -bNI -bQw -bNI -bNI -bNI -cXE -bGB -cRn +cqb +crR +cuv +cuv +cuv +aaA +aaA +wPh +wPh +nLA +nLA +nLA +nLA +hhH +nLA +nLA +nLA +nLA +cUz +nNI +nNI +ngo bQW -bTf -aaA -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -abp -cWd -bQW -bQW -bQW -cTD -bSn -bSn -bSn -cTv -cWb -ceE -cTw -bQW -cRz -cqg -cWZ -cqk -cwG -cvG +nNI +aav +aav aab aab aab @@ -112384,42 +103674,77 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (118,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aaa aaa @@ -112472,10 +103797,10 @@ acF ada abJ czQ -abq +afB afP agz -abc +cOb abJ ajn aky @@ -112494,34 +103819,34 @@ dWs axL ayG ayN -ayN +aRv aBL axL aDj aEX bfS aDg -aGz -acw +aUL cOb -afB acw -aKs aeH -afE -acw -aOi -aRu -aRu -aRu -aRu -aOV -aOV -aOV -aOV -aOV -aOV -aOV +adr +adr +afF +ahf +ahf +ahf +ahf +aaR +aaR +aaA +aSq +big +bjZ +blJ +boz +bst +bvQ bag bIv bcn @@ -112530,96 +103855,61 @@ beF bfW bha bcn -aav +aab acv +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aav -biL -bln -blO -bmf -bnc -bnW -biL -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab +bVz +aab +cbF +aab +ciL aab aab +cqb +crS +crS +cuv +cuv aaA -aaA -bGB -cdo -bNI -bOM -bOP -bQV -cLV -cLV -bWu -cuQ -bGB -cmD -bUa -bTf -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -abp -abp -bTf -bTf -bTf -bUb -bQW -cTw -bQW -bQW -bQW -ceF -cLR -bSn -cri -bQF -ctJ -cqk -cwG -cvG +aco +wPh +cIa +cLH +cNx +rEw +pwU +cUL +lma +rEw +rEw +ffZ +gLI +ifC +jEO +uYv +ohk +nNI +aab +aav aab aab aab @@ -112641,42 +103931,77 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx "} (119,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aaa aaa @@ -112762,52 +104087,34 @@ aGA aDr aDr aDr -abY -abY -abY -aeH -bac acw +aVP +aeH +adr +afE +aZW +aRu +aRu +aRu aRu -aRv -aUL -bzm aOV -cSi -aUU -aVU -aWT -bvy +aOV +aOV +aOV +aOV +aOV aOV bah bIw -bco +bcn bdu bgW bfX bRp bcn -biJ -bjx -bkj -biL -biL -biL -bzI -biL -biL -biL -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +aav +acv +aav aab aab aab @@ -112824,60 +104131,42 @@ aab aab aab aab +bSE +bTo +bTo +bVA +bTo +cbG +bTo +ciS +bTo +bTo +bSE +crT +crS +cuz aaA aaA aaA +wPh bGB -ceS -bNI -cmg -bNI -cRi -cRj -cRk -cRj cRl -bGB -bQW -bUb -bTf -aaA -aaA -aaA -aaA -aaA -bTf -bTf -bTf -bTf -bTf -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -bTf -bUb -cRU -ckY -ckY -ckY -ckY -ckY -ckY -cqg -cqg -cqg -ciH -cqk -cwG -cvG -cwi +cNy +sJs +sJs +evx +rEw +pxl +rEw +rEw +rEw +iiC +jMW +rEw +cwD +xMt +aab +aav aab aab aab @@ -112898,42 +104187,78 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (120,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aaa aaa @@ -113019,12 +104344,12 @@ aPh aPl aDl aDr -aJB -aKt -aLq -aMi -aNj -afB +abY +abY +abY +acw +bac +acw aRu aSs aUW @@ -113035,42 +104360,26 @@ aUV aVV brf bvz -cIb +aOV bai bdx -bcn +bDE bdv beH cXk bhc bcn biK -biK +cMq bkj aab aab -bkK -bmh -bkK -aab -ami -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aab aab +bHZ +aab +aab aab aab aab @@ -113079,61 +104388,42 @@ aab aab aab aab +bSE +bTw +bUi +bVB +bWV +cbN +cfr +bVB +bUi +cox +bSE +crU +cux +cuz +aco aaA aaA -aaA -aaA -aaA -bGB -bGB -cyT -bGB -bOQ +wPh +cIi +hPU cGS bOQ -bGB +bTR cGc -bGB -bGB -bQW -bUb -bTf -bTf -bTf -bTf -bTf -bTf -bTf -bTZ -cUK -bQW -bTf -aaA -bTf -bTf -bTf -bTf -aaA -aaA -aaA -aaA -aaA -bTf -bUb -bQW -ckY -cqH -ccF -cVm -cdg -cpm -crL -csY -ctc -ctg -cqk -cwG -cvG +bXn +ibx +dJh +cvp +cvp +iqD +jto +jto +cvI +xMt +aab +aav aab aab aab @@ -113155,42 +104445,77 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (121,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aaa aaa @@ -113246,7 +104571,7 @@ aef aeV afR agC -aef +ayL aik ajp akB @@ -113261,7 +104586,7 @@ abJ abJ azd awz -dWs +aIb axP ayJ azL @@ -113278,53 +104603,39 @@ aHT aDr aJC aMr -abY -acw +aWO +aMi cQv -aOj +afB aRu aTB aVW bFi -bMc +aOV bVS caD caE caF bvA -aOV +bwP cIP bdy bcn bdw -bdw -bdw +bGR +bHT bhd bcn +nUI bLm -bjy bkj aab -aab -bkK -bmh -bkK -aab -ami -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +biL +biL +biL +biL +biL +bIK aab aab aab @@ -113334,63 +104645,42 @@ aab aab aab aab +bSE +bTz +bUj +bUj +bUj +cbR +bUj +bUj +bUj +coy +bSE +crS +clp +cuz aaA aaA aaA -aaA -aaA -aaA -aaA -aaA -cOB -ciD -bGB -cmo -cGZ -cmo -bGB +wPh +cIj +rcz cSD -bRE -cTv -bSn -bUc -bSn -bSn -bSn -bSn -bSn -bSn -bSn -cba -bSn -bSn -ceE -bQW -bQW -bQW -cVJ -bTf -bTf -bTf -bTf -bTf -bTf -bTf -ciF -ckj -ckZ -crt -clH -clH -cdL -cpn -crM -cqk -cqk -cth -cqk -cwG -cvG +jto +cSQ +wPh +cWd +xMt +dOY +jto +jto +cvI +xMt +cWd +nNI +nNI +aab +aav aab aab aab @@ -113412,42 +104702,77 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (122,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aac @@ -113516,10 +104841,10 @@ ate atR avz abJ -azd +aHp awz -aKU -axL +dWs +aIY ayK azM aAP @@ -113533,17 +104858,17 @@ aDr aDr aDr aDr +aUU +aVU abY -abY -abY -abY +acw cQR -cQw +ban aRu aTD bsO bGw -aOV +bgl cSk aUX aVX @@ -113552,34 +104877,22 @@ bbQ aOV bak beI -bfZ -bhf -bhn +bcn +boj +boj boj boE -aSt -biL +bcn +bLz bjx +bkj +aab biL bkK -bkK -bkK bmh -bkK -aab -ami -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bHk +bIa +bIK aab aab aab @@ -113589,65 +104902,42 @@ aab aab aab aab +bSE +bTA +bUj +bVC +bXa +cbS +cfs +cfs +cld +coz +bSE +crV +cuy +cuz +cuz +cuz aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cOB -bFI -boU +wPh +cIz +uOf +qzu +tIJ +wPh +wPh cJk +xMt bOR cLJ -bQF -bQX -bRF -bQW -cQG -cRo -cTw -bQW -cKs -cKs -cKs -cKs -cKs -bPt -cKs -cKs -cMO -cWb -cTv -bSn -bSn -cqM -bSn -bSn -ceE -cTw -cUk -bQW -bUb -bQW -ckY -cVa -cmB -cnr -cBo -cpo -crM -cqk -cqk -cti -cqk -cwG -cqg +gMi +gMi +xMt +cJk +nNI +aab +aab +aav aab aab aab @@ -113669,42 +104959,77 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (123,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aac aae @@ -113740,7 +105065,7 @@ aac aac aac aac -aaA +cce aaA aaA aaA @@ -113775,10 +105100,10 @@ atS auQ duB awz -pza -axL -ayL -azM +dWs +axN +ayN +aPV aAQ aBQ aCE @@ -113788,22 +105113,22 @@ aFb aFO aGD aHo -aHp +aGD aDr -aaA -aaA -aaA +abY +abY +abY abY aNk acw aRu -aRu -aRu -aRu -aOV -aOV -aOV +bco +bds +beO aOV +bil +bkb +blL aWW aYd aOV @@ -113814,17 +105139,17 @@ cGz bgi bpg cDz -big -biM +aSt +biL cMq -bZL -biM -bSA -bZL -bmi -bkK -aab -ami +biL +biL +biL +bFp +bFU +bHl +bIb +bIK aab aab aab @@ -113834,88 +105159,44 @@ aab aab aab aab +bSE +bTC +bUj +bVD +bUj +ccm +cfu +ciY +cfu +coQ +bSE +crW +cuz +cuv +czc +cuz +cuz +wPh +cIN +rEw +tmb +wPh aab -aab -aab -aab -aab -aab -aab -aab -aab -aaA -aaA -aaA -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA -aaA -bFH -cRh -bMp +wPh bQx -cLB -bOS -uNK -boU -bQY -bRG -bQY -bQY -bQY -bQY -bQY -bQY -cKt -cKt -cKy -cKt -cKE -cKt -boU -cki -cbF -cTw -bQW -bTf -bTf -bTf -bTf -cRx -bSn -bSn -cWe -cWf -cUW -ckY -cVb -cVi -cdd -cdN -cpp -crM -cqk -cqk -cth -cua -cwH -cqg -aab -cqg -cxf -cyn -cvG -cvG -cvG -cvG -cyX -czg -cyn +nNI +xMt +xMt +xMt +xMt +bUe +bQx +nNI +aav +aav +aav +aav +aav aab aab aab @@ -113926,42 +105207,86 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (124,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aac aad aaf @@ -114013,9 +105338,9 @@ acg acK adg abJ -boY -abq -abc +afa +afB +acw acC cPY abJ @@ -114038,7 +105363,7 @@ ayM azN aAR aBR -axL +aWZ aDo aEj aFc @@ -114047,43 +105372,100 @@ aGD aGD aGD aDr -apk -apk -apk -apk -aNl -aOk -aOk -aOk -aQK -afE +aaA +aaA +aaA abY +aNl +afa +aRu +aRu +aRu +aRu +aOV +aOV +aOV +aOV aTF -aTF -aVY -aTF -aTF -aSt -ntW +bsD +aOV +bAF cGw cGy cGA bgZ bXL cDA -aSt -biL +bKG +bLB cMr -biL -biL -biL -biL -biL -biL -aaA -aaA -aaA -aaA +bNx +bEv +bOM +bFr +bQU +bHm +bIc +bIK +aab +cdo +aab +aab +aab +aab +aab +aab +aab +bSE +bSE +bUq +bSE +bXg +ccp +bXg +bSE +clf +bSE +bSE +clp +crT +cqc +crS +crS +crS +wPh +cJe +rEw +tmb +wPh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -114098,81 +105480,6 @@ aab aab aab aab -ciE -aaA -aaA -aaA -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -bFH -cTt -caV -boU -cLC -bOT -bUr -boU -bQZ -bRH -bRH -bTg -bUd -bUU -bVz -bQY -cKu -cKt -cKu -cKt -cKE -cKu -boU -boU -cbG -boU -boU -cqg -cMR -cOD -cqg -cqg -cqg -cqg -cqg -cqg -cqg -ckY -cVc -cVj -cnt -ckY -ckY -crP -cqk -csh -ctj -cub -cwZ -cvF -cqg -cqg -cxg -cvG -cxU -cyl -cyx -cyN -cvG -cxg -cyn aab aab aab @@ -114185,40 +105492,58 @@ aab aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (125,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aac aae @@ -114254,7 +105579,7 @@ aac aac aac aac -aaA +cce aaA aaA aaA @@ -114270,9 +105595,9 @@ abJ abJ abJ abJ -abc -aeX -afT +acw +aeI +adr agE ahs ail @@ -114290,11 +105615,11 @@ auS azS awz dWs -axN -ayN +axL +axL azO -aAS -aIY +axL +axL axL aDp aEj @@ -114304,133 +105629,116 @@ aGD aGD aGD aDr -aJb -aLv -aSD apk apk -abY -abY -abY +apk +apk +aZh +baB +baB +baB cdD -aeG +afE abY aTG bYi +blR bYi bYi -aYe aSt bdh bgT bcr -bcs -bcs +bFv +bGS bga -bcs -bct -boR -bpr -cOV -aaR -aaR -aaR -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bJL +aSt +biL +bML +biL +biL +biL +bFs +bFV +bIi +bIi +biL +bIQ +cdz aAY -auM aaA aaA -aaA -aaA -aaA -aaA -aaA -aaA -bFH -bFH -bFH -bFH -bFH -bFH -bFI -bMq -boU -cLD -bOU -uNK -boU -bRa -bRI -bSq -bTm -bUV -cbd -bVA -bQY -cKu -cKt -cMB -cMD -cKF -cKH -boU -cCz -uIi -uIi -uYv -dgb -dgb -dgb -dgb -dgb -bkT -bQg -dgb -dgb -dgb -dgb -cCK -dgb -cHc -dgb -uYv -cEM -cHw -cER -cth -cub -cxa -cvH -cwj -cqg -cxh -cvG -cxV -cvH -cvH -cyO -cvG -czh -cyn -cyn +aab +aab +aab +aab +bMw +cpL +bSE +bSE +bXt +cct +bXt +bSE +bSE +coR +cqc +clp +crS +crS +crS +crS +cFf +wPh +jTA +rEw +tmb +xMt +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -114441,41 +105749,58 @@ aab aab aab aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (126,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aac @@ -114526,12 +105851,12 @@ aaA aaA aaA aaA -abp -abc -cPO +abY +acw +cQm cvP -abq -boY +afB +afa abJ aju aju @@ -114547,147 +105872,86 @@ auQ azZ awF dWs -axR +cbf aTE -azO +aQW aAT aBT -axL +aDr aJP aKA aFe aDr -aHq aGD -sZf +blN +aGD aDr aJI aKB -aST -aMj +aWT +apk apk -aaA -aaA abY -aQL +abY +abY +bdz aeG abY bDT aTH aTH aTH -aTH -boB -bam -tpJ +bsG +aSt +bAG +bCA +bDF +bcs bcs -bdz -beK bgb -bhg +bcs bct -bpt -cMu +boR +bpr cOV aaA +biL +bFK +bGy +bHV +bIn +biL aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA +cdG aaA aaA aaA aab aab aab -aab -aab -aab -aab -aab -aAY aaA -aAY -cOj -cOk -aaA -aaA -aaA -aaA -aaA -aaA -aaA -bFH -cQB -bJh -bKe -bKe -bKe -bKe -bMr +bMw +cpL +cpL boU -cLE -bOU -uNK +bXw +ccv +cfT boU -bRb -bRJ -bSr -bTo -bUW -ccu -bVB -bQY -cKt -cKt -cKt -cME -cKt -cKE -boU -cCA -cML -cfS -lCX -upC -etb -upC -etb -cRP -etb -cRR -etb -cRT -etb -upC -cRV -cRX -cRY -upC -cRZ -cSa -cHx -cES -ctk -cuc -cxC -cqk -cwf -cvH -cFe -cvH -cxE -cqk -cqk -cwf -cvH -cvH -cyZ -cvG +crV +coU +coU +crX +cuA +coU +coU +cBl +cFk +cja +cJi +rEw +tmb +xMt aab aab aab @@ -114697,42 +105961,103 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +acv +aab +aav +aav +aav +aav +aav +aab +aab +aab +aab +aab +aab +aav +aav +aav +aav +aav +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +evL +evL +evL +evL +evL +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (127,1,1) = {" -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aaa aaa @@ -114771,7 +106096,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -114783,9 +106108,9 @@ aaA aaA aaA aaA -abp -abc -aeY +abY +acw +aeG afU afU afU @@ -114804,12 +106129,12 @@ afU aAo awG dWs -axL -axL +cbf +azd azP -axL -axL -axL +dWs +abt +aDr aDr aEl aDr @@ -114826,125 +106151,65 @@ apk aaA aaA abY -cUg -cQm +aQL +aeG abY aTI -aUY -aVZ aWX -aTI +aWX +aWX +uWS bnm -ban -bvG +bam +tpJ bcs bdA -beL +beM bgc bRq bct -bpr -box +bLC +bMO cOV aaA +biL +biL +biL +biL +biL +biL aaA +cdI aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aab -aab -aab -aab -aab -aAY -aAY -aAY -aAY -aAY -aAY -cOl -aaA -aaA -bDK -bDK -bDK -bDK -aaA -bFH -bIi -bJi -bFH -bFI -cVA -bFI -bJs -boU -cJk -bOU -cLM -boU -bRc -bRJ -bSt -bUe -bWP -ccu -bVC -bQY -cKv -cKt -cKt -cMF -cKt -cKI -boU -cBI -thv -cCg -uKJ -cfj -cfO -cfj -cfj -crf -cfj -cjw -cfj -cnv -cfj -cfO -cSN -cHb -cfj -cfj -uKJ -cEO -cHy -cET -ctl -cud -cxQ -cvI -cwk -cpw -cxj -cxF -cxW -cxW -cyy -cxW -cGV -cvE -cvp -cvG +bMw +bMw +bPz +bPz +bPz +bMw +bMw +bTD +nvP +cJJ +bXz +ccw +cfM +oTo +yiO +coV +coV +coV +coV +coV +coV +wPh +wPh +wPh +cJj +rEw +tmb +xMt +fSt aab aab aab @@ -114954,42 +106219,102 @@ aab aab aab aab +aab +aab +aab +aab +aab +acv +aav +aav +aab +aab +aab +aav +aav +aab +aab +aab +aab +aav +aav +aab +aab +aab +aab +aav +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +ami aaa +aav aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ami +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (128,1,1) = {" -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aaa aaa @@ -115027,7 +106352,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -115038,11 +106363,11 @@ aco aco aaA aaA +aco aaA -aaA -abp -abc -aeY +abY +acw +aeG afU ahz aks @@ -115061,10 +106386,10 @@ auT duB awH aCb -qax +cbX aDz aFW -aHr +aCb qax qax aJQ @@ -115073,27 +106398,27 @@ aNn aFQ aGE aPm -aFQ +cPp aIN aJK aKD aST -apk +aYi apk aaA aaA abY -aQL -aeG +bdF +cQm abY -aTJ -aTJ -aTJ -aTJ -aTJ -brk +bis +bkA +bmc +boB +bis +bwV bao -tpJ +bCB bcs bdB beK @@ -115102,106 +106427,45 @@ bhi bct bpr box +cOV aaA -aaA -aaA -aaA +aco +aco aaA aco aaA aaA aaA +cdK aaA -aaA -aaA -aaA -aaA -aab -aab -aab -aaA -aaA -aaA -cOg -cOh -cOh -cOh -cOh -cOm -aaA -aaA -bDK -bEL -bFB -bDK -bDK -bFH -bIj -bJj -bFH -bFH -bFH -bIt -bJs +cPu +bNM +cIR +uTf +cIR +vGY +cIR +cIR +bUB boU -cJk -bOU -uNK +bXO +ccx +cfN boU -bRd -bRJ -bTh -bUf -bXY -ccu -bVD -bQY -cKw -cKw -cKt -cMG -cMM -cKJ -boU -cWR -cMQ -uRw -boU -cqg -cqg -cqg -cfQ -cfQ -cfQ -cjx -cfQ -cCF -cqg -cla -cla -cmF -cla -cla -cla -csg -cqk -cqk -ctm -cue -cyb -cvF -cqg -cwN -cvG -cvG -cvG -cvG -cvG -cvG -cvG -cvG -cyn -cyn +clp +coV +cqe +crY +cuB +cwW +czd +oBl +bPW +cGJ +cJx +rEw +tmb +xMt aab aab aab @@ -115211,42 +106475,103 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +acv +aav +aab +aab +aab +aab +aab +aav +aav +acv +acv +acv +aav +aab +aab +aab +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +juW +aab +qqN +aab +juW +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (129,1,1) = {" -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aaa aaa aaa @@ -115297,9 +106622,9 @@ aaA aaA aaA aaA -abp -abc -cPP +abY +acw +bEz afU agG ahu @@ -115318,7 +106643,7 @@ auU aAU awI axn -axn +cbZ ayQ azR axn @@ -115330,28 +106655,28 @@ dWs aPf aaQ cMl -aPf +cPq aaQ aJL aKE -aTb +cfa apk -abY -abY -abY +apk +aaA +aaA abY aQL aeG abY -aTK -aTL -aTL -aTK +aTJ +aTJ +aTJ +aTJ aTJ brk -bam -bvH -bct +bAH +tpJ +bcs bUT beM bge @@ -115368,85 +106693,53 @@ aco aco aco aaA -aaA +cdK aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aAY -aAY -aAY -aAY -cOn -aaA -aaA -bDK -bEM -bFC -bGa -bGE -bHt -bIk +cPu +txt +cPu +cPu +cPu +cPu +cpL +bTg +bUy +boU +bXT +ccx +cfT +boU +cls +coW +cqf +csf +csf +cwX +sUI +lvJ +rEw +rEw bJk -bKf -bPW -bDK -bFI -cVU -boU -cLF -bOU -cLN -boU -bRe -bRJ -bTi -bUg -bYK -cCt -bVE -bQY -cKw -cKw -cKw -cMH -cKt -cKK -boU -cgm -thv -uRw -boU -cfm -chI -cqg -cWW -chD -chD -cjy -cfQ -cCG -cqg -bKk -clM -cWn -cnw -cnw -cla -csi -cqk -cqk -ctn -cuf -cwZ -cvG +rEw +tmb +xMt +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +acv +aav aab aab aab @@ -115464,46 +106757,78 @@ aab aab aab aab +aav aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +ami +aav +qzB +aav +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (130,1,1) = {" -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aaa aaa aaa @@ -115536,9 +106861,9 @@ aaa aaa aaa aaa +aco aaA -aaA -aaa +aac aaa aaa aaa @@ -115554,9 +106879,9 @@ aaA aaA aaA aaA -abp -aeg -aeZ +abY +acw +aeG afU agH ahC @@ -115587,30 +106912,30 @@ aOm aFS aGF aPn -aFS +cSy aIO aKw aKF aUv -aUr -aNm -bis -bxw -cOy -aQM -aRl +apk abY +abY +abY +abY +aQL +aeG +abY +biI aTL -aUZ -aVb aTL +biI aTJ brk bam -tpJ +bCC bct bdD -beK +bGT bgf bhk bct @@ -115624,88 +106949,54 @@ aaA aaA aaA aco -aco aaA +cdK aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aAY -cOn -aaA -aaA -bDK -bEN -bFD -bDK -bGF -bHu -bHu -bJl -bIm -bGE -bDK -bFI -cVB +cPu +cOW +cPu +bPF +cpL +cPu +cpL +bTg +bUy boU -cLG -bOU -ely +bXT +ccx +cfU boU -bRf -bSo -bTj -bUh -bYL -cCv -bVF -bQY -cKx -cKw -cKw -cMI -cKN -cKL -boU -cCC -cQV -uRw -boU -bYa -ced -cqg -cfR -cUS -cUU -cjy -cfQ -cCH -cqg -clc -clc -cmH -cnx -con -cla -csj -baC -ctd -cto -cuf -cwZ -cvG -cvG -cvG +clp +coV +cqh +csn +cuC +cwY +czf +lvJ +rEw +rEw +cJA +rEw +tmb +wPh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +acv +aav aab aab aab @@ -115723,302 +107014,78 @@ aab aab aab aab +aav aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aav +aab +qzB +aab +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (131,1,1) = {" -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aco -aaA -abp -czQ -aeY -afU -agI -ahw -aip -amB -akF -ajH -ajH -ajH -ajH -asU -arC -ath -ath -ath -ath -ath -ath -ath -ath -azT -any -aaQ -aBX -aBX -aEp -aBX -aBX -aBX -aBX -apg -apg -czF -aKG -aST -apg -ahf -ahf -ahf -aeH -aiH -afD -abY -aTM -aVa -aWa -aTL -aTJ -brk -bam -eNI -bcl -bcl -bcl -bcl -bcl -bcl -bpr -boR -box -aaA -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cOn -aaA -aaA -bDK -bDK -bDK -bDK -bGG -bHv -bIl -bJm -bKg -bKh -bDK -bFI -bJs -boU -cLH -bOU -ely -boU -bRg -bRK -bSs -bTn -bUj -bUX -bVG -bQY -cKx -cKw -cKz -cMI -cKG -cKM -boU -cBI -cRE -cNd -boU -bYa -cRv -cqg -cfR -cUT -cUV -cjy -cfQ -cCI -cqg -cWg -cVd -cmI -cny -coo -cla -cqq -cqg -cqg -ctM -cuf -cwZ -cvJ -cwl -cwO -cxk -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(132,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aaa aaa aaa @@ -116054,11 +107121,9 @@ aaa aaa aaa aac -aaZ -aaZ -aaZ -aaZ -aaZ +aaa +aaa +aaa aaA aaA aaA @@ -116068,9 +107133,269 @@ aaA aaA aaA aaA -abp -abq -aeY +aaA +aco +aaA +abY +czQ +aeG +afU +agI +ahw +aip +amB +akF +ajH +ajH +ajH +ajH +asU +arC +ath +ath +ath +ath +ath +ath +ath +ath +azT +any +aaQ +clg +cnE +aEp +cBV +cCB +aBX +aBX +apg +apg +czF +aKG +aXa +aYk +aZl +baC +bbj +baC +bdI +beR +abY +aTL +aVa +aWa +aTL +aTJ +brk +bam +tpJ +bct +bFB +beM +bIf +bJM +bct +bpr +boR +box +aaA +aaA +box +box +box +box +box +box +bJn +box +cPu +cOW +bPD +cpL +bRh +cPu +bQT +cpL +bUy +boU +bXT +ccx +cfT +boU +clv +coV +cqk +csp +cuD +cwZ +czg +lvJ +rEw +rEw +bJk +cLI +bRA +wPh +aab +wPh +pmK +nNI +xMt +xMt +xMt +xMt +bUe +bWr +nNI +aav +aav +aav +aav +aav +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aav +aav +aav +aav +aav +aav +aav +aav +aac +aac +aac +aac +aac +aac +aav +aac +aac +qzB +aac +aac +aac +aac +aac +vZK +vZK +vZK +aav +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +"} +(132,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +ahf +ahf +ahf +ahf +ahf +ahf +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +abY +afB +aeG afU afU afU @@ -116086,10 +107411,10 @@ arD ath atY aEd -avQ +aDB awK -axp -axp +aFA +aFD ath azU aAW @@ -116100,126 +107425,92 @@ aLs aOo aHN aGG -aCL +aBX crK aJF api aKz -aLn +cYd apg -aab -aab ahf ahf ahf -ahf -ahf -aTL +acw +afB +aMt +abY +biJ aVb aWb aTL aTJ -brl -bbi -ofD +brk +bam +kFC +bcl +bcl +bcl +bcl bcl -bdp -bhl -cNL -bgX bcl bpr cQT aaA aaA aaA -aco -aco -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cOn -aaA -aaA -aaA -aaA -aaA -bDK -bGH -bHw -bHw -bHv -bIm -bIm -bDK -cTt -bJs +box +bGz +boS +boR +boR +boR +bJU +boR +cpL +cOW +cPu +cpL +cpL +cPu +bSI +bTE +bUy boU -cLI -bOV -ely +bXX +ccB +cfT boU -bDb -boU -bTk -bUi -bZl -boU -bDb -boU -boU -boU -boU -cMJ -boU -boU -boU -cBI -cRH -cNe -ccU -cdA -bYa -cqg -cWX -chF -chF -cjz -cuA -cCJ -cqg -cUx -cVe -clc -cNr -clc -cla -cqr -crm -cqg -cXa -cuf -cwZ -cvG -cvG -cvG +clB +coV +cql +csz +cuG +coV +coV +cBB +rEw +cGK +cJH +cLM +puQ +tIJ +wPh +wPh +bWt +xMt +dZS +flf +gWP +bRZ +xMt +bWt +nNI +aab +aab +aav +aab +aab +aav aab aab aab @@ -116237,63 +107528,96 @@ aab aab aab aab +aav +aab +aab +aab +aab aab aab aab aaa +aac aaa aaa aaa aaa +aab +aac +aaa +qzB +aaa +aac aaa aaa +aac aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (133,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -116311,25 +107635,26 @@ aaa aaa aaa acv -aaZ +ahf +acw cSU -aaZ +ahf bjp -aaZ -abp -abp -abp -abp -abp -abp -abp -abp -abp -abp -abc -aeY -abc -cOv +ahf +abY +abY +abY +abY +abY +abY +abY +abY +abY +abY +acw +aeG +acw +ayy bTq afU ajA @@ -116361,24 +107686,24 @@ aCL cXq aJF ngt -nmx -vFo +aVY +aXe apg aab aab -aab -aab -aab -aab -aSt -aTK +ahf +ahf +ahf +ahf +ahf aTL +aWa +bmi aTL -aTK aTJ brr -bam -tpJ +bbm +bvB bcl bdq beC @@ -116388,93 +107713,61 @@ bcl bpr boS box -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cOn -aaA -aaA -aaA -aaA -aaA -bDK -bGI -bFD -bIm -bIm -bHv -bKK -bDK -cTt -bJs +box +box +box +bLC +uLH +uLH +jVw +bIR +ceN +uLH +bMA +bNY +cPu +bPK +bPK +bMw +bMw +bMw +bUy boU -cWN -bOU -qUA +bXY +ccx +vJb +bIM +clU +cbe +cbe +csA +cuI +cxn +bIM +cBN +cFn +cGN +bJk +cLM +cNz +uYv +cIu +wPh +lpO +xMt +emm +uYv uYv -uIi bSp -bTl -bUk -bZm -cCx -uIi -uIi -nkH -uIi -uIi -cMK -cfP -uIi -uYv -cHr -thv -voS -boU -cdB -cRW -cqg -cfQ -chG -cNV -cjA -chG -cfQ -cqg -cld -cld -cNq -clc -clc -cpr -cqs -bYa -cqg -ctW -cuf -cwZ -cvG +xMt +nkU +nNI +nNI +aab +aav +aab +aab +aav aab aab aab @@ -116492,65 +107785,96 @@ aab aab aab aab +aav aab aab aab aab aab +aab +aab +lvp +aav +aac +aac +aab +aab +aab +aav +aab +gTp +aab +aac +aaa +aab +aac aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (134,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -116568,26 +107892,27 @@ aaa aaa aSp aSp -aba +abl abi +acw abg abi -abc -abc -abc -bAW -abq +acw +acw +acw +acj +afB bjv -ajx -abq -boY -bAW -abc -abc +aoT +afB +afa +acj +acw +acw cDH -afT +adr cPU -ahx +afE afU ajB akG @@ -116602,7 +107927,7 @@ aua auW avS awL -axp +bUE axU ath azW @@ -116614,13 +107939,13 @@ aFv aFj aFU aGI -aBX +blO cXq aJF ngt nmx vFo -bym +apg aab aab aab @@ -116628,120 +107953,78 @@ aab aab aab aSt -aSt -aSt -aSt -aSt -aSt +biI +aTL +aTL +biI +aTJ bdC -bbj -vDW -beN +bam +tpJ +bcl bdr bij bfU bgX bcl -bpr -cVX -box -box -box -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA +iAi +uLH +yhM +uLH +uLH +uLH +bGA bsN bsN bsN bsN -bAX +ceO bsN bsN bsN bsN -aaA -bDK -bGJ -bHw -bIn -amR -cIu -bIm -bDK -bJr -bLS +bQg +bRn +bSn +bSJ +bMw +bUy boU -bVo -cCm +bYd +ccU +cfV +cje +clV +cfV +but +csB +cuJ +mzU +czi +cBO +cFp +cGO +cKe +cLN +cNL +rEw +pwU +jGl dFe -cfi -dFe -cfS -cju +uYv +lma +rEw +rEw +pwU +uYv +uYv czN -cCL -cfS -dFe -cfS -cEL -cfS -dFe -cEN -dFe -cHd -lCX -cfS -cRI -cCE -boU -cdB -bYa -cqg -cqg -cqg -cqg -cqg -cqg -cqg -cqg -cla -cla -cla -cla -cla -cla -cqt -crn -cqg -ctM -cuf -cwZ -cvF -cqg -cwN -cvG -cvG -cvG -cvG -cvG -cvG -cyX -cyn +xMt +aab +aav +aab +aab +acv aab aab aab @@ -116754,60 +108037,101 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aac +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +bMx +aab +sxV +sxV +sxV +sxV +sxV +sxV +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (135,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -116825,16 +108149,17 @@ aaa aaa aaa acv -aaZ -cSV +ahf +act +acw abh bjq -abc -abq -abc -abc -abc -ajx +acw +afB +acw +acw +acw +aoT alW bry bsy @@ -116842,8 +108167,8 @@ bsy bsy bsy cDI -cDJ -cDJ +aMi +aMi cDK afU apx @@ -116857,7 +108182,7 @@ arB ath aub auX -avT +awM awM ayt axV @@ -116875,8 +108200,8 @@ aHt aHV aJF ngt -bwV -aYX +nmx +vFo bBZ aab aab @@ -116884,123 +108209,79 @@ aab aab aab aab -aab -aab -aab -aOW -aWY -aWY +aSt +aSt +aSt +aSt +aSt +aSt cWy bbk ben +bDH +bFF +bGU +bIg +bgY bcl -bcl -bcl -bcl -bcl -bcl -bps -ciG -cQy -cQW -box -box -aaA -box -aaA -aaA -box -box -aaA -aco -aaA -aaA -aaA -aaA +bpr +boR bsN bsN bsN bsN bsN bsN -bxU -buj -bxU -bAX -bxU -buj -bxU +bVT +bON +bVT +ceO +bVT +bON +bVT bsN -aaA -bDK -bGK -bGE -bHw -bHw -bIm -bKL -bDK -bJs -bFI +bQy +bRs +bSo +bSo +bTG +bUD boU -cBI -bOX -cCa -uKJ -ean -ean -bWZ -ean -ean -ean -ean -ean -ean -ulq -cUG -ean -cFf -sDf -uKJ +bYf +bHW +cgy +cjw +clW +clW +cqq +csF +nLj +bWg +cjw cBR -bOX -cHv -boU -cTU -bYa -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -ceG -cqt -cUl -cqg -cXb -cuf -cxa -cvH -cwm -cvH -cvH -cvH -cvH -cvH -cvH -cvH -cyZ -cvG -cvG -cvG +cFr +cGP +cKg +cLV +cNN +cPv +cQD +cPB +ibx +cXV +ean +ean +uKJ +ean +jQh +jto +bYL +xMt +aab +aav +aab +aab +acv aab aab aab @@ -117011,59 +108292,103 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aay +aab +jld +sVY +sVY +sVY +sVY +sVY +mii +bMx +fmq +lMY +lMY +lMY +lMY +lMY +ogu +aac +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (136,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -117080,27 +108405,27 @@ aab aab aab aaa -aaa aac -aaZ -aaZ -aaZ -aaZ -aaZ -abp -abp -abp -abp -abp +ahf +ahf +ahf +ahf +ahf +ahf +abY +abY +abY +abY +abY amU -abp -abp -abp -abp -boY -abp -abp -abc +abY +abY +abY +abY +afa +abY +abY +acw cDL afU ajD @@ -117128,137 +108453,92 @@ aMm aPd aFV aGK -aBX -aIb +aCL +aHV aJF ngt -nmx -vFo +aWc +aXg cye aab aab +aab +aab +aab +aab +aab +aab +aab aOW -aOW -aQN -aRw -aSu -aOW -aOW -aOW -cSQ +aWY aWY bHz -bam +bBs bHf -bcw -bdI -beR -bgj -bdR -bcw -boR -boR -bps -bpY -bpY -bpY -bpY -bpY -bpY -bpY +bcl +bcl +bcl +bcl +bcl +bcl +bpr +bCm +bsN +bOb +bON +bOb +bOb +bre +bVV +bYA bpp -box -aaA -aaA -aaA -aaA -aaA -aaA +ceO +cti +bYA +cyL bsN -btw -buj -btw -btw -bwR -bxV -bzc -bWo -bAX -bXq -bzc -bDL -bsN -aaA -bDK -bGL -bHv -bIo -bJp -bKh -bHw -bDK -bJs -cRh +bQB +bRu +bQT +bSS +bMw +cOW boU -cBI -bOX -cqm -bQz -bQz -bQz -bQz -bQA -bQA -bQA -bQA -bQA -bQz -bQz -bQz -bYJ -bYJ -bYJ -bYJ -cFE -cFN -cFX -bYJ -cdB -ciK -ceG -ceG -ceG -ceG -ceG -ceG -ceG -ceG -aaA -aaA -aaA -aaA -aco -ceG -cqt -cRy -cqg -ctM -cug -cyh -cvK -cvK -cue -ipL -cqk -cqk -cqk -cqk -cqk -cza -czi -czt -czw -czz +bYf +bHW +cAj +boU +cmC +cmC +cmC +csG +cmC +cmC +cmC +cBU +rEw +rEw +cKh +cMb +cNZ +tIJ +wPh +cBH +xMt +xMt +xMt +xMt +xMt +xMt +xMt +xMt +nNI +nNI +aav +aav +aab +aab +acv aab aab aab @@ -117269,29 +108549,103 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aay +aac +kSY +kSY +kSY +kSY +kSY +kSY +aac +dDJ +aac +kSY +kSY +kSY +kSY +kSY +kSY +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (137,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -117308,36 +108662,7 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aac aaa aaa aaa @@ -117356,8 +108681,8 @@ aaA aaA aaA aaA -abp -abc +abY +acw cDM afU ajE @@ -117365,7 +108690,7 @@ cDQ alP amP afU -apg +aDe aqu apg atj @@ -117390,19 +108715,19 @@ aIc aJG aKx aKI -vrE -apg +vFo +aYl aab aab aOW -aPR -aPT +aOW +bdW aRx aSv -aTN -aPR aOW -aWY +aOW +aOW +boC aWY brH bam @@ -117410,111 +108735,50 @@ cAv bcw bdJ beS -bgk -bgk +bIh +bdS bcw -biN -biN -biN -biN -biN -biN -biN -biN -biN -biN +bpr +bDz +bsN +bOc +bOb +bOc +bOc +bre +bWp +bYB coL -box -aaA -aaA -aaA -aaA -aaA -aaA +ceO +ctn +cwG +cyN bsN -btx -btw -btx -btx -bwR -bxW -bzd -bEi -bAX -cJh -bCS -bDM -bsN -aaA -bDK -bGM -bHx -bIp -bJq -bIm -bHv -bDK -bJs -cTt +bQC +bRw +cpL +bTf +bMw +cOW boU -cBN -bOX -voS -bQz -cUy -bRh -cFn -wtQ -cKA -wtQ -wtQ -wtQ -cLb -cLL -bQz -cJy -bZg -bZQ -car -cFF -cFO -evX -bYJ -cdB -bYa -ceG -cfk -cfl -cgJ -chH -ciI -cjB -ceG -aaA -aaA -aaA -aaA -aaA -aaA -cqt -bYa -cqg -cuE -cDR -cyi -cvL -cvL -cwP -cxm -cvK -cvK -cvK -iup -cqk -cza -czi -cwl -czw +bYo +bHW +cgC +boU +cmF +coX +cqr +csH +cuK +cuK +cmC +cBW +rEw +rEw +cKz +uYG +puQ +xMt aab aab aab @@ -117526,57 +108790,118 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +lvp +aab +aab +aac +aab +aac +aab +aab +aab +bMx +aab +aac +aab +aab +aab +aac +aab +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (138,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -117594,7 +108919,7 @@ aaa aab aab aaa -aaa +aac aaA aaA aaA @@ -117613,7 +108938,7 @@ afo aaA aaA aaA -abp +abY bSy cDN cDO @@ -117636,142 +108961,84 @@ aEk aGJ aHA aXd -dEp -dEp -dEp -dEp +aYt +bll +bln +cBY aPg aPj gVP fKc fKc aKy -nmx +aWe cNB apg aab aab aOW -aPS +cNG aPT aRy aUS aTO -cNF +cNG aOW -aXa +aWY aWY btl bam -tpJ +bCW bcw bdK beT bgk bgk bcw -cIA -cNM -dWj +bpr +bDz +bsN dWj cIG -bjC +bPw bmj -bnd -bnX -biN -bpr -box -box -aaA -aaA -aaA -box -box -bsN -bty -buk -buS -bwc -bwR -bwR -bze -bwR -bAY -bwR -bCT +bre +bre +bYF +bre +ceT +bre +cwH bsN bsN -aaA -bDK -bDK -bDK -bDK -bDK -bKi -bKM -bDK -bJs -cRh +bsN +bsN +bMw +bMw +bMw +cOW boU -cBI -bOX -uRw -bQA -cmx -bRh -cFp -cJx -cJx -cWp -cJx -cJx -cJx -xQx -bQz -cWQ -bZg -bZg -bZg -cJI -cNb -evX -bYJ -cdB -bYa -ceG -cfl -bYa +bYf +bHW cgK -cEr -ciJ -cjC -ceG -aaA -aco -aco -aaA -aaA -ceG -cqt -chI -cqg -cuH -cvA -cnH -cvE -cvE -cvE -cvE -cSO -cxX -cqw -cyA -cyA -cyM -cvG -cvG -cvG +baE +cmF +cmF +cmF +csI +cuM +cxr +cmC +cCu +cFt +cGZ +cKG +uYG +puQ +xMt +xMt +xMt +xMt aab aab aab @@ -117783,57 +109050,115 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +acv +aab +aab +aab +aab +aab +aab +aab +lvp +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +bMx +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +lvp +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (139,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -117870,8 +109195,8 @@ afo aaA aaA aaA -abp -abc +abY +acw cDL afU bGf @@ -117885,7 +109210,7 @@ arH atk aud avb -avV +bQE avV avV axY @@ -117899,134 +109224,92 @@ aCM aCM aFX aGL -aCM +cIL aCM aJH aJM aPW -vFo +aXr apg aab aab -aOX +aOW +aPR aPT -aPT -aRz +aRC aSx aTP -aPR +bkP aOW aXb aWY -brk -bpH -vDW -bcx +bwW +bam +tpJ +bcw bdL beU -bgl -bhp +bgk +bgk bcw -cIB -bjz -bkk +bpr +ikb +bsN bkL tlP -biQ +czH bmk -bne +bre bnY -biN -bpr +bYI +cai cRD -box -aaA -aaA -aaA -box -cPo +cai +cxf bsN -bte -btT -fZN -bwi -bwR -byh -bAi -uLH -bWT -uLH -bDa +dNZ +dso bsN aaA -aaA -aaA -aaA -aaA -aaA -bDK -bDK -bDK -bFH -bJs -cPB +cPu +bNM +cPe boU -cBI -bOX -uRw -bQA -cUz -bRh -cFr -cJx -cJx -cJx -cJx -cKB -cWs -cMb -bQz -cWU -bZg -cJA -cJA -cJH -cFP -cIw -bYJ -cTU -bYa -ceG -cfm -cfU -bYa -bYa -ciK -cjD -ceG -aaA -aco -aco -aaA -aaA -ceG -cqt -cRy -cqg -cqg -cqg -cqg -cqg -cqg -cqg -cqg -cyn -cyn -cyn -cyn -cyP -cyX -cyn +bYf +bHW +cgK +baE +cmG +cmF +cqs +csJ +cuN +cxs +cmC +cCx +wPh +wPh +wXI +uYG +puQ +cPx +cxe +cVf +cGb +oFF +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aav aab aab aab @@ -118040,57 +109323,99 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +aay +aab +jld +sVY +sVY +sVY +sVY +sVY +mii +bMx +fmq +lMY +lMY +lMY +lMY +lMY +ogu +aac +aac +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (140,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -118127,8 +109452,8 @@ afo aaA aaA aaA -abp -abc +abY +acw cDL air ajI @@ -118142,7 +109467,7 @@ avG aYm axi pqo -ect +bQY aJX ect ect @@ -118151,134 +109476,97 @@ lkU aDQ aDF bku -pqo -lkU +cqp ect ect ect ect +bQY ect ect aLw -uWN +aWh vFo apg aab aab aOY -aPU -aPU +aPT +aPT aRA bKc aTQ -aVd -aWc +cNG +aOW aXc -aYf -btE +aWY +brk cGt -tpJ -bcw +ben +bDI bdM beV -beZ +bIj bhq bcw -cIC -bjA +sci +uLH bkl bkM -tlP +chS blP bml bnf bnZ -biN -bps -bpp -box -aaA -aaA -aaA -box -bsm -bvF -btf -bum -buT -bwp -cGE -byj -bAl -bAz -bBx -bCr -iPN +bYX +can +cgm +cto +cxg +bsN +fFJ +vHL bsN aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -bFH -cUu -bJs -bFI +cPu +lFs boU -cIy -bOX -uRw -bQA -cmx -bRh -cFw -cJx -cJx -cJx -cJx -cJx -cJx -bYf -bQz -bZi -cMN -cas -cJD -cJI -cFQ -cIx -bYJ -cdB -bYa -ceG -cfn -bYa -cgL -chI -cfV -cjE -ceG -aaA -aaA -aaA -aaA -aaA -ceG -cqt -bYa -cVP -ceG -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA +boU +bYs +bHW +cgK +baE +cmH +coZ +cmF +cmF +cuP +cmF +cmC +cAx +cqP +wPh +cKL +uYG +puQ +xMt +xMt +xMt +xMt +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aav aab aab aab @@ -118296,51 +109584,95 @@ aab aab aab aab +aav aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aay +aac +kSY +kSY +kSY +kSY +kSY +kSY +aac +bMx +aac +kSY +kSY +kSY +kSY +kSY +kSY +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (141,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -118358,14 +109690,7 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaA +aco aaA aaA aaA @@ -118384,8 +109709,8 @@ afo aaA aaA aco -abp -abq +abY +afB cDL afU afU @@ -118406,136 +109731,99 @@ axZ apk apk apk +sMW apk apk -apk -apk -aFl -aFl -aFl -apk -aHX +cBp +cBp +cBp +cBp +cBp +aHY apk bPB -uWN -vFo +cXU +dxH apg aab aab aOZ -aPT -aPT +bcx +bcx aRB aSz -aPT -aPR -aOW +biM +bkR +bmu cNI -aWY +bsP cWJ -bam -bQr +bBw +tpJ bcw bZh beW beZ bhr bcw -cIB -bjB -bkm -bkN -tlP -biQ +bCm +boR +bsN +bOe +bOO +chS bmm bre -boa -biN -box +bre +bre +cao cOR -box -box -aaA -aaA -aaA -bpr -bsN -btg -bun -bum -bVJ -bwR -bwR -bwR -bAA -bBy -bwR -bwR -bsN +bre +bre bsN +pUi bsN bsN aaA -aaA -aaA -aaA -aaA -bFH -bIt -cPz +cPu +cOW boU -cFZ -cBI -bOX -uRw -bQA -bRh -bRh -cFw -cWl -cKB -cJx -cJx -cJx -cWs -xQx -bQz -bZj -cJB -cUL -cJE -cJJ -cFR -cJz -bYJ -cdB -chI -ceG -ceG -ceG -cgM -ceG -ceG -ceG -ceG -ceG -aaA -aaA -aaA -aaA -ceG -cqt -bYa -cfm -ceG -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA +bVG +bYf +bHW +cgK +baE +cmI +cmI +cmF +csK +cuR +cmF +czj +ejv +cQI +wPh +cKM +uYG +puQ +xMt +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aav aab aab aab @@ -118553,51 +109841,95 @@ aab aab aab aab +aav aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aay +aab +aab +aac +aab +aac +aab +aab +aab +bMx +aab +aab +aac +aac +aab +aac +aac +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (142,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -118615,14 +109947,7 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaA +aco aaA aaA aaA @@ -118641,36 +109966,36 @@ afo aaA aco aco -abp +abY bAU cMn -afT -afT -afT -afT -afT +adr +adr +adr +adr +adr cQh -abc -abc -abc +acw +acw +acw cQi aug -abc +acw czQ -abp -abp -abp -abp -aAb -aqy -aCc -abc -aDB -aEv -aEv -aEv -aEv +abY +abY +abY +abY +cOb +aMt +cjF +acw +apk aEv +cBZ +aGM +cIl +cNr aHY aFl aJD @@ -118679,120 +110004,83 @@ vFo apg aab aab -aOW -aPS +bbp aPT -aRy +aPT +bfi aVr aPT cNG aOW +boQ aWY -aWY -brk +bxw bam eNI bcw bdO biG -bfa +beZ bhs bcw -cID -iAi -iAi -iAi -cII -bjC -bmn -bnh -bob -biN -czH -bpr +bDz boR -box -aaA -aaA -aaA -cOA -bsP -bth -buo -buU -bwT -bwR -byk -bAp -fZN -bBz -bFc -bwR -bDP -bEP -bGr -bsN -bsN -bsN +bNz +bOg +cII +bPI +bmn +bre +bob +bYY +czH +cgp +ctp +bre +fei +dfp +dSE bsN aaA -aaA -bFH -cTt -bJs +cPu +cOW boU -cGa -cBI -bOY -bUA -bQz -cUA -bRh -cFw -cJx -cJx -cJx -cWq -cJx -cJx -xQx -bQz -cjU -cJA -cau -cJF -cJI -cFS -cLn -bYJ -cPG -bYa -ceG -cSL -bYb -cgN -cdA -cRv -cTE -ckk -ceG -ceG -ceG -ceG -ceG -ceG -cqu -cro -cEs -ceG -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA +bVI +bYf +ccV +cgL +boU +cmC +cmC +cmC +cmC +cmC +cmC +cmC +cCA +cQI +wPh +tKd +tNZ +oQo +tIJ +wPh +cBH +xMt +xMt +xMt +xMt +xMt +xMt +xMt +xMt +xMt +nNI +bUe +nNI +aab +aab +aav aab aab aab @@ -118810,58 +110098,95 @@ aab aab aab aab +aav aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +lvp +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +bMx +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +lvp +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (143,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -118897,21 +110222,21 @@ cDG afo aaA aco -abp -abp +abY +abY bAV -abp -abp -abp -abp +abY +abY +abY +abY aaA -abp +abY ccE -afT -afT -arJ +adr +adr +aiH cQj -auh +ajG avd avd avd @@ -118920,7 +110245,7 @@ avd ayV avd avd -avd +cjN aCN apk aEw @@ -118932,7 +110257,7 @@ aHY aFl aJD uWN -vFo +dyx apg aab aab @@ -118941,116 +110266,78 @@ aPR aPT aRC aSB -aTR -aPR +aPT +bkT aOW aWY aWY -buq -bam -tpJ +brk +bBE +ofD bcw bdQ cJK -bgk -bgk +bfb +bJN bcw -biQ -bjC -bjC -bjC -biQ -biQ +bDz +boR +bsN +bOh +bOU +bPO bmo -bnh +bSW boc -biN -boS -bpr +bYZ +bYZ +cgI +cOz +bre +cyO +czR cOz -aaA -aaA -aaA -box -bpr -bsN -btz -bup -buV -bAZ -cGF -byl -bzi -bzi -bBd -bwo -bwR -bDX -bEX -bGs -bsN -bHy -cbi bsN aaA -aaA -bFH -bFI -bJs +cPu +cOW boU -cGb -cBI -bOX -uRw -bQz -cUB -bRh -cFG -fZL -fZL -fZL -cWr -fZL -fZL -cMy -cFI -cfq -cfq -cJC -cJG -cFK -cFT -cGf -bYJ -cdC -bYN -cVM -bYN -cef -bYa -cVN -bYN -bYN -bYN -bYN -bYN -bYN -bYN -bYN -cps -cqv -crp -csl -ceG -aaA -aco -aaA -aco -aco -aco -aaA -aaA -aaA +bVK +bYf +bHW +cgK +baE +cmN +kcN +cqu +cqu +cQI +kcN +cQI +cCA +cQI +wPh +cKY +uYG +cNz +uYv +cTr +uYv +uYv +uYv +uYv +uYv +uYv +uYv +uYv +uYv +uYv +uYv +czN +xMt +xMt +xMt +xMt aab aab aab @@ -119068,50 +110355,95 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acv +aab +aab +aab +aab +aab +aab +aab +aay +aab +jld +sVY +sVY +sVY +sVY +sVY +mii +bMx +fmq +lMY +lMY +lMY +lMY +lMY +ogu +aac +aac +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (144,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -119129,15 +110461,8 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaA -aaA +aco +aco aaA aaA aco @@ -119154,30 +110479,30 @@ aaA afo aaA aaA -abp +abY cPR -cPV +aQL cPZ cQb cQe -abp +abY aaA -abp -cOv -abc +abY +ayy +acw cRf -abp -abp -abp -abp -abp -abp -abp +abY +abY +abY +abY +abY +abY +abY cMo -ayW -abc -abp -cOv +aGz +acw +abY +ayy aCO apk aEx @@ -119194,17 +110519,17 @@ apg aab aab aOW -aOW -aQN +cNG +aPT aRD aSu +biO +cNG aOW -aOW -aOW -cEU +aWY aWY buu -ban +bam tpJ bcw bht @@ -119212,102 +110537,65 @@ beY bgk bgk bcw -biR -bjD -bjD +boR +bCm +bsN bkO blo bow blQ -bni +bre bod boy boT cMw -boR -box -box -box -box -bpr -bsN -btA -bul -buX -cEC -bwR -cJg -bzj -bAj -bBe -bwq -cEF -bDY -bEQ -bGP -bGN -bHA -bIs +ctr +cxh +cyP +cAi +cBQ bsN aaA -aaA -bFH -cOB -bLQ -bMs +cPu +cOW +boU boU -cIz -bOX -uRw -bQA -cUC -bRh -bTu -bUu -bVL -bZp -cbj -cbj -cbN -cbj -cFJ -cfr -cfr -cFa -cFi -cFL -cFU -cGe bYJ -cdB -cQK -bYa -bYa -cRQ -cfm -chI -cRv -bYa -chI -bYa -cRQ -ceG -cWh -cRy -cpt +bHW cgK -chI -cqt -ceG -aaA -aaA -aaA -aco -aco -aco -aaA -aaA -aaA +baE +cmO +kcN +cqv +csL +cvd +cxu +czl +cCC +cQI +wPh +cKZ +cMu +cOa +rEw +rEw +rEw +rEw +rEw +rEw +rEw +pxl +rEw +rEw +rEw +rEw +rEw +cwD +cwN +cxe +ufs +cqg +pcA aab aab aab @@ -119324,58 +110612,95 @@ aab aab aab aab +acv aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aay +aac +kSY +kSY +kSY +kSY +kSY +kSY +aac +bMx +aac +kSY +kSY +kSY +kSY +kSY +kSY +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (145,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -119411,19 +110736,19 @@ aaA aaA aaA aaA -abp +abY cPS cPW -abc +acw cQc coM -abp +abY aaA -abp -abp -abp -abp -abp +abY +abY +abY +abY +abY aaA aaA aaA @@ -119446,125 +110771,87 @@ aGO aGO aKv uWN -vrE +vFo apg aab aab -aab -aab -aab -aab -aab -aab -aab aOW aOW -aSt -brk -bam +bdW +bfm +aSv +aOW +aOW +aOW +boY +aWY +byb +bao tpJ bcw bdR bfa -bgm -bht +bgk +bgk bcw -biS -bjE -bjE -bkP -blp -boQ -cNN -czG -boe -biN boR +bDz +bsN +bsN +bsN +bsN +bsN +bsN +boe +bZa +cap bpq bpV -box +bre cOX -boR -box -bpr -bsN -bsN -bsN -bsN -bsN -bsN -byn -bzk -bAk -bBf -bXr -bwR -bXU -bER -bHd -bsN -bsN -bsN +cAM +cBS bsN aaA -aaA -bFH -bFI -bJr -cVD +cPu +cPt +ghs boU -cgm -bOX -uRw -bQA -cUC -bRh -bXb -bSw -bVM -xfQ -kdD -kdD -chS -ccm -cFI -cfs -fwg -cnQ -fwg -cFM -cFV -fQN -bYJ -cVK -chI -bYa -cfo -cfo -cfo -cfo -cfo -cfo -cfo -cle -cle -cle -cle -cle -cpu -cle -bYa -cqt -aaA -aaA -aaA -aaA -aco -aco -aco -aaA -aaA -aaA +bYM +bHW +cgK +baE +cmP +kcN +cqw +cQI +cQI +kcN +cpe +cWi +cQI +wPh +toM +cMF +cOd +cPy +mHU +mHU +bOQ +bOQ +bOQ +bOQ +hai +cvp +cvp +cvp +jMW +rEw +cwD +cwN +cxe +umd +cqg aab aab aab @@ -119582,57 +110869,95 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acv +aab +aab +aab +aab +aab +aab +aab +aay +aab +aab +aac +aab +aac +aab +aab +aab +bMx +aab +aab +aac +aac +aab +aac +aac +aab +aay +aab +aab +aab +bvx +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (146,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -119665,16 +110990,16 @@ aco aaA aaA aaA +aco aaA aaA -aaA -abp +abY cPT cPX cQa cQd cQf -abp +abY aaA aaA aaA @@ -119703,125 +111028,87 @@ aHZ aIR aLt aPc -vFo +cNB apg -aOl -aPa -aXe -aPV -aPV -aPV -aPV -aPV -aPV -aPV -aPV +aab +aab +aab +aab +aab +aab +aab +aab +aab +aOW +aOW aSt -brl -bbi -ofD +brk +bam +tpJ bcw bdS bfb +bIs +bdR bcw -bcw -bcw -biN -bjF -bkn -biN -bnj -czE -biN -bnk -biN -biN -aRZ -cEc -cOT -cOU boR +boR +boR +boR +boR +boR +boR +bsN +bXf +bZb +caG +cEc +cxg +bsN +cyW cPb -box -cQA -bpY -bur -cVw -cQW -bwh -bsN -byo -cUo -cUp -cUq -iPN -bsN -bEa -bEY -bHB +cBT bsN aaA -aaA -aaA -aaA -bFH -bFH -bFH -cQD -bFI +cPu +cPu +cOW boU -cBI -bOX -uRw -bQA -cUC -bRh +uss +pCX +gxP +boU +nLA +nLA +nLA +nLA +nLA +nLA +nLA +cWi +cQI +wPh +cLa +xnU +cOe +cQx +iiF +pLj +jto +cXX +epI +fvd cUD -bSw -bVN -bZS -cbl -cbL -cbL -cbL -cMC -cEV -cEV -cEV -cEV -cEV -cFW -fQN -bYJ -cdB -chI -bYa -cfo -cfW -cgO -chJ -ciL -cjF -cIj -cle -clP -cId -cnA -cop -cpv -cle -cRv -csm -aaA -aaA -aco -aaA -aco -aco -aco -aaA -aaA -aaA +cUD +jWb +cUD +cUD +jto +cvI +xMt +xMt +xMt +xMt aab aab aab @@ -119839,57 +111126,95 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aav +aab +aab +aab +aab +aab +aab +aab +aay +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +bMx +aab +sxV +sxV +sxV +sxV +sxV +sxV +aac +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (147,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -119925,16 +111250,16 @@ aaA aaA aaA aaA -abp -abp -abp -abp -abp -abp -abp -aaA +abY +abY +abY +abY +abY +abY +abY aaA aaA +aco aaA aqz arK @@ -119960,124 +111285,87 @@ aIa aIS aTf aTY -aKJ -ojZ +vFo +apg ojZ aZd -uSM -aQm -bvQ -joZ -uSM -uSM -bEb -uSM -biP -uSM +bbE +apg +apg +apg +apg +apg +bBZ +apg +apg +aSt brX bbm bvB -bNH +bcw utM -utM -iqD -uSM -uSM -cQx -utM -utM -iqD -joZ -uSM -bqS -bMu -bNJ -boz -aRZ -bpr -boR -box -boR -boR -box -boR -boS -bpr -boR -boR -box +bGW +bcw +bcw +bcw +apk +apk +apk +apk +apk +bFR +apk bsN bsN bsN bsN -bBh -bCe +cgJ +bZc bsN bsN bsN bsN bsN aaA -aaA -aaA +cPu +bUd +bUX +bVW +bYO +cde +cgK +boU bFH bFH -bKN +cqF bFH -bLR -bKj -bNb -cBO -bOZ -uRw -bQz -cUC -bRN -cFH -bSw -bWq -ccr -cbm -cKC -cbP -cMz -cFI -cEW -eJn -cQH -cSp -eJn -cQH -cMm -bYJ -cdB -chI -bYa -cfo -cgP -chK -ciM -cjG -cxi -cIk -cle -cVf -cmK -cnB -coq -bsd -cle -chI -csm -ceG -aaA -aaA -aaA -aco -aco -aaA -aaA -aaA +bFH +cmT +nLA +eSx +cQI +wPh +mzz +mzz +mzz +czz +mzz +osx +wPh +nNI +nNI +nNI +nNI +gqj +nNI +nNI +nNI +nNI +bUe +nNI +aab +aab +aav aab aab aab @@ -120095,58 +111383,95 @@ aab aab aab aab +aav aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aay +aab +jld +sVY +sVY +sVY +sVY +sVY +mii +bMx +fmq +lMY +lMY +lMY +lMY +lMY +ogu +aab +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (148,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -120171,14 +111496,14 @@ aaA aaA aaA aaA +aco aaA aaA aaA +aco aaA aaA -aaA -aaA -aaA +aco aaA aaA aaA @@ -120216,117 +111541,74 @@ aHy aIQ aIR aJD -aXg -oCd -oCd +uWN oCd +dIV +aYN aZT -aZU +uSM bkc -aQO -aRF -aSC -aQO -aQO -aQO -aQO -aQO +bdY +joZ +uSM +rwH +blc +uSM +bpt +uSM brg cJO btk -aQO -aQO -aQO +bEb +bFL +bFL aSC -aQO -aQO -aQO -aQO -aQO -aQO -blq -aQO -bmr -bAr -kXQ -bTr -aRZ +uSM +uSM +xaB +bDA +bpt +bOj +uSM +bPR +uSM +uSM +bXi +bsN +caO cRb -bpp -box -clq -clq -cOV -cOV -cOV -bpr -boR -cRc -box -aaA -aaA -bsN -bAm -bBi -bCf +ctt bsN aaA aaA aaA aaA aaA -bFH -bFH -bFH -cRh -bKO -bFH -bJs -bIt +cPu +bTE +cOW boU -cBI -bOX -voS -bQB -bQB -bQB -bQB -bUv -bWr -bQB -bQB -bQB -bQB -bQB -bQB -cIv +bYf +bHW +cgC +boU +cmT +bFH +bFH +bFH +bFH +bFH +nLA +eSx kcN -cQH -cFY -kcN -cQH -fQN -bYJ -cVL -bYN -cdA -cfo -cfY -cgQ -chL -cgU -cgQ -cgU -cle -cVg -cVk -cVn -cop -cpx -cle -cRy -cqt -ceG +wPh +cLo +cMK +cMK +cQA +cTw +cVm +wPh aaA aaA aaA @@ -120340,6 +111622,7 @@ aab aab aab aab +aav aab aab aab @@ -120353,57 +111636,99 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +aay +aac +kSY +kSY +kSY +kSY +kSY +kSY +aac +lmX +aac +kSY +kSY +kSY +kSY +kSY +kSY +aab +lvp +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (149,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -120429,13 +111754,13 @@ aaA aaA aaA aaA +aco aaA aaA aaA aaA aaA -aaA -aaA +aco aaA aaA aaA @@ -120475,115 +111800,72 @@ aIR aLu aPX cNC -aRs -aZb +esb +cNC brh aZY aRY -bkA -xGR +aQO +bfn aVO -biO -uLi -uLi -uLi -uLi -bsp -blr -uLi -uLi -uLi -uLi -bmv -cQE -uLi -uLi -uLi +aQO +rCc +aQO +aQO +aQO uLi +bBF +bCX +aQO +aQO +aQO +aVO +aQO +bKI +bLD +nJd +nJd bSv -xGR -uLi +nJd +nJd bDV bnn -kXQ -bON -aRZ -boR -bpr -cOV -cmm -cPc -cQz -cPp -cOV -cEc -cVw -boR -box +juo +bsN +caP +chv +ctJ +bsN +aaA +aaA +aaA aco aaA -bsN -bAn -bBj -bCg -bsN -aaA -aaA -aaA -aaA -aaA -bFH -cRg -bJr -bKj -bKP -bKj -bLS -bFI +cPu +bTg +cOW boU -cBI -bOX -uRw -bQB -bRl -bWv -bQB -bSw -bWQ -bQB -bVO -ccq -bWS -bYJ -bYJ -bYJ -bXu +bYf +bHW +cgK +boU +cmT +bFH +cqH +csM +bFH +cxv +nLA +eSx cQI -bXu -bXu -cQI -bXu -bYJ -bYJ -bYJ -cdB -cfo -cfZ -cgR -chM -cgR -cgR -cgU -clf -cVh -cVl -cVo -cBx -cpy -cle -bYa -cUm -ceG +wPh +dPX +bKL +cOf +cRi +mzz +cVs +wPh aaA aaA aaA @@ -120592,75 +111874,118 @@ aaA aaA aaA aaA +aaA +aab +aab +aab +aab aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -aav -bxM aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab +aab +aac +aab +aab +aac +aab +aac +aab +aab +aab +qzB +aab +aac +aab +aac +aab +aab +aab +aac +aay +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (150,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -120729,124 +112054,80 @@ axa axa axa axa -axa -axa -axa -axa -axa -axa -bap -aPY +aUZ +aWl +aXN +aYR +aZu +eXt +bbH +bcA vtT -aRH -aRH -aRH -aRI -aRI -aRI -aRI -aRH -aRH -aRI -aRI -aRI -aRI -bgp -bgp -bii -bii -bii -bii -bgp -bgp -bgp +xGR +bgm +biP +blf +bmZ +blf +bth +blf +bBH +blf +blf +blf +blf +bgm +bJO +bKJ +bLE +blf +blf +blf +bOV +bKJ bRS -aPY -kXQ -aOz -aRZ -boR -cOu -cOV -cOY -cPd -cPg -cPg -cPq -cPr -boR -boR -box +rcU +dFG +bsN +caU +cic +ctK +bsN +aaA +aaA +aaA aaA aco -bsN -bWp -bBk -bCh -bsN -aaA -aaA -aaA -aaA -aaA -bFH -bFI -bJs -bFI -cTt -cRh -cUf -bFI +cPu +bUf +cOW boU -cWO -bOX -uRw -bQB -coD -bRP -bSz -bRV -bWR -bVd -bVW -bWt -cLi -bYJ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bYJ -cdB -cfo -bnH -cgS -chN -cgU -cgg -ckl -cle -clT -cmN -cnE -clS -cpz -cle -bYa -cqt -ceG -aaA -aaA +bYQ +bHW +cgK +boU +bFH +bFH +bFH +csN +bFH +bFH +nLA +eSx +vTA +wPh +bKN +tci +cOg +cRi +mzz +cVu +wPh aaA aaA aaA aco +aco aaA aaA aaA @@ -120855,6 +112136,17 @@ aab aab aab aab +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -120863,61 +112155,94 @@ aab aab aab aav -aab -bxM aav -bxM +aav +aav +aav +aav +aav +aav +aac +evL +evL +evL +aav +evL +aav +aac +aav +qzB +aav +aav +aav +aac +aav +aac +evL +evL +lvp aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (151,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -120962,7 +112287,7 @@ adx adx ama aNh -vBE +arJ asO aFn vBE @@ -120986,128 +112311,95 @@ uVs uVs uVs aQX -aqG -aKL -aLx -aMn -aMn +axa +axa +axa +axa +axa axa bap aPY vLQ -aRH -bBv -cck -aSG -aSG -aSF -aSG -aSG -baq -bbB -bcz -bcz -bgq -bRL -bVt -bgr -cSC -bjG -bgr -bkQ -bPX -bgp +apk +apk +apk +sMW +apk +apk +cGu +cGu +cGu +cGu +bEc +bFM +bFM +bFM +cGu +bKU +bLF +bMV +bMV +bMV +bOW +bQr cJa -aPY -kXQ -aOy -aRZ -boR +bSY +izm +bZc +bsN +ciE bpW -cOV -cXd -cPe -cPh -cXe -cOV -cPs -boS -boR -boU -boU -bwR -cNR -bsN -bBl -bCe -bsN +bZc boU boU aaA -aaA -bFH -bFH -bIt -bJs -bFH -bFH -bFH -aaA -bFH +cPu +cPu +cPu +cPu +bUZ boU -cBM -bPa -uRw -bQB -bRn -gqj -bQB -bUw -bWW -bQB -cbR -cct -bWS -bYJ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bYJ +bZk +cdi +vJb +boU +cmX +bFH +bFH +csO +bFH +cxw +nLA +eSx cRB -cfo -cgb -cgT -chN -cgU -cjH -cgT -cle -cle -cle -cnF -cle -cle -cle -cXj -cqt -ceG -ceG -ceG -ceG -ceG +wPh +cLr +cML +cML +cRk +eyo +uRP +wPh aaA -ceG -cyo -cyo -cyo +aco aaA +aco +aco +aco +aaA +aaA +aaA +aab +aab +aab +aab +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -121121,60 +112413,93 @@ aab aab aav aab -bxM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +xhe +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab bLH -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (152,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -121245,127 +112570,93 @@ aWQ xjG aqG aKM -aKO +aXV aKN aKO axa cHZ aPY -kkw -aRI -aSF -aTT -aVf -aSF -aTT -aSF -aZe +ihU +apk +cnj +biZ +blk +bqa +bpv +cGu +bym bar bbC -bbB -bcz -bbB -bgu -bgu -bou -bgr -bjH -bgr -bkR -bgr -bii -bgn -aPY -dFG -aRZ -aRZ -bpt -bpX -cOV -cPa -cPf -boR +bEd +bik +bGX +bIy +bhx +bKU +bLG +bMX +bMX +bMX +bOW +bQr +cWN +tiF +bIG +bIL +caW +ciG +bwh +bIL +bOL +boU +bQF cpL -cOV +cPu cPs cPu -cVw +cOW boU cJd bwU -byf -bWy -bBB -bCv -bDd +cBm +cjx +cmY +cmY +cqN auH -boU -bFI -cVy -bFI -bFH -cTt -bJs -bFH -aaA -aaA -aaA -aaA -boU -cBK -bOX -uRw -bQB -bQB -bQB -bQB -cGg -bXt -bQB -bQB -bQB -bQB -bYJ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bYJ -cdB -cfo -cga -cgS -chN -cgU -cgg -cgS -clg -clU -cle +cvi +cxx +nLA +cCE cnG -cBC -cpA -cle -bYa -csn -cro -cro -cro -cvM -cvM -cvM -cxn -cvM -cxY -cyo +wPh +dUB +pxi +cOi +cRo +pxi +mzz +wPh aaA aaA +aaA +aco +aco +aco +aaA +aaA +aaA +aab +aab +aab +aab +aav +aav +aab +aab +aab +aab +aab aab aab aab @@ -121377,61 +112668,95 @@ aab aab aab aav -aab -bxM -aab -bxM +aav aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +xhe +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (153,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx aaa aaa aaa @@ -121508,187 +112833,187 @@ cND axa bap aPY -kkw -aRJ -aSG -aSG -aSG -aSG -aSG -aYg -aSI -bas -bbD -bcA -bbD -bbD +iiX +apk +bgB +bpw +bpw +bpw +bpz +bjL +bzm +bRi +bRi +bRi +bRi +bRi bgs -bhv -bik -bgr -bjI -bko -bko -bko -blT -bDW -bno -dFG -aRZ -cAs -bpr -box -cOV -cOV -cOV -cOV -cOV -cOV -cPs -boR -boS -boU -cJe -cAi -cAj -byf -cAk -byf -byf -bXV -boU -bFI -cQB -bFI -cST -bFI -bJs -bFH -aaA -aaA -aaA -aaA -boU -cBI +bJP +bKU +bLU +bMY +bMY +bMY bOX -cqm -bQB -cph -cCe -bQB -bSw -bWQ -bQB -bVR -cdc -bWU -bYJ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bYJ -cdB -cfo -cgc -cgT -chN -cgU -cjH -ckm -cle -clV -cle -bri -cot -cpB -cle -cUX -ciK -cRv -chI -cVR -chI -bYa -bYa -cRB -bYa -cqt -cyo -cyo -cyo -cyo -aab -aab -aab -aab -aab -aab -aab -aab -aab +bQs +bQV +bHX +bIG +bIL +cAs +cju +ctM +bIL +bOT +boU +bQT +cpL +cCm +cEQ +cPu +bUV +boU +bYf +bHW +mGY +boU +cTt +cTt +cTt +rgw +bFH +kdL +nLA +eSx +kcN +wPh +wPh +wPh +wPh +wPh +wPh +wPh +wPh +aaA +aaA +aaA +aco +aco +aco +aaA +aaA +aaA +aaA +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav +aav aav aab -bxM -aab -bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +sKh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (154,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -121754,133 +113079,99 @@ aEE aFt aqG aqG -aPp -aIe -mtV +cNw +cSG +cSJ aqG -aKO +aWo aLy aMo aMo axa bap aPZ -bmt -aRK -aSH -aTU -aSG -aWd -aXf -aYh +kXQ +apk +bhg +bqa +bpw +bRI +bpw +cGu aZf bat -bbE +bRi bcB -bbE -bbE +bRi +biU bgt -bhw -bil -bgt -bjJ -bgt -bgt -bls -blU +bje +bKU +bLU +mqh +mqh +mqh +bOY +cXe bFm bnp -xYx -aRZ -boR -bpr -boR -boR -boR -boR -cPi -cPg -cVv +bIG +bIL +caX +cjv +ctM +bIL +bOL +boU +leo +bRx +cPu cPt -boS -cOz +cIR +cPe boU -bwW -byf -cAk -bAq -bBo -bFA -byf -bXW +bZl +bHW +cEv boU -cUf -bFI -cQC -bFH -cPx -bJs -bFH +cnb +cTt +cTt +cTt +bMn +cxy +nLA +cWi +cQI +vTA +kcN aaA aaA aaA aaA -boU -cBL -bOX -uRw -bQB -cpR -cEZ -cIa -bRV -bWR -bVe -ccB -bWw -coD -bYJ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bXZ -bYJ -cdB -cfo -cgd -cgU -chN -ciN -cgU -cgU -cle -clW -cmO -cnG -cBE -cpC -cle -ceG -ceG -ceG -ceG -ceG -ceG -ceG -ceG -cUn -bYa -csn -cro -cyB -cdA -cyo +aaA +aaA +aaA +aco +aaA +aco +aco +aco +aaA +aaA +aaA +aaA +aaA +aaA +aab +aab +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -121892,60 +113183,94 @@ aab aab aav aab -bxM -aab -bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +sKh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (155,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -122021,123 +113346,89 @@ aqG aqG axa adN -aQa -bmu -aRL -aSI -aTV -aSI -bpJ -brc -aYi +aPY +kXQ +apk +apk +bpw +bpw +bDx +bDx +cGu aZg -bau -bbF -bcC -bdU -bfc +bBM +bRi +cOT +bRi +bGZ bgr bhx -bgs -bgs -blS -bgs -bgs -blt -blV -bFJ +bKU +bLV +bMZ +bMZ +bMZ +bOZ +cXe +bQV bnq qae -aRZ -boR -bps +boU +caZ +ckF cRA -cOW -bpY -bpY -cPj -bpY -bpY -bus -boR +boU +boU +boU +boU +bRz +cPu +bTg +bTD czJ boU -cJf -byp -byq -byf -bBp -byf -bDe -auI +eFp +uYC +cYe boU -bFI -bUm +cnb +cTt +cqO +wAl +bMq +cxz +nLA cWi -bFH -cRh -bJt -bFH +cQI +cQI +kcN +aaA +aaA +aco +aaA +aaA +aco aaA aaA aaA +aco +aco aaA -boU -cBI -bOX -uRw -bQB -cpX -cFc -bQB -bSw -bWQ -bQB -bRl -cde -bWU -bYJ -bYJ -bYJ -bYJ -cbn -bXu -bXu -cbn -bYJ -bYJ -bYJ -bYJ -cdB -cfo -cgd -cgU -chN -cgU -cgU -ckn -cfo -cfo -cfo -cnI -cfo -cfo -cfo -bYa -bYa -bYa -bYa -bKT -bYa -bYa -ceG -cdB -bYa -bYa -chI -cyC -cRu -cyo +aco +aaA +aaA +aco +aaA +aaA +aab +aab +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -122149,70 +113440,104 @@ aab aab aav aab -bxM aab -bxM aab aab aab aab aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +efS +aab +aab +aab +aab +aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (156,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -122236,7 +113561,7 @@ abS abU acP adk -adx +abp ady afd aff @@ -122279,122 +113604,88 @@ rUI axa btt aPY -kkw -aRI -aSG -aTW -aSG -aSG -aSG -aYj -byb +kXQ +bfo +apk +bpw +bRI +bpw +tbH +cGu +cGu bav -bbG -bcD +bRi +bRi beG bfd bBJ -bgu -bgu -bgr -bjL -bgr -bgr -bjH -bii -bgn -aPY -dFG -aRZ -boU -boU -boU -boU -boU -boU -cPk -boU -boU -boU -boU -boU -boU -boU -boU -cAl -bzn -bBq -bzn -boU -boU -boU -boU -boU -boU -boU -boU +bJQ +bKV +bLW bNa +bNa +bOk +bPa +cXe +cWN +tiF +bII +boU +cbb +clQ +ctU +boU +wic +gVY boU boU boU boU boU boU -cBP -bPb -uZH -bQB -bQB -bQB -bQB -bUz -bXv -bQB -bQB -bQB -bQB -bQB -cGm -unn -bXu -cQH -cco -cor -cQH -bXu -unn -cSq -bQz -cdB -cfo -cge -cgV -chO -ciO -cxl -bnN -cfo -cWD -cmP -cnJ -cCd -clX -cfo -bYa -ciK -cSb -bYa -bYa -bYa -cgK -ceG -cdB -cRv -cTR -ceG -cWj -cdB -cyo +boU +qaj +bHW +doD +boU +nLA +nLA +nLA +csP +nLA +nLA +nLA +cWi +cFv +cRB +kcN +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aab +aab +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -122406,70 +113697,104 @@ aab aab aav aab -bxM aab -bxM aab aab aab aab aaa aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +xhe +aab +aab +aab +aab +aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (157,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -122534,124 +113859,90 @@ aXQ aXS aXS axa -bap +fEg aQb aSw -aRH -aSJ -aTW -aSG -aSG -aSG -aYj -aZh +bft +apk +bpw +bpw +bpw +tbH +vlM +cGu baw -bbH -bcE -bdW -bfd +bRi +bRi +bRi +biV bgv -bhy -bhy -bgr -bjL -bgr -bgr -bqu -bgp -bnu -bAs +bJQ +bKU +bMb +bjQ +bkV +bOl +bPb +bjV +cWN +amy vJb -joZ -uIi +bIM +cbe bTt -uIi -uIi -cec -cfP cPl -uIi -uIi -uIi -uIi -bVI -neT -cBm -hST -cEv -bNv -bBr -byf -hST -neT -neT -neT -uIi -bZR +cxj cfP -uIi -cjv -uIi -nkH -cBF -uIi -uIi -uIi -cBQ -bOX -uRw -bQB -bRl -bWN -bQB -bSw -bWQ -bQB -bVU -cdM -bWV -bQB -cWT -bSw -cax -cQH -ccs -cTJ -cQH -cRM -bSw -cWV -bQz -cee -cfp -cgf -cgW -chP -ciP -cjJ -ckp -clh -clY -cmQ -cnK -cow -bsY -cfo -bYa -bYa -bYa -bYa -bYa -bYa -bYa -ceG -cdB -cRv -chI -ceG -cyC -cdB -cyo +cfP +xEK +cfP +cCq +cfP +cfP +cfP +bVX +bZm +bHW +ely +dQT +kcN +kac +cQI +tPt +cQI +cQI +cQI +cWi +cQI +cHa +kcN +aaA +aaA +aaA +aaA +aco +aaA +aaA +aaA +aco +aco +aaA +aaA +aaA +aco +aaA +aco +aaA +aaA +aab +aab +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -122663,70 +113954,104 @@ aab aab aav aab -bxM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +fhl +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab bLH -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (158,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -122751,8 +114076,8 @@ abA abA abA cob -ady -aff +abq +aeg afX agP ait @@ -122794,121 +114119,87 @@ axa bbt aPY txO -aRH -aSK -aTX -aSK -aSK -aSK -aYj -aRH -bax +apk +apk +bpw +bpw +bqa +tbH +wMr +cGu +bCa bbI bRi bdX bfe -bgp -bhz -bhz +bjc +cGu +pXA +eNE +bjS biT -bjL -biT -bhz -blv -bii -bgn +bOo +bPc +bjV +bQV bqv -bqx +boW bqz wEY bsB -wEY -dQT -wEY -dQT -cPm -dQT -wEY -cAB -wEY -dQT -wEY -dQT -bQQ -cAm -cuX -bBs -bzo +boW +utp +boW +boW +cPf +cPf bXG +cPf +cPf +cPf +bVY boW -boW -boW -but -boW -boW -boW -bJv -boW -bpv -boW -boW -bMt -boW -boW -cCq -cCl -bQB -coD -bRP -bSB -bRV -bWR -bVf -cmG -bWz -cLm -bQB -caw -bSw -bXu -bXu -bYJ -bYJ -bXu -bXu -bSw -cSs -bQz -cdB -cfo -cgg -cgS -chN -cgU -cgg -cgS -cfo -clZ -cmR -cfX -cox -cpD -cfo -cUY -bYa -ceG -ceG -ceG -ceG -ceG -ceG -cdB -bYa -cRy -ceG -cTS -cdB -cyo +cdA +ely +dQT +kcN +cQI +cqP +csQ +bFY +vXt +vXt +cCJ +cQI +vTA +kcN +aco +aaA +aaA +aco +aaA +aaA +aco +aaA +aaA +aco +aaA +aco +aaA +aaA +aaA +aaA +aco +aaA +aaA +aaA +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -122920,70 +114211,104 @@ aab aab aav aab -bxM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +fhl +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab bLH -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (159,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -123048,124 +114373,90 @@ aXQ aYP aYP axa -cCB +bap aPY txO -aRM -aSL -aZV -aVh -aWe -aZW -aYk -aRN -aRN -aRN -aRM -aRN -aRN -bgp -bhA +apk +bqa +bpw +aVn +aVn +aVn +aVn +baD +baD +bhH +bEe +bin +bja +bjd +cGu +bKX +bMc +bjV +bkX bim -biT -bjL -biT -bim -blw -bii +bPd +bjV cGC -bns -bNM -xGR -eFp -eFp -khi -eFp -eFp -bUo +bTr +clK +bIN +clK clK -eFp khi -bAQ -eFp -eTx -cSG -eTx -ihw -cEw -byf bBC -cGd +jEA +clK +clK +clK +clK +clK +clK +clK +bWg +bZq +ccV ihw -eTx -eTx -cIR -sDf -ean -ean -ean -cBB -ean -ean -ulq -clB -cBH -ean -bVV -bOY -bVk -bQB -bRn -gqj -bQB -bSw -bXX -bQB -cWa -cfT -bWV -bQB -cWP -bSw -gMV -cbS -ckT -cTK -cMx -fEH -bSw -cSu -bQz -cSI -cfo -cgh -cgX -chN -cgU -cjK -ckq -cfo -cma -cmS -cnL -coy -cma -cfo -bYa -cVQ -ceG -cQL -bYN -bYN -bYN -bYN -cXm -bYN -cXw -ceG -cyC -cdB -cyo +dQT +kcN +cQI +cQI +cQI +eKh +cQI +cQI +bOa +woU +cQI +kcN +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aco +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aco +aaA +aav +aab +aab +aab +aab +aab +aab aab aab aab @@ -123177,9 +114468,11 @@ aab aab aav aab -bxM aab -bxM +aab +aab +aab +aab aab aab aab @@ -123188,59 +114481,91 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +tQh +jTP +tQh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (160,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -123307,122 +114632,88 @@ aLA axa bap aPY -txO -aRN -aSM -aTZ -aVi -aVj -aVj +vLQ +apk +bpw +bpw +aVn +aUl +bbR czq -aRN -bay -bbJ -bcG -bdY -bff -bgp +bfu +baD cGu -bhB -biT +cGu +cGu +bff +bje +cGu +bKY +bMd bqq -biT -bhB -blx -bii -bgn -bns -dFG -aRZ +blr +bOs +bPe +bjV +baE +baE +baE boU boU boU boU boU boU -bss -bsQ -bsQ -bsQ -bsQ -bsQ -bsQ -bsQ -bsQ -bsQ -bAD -bBD -boU -bDb -bDb -bDb +bhp boU boU +bIL +bIL +bIL boU boU +bZr +bHW +cgM boU -bss -boU -boU -boU -boU -boU -boU -cTW -bOX -uRw -bQB -bQB -bQB -bQB -bUv -bWr -bQB -bQB -bQB -bQB -bQB -bTw -bSw -gMV -cSn -cSn -cSn -cSn -fEH -bSw -cSE -bQz -clb -cfo -cgi -cgi -chQ -ciQ -cgi -cgi -cfo -cfo -cfo -cfo -cfo -cfo -cfo -ceG -ceG -ceG -cHl -ceG -ceG -ceG -ceG -ceG -ceG -cXx -ceG -cyC -cdB -cyo +cnc +cnc +cnc +cnc +bMH +cnc +cnc +cnc +cWi +cHe +kcN +aaA +aaA +aaA +aco +aaA +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aco +aaA +aco +aaA +aaA +aaA +aaA +aaA +aab +aab +aab +aab +aab +aab aab aab aab @@ -123434,9 +114725,11 @@ aab aab aav aab -bxM aab -bxM +aab +aab +aab +aab aab aab aab @@ -123445,59 +114738,91 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +tQh +dpg +tQh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (161,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -123546,7 +114871,7 @@ ayh aFi aAj dPK -aCn +arX aCY aDM aLz @@ -123564,122 +114889,88 @@ aNo axa bap aPY -txO -aRN -aSN -aUa -aVj -aVj +aRV +apk +bpw +bpw +aVn +aUs aXh -bGo -aRN -baz +btE +bfv +baD bbK -bcH +cKr cKr bfg -bgp -bhz -bhz -biT -bjN -biT -bhz -blv -bii -bgn -bns -dFG -aRZ +cKr +cKr +bKb +bMf +bNc +bNc +bOw +bNc +bNc +bQX +bTv +bXm +bIO czI -bpw -bpw +bJV +bKS cUP -bpw -cVs -bst -bsR -btB -buv -buZ -bvI -bws -bxt -bzf -bsV -doD -bBE -bCU -mqh -mqh -bEZ -bFK -bHC -bIz -bIB -bIu -bJx -bpw -bpw -bpw -bpw -bMv +cAg +blk boU -cBS -bOX -qUA -bQC -vKZ -ggi -bZT -bSw -bWQ -eqk -vKZ -ggi -cbQ -bZU -ccV -cGh -cPH -jNI -cSr -jNI -jNI -cSz -cGh -cSF -cUb -cSK -cUc -vKZ -chT -czC -bSw -cIi -bRh -cUd -cmb -cmU -cnN -coz -cnN -cWF -cnM -cpE -ctt -cuk -cmd +bRH +bSq +bTh +bUg +bOL +boU +cWN +bHW +vJb +bIL +cne +cpm +cqQ +csR +bEZ +bIB +czm +cnc +cWi +bIu +kcN aaA -cSc -cTi -cXn -cXs -cVT -ceG -cyC -cdB -cyo +aaA +aco +aco +aaA +aaA +aaA +aco +aco +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aab +aab +aab +aab +aab aab aab aab @@ -123691,9 +114982,9 @@ aab aab aav aab -bxM -aab -bxM +aab +aab +aab aab aab aab @@ -123704,57 +114995,91 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +tQh +vfZ +tQh +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (162,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -123822,196 +115147,196 @@ axa bap aPY wZC -aRN -aSO -aUb -aVk +apk +bqa +pII +aVn aWf -aWf -aYo +bbS +bGo aZi -baA -bbL -bcI -beX +baD +bCY +blG +blG bfh -bgp -bhA -bin -biT -bjN -biT -bin -bkX -bii +bjg +bJZ +bLb +bMg +bNe +bNC +bOx +bPf +bNe bGO bnt -dFG -aRZ -boZ +bXo +bIO +cbx +cOS +bKT +bNd cAg -bpc -bpc -bpc -bpc -cPn -bsS -btC -btG -btG -btG -btG -btG -bzg -bzq -doD -bBw -bCm -bCm -bCm -bFL -bFK -bHD -bGQ -bIZ -bIu -bIu -bIu -bIu -bIu -bIu -czK +bqa boU -cod -bPd -bXK -bQD -bRV -bRV -bUp -bVa -bYd -cbf -bRV -bRV -bRV -cbf -ccp -cbf -bVa -cbf -cFC -cbf -cbf -cbf -cbf -cbf -cbf -cbf -cGn -bSw -csZ -czC -bSw -eqk -vKZ -vKZ -cmb -cmW -brT -coA -cpF -coA -crq -csp -csp -cmU -cmd +boU +boU +boU +boU +boU +boU +bZt +cdB +cgY +cjB +cnx +cps +cqS +cqS +cvk +cxA +czn +cnc +cFx +cQI +kcN +aaA +aco +aaA +aco +aaA +aco +aaA +aaA +aaA +aco +aaA +aaA +aco +aco +aaA +aco +aaA +aco +aaA +aaA +aaA +aaA aaA -cSc -cVT -cXo -cXt -cVT -ceG -cyC -cVV cyo -aab -aab -aab -aab -aab -aab -aab -aab +cyo +cyo +cyo +cyo +cyo +cyo +cTL +cTL +cTL +cyo +cyo aab aav aab -bxM -aab -bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +gnM +gnM +tQh +bjD +tQh +gnM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (163,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -124076,199 +115401,199 @@ aqG aqG aqG axa -bap -aPY -vtT -aRN -aSP -aUc -aVl +fYO +gfv +bec +baD +baD +bhp +aVn aWg aZX -aVj +ckT cEE -baB -bbM -bcJ -bqb -bfi -bgp -cXZ -bhB -biT -bjN -biT -bhB -blx -bii -bgn -bns -qae -aRZ -boZ -cOS +baD +bfk +bfk +bfk +bfk +bfk +bFQ +bxi +bMh +bNk +bNH +bOy +bPg +bNe +bRE +bnt +bXp +bZy +cbx +brI brI cVp -bpc -cTI -cVu -bsR -bvK -buw -btG -buY -bwj -bCu -bzh -bzr -bAF -bBF -kNb -kNb -bGu -bFN -bFK -bHE -bGQ -bJa -cbJ -bJG -bKz -bLf -bLw -bIu -bMw -bNc -cBT -bPe -bYs -bQC -xfQ -bSD -bUq -bVc -bYM -cbg -bSw -bSw -bSw -bSw -cll -bSw -bVc -bSw -bSw -bSw -bSw -cGj -bSw -bSw -bSw -bSw -cGo -cbf -cFC -cCP -cbf -cbf -cbf -ccp -cmc -cmV -cvQ -coB -coB -coB -cmU -csp -csp -cul -cmd +cAg +bji +bQZ +bQZ +bQZ +bQZ +bQZ +bVa +cTX +bZw +cdE +chu +hci +cnB +cpt +cqT +csS +cvl +cxB +czo +cnc +eSx +cQI +kcN aaA -cSc -cWu -cXp -cXt -cXy -ceG -cyC -cQN +aaA +aaA +aaA +aco +aaA +aaA +aaA +aco +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +kcN +kcN +kcN +qnG +cRB +qTU +cRB +cnG +cQI +cQI +cQI +cQI +cQI cyo aab -aab -aab -aab -aab -aab -aab -aab -aab aav aab -bxM -aab -bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +gnM +bvh +wiD +cWq +iSJ +gnM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (164,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -124326,7 +115651,7 @@ aGf aqG aPp aIj -fMb +cSV aJW bRj aLC @@ -124335,197 +115660,197 @@ aNp aOp bbu aQc -bAo -aRN -aRN -aRN -aRO -aRO -aRO -aRO -aRO -aRO -aRO -aRO -aRO -aRO -bgp -bhC +bme +aYw +bVt +bnV +aVn +aVo +bbT +bee +bfw +baD +bhK +bhN bio -biU -bjO -biT -bhz -blv -bii -bgn -bns +bjb +bjj +bFQ +bxi +bMj +bNq +bNJ +bOB +bPh +bNe +bRQ +bTx xYx -aRZ -boZ +bZz +cby +cmg +cSS +cxk +cAg +cVt bDx -cSS -cSS -cSS +bRI +bPE +bRI bDx bDx -bsR -btH -bux -bva -btG -bwk -lpx -bzl -bsV -doD -bBH -bCo -bDm -bEc -bGh -bCq -cJi -bGR -bJb -cbM -bVT -bKD -bLh -bLx -bIu -bCD boU -cBU -bOU -bYX -bQE -bSw -bSw -bYo -bVc -bYO -fDN -fDN -fDN -fDN -fDN -cFg -ccv -cEY -bZS -cTP -cSt -fDN -cGk -fDN -cGl -fDN -bUy -cay -cft -ccn -cGp -ccn -ccn -ccn -cyF -cmb -cmX -cnP -coB -coB -coB -cnN -csp -csp -cnN -cmd +bZK +ccx +chG +cjB +cnx +cpu +cqU +csT +cvm +cxB +czs +cnc +cWi +cQI +kcN aaA -cSc -cVT -coh -cXu -cXz -ceG -crd -cTU +aaA +aaA +aco +aaA +aco +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aco +aaA +aaA +aaA +aaA +kcN +yfB +oRP +oRP +cGp +cGp +oRP +oRP +vzV +wSL +vEe +izi +nYU +cyo cyo -aab -aab -aab -aab -aab -aab -aab -aab -aab aav aab -bxM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +gnM +saP +wiD +hrD +hgf +gnM +aab +aab aab bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (165,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -124546,17 +115871,17 @@ aab aab aab aab -aab -aaA -aaA -abA -abA -abA -abA -abA acp acp acp +abA +abA +abA +abA +abA +abA +acp +acp acp abA aDN @@ -124576,137 +115901,113 @@ aAl mtV aqG aqG -aDH -aEE -aFA +arX +arX +arX aqG aqG aEq aIk aIX -aIZ +aKT aKT aLD aMv -aqJ +eXo aOq bap -aPY -bmx -aRZ -aSR +bcD +beE +aSS +bhl cJL -aRO +blp cJN -aSY aWq +bul aYp -aYw +bCc cMT bqt aVs bcK -bgp -bhM -bim -biT -bqQ -biT -bim -bly -bii -bgn -bns -dFG -aRZ -boZ -bDx -cUv -cVq +bIA +bDo +bKl +bMu +bNk +bNP +bOC +bPi +bNe +bRU +bTO +bXK +cVr +cVr +cVr +cVr +cVr cVr cVt -bpz -bsR -bsQ -bsQ -bxf -btG -bwl -bxa -bzp -bsQ -doD -bBH -bCW -bDo -bEh -bGi -bCq -bHF -bGS -cXK -bIx -bIx -bIx -bIx -bIx -bIx -bCD -boU -cBS -bOU -cCg -bQC -bSx -bSE -bZk -bVh -cWo -bVi -bRs -bWB -bWB -bWB -bWB -bWB -bZq -bZW -bWB -bWB -bWB -bWB -bWB -bWB -bWB -bTw -bVc -cfu -cNW -bRh -bRh -bRh -bRh -bRh -cmb -cmY -cBk -coC -byP -coA -crr -csq -cnN -cum -cmd +bDx +bDx +bDx +bDx +bDx aaA -cSc -cXl -cXr -cXv -cXA -ceG -cyC -cRB +boU +cWN +ccx +chZ +bIL +mgk +cpu +cqV +csU +cvn +cxB +czv +cnc +cWi +cQI +aaA +aaA +aco +aaA +aaA +aaA +aco +aaA +aaA +aaA +aaA +aco +aaA +aaA +aco +aco +aaA +aaA +aaA +aco +aaA +aaA +kcN +eSx +kcN +kcN +kcN +kcN +kcN +kcN +csQ +vXt +cFV +xZe +tMv +ocU +cyo cyo aab aab @@ -124717,72 +116018,96 @@ aab aab aab aab -aav +aab +aab +aab +aab +aab +gnM +yij +sfN +eEi +yjC +gnM +aab +aab aab bxM aab -aax aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (166,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -124803,15 +116128,15 @@ aab aab aab aab -acp -acp -acp -acp -acp -acp -acp -acp -acp +aab +acS +cuL +agb +aiB +aHX +aga +bnu +bpH aiv ajQ akR @@ -124841,205 +116166,205 @@ cLx aQQ aIl aKu -aqJ -aBk +aJr +aJr aLE jLE aNq aOr bap -aRS -aUd -aWZ -cSJ +aPY +bme +aYw +bnS czM -aRO +aVn bbn -aSX -aSX -aSX -aSX -aSX -aSX -aSX +bep +bep +bfy +aYw +bhL +bhO +biq bea -bgp -bhB -bhB -biT -bgr -biT -bhB -blx -bii -bgn -bns -dFG -aRZ +bjj +bFQ +jXM +bMh +bNe +bNe +bNe +bNe +bNe +bSA +bTT +bXM +bZI czK -bpx -bpx -bpx -bpx -bpx -bpx -bsz -btI -bsQ -cEz -btG -bwm -bxb -bzs -bsQ -bAG -bCa -bCq -bDp -bHg -bGj -bCq -bHG -bGT -bJd -bIy -bJI -bNP -bLp -bLy -bIx -bCD -boU -cBS -bOU -uRw -boU -bQB -bQB -bSG -bTz -bSG -bQB -bQB -bWB -bWX -bXw -bXA -bYP -bZr -bWX -bWB -cbo -bWB -ccw -bWB -cdE -bWB -bTw -bVc -cfu -bQz -cnU -bQz -ciR -cjL -ckr -cmd -cmd -cmd -cmd -cmd -cmd -cmd -cmd -cmd -cmd -cmd +cmk +ctV +cxm +cVr +cVt +bDx aaA -cSc -cSc -cSc -cSc -cSc -ceG -cyC -cdB +aaA +aaA +aaA +aaA +boU +cWN +ccx +cgK +bIL +cnx +cpv +cqW +cqW +cvo +cxF +czx +cnc +cWi +cQI +kcN +aaA +aaA +aaA +aco +aaA +aaA +aco +aaA +aaA +aco +aaA +aaA +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +kcN +eSx +kcN +gsP +bWJ +cQI +cQI +kcN +kcN +kcN +kcN +wYv +kcN +eSx +cQI cyo cyo cyo cyo -aab -aab -aab -aab -aab -aab +cyo +cTL +cTL +cTL +cTL +cTL +cyo +cyo +cyo +cyo +cyo +cyo +nuC +cyo +gnM +gnM +gnM aav +aav +aav +bxM +aab aab bxM aab -aax aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (167,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -125104,104 +116429,67 @@ aqG aqG aqG axa -bap -aPY +aQa +bcJ bmy -aRP -aRO -aRO -aRO +bfJ +bhm +bjG +aVn aWi -aXj -aYq -aYq -aYq -aYq -aYq -aSX +bpX +buo +bAc +aYw +bhM +bii +bir bfj -bgp -bhD -bgr -bgr -bgr -bgr -bgr -bqu -bgp -bpb -bns +bjj +bFQ +bxi +bMB +blC +blA +bEw +bPj +bCl +bFQ +bUc cYb -aRZ -boZ -bpx -aQW -bqd -bqf -bqg -bpx -btD -cOc -bsQ -cEA -btG -bwn -bxc -bzF -bsQ -dIv -bCc -bCX -bDE -bEk -bGk -bCq -dIv -bGU -bJe -bIy -bJJ -bKn -bKU -bLz -bLT -bMx +bZI +cbC +cmD +ctY +cxq +cza +cBF boU -cBV -bOU -uRw boU -eVg -eVg -eVg -bSH -eVg -eVg -eVg -bWB -bWY -bWY -bWY -cNS -bZs -bZX -bWB -cbp -bWB +boU +boU +boU +boU +boU +bZM ccx -bWB -cdF -bWB -cTQ -bVc -cgj -bQz -bTF -bQz -bQz -bQz -bQz -cmd +cgK +bIL +cnx +cpw +cqX +cqX +cqX +cxG +czy +cnc +cWi +cQI +kcN +aaA +aco +aaA +aco aaA aaA aaA @@ -125210,6 +116498,7 @@ aaA aaA aaA aaA +aco aaA aaA aaA @@ -125218,12 +116507,38 @@ aaA aaA aaA aaA -ceG -cyD -cyQ -cvM -czj -cdA +kcN +yiG +kcN +cQI +cQI +cQI +mvY +xAN +sbk +eAT +fHC +bLY +kcN +bKg +fCX +oRP +oRP +cGp +cGp +cGp +cGp +cGp +dqe +cGp +cGp +cGp +cGp +cGp +cGp +cGp +cGp +wOF cyo aab aab @@ -125231,72 +116546,82 @@ aab aab aab aab +bxM +aav aav -aab bxM aab -aax aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (168,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -125323,7 +116648,7 @@ cuL adG aem afl -aga +bcU agT ahG aix @@ -125354,9 +116679,9 @@ hIv cLz aQR aIn -fMb -aqJ -aBk +cSV +cUE +uVs aLF aMx aNr @@ -125364,97 +116689,65 @@ aOs bbv aPY eGt -aRQ -cnj -aUj -aRO -aWj -aSX -aSX -aSX -aSX -baE -aSX -aSX +baD +baD +bhp +aVn +aYq +aXt +aYs +bfl +baD +bCZ +bEf +bFN +bHa bfk -bgp -bhE -bgr -bgr -bgr -bgr -bgr -bjH -bgp +bKa +bxi +bMJ +bNr +bDB +bEx +bEB +bCl bFQ -bns -dFG -aRZ -boZ -bpx -bfr -bqO -brt -bqN -bpx -brO -btK -buz -bwd -bwt -bxu -bVQ -bzG -bsQ -bAH -bCc -bCq -bDh -bEE -bDh -bCq -dIv -cOi -bJy -bJC -bJK -bKo -bKV -cOe -bIx -cPC +bUx +bPq +bZL +cbD +crM +cuc +cxC +cVr +cBI boU -cBW -bOV -voS +kgv +hTm +tcW +hTm +yeB +bIL +bZT +ccB +cgC boU -bRu -bRX -bRX -bTA -bRX -bRX -bZK -bWB -bWB -bWB -bWB -bWB -bZt -bZY -bWB -bWX -cov -bWX -ccW -cgk -cgY -bVg -caz -crl -bQz -bRy -bRA +cnF +cpx +cqY +csV +cvq +cxH +czA +cnc +cFy +cQI +kcN +aaA +aaA +aaA +aaA +aco aaA aaA aaA @@ -125464,6 +116757,29 @@ aaA aaA aaA aaA +aaA +aaA +aco +aaA +aaA +kcN +kcN +kcN +eSx +kcN +cQI +cQI +cQI +cQI +xAN +bLY +jqK +gKz +bLY +kcN +kcN +kcN +cQI cwQ cwQ cwQ @@ -125475,12 +116791,11 @@ cwQ cwQ cwQ cwQ -cyo -cyo -cyo -cyo -cyC -cQN +cwQ +cwQ +cwQ +cwQ +eSx cyo aab aab @@ -125488,72 +116803,82 @@ aab aab aab aab -aav -aab -bxM -aab bxM aab aab +czp aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (169,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -125574,13 +116899,13 @@ aab aab aab aab -aab -acS -cuL -cif -aen -afm -agb +acp +acp +acp +acp +acp +acp +acp agU ahH aiy @@ -125598,120 +116923,83 @@ arX arX axa axa -awj +aKU aFR aGZ aIW -azm +aUd aqG aqG -aDH -aFt +arX +arX aqG aqG aEq cHz -aIZ -aIZ +aKT +aKT aKT aLG -aMv -aqJ +eWd +aDU aOq bbv aQb aSA -aRR -ebs -cAw -aVm -aWk -aXk -aYr -aYr -aYr -bep -aSX -aSX -bfl -bgw -bgw -bgw -biV -bjQ -bkp -bgw -blz -bgw +apk +bpw +blk +aVn +aYs +bno +bgy +bgy +baD +bfk +bfk +bfk +bfk +bfk +iZg +lXa +iVC +blC +bDC +bOD +bPm +bCl bGg bHj -dFG -aRZ -boZ -bpx -bfs -bqP -voR -bqT -bpx -bsV -bvN -bsQ -bsQ -bsQ -bsQ -bxe -bVv -bsQ -bBM -bTx -bCs -bDi -bEd -bFa -bCs -cOd -bGW -bJe -bIy -bJL -bKp -uWS -bLB -bIx -bCD +cYb +bZI +cbH +cpq +cud +cxD +cVr +cVt boU -cBX -bPf -uZH +pXR +qIN +qIN +qIN +usZ +bIL +luG +cdM +hST boU -bRv -bRY -bRZ -bTB -bVX -bVY -cFb -bWB -ciS -bXx -bXx -bWB -bZu -bYg -caA -bYg -cNU -bYg -ceg -bWX -bWB -bYe -ceI -chR -bQz -bRy -bRA +cnc +cnc +cnc +cnc +cnc +cnc +cnc +cnc +cWi +cQI +kcN aaA aaA aaA @@ -125720,24 +117008,51 @@ aaA aaA aaA aaA +kcN +kcN +kcN +kcN aaA +aaA +aco +aaA +aaA +aaA +aaA +kcN +cQI +cnG +eSx +kcN +cQI +cQI +cQI +oOR +xAN +hMW +ykg +oqf +olF +kcN +aaA +kcN +cQI +cCp +cnt +oUp +cpo +cpo +luQ +cwQ +hpI +flb crs csr ctu -ctu +pin cKj -cvN -cvN cwQ -cqS -cxG -cxZ -cyp -cyE -cyR -cwQ -czk -cef +eSx cyo aab aab @@ -125745,72 +117060,82 @@ aab aab aab aab -aav -aab bxM aab +aab bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (170,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -125831,12 +117156,12 @@ aab aab aab aab -acp -acp -acp -acp -acp -acp +aab +aaA +aaA +aaA +aaA +aaA acp agV ahI @@ -125868,107 +117193,82 @@ aGg aqG cDW aIp -fMb +aHD azm aKV aLE jLE aNs aOr -bbw +bbv aPY -eGt -aRR +bmf +apk +bRI +bpw +aVn ebs -czO -aVm -ebs -aXl -aYq -aYq -aYq -aYq -aYq -aSX -bfm -bgw -bhF -cSA -biW -bjR -bkq -bkS -blA -blW +aYs +bfl +bgz +baD +bDh +bEg +bCl +bHb +cKr +bKb +bxi +bMB +blC +bEm +bEy +bFo +bCl bJT -bnv -dFG -aRZ -boZ -bpx -cNO -buC -voR -brs -bsu -brP -btL -bAv -bvb -bvJ -bwu -bxX -bAg -bAu -bAI -bCi -bCt -bDj -bEe -bFb -bCs -cJj -bGX -bJe -bIy -bJM -bKI -bLq -bLC -bIx -bCD +bnx +cYb +bZI +cbJ +cpM +cue +cxE +cVr +cVt boU -cBS -bPg -cqm +sHs +qIN +uqr +leD +usZ +fqq +cgY +cWO +cAj boU -bRw -bRw -bRw -bTC -bRw -bRw -cOt -bWB -bXa -bXy -cWk -bYQ -bZv -bWX -bWX -bWX -bWB -ccy -bWB -cdG -bWB -bQz -bQz -bQz -bQz -bRy -bRA +aaA +aaA +aaA +aaA +aaA +aco +aaA +kcN +cWi +cQI +kcN +aaA +aco +aaA +aaA +aaA +aaA +aco +aaA +kcN +cQI +cQI +kcN aaA aaA aaA @@ -125976,25 +117276,40 @@ aaA aaA aaA aaA +kcN +cQI +cQI +cWi +kcN +cQI +cQI +cQI +cQI +xAN +bLY +qIM +qPq +llg +kcN aaA -aaA -crs -csr -ctu -ctu -ctu -cvN -cvN +kcN +cQI +cCp +cnt +cpp +cpo +cpo +luQ cwQ -cWI -cxH -cya -cGN -cGJ -cWK +tWJ +qYQ +vVH +uIh +gwK +gVS +jHx cwQ -cqt -bYa +eSx cyo aab aab @@ -126002,72 +117317,82 @@ aab aab aab aab -aav -aab bxM aab +aab bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (171,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -126104,7 +117429,7 @@ amd apn aof wwa -aqK +aCc arZ atr aus @@ -126134,124 +117459,114 @@ aqG axa btR aQd -bmI -aRT +iPp +apk +apk +bpw +aVn lRt -cAy -aUA -lRt -aXm -aYs -aYs +bfl +bup +bAm baD -bbP -aYs -aZo -bfn -aVo -gMF -gMF -gMF +bDi +bEh +bFP +bHc +bIE +bKe +bKe gMF +blC ehl -bki -bgw -bgw +ehl +ehl +bCl bKB -bns +bUA bNO -aRZ -boZ -bpx -bqa -bqR -btF -brJ -brM -bsv -btO -buB -bvc -bvP -bwv -bxg -byt -bzt -bzt -bCk -bCt -bDk -bEf -bKJ -bCs -bHI -cXJ -bJz -bIx -bIx -bIx -bIx -bIx -bIx -bCD +cVr +cVr +cVr +cVr +cVr +cVr +cVt boU -cBS -bPg -uRw +dRD +qIN +qIN +qIN +usZ +fqq +cgY +cWO +sNh boU -bRx -bRx -bRx -bTD -bUB -bRx -bRx -bWB -cjI -bXz -bXz -bWB -bZw -umI -umI -umI -bWB -cXf -bWB -cdH -bWB -bRy -bRy -bRy -bRy -cVH -bRA +aaA +aco aaA aaA aaA aaA -bXe -bXe -bXe -bXe -bXe -crs +aaA +kcN +cWi +cQI +kcN +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +kcN +cQI +cQI +kcN +aaA +aaA +aaA +aaA +aaA +aaA +aaA +kcN +cRB +cRB +cWi +kcN +cQI +cQI +cQI +cQI +xAN +fgE +lCu +vmO +wJD +cTu +cTu +cTu +xyl +cCp +cnv +cpp +cpp +cpr +eJx +cwQ +hQe +veE +veE css -ctu -ctu +quP +hpW cvg -cvg -cwn cwQ -cxr -cxI -cLu -cyr -cGP -cWL -cwQ -cUm -cSb +eSx cyo aab aab @@ -126259,72 +117574,82 @@ aab aab aab aab -aav -aab bxM aab +aab bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (172,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -126377,7 +117702,7 @@ aCq aDd aDU aqJ -aFD +aEG aGi aqG aFh @@ -126391,93 +117716,84 @@ aNt aOt bby aQe -eGt -aRU -ebs -cAw +bmI +bfK +apk +bpw aVn +aXj +bgy ebs -aXn -aSX -aSX -aSX -aSX -aSX -cNJ -aRO -bgw -bhH -gMF -gMF -gMF -ehl -nRc -blB -aPb -bmB -bnw -juo -aRZ -bpa -bpy -bGv -buH -btN -brK -bsu -bsT -btP -bBG -bCj -bvJ -bww -bxh -byu +bfl +baD +bDj +bEj +bFS +bHg +bIZ bxi bxi +bjH +bko +bEr +bEr +bPn bCl -bCt -bDl -bEg -bFd -bCs -dIv -bGZ -bJe -bIy -bGn -bKR -bLr -bLD -bIx -cVC +bFQ +bnw +cYb +lEY +bpa +cqm +cuS +cxS +cVr +cBK boU -cBU -bPg -uRw +yeB +hDs +sYf +hDs +uaS +bIL +mdh +cWO +cgK boU -bQB -bQB -bQB -bYc -bQB -bQB -bQB -bWB -bWB -bWB -bWB -bWB -bZM -bWB -bWB -bWB -bWB -bWB -bWB -bWB -bWB -cXg +kcN +kcN +kcN +kcN +kcN +kcN +kcN +kcN +cWi +cQI +kcN +kcN +kcN +kcN +kcN +aaA +aaA +kcN +kcN +kcN +uHn +kcN +kcN +kcN +aaA +aaA +kcN +kcN +kcN +kcN +kcN +kcN +wtQ +eSx cfv cfv cfv @@ -126488,27 +117804,26 @@ cfv cfv cfv cfv -com -cIl -cpJ +vsH +dGO +jYr +lOJ +cCp +tdt +cpp +oQH +cpr +cpr +cwQ +iYm cqy -crs -cst -ctu +urG cun -cvg -cvg -cwo +sFt +dJk +jZq cwQ -cxs -cLt -cxJ -cGO -cxJ -cyU -cwQ -cPK -bYa +eSx cyo aab aab @@ -126516,72 +117831,82 @@ aab aab aab aab -aav -aab bxM aav +aav bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (173,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -126609,12 +117934,12 @@ adI acT uaq uaq +bnR uaq -aqM uaq uaq aqt -uaq +bzJ apz aoh att @@ -126648,128 +117973,116 @@ aNu nnp bbz aQf -eGt -aRR -ebs -cAx -aVm -ebs -aXn -aYq -aYq -aYq -aYq -aYq -bfo -aRR -bgB -gMF -gMF +bna +bfK +apk +bpw +aVn +aXt +bbV +bfl +bgy +baD +bCl +bCl +bCl +bFQ +bxi +bxi +bxi biX -gMF -ehl -tjc -blB -aPb +bxi +bxi +bxi +bPo +bCl bmC bnx -dFG -aRZ -boZ -bpx -bqc -onU -onU -brL -bsu -bsU -btM -buD -bvf -bvJ -bwx -bxi -byv -bzu -bxi -bCl -bCs -bCs -bEI -bCs -bCs -bHJ -bGX -bJe -bIy -bJO -bKp -uWS -bLE -bIx -bCD +cYb +lEY +cbM +cpq +cud +cxT +cVr +cVt boU -cBY -bPg -uRw boU -bRy -bRy -bSI -bTF -bRy -cTN -cVF -bRA -bRy -cVH -bRy -cTN -bZy -bRy -bRy -bRy -cPE -bRy -bRy -bRy -bRy -cVH +boU +boU +boU +boU +boU +bZX +cWO +cgK +boU +cnG +cQI +cqZ +cQI +cvr +cRB +xTW +kcN +cFz +vEe +cVC +cMM +cVC +cVC +lnq +cVC +cVC +cVC +cVC +qgT +cQI +cQI +cQI +kcN +aaA +aaA +kcN +ubI +tWj +cQI +yfB +oRP +oRP +ykP cfv -cNi +dQE +sKS +sBB +mgh +yjs +clM +yjs +mid +cfv +mrp cqo chU -cuF -cjM -cks -cjM -czV -cfv -ceU +hfu +cCp +cCp +czV +czV +cCp cCp -cpH -cku -crs -crs -cYd -cYd -crs -crs -crs cwQ cwQ -cxK -cxK -cyt -cxK -cyV +rCB +rCB +fwF +rCB +rCB +tBM cwQ -cqt -bYa +eSx +cyo cyo -aav -aav -aav aav aav aav @@ -126778,67 +118091,79 @@ aav bxM aab aab +bxM aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (174,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -126896,7 +118221,7 @@ aGk aqG cDX aIt -aRe +aIV aVg aKY aLJ @@ -126905,132 +118230,123 @@ cIq aOu bbW aQg -eGt -aRR -ebs -cAw -aVm -ebs -aXo -aYt -aZk -baE -aSX -aSX -cAw -bft -vDt -gMF -blF +bmI +bfK +apk +bqa +aVn +bno +bqb +buq +bfl +baD +bDk +bEk +cKr +bHh +bJb +bKl +bLf hBS -hBS -ehl +bNs +blv nRc -blC -aTh +bPq +bmx bmD bny cih -aRZ -czK -bpx -bqh -bqU -brv -brQ -bpx -bta -btQ -buE -bve -btb -bwy -bxi -byw -bGV -bxg -bCn -bCY -bDF -bET -bGl -bGp -msN -bHa -bJA -bJD -bJP -bKs -bKV -cOe -bIx -bCD +bZO +cbW +crM +cuc +cxC +cVr +cVt +aaA +aaA +aaA +aaA +aaA +aaA boU -ceT -bPh -bVl -bTE -bRz -bSa -cTM -cUE -cVE -bSa -bSa -bSa -bSa -cPD -bSa -bSa -bZz -cVE -bSa -cTM -cVE -bSa -ccX -cUQ -bRA -cYi +bZY +ceB +ciw +cjC +cnH +cpy +cra +csW +cvs +cGp +cGp +cGp +cFE +cHf +vXt +vXt +fRb +cRy +fRb +vXt +vXt +vXt +vXt +fCi +obT +obT +wuj +kcN +aaA +aaA +kcN +cRB +uNr +kcN +cWi +cQI +kcN +aaA +cfv +cor +jad +cUx +qTk +jwn +jPs +cUd +hXt cfv chd -cqp -chV +tfI +sdf ciT -cjN -cjO -cjP -ciV -cfv -ctx -cKa -cfE -cDP -cJZ +jSU +tuL +jQI cKd -cBp -cCj +nvN +ctx +cKd +cKd +cDP +cKd +dkS +jSU +jSU cHg -cNy -cCj -jSU +cwQ +kzi +iCA cHE -jSU -cHF -cHG -cHH -cHI -cYf -czl -bYa -cAX +cyo cyo cyo aav aab aav aab -aav aab bxM aab @@ -127040,62 +118356,71 @@ aab aab aab aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (175,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -127127,7 +118452,7 @@ aSU xGE xGE amO -fjH +bui anZ xGE aqA @@ -127150,7 +118475,7 @@ aDW avW aHB aGl -arX +aUg aQU aIu aKd @@ -127162,197 +118487,197 @@ aNw axa cIs aPY -eGt -aSQ -cNE -cAz -aRO -aWl -aWo -aWh -aZl -baF -beD -aSX -cAw -bfu -bhJ -gMF -biq -biZ -bjS -ehl -bkV -blD -aTh -bmE -bnz -vLQ -aRZ -boZ -bpx -bqi -bqn -bqj -bqV -bpx -btb -btb -btb -btb -btb -cJb -bxi -byv +bnb +apk +apk +bpw +aVn +baD +baD +baD +baD +baD +bDl bxi bxi -bEV +bHp +bJd bxi -bDn -bEj -bCl -bFM -dIv -bHb -bJe -bIy -cKe -bKn -bKU -bLF -bLT -bMx +bLg +bxi +biX +bxi +bxi +bPo +bmJ +bFQ +bnB +cYb +lEY +cci +cmD +ctY +cxU +cza +cBF +aaA +aaA +aaA +aaA +aaA boU -cBS -bPg -voS boU -bRA -bRA -bSJ -bSJ -bUC -bSJ -bSJ -cVG -cTN -cUF -bRA -bRA -bRA -bRA -bRA -cTN -cVF -cTN -ccY -cdI -bRA -bRA +cWN +cWO +cgC +boU +kcN +kcN +kcN +kcN +kcN +kcN +aaA +aaA +kcN +kcN +kcN +kcN +cyo +cyo +cTL +cyo +cyo +cQI +cQI +dsO +kcN +kcN +bVN +kcN +aaA +aaA +kcN +xkO +clT +cRB +coo +vKZ +kcN +kcN +cfv +uBQ +fFq +vOr +rCH +jPs +fwC +eZq +hXt cfv csy crj -chW ciU +cgt cjO ckt cli -ciV -cfv -cNs -csw -ctB -ctB -cKb cSe +cSe +cSe +cSe +ctB +gRb +cSe +kCP cso cvh -cvh -cvh -cvh +kAs +gmo +lwg cLs cyH -cvh -czm -cqL -cls -cxu -cmZ -bYa -cAW -cSd -cAW -cYl +cQI +cLs +xHw acv acv aav aab -aav aab bxM aab -aaa aab aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (176,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -127379,10 +118704,10 @@ aby adK aep afp -aep -adK -adK +bnk adK +btz +btA ajY adK adK @@ -127407,7 +118732,7 @@ aDX aER awj aGm -arX +aZq aFh aIv xjG @@ -127419,113 +118744,104 @@ aNx aOv bbX aPY -bmJ -aRP -aRO -aRO -aRO -aRO -aRO -aXp +bnc +lnA +bDx +bpw +aXX +aZo +bcL +bur aZm -aYq -aYq -aYq -cAw -bgy -vDt -gMF -gMF +baF +bDm +bxi +bxi +bHq +bJe +bKm +bLh bjh bjT -ehl -nRc +blw +blG blD -aTh +bou bmF bnA -wZC -aRZ -boZ -bpx -bqj -bqo -bqW -bqW -bpx -bsW -buy -buF -bvg -bvL -bwB -bxj -byx -bzv -bBa -bCp -bCZ -bDH -bUx -bGm -bGq -bHK -bHc -bJe -bIy -bJZ -bNT -bLs -bLG -bIx -bCD +cYb +lEY +ccj +crP +cuT +cxW +cVr +cVt +bDx +aaA +aco +aaA +aaA boU -cBS -bPg -uRw +uoQ +cWN +cWO +cgK boU aaA aaA -bSJ -aab -aab -aab -bSJ -bRA -bRA -bRA -bRA aaA aaA aaA -bRA -bRA -bRA -cVG -ccZ -bSa -bSa -ceJ -cfw -cqi -cuh +aaA +aaA +aaA +aaA +aaA +aaA +aaA +cLt +aab +aab +aab +cLt +tzE +cQI +dsO +kcN +dSQ +bVR +bWS +kcN +kcN +kcN +kcN +kcN +ulq +lQC +xri +xri +pdx +qSJ +tiT +qBy +dps +hXt +cUd +jPs +jwn +hXt +cfv +oGg +cNj chX ciV cjP -cjO -cjN -ciV -cfv -ceU -coJ -cyd -cyd -cAr -fjJ -cnR +jWP +cmA col col -cNz +xwv col col col @@ -127533,10 +118849,11 @@ col col col col -cLv +dym cmZ -cVW -czv +qZU +nJi +cyo cyo cyo cyo @@ -127544,7 +118861,6 @@ aav aab aav aab -aav aab bxM aab @@ -127554,62 +118870,71 @@ aab aab aab aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (177,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx aab aab aab @@ -127630,7 +118955,7 @@ aab aab aab aby -act +abW aby aav adK @@ -127639,7 +118964,7 @@ afq age adK ahK -aiB +ahL ajZ akX adK @@ -127655,7 +118980,7 @@ ayo aAv aCs cJs -azq +aRS aAw aBw aCv @@ -127677,132 +119002,123 @@ axa bcy aPY dFG -aRO -aSS -cAS -aUm +lFr +bDx +bpw +aXX aWm -aRO -aYl +bqS +aXq aZn -aSX -aSX -aSX -cAw -aRR -bhK -gMF -gMF -bjb +bhE +bDn +bxi +bqx +bzI +bJj +bKn +dIv +dIv bjU -ehl -tjc -blB -aPo -bmG -bnB -txO -aRZ -boZ -bpx -bqk -bqj -bqV -cTO -bpx -bsX -cEu -btS -bvh -bvM dIv -bxk -byy -bzw -bBb -bBI -bBI -bDI -bBI -bBI -bBI dIv -bHb +dIv bCl -bIx -bIx -bIx -bIx -bIx -bIx -bCD +bFQ +bnB +bPo +cVr +cVr +cVr +cVr +cVr +cVr +cVt +bDx +aaA +aaA +aaA +aaA boU -cBS -bPg -uRw +rnt +cWN +cWO +cgK boU -bRB -bRB -bRB -bRB -bUD -bRB -bRB -bRB -bRB aaA aaA aaA aaA aaA aaA +aco aaA -bRA -bRy -cVH -cdJ -bRy +aaA +aaA +cLt +cLt +cLt +cLt +cTD +cLt +cLt +cLt +cLt +dsO +kcN +kcN +kcN +kcN +giI +rMo +rMo +rMo +owp +umI +iVr +cqP +cQI +uap +cfv +kas +iUa +eaa +hxz +hXt +hXt +hXt ceK cfv cqj cNj chX cmf -ciV -ciV -ciV -bJn -cfv -cpG -coJ -cAr -cAr -cAr +cjP +jWP +cNm +cmZ +cmZ +cmZ +fjJ +fjJ +fjJ +fjJ +fjJ +fjJ fjJ -cxt -cmZ -cmZ -cmZ -cNA -cNA -cNA -cNA -cNA -cNA -cNA cmZ cmZ cmZ cmZ cmZ cmZ -aab aav -aab aav -aab +bxM +aav +czp +aav aav -aab bxM aab aab @@ -127811,62 +119127,71 @@ aab aab aab aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (178,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -127934,94 +119259,85 @@ aHM cWH aQh dFG -aRO -aSW -aUk -aVq +apk +bDx +bpw +aXX aWp aXq aYu aYv baG -bNG -bbR -bfp -aRO -bhL -gMF -bir -bjV +bDo +bEl +bFX +bHr +bJt +bKo +bLi +msN bks blE bkW -blB -aPo +dIv +bFT bmH bnC -txO -aRZ -boZ -bpx -bql -bqV -brw -brR -bpx -buA -btS -buG -bvi -bwe -msN -bxl -byz -bzx -bBc -cDt -bCw -bDq -bEl -bFe -bBI -bHL -bIA -bJB -bFS -bJE -bJN -bLt -bMb +bXP +bZP +ccC +csl +cuU +cxX +ctg +cVt +bDx +aaA +aaA +aaA +aaA +boU +boU +bZK +cWO +cgK +boU +boU +boU +aco +aaA +aco +aco +aco +aco +aaA +aaA +cLt +aaA +cLt +cRH bKA -bCD -boU -cBU -bPg -uRw -boU -bRB +cVv +cLt aaA -bRB -bTG -bUE -bVj -bRB -aaA -bRB -aaA -aaA -aaA -aaA -aaA -aaA -aaA -bRA -cTN -cTN -cTN -bXe -ceL +cLt +vLR +rMo +rMo +rMo +rMo +iVr +cQI +kcN +cRB +cRB +cRB +cRB +cTu +jeN +cyo cfv -cgr +nwz cfv cfv cfv @@ -128030,13 +119346,13 @@ cfv cfv cfv cfv -ceU -coJ -cAr -cAr -cAr -cYg -cxu +cNi +cNj +mJj +bYc +geG +lVT +rCg cmZ cwU cwU @@ -128053,77 +119369,86 @@ cwU cwT cmZ cmZ -aav -aav +aab +aab bxM -aav +aab +bxM +aab +aab +bxM +aab +aab +aab +aab +aab +aab +aab bLH -aav -aav -bxM -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (179,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -128143,9 +119468,9 @@ aab aab aab aab -aav -acv -aav +aby +aew +aby aav adK aes @@ -128191,119 +119516,110 @@ aOw bfY aQi bAC -aRO -aSX -aUl +apk +bqa +bpw aXX cMS -aRO -aRO -aRO -aRO -aRO -aRO -aRO -aRO -bgw -cYa -bjc +aXq +bvy +bgA +bhE +bDp +blG +bGh +jXM +bJv +bKp +bLp bjW bkt -blG +bNT cRe -bgw -aRZ -bKQ -bns +dIv bNQ -aRZ -boZ -bpx -bqm -bqW -bqk -bqV -bpx -bsZ -btS -bCd -bvj -bvM -cXH -bxZ -bxi -bzy -bBm -cDu -bCx -bDr -bEm -bZI -bBI -bFP -bFP -bFP -bFP -bKl -bKv -bLb -bMX -bKA -bCD -boU -cBS -bPg -uRw -boU -bRB +bNQ +bNQ +bNQ +bNQ +ccT +csX +cuV +cxY +ctg +cVt +bDx +wlN +wlN +wlN +wlN aaA -bRB -bTH -bSP -bSP -bRB +boU +cWN +cWO +cgK +baE +iLz +boU aaA +aco +aco +aco +aaA +aco +aaA +aaA +cLt +aaA +cLt +cRI +sjw +cVx +cLt +aaA +cwF +cwF +cwF +cwF +cwF +cwF +cwF +cwF +cwF bXc bXc bXc bXc -bXc -bXc -bXc -bXc -bXc -bSJ -bSJ -bSJ -bXe -ceM +cTu +eYm +cAR +mbj +hyu +noe +gny +gny +pZi +dGO +nPK cfz -che +cfz +sgV cig tkG -tkG -tkG +lEB +jbY cmJ cNm -tkG -tkG -cgs +cmZ +dIt +ubl cty -cBe -cJo cKc cYh -cxt -cmZ -iJE -ePb -cws -cxw -tsA -cxw -tsA -cxw -rqY +cKc +cYh +cKc +gsy cwU cwU cwU @@ -128320,68 +119636,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (180,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -128401,8 +119725,9 @@ aab aab aab aab +aav acv -aab +aav aav adK aet @@ -128448,93 +119773,93 @@ aOx bgn aPY juo -aRO -aSV -aUe -aVp +apk +bpw +bRI +aXX aWn -aRO -aTa +aXq +aXq aZp -aZq -bbS -bcL -bLA -bgz -bgC -bja -bjd +baF +bCl +bCl +bGi +bxi +bJv +bKq +bLq bjX bkY -blX -bgw -aTa -aRZ -bgn -bns -txO -aRZ +bNZ +bOK +dIv +bpy +cKn +bHY +bXQ +bNQ cOQ -bpx -bqn -bqX -bqV -bqW -bpx -btc -btS -btS -bvk -bvL -bwz -bBL -bxi -bzy -bBn -cDv -bCy -bDs -bEn -bFg -bBI -cdK -bHN -ceO -bFP -bKm -bKw -bRQ -bMd -bAM -bMy +csY +cuW +cyj +cze +cBL +bDx +nAx +cHw +nAx +wlN +aaA boU -cBV -bPg -uRw +bZM +cWO +cgK +baE +cnS boU -bRB -bRB -bRB -bRB +aaA +aco +aco +aco +aco +aaA +aco +aaA +cLt +cLt +cLt +cLt +bLT +cLt +cLt +cLt +cwF +fDN +hbS +iJd +jZG +nld +olS bUF -bRB -bRB -bRB -bXc +cwF +rDI +sMr +unn bWF -bYh +cTu bYR -bZA -caa +cAT +tfI caC cbq -bXc +iYL cSg cWm cXO -bXe -cdO -cgs +jNV +cSg +cgt cgt chf chY @@ -128542,28 +119867,19 @@ cjb cNk cmA ciX -cjb -cmn -cmn -ctz -cDp -cKf -cru -cnR -cyc cmZ +cCS +cHB +cOM +cDp +cOM +cru +cOM +cDp +krZ +ubl ubl -cHA cwS -cyu -cwS -czy -cwS -cyu -guj -ePb -ePb -mdU cwU cmZ cmZ @@ -128577,68 +119893,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (181,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -128659,6 +119983,7 @@ aab aab aab aab +acv aab aav adK @@ -128705,122 +120030,113 @@ aOx bgn aPY aNJ -aRO -aSZ -aUn -aRO -aRO -aRO -aTa -aZq -baH -cKq -bcM -bec -bgA -bgw -bgw -bjg -bgw -bgw -bgw -bgw -aTa -aRZ -bgn -bnD +apk +bpw +bqa +aXX +bnT +bri +bvG +bAn +baF +bDq +bEn +bGj +bHy +bJx +bKr +bLq +bjI +bkp +bly +blT +dIv +bQt +cKn bNR -boD +bNR +bNQ bJw -bpx -bqo -bqY -brx -bqV -bpx -btd -bUY -buI -bvE -bvL -bwY -byc -byA -bzz -bBt -cDv -bCz -cXI -bEo -bFh -bBI -cpM -bHO -bHO -bFP -bKq -bKx -cYe -bMf -bKA -bCD +ctd +cvb +cyk +ctg +cVt +bDx +vhd +dBF +nPC +wlN +wlN boU -cBW -bPi -voS +bZT +ceD +cgC +baE +cnI boU +aaA +aco +aco +aco +aco +aco +aco +aaA +aaA +cLt +cOp +cRO +sjw +sjw +cWg +sjw +cwF +fVg +hnW ccG -bRB +kcf bSK bTI -bSP -bSP +pIK +qpo bVZ -bSP -bXc +sZf +upk bXB -cme +cTu bYS -bZB -cab +tfI +tfI chc cJX cMd cSh cXM cXP -bXe +hAR cNg -bYV -cfN -chg -chZ +cmZ +cmZ +cmZ +cmZ cjc -bXd -cmC -cHY -cnS -cmZ +fSG cmZ cmZ cmZ +cCS +fAx +cKl +eQi cKl crv -cmZ -cmZ -cmZ -ubl -cvS -cCS -cyz -cCS -lik -cCS -cyz -cCS -cKg +cKl +eQi +cKl +mmA cwT -ubl +cCS cwU cmZ cmZ @@ -128834,67 +120150,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (182,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -128918,7 +120243,7 @@ aab aab aab aav -adL +adK aev afv agj @@ -128962,122 +120287,113 @@ aHM bgo aQj boh -aRZ -aTa -aUo -aZO -aWr -aXr -aTa -aZq -baH -bbT -bcN -bfy -cNK +apk +bpw +bsF bgw -aTa -bje -aTa -aTa -bnE -bnE -aTa -aRZ -bgn -bns -txO -aRZ -czP -bpA -bpC -bpC -bpC -bpC -bpC -bpC -bpC -bpC -bpC -bvO -bxd -bxp -byB -bzA -bBt -cDw -bCA -bDu -bEp -caG -cbW -ccC -bHO -cdb -bFP +bgw +bgw +bgw +bgw +bgw +bDr +bEo +bGk +bEo +bJy bKr -bNZ -bLe -bMg -bKA -bCD +bLr +bjJ +bkZ +bnE +blU +bPs +bpA +cKn +cKn +bXR +bNQ +czP +cte +cvf +cyl +ctg +cVt +bDx +wlN +fnx +wlN +wlN +eck boU -cod -bPg -uRw -bDb +wyC +cWO +cgK +baE +cnM +boU +aaA +aco +aco +aco +aco +aco +aaA +aaA +aaA +cLt +cOC +cRQ +eom +cVz +sjw +sjw +cwF +fYe +hof ccK -bRB +kdD bSL bTJ bUG -cbO -bSP -bSP -bXc +cwF +rJj +sZw +upC bXC -bYj +cTu bYT -cXL -cac +tfI +tfI ckB -cbr -bXc +cJX +gSA cUN cXN cXQ -bXe -chi -bYV +cXQ +cXQ +cXQ cgu chg cup cqD -cjQ -ckv -ckv -ckv +ckz ckv +edL +fjJ +cCS cqE -cpK -cqG -cLp -crw -cLq -ctA -cuq -ubl -cvT +fSW +cOM +cOM +cOM +cOM +cOM +fSW +phk +cOM cwR -cwS -cwS -cwS -cwS -cwS -cwR -cKh -cwS -cXX cwU cmZ cmZ @@ -129091,67 +120407,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (183,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -129175,7 +120500,7 @@ aab aab aab aav -abl +aab aev afw aev @@ -129219,93 +120544,93 @@ aHM bih aPY dFG -aRV -aRZ -aUp -aTa -aTa +apk +bpw +bsF cnT -aTa +cnT +cnT +aYx aZr -baI -btJ -bcO -bee -bbT -aZq -bhN -bjf -aVt -bkZ -bqw +bgw +oge +bEp +bGk +bHA +bJz +bKs +dIv +bjN +bNt +dIv bLn -cKk -blY +dIv +bQz cKm cKn -txO -aRZ +bXS +bNQ bpc -bpA -cDY -cDY -cDY -brS -buJ -cDY -cDY -buJ -bvl -bvO -cEB -bxp -byC -bzB -bBu -bBI -bCB -bDv -bBI -bFj -bBI -cda -bLi -bHP -bFP -bKt -bKx -bLd -bMh -bKA -cVC +ctd +cwl +cyB +ctg +cBK +bDx +gXc +xPK +gnx +rqH +oSS +jiS +lbT +rgr +cgK +baE +cnP boU -cBS -bPg -uRw -bDb +aaA +aco +aco +aco +aco +aco +aco +aco +aaA +cLt +cOI +cRW +cTF +sjw +cWh +cYg +cwF +fYn +hpU cdj -bRB +khn bSM bTK bUH -bSP -bWa -bWC -bXc +cwF bXD -bYk +bXD +bXD +bXD +cTu bYU -bZC -cad +tfI +tfI clo cbs -bXc -ccD -ccD -ccD +rHa +cuF +cpI +lQs ceh ceP -bYV +cXQ cgv chh cia @@ -129313,28 +120638,19 @@ cku cjR clm coI -cqz -ckv +fjJ +cCS cqA -csu -cur -cSw -cLr -cOJ -cON -cuq -ubl -cwp -cwS +cOM cwT cwT cwU cwT cwT -cwS -cWG +cOM +miA cwT -tjO +dRC cwU cmZ cmZ @@ -129348,67 +120664,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (184,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aab aab aab @@ -129432,15 +120757,15 @@ aab aab aab aav -aav -aew +aab +ahO afx -aew -aav -aew +ahO +aab +ahO afx -aew -aav +ahO +aab amg amg amg @@ -129476,122 +120801,113 @@ aOy bgn aPY dFG -aRW -aRZ -aUq -aVt +apk +bpw +bsF aZP +cNH aXs -aYx -aZq -aZq -aZq -aZq -aZq -bfv -aZq -aUp -bit -bit -bit -bit +cNH +bgC +bCo +bnW +bEE +bGl +bHD +bJA +bKt +bLs +blz +blz +blz bla -bit -bit -bvp -bns -txO -aRZ -bpc -bpA -cDZ -cEa -cEe -bwX -cEi -cEa -cEa -bqr -bvm -bvO -bwD -bxq -byD -bzC -bAJ -bBN -bpz -bpz -bpz -bFk -bFP -bFP -bFP -bFP -bFP -bKu -bKX -bLu -bMj -bKA -bCD +bNQ +bNQ +bNQ +bNQ +bNQ +bNQ +cda +ctf +cwm +cyK +ctg +cVt +bDx +oYK +vSN +pnS +oUM +iSy boU -cBU -bPg -uRw -bDb +mdh +cWO +cgK +baE +cnQ +boU +aaA +aaA +aco +aaA +aco +aco +aco +aaA +aaA +cLt +cOJ +cSb +cTI +sjw +cWl +cYi +cwF +fYI cep -bRB +cep +kkS bSN bTL bUI -bSP +cwF bWb bWD -bXc +uvQ bXE -bYl -bYl -bZD -cae +cTu +wtV +tfI +nkY cJW cbt -bXc -bDR -bFE +rIr +cuF +cpI bGb cei ceQ -bYV +cpI cgw cJY -cib +cKi clj -cjR +nSH cos ctv -cJl -cjR -cnV -csv -csz -czb +fjJ +cCS +cqA +cOM +cwT +cOM cNu -cOK -hof -cuq -ubl -cwp -cwS +cOM cwT -cwS -cyg -cwS +cOM +miA cwT -cwS -cWG -cwT -tjO +dRC cwT cmZ cmZ @@ -129599,73 +120915,82 @@ aab aab bxM aab +czp +aab +aab +bxM +aab +aab +aab +aab +aab +aab +aab bLH -aab -aab -bxM -aab -aab -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (185,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx aab aab aab @@ -129689,15 +121014,15 @@ aab aab aab aav -aab -aab +aav +aqM afy -aab -aab -aab -aab -aab -aab +aqM +aav +aqM +afy +aqM +aav aav aab aab @@ -129732,123 +121057,114 @@ aND aOz bgn aPY -dFG -cla -cla -aZu -cla -cla -cla +jey +apk +bpw +bsF +cnT +cnT +cnT aYy -aZs -aVt -aVt -bHH -cIW -bfw -aVt -bhO -bit -bji -bjY -bkv +bgC +bhF +bnW +bEI +bGm +bHE +bJB +bKu +bLt +tPH +bpC +bpC blb -blH -bit +bpC +bpC cWM -bnt -txO -aRZ -bpc -bpA -cDY -cDY -cDY -brU -cEi -cDY -cDY -bqr -bvn -bvO -bwE -bxr -byE -bzD -bAK -bvO -cTI -bpc -cAg -boZ -bpc -bpc -bpc -cAg -bpz -bJQ -bKA -bKA -bKA -bKA -bCD +bVk +bqa +blz +cdb +ctg +ctg +ctg +ctg +cVt +bDx +umv +wlN +nPQ +wlN +ohf boU -cGq -bPg -uRw -bDb +cau +cWO +cgK +baE +cnS +boU +aaA +aaA +aaA +aco +aaA +aaA +aaA +aco +aaA +cLt +cON +cRW +uWT +sjw +cWo +cYj +cwF +fZL ceX -bRB -bSO -bTK -bUJ -bSP +ceX +kBD +cwF +ooE +cwF +cwF bWc bWE -bXc +uRw bXF -bYm -bYm -bZE -bXc -caH -bXc -bXc -bDS +cTu +wtV +tfI +chV +exu +jIt +coE +cuF cpI bGc cej -ceQ -cfE -bYq +ceR +cpI +cgw chj cHX -cku -cjR +gwg +vja coK -cqC -cJm -cjR -cnV -crx -csA -cDy +ctv +fjJ +cCS +vaH +cOM +cwU +cOM cOG -cOL -hof -cuq -ubl -eFG -cwS +cOM cwU -cwS -cYj -cwS -cwU -cwS -wOj +cOM +hhB cwT -tjO +dRC cwT cmZ cmZ @@ -129856,73 +121172,82 @@ aab aab bxM aab +czp +aab +aab +bxM +aab +aab +aab +aab +aab +aab +aab bLH -aab -aab -bxM -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (186,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx aab aab aab @@ -129948,7 +121273,7 @@ aab aav aab aab -aab +aKo aab aab aab @@ -129990,122 +121315,113 @@ aOy bgn aPY juo -cla -aTc -aUt -aVv -cNH -cla -cla -aUp -aTa -bbV -bbV -cIX -bbV -aTa -aTa -bit +apk +bpw +bsF +blt +cif +brl +bfp +bhC +bCq +bDs +bET +bGn +bHF +bJC +bKv +bLt cIY -bjZ +bDx bkw -blc -bka -bit -cIt -bns -txO -aRZ -bpc -bpA -bUn -cEa -cEa -cEg -cEj -cEn -cEo -cEo -cEx -bwf -bwF -bxs -byF -bzE -bAL -bvO -bCC -bDw -bDw -cVx -cTL -bDw -bHh -bDw -bDw -bDw -bDw -bDw -bDw -cTL -bCE +bDx +bDx +bQA +bDx +bVl +bpC +bpC +bpC +bpC +bpC +bpC +blH +cBM +bDx +mMu +wlN +kLq +wlN +dKz boU -cBS -bPg -uRw -bDb +cWN +cWO +cgK +baE +coh +boU +aaA +aaA +aaA +aco +aco +aco +aco +aaA +aaA +cLt +sjw +cRW +cTU +sjw +cWs +sjw +cTu +gcM +cBs +cBs cBs -bRB -bSP -bTK bUK -bSP +orm +bUK +qOl bWd -bSP +tbT bXe bZH -bYn -bYn -bYn -caf -caI -caf -cbX -bEO -cdf +cTu +wBu +tfI +tfI +ykL +waa +coE +cuF +cpI cpW cek ceR -bYV -bYq +cpI +cgw chk cKi -cku -cjR +gIB +dKy cpO -cna -cJm -cjR -cnV -cry -csz -cFu -cOH +ctv +fjJ +cCS +cqA cOM -hof -cuq -ubl -cwp -cwS cwT -cwS -cwS -cwS +cOM +cOM +cOM cwT -cwS -cWG +cOM +miA cwT -tjO +dRC cwT cmZ cmZ @@ -130119,67 +121435,76 @@ aav bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (187,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx aab aab aab @@ -130247,122 +121572,113 @@ aND cMA aPY dFG -cla -aTd -aUu -aVw +apk +bpz aUu +cNH +cNH aXu -cla -aUp -aTa -bbV -cIS -bjj -bbV -czS -aTa -bit -bjk -bka -bkx -bld -blI -bit -bgn -bns -vtT -aRZ -bpd -bpB -cEa -cEa -cEa -cEa -cEk -byN -cEa -bqr -bVH -bvO -bxm -bxp -byG -bEU -bvO -bvO -bCD +cNH +bhD +bCs +bgw +bFa +bGk +bHG +bJD +bKw +bLt +cVt bDx +bpw +bqa bDx +bpw bDx +bpw +ybS +bpw bDx -bDx -bDx -bDx -cVz -bpc -bDx -czR -bpc -bpc -bpc +bQA +bqa +bpw +bpw +llr +bpe +bpe +bpe +bpe +bpe +bpe boU -cBS -bPg -uRw -bDb -ccK -bRB +cWN +cWO +cgK +boU +boU +boU +aaA +aaA +aaA +aaA +aaA +aco +aaA +aaA +aaA +cLt +cOP +cSd +cTW +cVJ +sjw +sjw +cTu +gfn +hum +iJE +kEv bSQ bTM bUL cbU -bSP -bSP -bXe +rUH +tcg +uUy bXH -clL +cTu cEG -cEH -cbv -caJ +tfI +nkY +rtC spX -cbY -bES -bFG +rIr +cuF +cpI bGe -bXd +jFH cNh -bYV +cXQ cgw chl cky -clj -cjR +oPT +hcu ckz cln -cJn -ckv -cnV -crz -csB -cLo -cOI -crw -cOP -cuq -ubl -cwp -cwS +fjJ +cCS +cqA +cOM cwT cwT cwU cwT cwT -cwS -cWG +cOM +miA cwT -tjO +dRC cwU cmZ cmZ @@ -130376,67 +121692,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (188,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx aab aab aab @@ -130469,7 +121794,7 @@ aab aab aab aab -ami +amh amh amh amh @@ -130504,122 +121829,113 @@ aND bgn aPY dFG -cla -aTe -aVu -aWs -aUu -aXv -cla -aZt -aTa -bbV -cIT -cIZ -bbV -aRZ -aRZ -bit +apk +pII +bsF +blu +bnU +blu +bfs +bAs +bCt +bgw +bFb +bGp +bHI +bJE +bKx +bLu bjl -bkb -bky -ble -blJ -bit -bgn -bns -txO -aRZ -czR -bpA -cEd -cEb -cEd -cEh -cEl -cEd -cEd -buK -bvq -bvO -cJc -byd -bAh -bAw -bAM -bBO -bCE bDx -cBs -aaR -bFF -aaR -aaR -bpe -bpe -bpe -bpe -bpe -bpe -bpe +bpw +bpw +bDx +bqa +apk +apk +apk +apk +apk +bpw +bpw +bQA +bPE +rCq bpe +bRJ +bSr +bTj +bUh +bVc boU -cBS -bPg -cbx +cWN +cWO +gra boU +aaA +bpe +bpe +bpe +bpe +aaA +aaA +aaA +aaA +aaA +aaA +cLt +cOU +cSf +cUg +cVK +iSf +cYl +cTu +ggi +huX ccH -bRB +kJN bSR bTN bUM -bVm -bWe -bWG -bXe bXI -cAQ +bXI +bWG +bXI +bXI +cTu cUI -cUJ -cca -caK +tfI +tfI +gXq ccQ -cbZ -cbZ -cdh -cbZ -bXd +coE +deJ +cXN +pch +hnj cnW -bYV -bYq +cXQ +hEj chm cid cjd -cjQ +lhm coG coN cml -ckv +hzv cnX -cqB -cpN -cqI -crA -coO -ctC +fSW +cOM +cOM +cOM +cOM +cOM fSW lWO -cwq -cwR -cwS -cwS -cwS -cwS -cwS -cwR -cXU -cwS -tbT +cOM +vQl cwU cmZ cmZ @@ -130633,67 +121949,76 @@ aab bxM aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (189,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx aab aab aab @@ -130761,122 +122086,113 @@ cDD bgn aQk aUE -cla -aUs -cla -cla -aXt -bmg -cla -aZu -aRZ -aRZ -aRZ -aRZ -aRZ -bIC -bJR -bit -bit -bit -bit -blf -bit -bit -bgo -bnF -bNS -aRZ -bpe -bpC -bpA -bpA -bpA -bpA -brN -bpA -bpA -bpA -bpA -bpe -bpe -byg -byI -bAx -bpe -bpe -caU +apk +bhp +bgw +bsF +bsF +bsF +bsF +bAD +bsF +bsF +bFd +bGq +bHJ +bJG +bFd +apk +apk +apk +apk +apk +apk +apk +apk +nDE +ppK +pGm +apk bpe bpe bpe bpe +qxo bpe bpe -bpe -ckM -cpZ +cEU +cEU +cEU bpe bpe -cxq -cyS -cED -bpe -cBX -bPf -uZH +bZW +cdM +hST boU bpe +bpe +cre +cta +bpe +bpe +bpe +bpe +bpe +bpe +bpe +hPc +hPc +cSi +hPc +hPc +hPc +hPc +cTu +gkt +hEZ bSb bSb -cnq -bSb -bSb -bSb -bSb -bXe -cWA +bSQ +cCw +bUL +cBs +rVf +tgp +uZH +mNk cAR cAT -cAT -cbv -caL -spX -bYn +tfI +ctl +ccI +cJX +coE cNf -cdi +cjS cdP cel -ceU -cqh -bYq -chg -cie +cCN +cmZ +cmZ +cmZ +cmZ clG -cjS -ckC -clp -cjT -cmZ +hZH cmZ cmZ cmZ +cCS +cFg +cqJ +djc cqJ crB -cmZ -cmZ -cmZ -ubl -cwr -cxp -czc -cxp -mfy -cxp -cAt -cxp -cXV +cqJ +wsT +cqJ +iMM cwT -cHA +cHB cwU cmZ cmZ @@ -130895,62 +122211,71 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (190,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx aab aab aab @@ -130974,15 +122299,15 @@ aab aab aab aav -aav -acv -acv -acv -acv -acv -acv -acv -aav +aab +aab +aab +aab +aab +aab +aab +aab +aab aav aab aab @@ -131022,90 +122347,90 @@ nXH ePe ePe ePe -jCQ -jCQ +rYm +rYm bBK bsr -ePe +bCw bvC -ePe -ePe -nXH -rYm -rYm -ePe +bFe +bGr +bHK +wQP +bKy +bLv bya byJ bsA bCb -nXH -ePe +kSI +jfq bLo -bns -vJb +bLo +oKl uSM +tRs tvc tvc tvc -tvc -tvc -tvc +cAD +iLj cmE bUt -cWz -uPt +tvc +haK oKO -uPt +haK cAD abN bVw bxv -cIL +tvc oKO -uPt -cIN -uPt +cpz +haK +haK cBt -uwg +tvc cBa -tvc -tvc -haK -haK -tvc -ceN -tvc -tvc -tvc -cOC -cBZ -bPj -cHs +cLu +cLu +cHp +cLu +cMN +cLu +xQX +cLu +cLu +yiX +dcB +cTu +goU uwg cTY -tvc -tvc +cTY +nlm cCw -tvc -tvc -tvc +pLv +qVN +goU cHt -bXe +uZH nuO -bYW +cNi tfI tfI ccI -caL +ccI cdT coE -nuO +uXS cCN -cdP +ftS cem -ceU -bYq +cii bYq +oUD cii cie clI @@ -131115,25 +122440,16 @@ cns coj coP cNt -coj -cpP -cqK +cOM crC -csC +cOM +crC +cOM ctD -cCR -cHh +cOM +cHB +cHB cHB -cwS -czn -cwS -czn -cwS -hVN -cwS -cHA -cHA -cHA cwU cmZ cmZ @@ -131152,87 +122468,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (191,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -131241,6 +122555,17 @@ aab aab aab aab +aav +aav +acv +acv +acv +acv +acv +acv +acv +aav +aav aab aab aab @@ -131275,7 +122600,7 @@ cDD bgn bbA aQO -aQO +lSf aQO aQO aQO @@ -131286,9 +122611,9 @@ aZw baJ baJ baJ -baJ -baJ -baJ +bsM +bAQ +bJI baJ baJ baJ @@ -131297,7 +122622,7 @@ bkz blh baJ baJ -baJ +fJD cKo bqy bra @@ -131305,89 +122630,80 @@ bsq bNn bvR bNl +smK +fnG vGr -vGr -cAu cAA vGr vGr vGr vGr -cAC +cMO bPA cAF -bPz -vGr +eHx +eHx vGr vGr vGr vGr cAH -cAI +fRT vGr cAJ eHx +cHr eHx -cAL +cMO +cPm +cSm +iiq eHx +cWw eHx -eHx -eHx -eHx -eHx -cAM -cEP -eHx +ezo +guj cAO -eHx -eHx +guj +kKY coF cAP cHD -eHx -eHx -eHx +guj +guj +tjc cIc bXJ bYr -bXJ +wOj bZF cag caM cbw -bXJ -bXJ +lox +tUH cdk cdQ -cen -ceV -cfy -cgx -chn +cij +cij +cij +cij +cij cij clJ -cmh +cmA ckE clr -clr -clr -clr -clr -clr -cqL -cnR -csD +ckE +iTh +ubl +kZF ctE -csD -ezo -ePb -cxv -czo -cwS -czo -cwS -czo -cwS +cOM +ctE +cOM +ctE +cOM cwU cwU cwU @@ -131409,76 +122725,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (192,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -131531,30 +122856,30 @@ bLO aND bjm aZc -uQf -uQf +kif +mKe aTn mks bFf brb brd bcp -mks +btV mks cGQ -uQf +bFg bRk -uQf -uQf +bFg +bFg cQO -bxY -uQf -uQf +bLx +bFg +bNu bBg +mKe uQf uQf -uQf -uQf +bxO uQf bxY bTs @@ -131573,68 +122898,59 @@ bwJ cUi cBJ bDc -bVK +chC fOO fOO fOO fOO cIQ dsE -hwC +gIA gIA cBz -gIA -chC +bMo +cHv bMo cBD -gIA -gIA -gIA -gIA -cTT -cTX -cEQ -chC +cPn +pSt +jas +prG +cWx +bMo +cTu +cCy hwC cTZ -gIA +kWP bYG -dsE +ovJ cvO cCy -gIA -gIA -bXe +sjJ +tjO +vjQ mNk clO -cak cbu +sjs cHJ cHN cHS -mNk +wrs cdq -cdS +cCN cdR -cel -cfx -cgy +cmA +cSv +col cho -ciY +col cOF cSv -cjT -cTF -cnR -cok -col -cWB -col -cKZ -cok -ctw +vmy cjS -ctF +cnR cmZ cwU cwU @@ -131666,76 +122982,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (193,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -131788,39 +123113,39 @@ aNI aNI aPs aQo -aPV -aRZ -aRZ +apg +apk +apk aUw -aRZ +apk cBi cJM cBi -aRZ +apk aUw -aRZ -aRZ -aRZ -aRZ -aRZ -aRZ -aRZ -aRZ -aRZ +apk +apk +apk +apk +apk +apk +apk +apk +apk bkB -aRZ -aRZ -aRZ -aRZ -aRZ -aRZ -aRZ -bpe +apk +apk +apk +apk +apk +apk +apk +bpi bPY byK bTP brA -brA +brB brB brB brB @@ -131841,45 +123166,36 @@ bpe bpe bpe bpe +cHF bpe bpe bpe bpe bpe bpe +cWz bpe bpe bpe -bXf -bpe -bpe -bpe -bpe -bpe -bpe +hMl +cTu +kYo +npe +oxX bYt -bpe -bpe -bpe -bXe -bXe -bZx -bXe -caN -cHK -cHO -cHT +qZz +cXM +cXM +cXM +cXM +cXM +cXM +cXM +cXM +cXM +cXM cdm bXd -bXd -bXd -bXd -bXd -bXd -bXd -bXd -cja -cje cjS cjS cjS @@ -131890,8 +123206,8 @@ cjS cjS cjS cjS -cmZ -cmZ +cjS +cjS cmZ cmZ cmZ @@ -131912,7 +123228,7 @@ aab aab bxM aab -aax +bxM aab aab bxM @@ -131923,76 +123239,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (194,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -132072,56 +123397,56 @@ bIH cQZ aRj aRj -bpe -bQa -bzJ -bUl +bpi +bQb +bHi +tkv brA brY urx -urx -urx -buL +bDG +bDO +brA bsg bsg brA bxy -byL +bQh cRd -bYp -byL -byL -bYp -byL -byL +cDB +bQh cQF -byL -byL -byL +bQh +bQh cRd -byL -byL -byL -byL -byL -byL -bNN -bPm -bPo -caP -bNN -cTu bQh +bQh +ciW +cFF +cHG +cLv +ciW +cDB +bQh +uSw +bQh +yhm +bQh +cQF +bQh +hVs +cTu +lfg cRF -bQh +oPp cIe -bQh -bQh -bQh -cTu +raV +svn +tln +ckA cRG bYu -bXe +wOT ckA cHL cHP @@ -132133,21 +123458,12 @@ cgn cTy cgD cha -cgn +pKn chp cjf cjV cSx cNl -cnb -cne -coQ -cqF -cFv -cLa -cWE -crD -csF aab aab cmZ @@ -132169,7 +123485,7 @@ aab aab bxM aab -aax +bxM aab aab bxM @@ -132180,76 +123496,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (195,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -132320,97 +123645,88 @@ cXG bgE biv bjn -aRj -bde -bIH -aRj -bix -aRj -aRj -aRj +aYM +buL +buM +aYM +bxN +aYM +aYM +bxS cRC bpi -bQb +byV bFn cbc brA -bwI -bsD -bsD -bsD -bsD -buR -buR +brB +brB +brB +brB +brA +bsg +bEP bwK bxz -byM -byM -byM -byM -byM -byM -byM +wzM +wzM +wzM +wzM +wzM +crf +wzM cPw -byM -byM +crf +czB ciW -byM +cFQ bID bUs -cVO -byM -cVS ciW bIF -bNN -bPn -cai -cby -bNN -cmj -bQi -bQi -bQi +wzM +wzM +wzM +iVJ +wzM +wzM +wzM +czB +cTu +lik +bSQ +oXB cIf cIg cJP -bQi -bQi -bQi +tpu +vjV +vyb bYv -bXe -cbz -cbv +wUP +cFq +cRm cHQ cHV cNc cCM -ceo -cdw +cEK +cEK ckH cEK cTA -cgz -cgF +cEK +loE ckG cjX ckN -ckN -cnc -ckN -coR -ckN -cGK -cCD -cqN -crE -csG +cmu aac aac aav aav aav -czp +wsH aav aav aav @@ -132437,76 +123753,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (196,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -132576,26 +123901,26 @@ bfz bgF bhQ bcT -bjo +aRj cQY -ckF -cTa -cQX -aYM +bol +bIH +cQS +aQz bmK -aYM -bok +aRj +bde cAf bpi bQc bHi -tkv -brB +bzr +brA bsa -bsE -bsE -bsE -bsE +bAW +bDN +bAW +bDQ bsg bvT brA @@ -132605,82 +123930,73 @@ brA brA cUr cQF -bBU -bEq -bEq -bEq -bEq -bEq -byL -bHS -bBU -bBU -bBU -bBU -bBU -bHS -bNN -bTO -caO -cmk -bNN +bPp +cRd bYx +bPp +bYx +ciW +cGg +bHS +bBU +ciW +bYx +cQF +bPp +bPp +mTM +bPp +bPp +bPp +hVN +cTu cRq -bPp -bPp -bPp -bPp +nxW +pbY +pVz +raV cJQ -bPp -bPp -bPp +tpY +vka +vyn bYw -bXe +ccb ccb cHM -cou cHW -cdn +cHW +xiJ ccL ceu cdU ceq ceY cfB -cfB +ceq chq cHq cHR ckP -cmr -cnd +cmu cTH -coS -cnd -cKO -dSS -cqO -crF -csG -cea -cea -cea -cea -cea +cTH +cTH +cTH +cTH +wsH +aab +aab +aab +aab +bxM +aab +czp +aab +czp +aab czp aab aab -aab -aab -bxM -aab -bLH -aab -bLH -aab -bLH -aab -aab bxM aab bxM @@ -132694,76 +124010,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (197,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -132842,19 +124167,19 @@ aQz aQz aQz bde -aRj +lQP bpi bQb bFn tkv brB -bsa -bsF -bsF -bsF -buM -bsg +bsE +bsE +bsE +bsE +bsE bsg +bEW bwL bxA bxA @@ -132863,164 +124188,164 @@ brA brA brA brA -bEr -bFo -bEx -bFR -bEq -bHR -bIE -bBU -aaA -aaA -aaA +bQh +bYx bPp bYx -bNN -bNN -bNN -bNN -bNN +ciW +ciW +ciW +ciW +ciW +bYx +cDB +bPp +cVN +cWB +bQh +eFG +bPp bYx cTu -bPp -aaA -bPp +lCX +nDC +poY +pWT cIh cJR -bQh +tsA cJT -bPp -bYx -bXe +vzJ +cKU +wYk ccc cNT -ccl -ccO -cdl +ceW +ceW +ceW ccM ceW cdV cer -cdx +ceW ceZ cgA chr cjg cTB -cjg +lNw cmt -ckI -cjg -coT +clz +tIu cpT -cKP -cLd -cqP -crH -csH -cgH -cuv -cuw -cuw -cea -czp +cpT +cTH +wsH aab aab aab aab bxM aab -bLH +czp +aab +czp +aab +czp +aab +aab +czp +aab +aab +aab +aab +aab +aab +aab +aab aab -bLH aab -bLH aab aab bLH -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (198,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -133101,17 +124426,17 @@ aQz cTp aRj bpi -bQb +byY bHQ bvd brB -bsa -bsE -bsE -bsE bsE +bBW +bBW +bBW +bEG bsg -bsg +bEW bwL bxB bsE @@ -133120,41 +124445,41 @@ bAN bBP bCF brA -bEs -bEx -bEx +cQF +bYx +bPp bGx -bEq -cSH -byL -bBU -aaA -aco -aco +wzM +wzM +cHH +wzM +wzM +nfX +bQi bPp -bYy -bQi -bQi -cbH -bQi -bQi -caj +ybs +cWE +ddM +eJn +bPp +bYx +cTu cUH -bPp -aaA -bPp +nIP +prM +qlI cJp cch bYz cJU -bPp -bYx -bXe +vBt +vNr +wZA bZN cal caR -cbA -ccd +cdv +cdv ccN cfb cTx @@ -133162,26 +124487,17 @@ ces cTz cfC cgB -chs +chB cjh -cjj +cTB cjY -ckJ -clw +cmu +cRm cng coY cpU -cKQ -gTB -cqP -crI -csG -cgF -cuw -cvk -cvV -cea -czp +cTH +wsH aab aab aab @@ -133208,76 +124524,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (199,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -133358,17 +124683,17 @@ aQz bde aRj bpi -bQd +bQb bFn -cbe -brA -bsb -bsG -bsG -bsG +tkv +brB +bsE +bsE +bsE +bsE bsE bsg -bsg +bEW bwL bxC bsE @@ -133377,68 +124702,59 @@ brA eIr bCG brA -bEt -bEx -bEx -bGy -bEq -cTr -byL -bBU -aaA -aco -aaA -bPp -bPp -bPp -bPp -bPp -bPp -bPp -bPp -bPp -bPp -aaA -bPp -cJq -bQh -bQh -cRp -bPp +cDB bYx +bPp +bPp +bPp +bPp +bPp +bPp +bPp +bPp +bPp +bPp +cVO +bQh +bQh +eMH +bPp +hXO +wzM +czB ccf aaA aaA -aaA -aaA +cJq +swF +tyR +cRp +vCZ +vRm +xfQ +kdX +oBc +mQI +eEy cNv cds cfA cdX cet -cfa -cfD -cgC -cht +cdy +chb +cdy +chB cji cjk cjZ ckK -clx -cdy +cUj +pbg cnf -cdy -cKQ -hcn -coU -crO -csI -cgG -cux -cvl -cuw -cea -czp +cpT +cTH +wsH aab aab aab @@ -133465,76 +124781,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (200,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -133617,15 +124942,15 @@ aRj bpi cMW bHi -tkv +bzT brA bsc -bsE -bsE -bsE +bBY +bBY +bBY bsE bsg -bsg +bEW brA bxD bDt @@ -133634,14 +124959,9 @@ brA eIr bCH brA -bEq -bFp -bKS -bEq -bEq -bHS -byL -bBU +cDB +bYx +bPp aaA aaA aaA @@ -133650,12 +124970,8 @@ aaA aaA aaA aaA -aco -aaA -aaA -aaA -aaA -aaA +bPp +bPp bPp bPp bPp @@ -133667,35 +124983,35 @@ ccf aaA aaA aaA -aaA -aaA -ccS +cXi +tKY +vkS +vDL +vUC +xih +xSk +cRm +kXf +rlL +npB +cds cdp cgo cgq cgZ chb cqn -cgF -cim -cjk +chB +ciq +eVS clt cTG -cly -cni -cnf -cof -cKQ +cTH +cTH +cTH +cTH +cTH wsH -chu -crJ -csJ -cea -cea -cea -cea -cea -czp aab aab aab @@ -133722,76 +125038,85 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (201,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aab aab @@ -133879,7 +125204,7 @@ brA cMX bsE bAd -btV +bsE buN bvs bvU @@ -133891,21 +125216,12 @@ brA bBQ bCI brA -bEu +bIF bFq -bFT -bGz -bEq -bHS -cRd -bBU -aaA -aaA -aaA -aaA -aaA +bPp aaA aaA +aco aaA aaA aaA @@ -133926,33 +125242,33 @@ aaA aaA aaA aaA -aab +vrE +vDW +wfR +xqu +xqu +xqu +xqu +tEq +nuU +cds cdr -cdZ +cKU cev cfc -cfF -cfF -chw -cin -cjk +chb +cqn +chB +cjh +cTC ckb -cdx +cmt clz cNp -cnf -cof -cKQ -gTB -coW -ciw -csH -cgH -cus -cut -cut -cea -czp +csx +csx +cTH +wsH aav aav aav @@ -133979,101 +125295,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (202,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -134133,9 +125458,9 @@ bQb bHi tkv brB -bsa +bsE bsH -btn +btq btW buO bsg @@ -134148,16 +125473,8 @@ brA bBR bCJ brA -bEv -bFr -bFU -bGA -bEq -bHT -bIF -bBU -aaA -aaA +bYx +bPp aaA aaA aaA @@ -134175,7 +125492,6 @@ aaA aco aaA aaA -aaA bYx bPp bPp @@ -134183,33 +125499,33 @@ bPp bPp bPp ccf -aab +vuN +vEG +wif +cTH +wif +cTH +cTH +pkI +jOF +tip cdu cea -cea +cex cfd -cea -cea -chx -cio +chb +gAO +chB +cjh cTC cka cmu -ckc +cRm cnY -cnf +qci cpV -cKQ -gTB -coW -cix -csG -cgF -cut -cFx -cvU -cea -czp +cTH +wsH aab aab aab @@ -134236,101 +125552,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (203,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -134390,9 +125715,9 @@ bQb bFn tkv brB -bsa +bsE bsH -bto +btq btW buO bsg @@ -134402,20 +125727,12 @@ bxG bxG bxG bxG -brA -brA bxG -bEw -bFq -bFV -bGy -bEq -byL -bHS -bBU +bxG +bxG +bYx +bPp aaA -aaA -aco aco aaA aaA @@ -134429,165 +125746,173 @@ aFL aaA aaA aaA -aco aaA aaA bPp -bYy -bQi -cAU -bQi -bQi -cUO +hXO +wzM +crf +wzM +wzM +szn ccf aav -cdu +cVZ +bYy +xDj +cAU +wgU +lCl +cUO +snv +fHV +cex cea cew cfe -cfG -cgE -chy -cip +chb +cgF +chB +cjh cjp ckc -cmu -clA -cmu -cnf +ckK +cUj +iXq +eQt csx -cKQ -gTB -coX -crG -csI -cgG -cuu -cFy -cut -cea -czp +cTH +wsH aab aab aab aab bxM aab -bLH +bxM +aab +czp +aab +bxM +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab bLH -aab bLH -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (204,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -134625,8 +125950,8 @@ aXG aXG aZE aUH -aUH -bda +ckY +eqk bfB bfE bgL @@ -134640,16 +125965,16 @@ aQz cTk aQz aQz -bkB +ckL aQz bpi bQf bJS tkv brB -bsa +bsE bsH -bto +btq btW buO bsg @@ -134662,17 +125987,9 @@ bAO bBS byQ bxG -bEq -bFs -bEq -bEq -bEq -byL -cTr -bBU -bBU -aaA -aaA +bYx +bPp +bPp aaA aaA aaA @@ -134684,13 +126001,12 @@ aHm aFL aFL aaA -aaA -aaA +aco aaA aaA aaA bPp -cTu +cDB bQh bQh bQh @@ -134698,153 +126014,162 @@ bQh bYx ccf aab +cVZ +cTH +xDJ +vTb +xQx +cRm +cRt +giH +fHV cdu cea cex -cew -cew +cfe +chb cgF -chz +chB ciq -cjp -cka -cmu -ckc -cmu -cnf -csx -cKQ +twF +rxJ +cTG +cTH +cTH +cTH +cTH +cTH wsH -cpS -crN -csJ -cea -cea -cea -cea -cea -czp aab aab aab aab bxM aab -bLH +czp +aab +bxM +aab +czp +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab bLH -aab bLH -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (205,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -134882,7 +126207,7 @@ eqe eqe baT bpG -aUH +coq cQU bes bfF @@ -134896,13 +126221,13 @@ bli aQz aQz aQz -bom -bon +bxR +bxT ccA bpi bQb bFn -tkv +rbV brA bse bsH @@ -134919,17 +126244,9 @@ bAP bzP bCK bxG -bEx -bFq -cEp -cUt -bEq -cPy -bHT -cVI -bBU -bBU -aaA +bYx +cQF +bPp aaA aaA aaA @@ -134941,7 +126258,6 @@ aHm aFL aFL aFL -aco aaA aaA aaA @@ -134951,36 +126267,36 @@ bPp bPp bPp bPp -cRs +rbw bYx ccf aab +cVZ +cTH +xQx +vOB +xQx +cTH +cRt +snv +fHV cdu -cea -cew -bJU -cew -cea -chz -cip -cjp -cka +guv +oOl +cdy +chb +cdy +fJH +cji +kev +iej cmv cNn -cdy -cnf -cdy -cNY -hcn -cqQ -cta -csK -ctG -cuy -cFz -cuz -cea -czp +mQT +vLH +cvj +cTH +wsH aab aaa aaa @@ -135007,101 +126323,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (206,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -135139,11 +126464,11 @@ cKp aWK aZG bvD -aUH +coq bdc aQz aQz -aQz +uIi aQz biz aQz @@ -135161,10 +126486,10 @@ bQc bHi bQq brA -bsa +tDV bsE btq -bUZ +bxB buO bsg bvV @@ -135176,17 +126501,9 @@ bzP bzP bCL bxG -cUs +bYx bFt bFW -bFW -bHk -bHU -byM -bIG -cUw -bBU -aaA aaA aaA aaR @@ -135201,43 +126518,42 @@ aFL aaA aaA aaA -aaA bPp -ccJ -clR +iRD +lEz bQh -eCO +jhy bPp bQh bYx ccf aab -cdu -cea -cea -cea -cea -cea -chz -cir -cjn +cVZ +cTH +cTH +cTH +cTH +cTH +cRt +gaT +dXg +hVb +dzR +uJR +wsS +scp +xtx +chB +cji +cTB clu -ckO -clC +cmu +cRm cnZ cpa cuo -cKQ -hcn -cqP -ctb -csG -cgF -cuz -cHe -cvW -cea -czp +cTH +wsH aab aaa aaa @@ -135264,101 +126580,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (207,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -135396,12 +126721,12 @@ aXI aWK aZH byr -aUH -bdc +cBP +etb +iSm +okc +rrU aQz -aaA -aaA -aaA asd aaA aaA @@ -135409,7 +126734,7 @@ aQz blj blK bxx -bmM +qyD bmM boo bom @@ -135433,17 +126758,9 @@ bWA bBT bCM bxG -bEq -bEq -bEq -bEq -bEq -bHV -byL -bHS -byL -bBU -bBU +bYx +bQh +cDB aaA aaA aFL @@ -135455,46 +126772,45 @@ aHm aHm aFL aFL -aaA -aaA +aFL aaA aaA bPp -cVY -cmi -cnD -cRq -cam -caS +iRQ +lNz +nJM +cQF +qnQ +rby bYx ccf aav +cVZ +cTH +cEq +cEq +cam +cUj +xrA +bHw +twd cdu -cea -cey -cey -cfH -cgG -chA +oFc +cKU +cKU +cKU +cgH +chB bQS cjm -cka +wDn cmw -cdx -cdx -cdx +cNn +mKu +oKd cvj -cKQ -cLh -cqT -czB -csL -ctG -cEf -cHf -cuz -cea -czp +cTH +wsH aav aac aac @@ -135521,101 +126837,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (208,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -135672,35 +126997,27 @@ bGt cTq bpi bQb -bHi +bzb brZ -brD -bsg +bzV +buR bsJ bts btZ buR bvu -buR +bFu bwO bxL -bxL +bHo bzR cMZ bxL bCN bxG -bEy -bDy -bDy -bDy -bDy -bHW -byM -cTs -bII -bIF -bBU +bYx +cDB +cDB aaA aFL aFL @@ -135715,43 +127032,42 @@ aFL aFL aaA aaA -aco bPp -cVZ -cmL -cyY +iZc +lPF +nPZ bQh bPp bQh bYx ccf aab -cdu -cea +cVZ +cTH +cyY +nBT +oQq +cRm +cRt +dXs +fHV +rey +oeB cez cff -cey -cgF -chz +nXI +tAF +nEf cil -cjp +dEX ckd ckQ -cjW -cms -cnh -cEJ -cKR -cCY -cqU -crQ -csM -cea -cea -cea -cea -cea -czp +cTH +cTH +cTH +cTH +cTH +wsH aab aaa aaa @@ -135778,101 +127094,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (209,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -135920,9 +127245,9 @@ bjs bkE bkG bkH -bfG -aQz -blZ +bjw +aQA +bmY blZ blZ caQ @@ -135947,17 +127272,9 @@ bxG bxG bCO bxG -cPv -bBU -bBU -bBU -bBU -bBU -bBU -bBU -bBU -bHS -bBU +bYx +bPp +bPp aaA aFL aFL @@ -135972,43 +127289,42 @@ aFL aFL aaA aaA -aaA bPp -clN -cmM -cEq -ccJ +jhy +lXT +nSZ +iRD bPp -cRF +uSw bYx ccf aab -cdu -cea -cey -ckx -cfI +cVZ +cTH +cEq +pGl +ygd +clz +keH +sYO +fHV +uNc +cKU +cKU +cKU +cKU cgH chB -cis -cjp +cHq +bZN cke -cdx -cdx -cdx -cdx -cvj -cKQ -dSS -cgB -crR -ctH -cvi -cvi -cvi -cvi -cvi -czp +olR +rpQ +rpQ +rpQ +rpQ +rpQ +wsH aab aab aab @@ -136035,101 +127351,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (210,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -136150,7 +127475,7 @@ acv acv aav aav -aLk +aKk aMc aMW aNV @@ -136177,9 +127502,9 @@ biD bjt bkf bkF -bfG +bjw aab -blZ +bmY bmO cMU bop @@ -136187,7 +127512,7 @@ boH bpj bpL bqB -bnL +ejX brE bsh pHw @@ -136201,21 +127526,13 @@ aaA aaA aaA aaA -bBU +bPp bCP -bDy +wzM bEA -bQy -bBU +bPp aaA aaA -aaA -aaA -aaA -bBU -bHS -bBU -aaA aFL aFL aFL @@ -136227,45 +127544,44 @@ aHm aFL aFL aFL -aaA -aaA +aFL aaA bPp bQh -cnC -cNo -clk +mdU +nUG +pwT bPp -bQh +bFt bYx ccf aab -cdu -cea -cea -cea -cea -cea -chz -cir -cjn +cVZ +cTH +cTH +cTH +cTH +cTH +cRt +gaT +dXg +eFh +cKU +cdy +cdy +cdy +cdy +chB +cHq +cjr cmp -cdx -cdy -cdy -cdy -cdy -cKQ -dSS -cqV -crS -csN -csN -cuB -csN -csN -cuB -ccS +bpo +bpo +evc +bpo +bpo +evc +cXi aab aab aaa @@ -136292,101 +127608,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (211,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -136434,17 +127759,17 @@ bke bju bkg bAe -bfG +bjw aab -blZ +bmY bmP bnI boq boq boq -bnL +nwy bqC -bnL +eAb boq boq boq @@ -136458,20 +127783,12 @@ aaA aaA aaA aaA -bBU -bBU -bBU -bBU -bBU -bBU +bPp +bPp +bPp +bPp +bPp aaA -aco -aco -aaA -aaA -bBU -bIJ -bBU aaA aFL aFL @@ -136485,8 +127802,7 @@ aFL aFL aFL aFL -aaA -aaA +aFL bPp bPp bPp @@ -136497,43 +127813,43 @@ bPp bYx ccf aav -cdu -cea -ceA +cVZ +cTH +xUE +xUE +rBw +cUj +xrA +ipB +twd +uNc +ujf +cdy ceA cfJ -cgG -chA +cdy +kkn cit -cjm -cke +lHx +sTw +ckR ckR -cdy coa -cpb -cdy -cKS -cLj -cqW -crT -clv -clv -cql -cdx -cgz -cdx -ccS +igf +cFq +cKU +cXi aab aaa aaa aaa bxM aab -aax +bxM aaa aax aaa -aax +bxM aab aab aab @@ -136549,101 +127865,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (212,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -136691,9 +128016,9 @@ biF bju bkh bgO -bfG +bjw aab -blZ +bmY bmQ bnI bma @@ -136723,14 +128048,6 @@ aaA aaA aaA aaA -aaA -aaA -bHl -bHl -bIK -cHp -bHl -bHl aFL aFL aFL @@ -136749,37 +128066,36 @@ aaA aaA aaA aaA -aaA bPp bYx ccf aab -cdu -cea -ceB +cVZ +cTH +xVa +oXC +xZS +cRm +cRt +fQS +fHV +uNc +cKU +cdy cfg -ceA -cgF -chz -ciu -cjp -cke -cdx +cfL +cfL +chB +cHq +cjr +ckg cdy +vnI cXh -cpc -cpc -cKQ -dSS -cqV -crU -cdy -ctI -cuC -cvm -cvX -cdx -ccS +cpd +gsN +igf +cXi aab aaa aaa @@ -136788,7 +128104,7 @@ bxM aab aax aaa -aax +bxM aaa aax aab @@ -136806,101 +128122,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (213,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -136954,8 +128279,8 @@ bmY bmR bnJ bor -bor -bor +byU +byU bpM bqE bNm @@ -136981,14 +128306,6 @@ aaA aaA aaA aaA -aaA -bHl -bHY -bIL -bHX -bJV -bHl -aaA aFL aFL aFL @@ -136997,57 +128314,56 @@ aFL aHm aHm aHm -aFL +aHm aFL aFL aaA aaA aaA aco -aaA bPp bPp bPp bYx ccf aab -cdu -cea -ceA +cVZ +cTH +xUE +wWr +rtM +clz +keH +tFC +fHV +uNc +cKU +cdy cFj cfK -cgH -chB -civ -cjp -cke -cdx +cfL +mhL +cHq +cjr +bsz cdy -cMg +vnI +cXh cpd -cpc -cKT -dSS -cqV -crV -cdy -ctI -cuC -cvm -cvX -cdx -ccS +gsN +cKU +cXi aav aac aac aac bxM aav -aax +bxM aac aax aac -aax +bxM aab aab aab @@ -137063,101 +128379,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (214,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH aab aab aab @@ -137196,12 +128521,12 @@ aQz aQz aQz aQz -aRG +aQz aQz bfG bfG bfG -bfG +bjw bjw bjw bkI @@ -137235,18 +128560,10 @@ aaA aaA aaA aco +aaA aco aaA aaA -aaA -bHl -bHZ -bIa -bJW -cWx -bHl -aaA -aaA aFL aFL aFL @@ -137262,38 +128579,37 @@ aaA aco aco aaA -aaA -cDC +mqF bQh -cRt +sDf ccf aab -cdu -cea -cea -cea -cea -cea -chz -cir -cjn +cVZ +cTH +cTH +cTH +cTH +cTH +cRt +gaT +dXg +gpe +wdP +cdy +brz +rzz +cfL +mhL +cHq +cjr ckf -ckS cdy +vnI coe -cpc -cpc -cKT -dSS -cqV -cOf -cdy -ctI -cuD -cOa -cvX -cdx -ccS +uHm +gsN +cKU +cXi aab aaa aaa @@ -137320,101 +128636,110 @@ aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (215,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH aab aab aab @@ -137443,7 +128768,7 @@ aNa aPH aMe aRj -aRj +aQz aQz aaA aaR @@ -137479,31 +128804,23 @@ bsL bnL buf bmY -aac -aac -aac -aac -aac -aaa -aaa -aaa +aab +aab +aab +aav +aab +aab +aab +aab aaA aaA aaA aaA aco +aaA +aaA aco aaA -aaA -aaA -bHm -bIa -bIM -cWw -bJX -bHl -aaA -aaA aFL aFL aFL @@ -137512,45 +128829,44 @@ aFL aFL aFL aHm +aHm aFL aFL aaA aaA -aaA aco aaA -aaA bQh -cUj +rhO bYx ccf aav -cdu -cea -coV +cVZ +cTH +xYX +ycq +uQB +cUj +xrA +nyU +jKe +rwo +qOF +cdy ceC cfL -cgG -chA -ciy -cjq +cfL +chB +cHq +cjr ckg -cjo -cdy cXi -cpc -cpc -cKQ -dSS -cqV -crU -ccS -ccS -ccS -ccS -ccS -cwv -ccS +cXi +cXi +cXi +cXi +hML +cXi aab aaa aaa @@ -137575,103 +128891,112 @@ aab aab aab aab -bvx aab aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +jEf +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (216,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH aab aab aab @@ -137700,7 +129025,7 @@ aNa cLS aMe aRj -aRj +lQP aQz aaR aaR @@ -137726,7 +129051,7 @@ jqb bnL bot eec -bpl +bpO bip bqH brn @@ -137736,15 +129061,15 @@ bsL bnL eec bma -aaa -aaa -aaa -aaa +aab +aab +aab +aav +aab +aab +aab +aab aac -aaa -aaa -aaa -aaa aab aab aaA @@ -137752,14 +129077,6 @@ aaA aaA aaA aaA -aaA -bHm -bIb -bIN -bHl -bHl -bHl -aaA aco aFL aaA @@ -137768,46 +129085,45 @@ aFL aFL aFL aFL -aHm -aHm aFL aFL -aaA +aFL +aFL aaA aaA aaA bPp bQh -cRm +cRd bYx ccf aab -cdu -cea -ceD -cfh -ceC -cgF -chz -ciz -cjr -cdx -ckU +cVZ +cTH +xZW +gbr +pRv +cRm +cRt +gZq +uje +cKU +fKl cdy +cfh +vCd +cdy +jJj +cHq +cjr +bsz +cRm +hwx coH cpQ -cdy +hir cKU -dSS -cqV -crV -cgF -cNx -cvB -cys -cBg -cdx -ccS +cXi aab aaa aaa @@ -137834,101 +129150,110 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (217,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -137993,28 +129318,20 @@ bsL bnL eec bma -aaa -aaa -aaa -aaa -aac -aaa -aaa -aab -aaa -aab aab aab aab +aav aab aab aab aab aac -bIb -bIO -bHl -aaA +aab +aab +aab +aab +aab aaA aaA aco @@ -138032,39 +129349,38 @@ aFL aaA aaA aaA -aaA bPp bQh -cTu +cDB bYx ccf aab -cdu -cea -ceC -cFk -cfM -cgH +cVZ +cTH +ycq +eCz +npc +clz +keH +gxc +uje +cKU +uNc +cdy +cdy +cdy +cdy chB -ciA -cjr -cdx -cke -cdy -cdy -cdy -cdy -cKQ -dSS -cqX -crU -cgF -cuR -cEm -cvo -cra -cCO -ccS +kQR +eHQ +ckg +cRm +nuo +nkd +jwK +igf +vFp +cXi aab aaa aaa @@ -138091,101 +129407,110 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (218,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -138205,7 +129530,7 @@ aab aHS aIL aJy -aKo +aNa aNa aMf vPQ @@ -138250,28 +129575,20 @@ bsL bnL eec bma -aaa -aaa -aaa -aaa -aac -aaa -aab -aaa -aaa -aab aab aab aab +aav aab aab aab aab aac -bIb -bIP -bHl -aaA +aab +aab +aab +aab +aab aaA aaA aaA @@ -138289,39 +129606,38 @@ aFL aFL aaA aaA -aaA bPp bQh -cTu +cDB bYx ccf aab -cdu -cea -cea -cea -cea -cea -chz +cVZ +cTH +cTH +cTH +cTH +cTH +cRt +gWC +hnt +eEy +iWA +eEy +eEy +eEy +gDd +lOG ciB cjs ckh ckV -ckh -ckh -ckh +tYl +jnJ +cFq cFq cKV -cLk -cqY -crW -csO -ctL -cuG -cgz -cgz -cEI -ccS +cXi aab aaa aaa @@ -138348,101 +129664,110 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (219,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -138507,9 +129832,13 @@ bsL bnL bug bma -aaa -aaa -aaa +aab +aab +aab +aav +aab +aab +aab aab aav aab @@ -138518,18 +129847,6 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aav -aab -bIQ -aab -aaA -aaA aaA aaA aco @@ -138539,46 +129856,45 @@ aaA aFL aFL aFL +aaR aFL aFL aFL aFL aFL aFL -aFL -aaA bPp -cUM +qos bQh bYx ccf aav +vFP +cUM +cUM +cUM +cUM +cUM +wav +nNk +cdv cdv ceb -ceb -ceb -ceb -ceb +cdv +cdv +rPP +gSZ csE ciC cik -cik -ckW +oXg +cRm clD -cik +ngc cnk cFs cKW -cLl -cqZ -crX -cgF -cvn -cNZ -cyG -cBl -cFd -ccS +cXi aab aaa aaa @@ -138605,101 +129921,110 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (220,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +acx +acx +acx +acx aaa aaa aaa @@ -138764,9 +130089,13 @@ bwZ boM buh bma -aaa -aaa -aaa +aab +aab +aab +aav +aab +aab +aab aab aav aab @@ -138775,18 +130104,6 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aav -aab -bIR -aab -aaa -aac aaA aaA aaA @@ -138797,13 +130114,12 @@ aaA aaA aaR aaR +aaR +aaR aFL aFL aFL aFL -aFL -aaA -aaA bPp bPp bQh @@ -138815,27 +130131,27 @@ ccf ccf ccf ccf -ccS +cXi +hhg +rav +cKU +cKU +uNc +quL +cKU +cKU +cgH cOE -ckX -cdx -cdx -cke -cmy -cdx -cdx -cvj -cKX -dSS -cra -crX -csP -ccS -ccS -ccS -ccS -ccS -ccS +cHq +igf +oXg +sZA +cXi +cXi +cXi +cXi +cXi +cXi aav aac aac @@ -138862,101 +130178,110 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (221,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +acx +acx +acx +acx aaa aaa aaa @@ -139019,33 +130344,25 @@ hMI eXk bnL btu -bui bmY -aac -aac -aac +bmY +aav +aav +aav +caw aav aav aav aav aav -aav -aav -aac -aac -aac -aac -aac -aac -aav -aac -aac -bIS -aac -aac -aac -aac -aac +aab +aab +aab +aab +aab +aab +aab +aab aaA aaA aaA @@ -139057,39 +130374,38 @@ aaR aaR aaR aaR -aaA -aaA -aaA +aFL +aFL aaA aaA bPp bQh -bYy -bQi -bQi -bQi -cAU -bQi -bQi +hXO +wzM +wzM +wzM +crf +wzM +wzM +iYn +iXw +lWh +lWh +pXT +lWh +jSZ +ghE +qrz ccg ckw cjt -cjt +pnT clE -cjt +kid cNX cnl cnm cui -cFt -cKY -cNw -coZ -crY -csQ -ctN -cuI -cvq aSp aSp aSp @@ -139119,110 +130435,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (222,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -139281,6 +130606,12 @@ aab aaa aaa aaa +aav +aab +aab +aab +aab +aab aab aab aab @@ -139288,21 +130619,7 @@ aab aab aab aab -aaa -aac -aaa -aaa -aaa -aaa aab -aac -aaa -bIS -aaa -aaa -aaa -aaa -aac aaa aaa aaA @@ -139310,11 +130627,10 @@ aaA aaA aaA aaA +aaA +aaA aaR aaR -aaR -aaR -aaA aaA aaA aaA @@ -139322,11 +130638,11 @@ bPp bPp bQh bQh -cTu +cDB bQh bQh bQh -cRm +cRd bQh bQh cdy @@ -139339,14 +130655,14 @@ cdy cdy cdy cdy -cpe -cpY -cpY -cpY -cpY -cpY -ctT -cvr +wLo +mXh +mXh +mXh +mXh +mXh +ylM +lPw aac aac aac @@ -139376,110 +130692,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (223,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -139538,29 +130863,21 @@ aab aaa aaa aaa -aab -aab -aab -aab -aab -aab -aab -bBV -aav -aac -aac -aab -aab -aab aav aab -bIT aab -aac -aac aab -aac -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -139569,46 +130886,45 @@ aaA aaA aaA aaA -aaR -aaR aaA aaA -cDB -cDB +aaA +mfy +mfy bQh -cam -caT -cRG -cTu +qnQ +rqY +sEC +cDB +vvk +bQh +bQh +cDB +sEC +bQh +bQh +cDB +bPp cWc bQh +cDB bQh -cTu -cRG -bQh -bQh -cTu -bPp +cRd +maX +tvA +pgc +htY cRS -bQh -cTu -bQh -cRm +ksr +xHW +rgL +pyI cnn cqx -cpf +cqx cWC crb crZ -cqd -ctO -cuJ -cvs -cwa -cwa -cwW -cxx -cxL aav aav aav @@ -139633,110 +130949,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (224,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -139795,6 +131120,14 @@ aab aaa aab aab +aav +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -139802,70 +131135,53 @@ aab aab aab aab -aac aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -bIU aab -bDz -bDz -bDz -bDz -bDz -bDz aab -aay aaa aaa aaA aaA aaA aaA -aaR aaA -bPp -cDB -cDC +ccf +mfy +mqF bQh bPp -czx -cbB +rxN +sHi ccf ccf ccf ccf ccf ccf -cDC +mqF bQh bQh bQh bQh bQh -cRq +cQF bQh +vGI +jUe +xFI +dmW +fvI +dKp +dKp +hHu +sdy cmz cno -cog +cpg cpg cqa crc -crc -csR -ctP -cuK -cvt -cwb -cwb -cwX -cxy -cxM +mus aab aab aav @@ -139890,110 +131206,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (225,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -140013,7 +131338,7 @@ aaa aab aab aQA -bcU +aRj aQA aab aaa @@ -140036,65 +131361,56 @@ aac aac aav bma -bnR +boO bma -bnR +boO bma aab -aaa -aaa +aab +aab bma -bnR +boO bma -bnR +boO bma -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aay -aab -bDA -bEB -bEB -bEB -bEB -bEB -bIc -bIU -bJY -bKC -bKC -bKC -bKC -bKC -bNd +aav aac -aay +aav +aav +aav aab aab aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa aaA -aaA -aaA -aaA +aco aaA ccf -cDC -cDC -cHa +mqF +mqF +pAO ccf bQh ccf aaA -aaA +aco aaA aaA aaA @@ -140109,20 +131425,20 @@ ccf ccf ccf cnp -cog -cCu -cqb +xFI +xSf +wUN +hgE +xoN +rNH +igj +cnp +fFp +cnp +cnp +cnp cse cRK -csS -ctQ -cnp -cvu -cnp -cnp -cnp -cxz -cxN aSp aSp aav @@ -140147,110 +131463,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (226,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -140269,6 +131594,263 @@ aaa aaa aaa aab +aQA +nab +aQA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aaa +aaa +aaa +aac +aaa +aaa +aaa +bma +boP +bma +boP +bma +aab +aaa +aaa +bma +boP +bma +boP +bma +aaa +aaa +aaa +aaa +aav +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaA +aaA +ccf +ccf +ccf +ccf +ccf +rCU +ccf +aaA +aaA +aco +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +aaA +cnp +xFI +ycl +xHW +pVy +rNH +unY +jFB +coi +ldy +coi +cpi +cnp +cnp +csd +aaa +aSp +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +"} +(227,1,1) = {" +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aaa aav acv aac @@ -140288,255 +131870,15 @@ aab aaa aaa aaa -aac -aaa -aaa -aaa -aaa -aaa -aab -boP -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aay -aac -bDB -bDB -bDB -bDB -bDB -bDB -aac -bIV -aac -bDB -bDB -bDB -bDB -bDB -bDB -aab -aay -aab -aab -aab -aaa -aaA -aaA -aaA -aaA -ccf -ccf -ccf -ccf -ccf -czA -ccf -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -aaA -cnp -cog -cpi -cqc -cre -csb -csT -ctR -cuN -cvv -cuN -cwz -cnp -cnp -cxO -aaa -aSp -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(227,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab aab +fty aab -aaa -aaa -aSp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab @@ -140549,49 +131891,26 @@ aaa aaa aaa aaa -aaa -aaa -aab -aab aab aab aab aab aab aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab aab aab -bBV aab aab -aac aab -aac aab aab aab -bIU aab -aac aab aab aab -aac aab aab -aay aab aab aab @@ -140602,10 +131921,9 @@ aaA aaA aaA aaA -aaA -aaA -aaA aAY +aAY +aaA aaA aaA aaA @@ -140617,26 +131935,24 @@ aaA aaA aaA aaA -aaA -aaA -aaA aco aaA +aaA cnp +rFZ +fwm +uoR +qMO +lOQ +hsV +hsV +maF +vPX csa cpj cqd cDk csc -csU -csU -cuM -cvw -cwc -cwA -cwY -cxA -cxP aaa aSp aab @@ -140661,110 +131977,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (228,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -140783,9 +132108,9 @@ aab aab aab aab -aab -aab -aab +aaa +aSp +aaa aab aab aab @@ -140830,25 +132155,17 @@ aab aab aab aab -bBV aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -bIU aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -bBV +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -140861,7 +132178,8 @@ aaA aaA aaA aaA -aaA +aAY +aAY aAY aAY aAY @@ -140877,23 +132195,21 @@ aaA aaA aaA aaA -aaA -aaA cnp +eaE +fDL +dlj +mik +dKp +xHW +hHu +coi +htX coi cpk -cqe -crg +cnp +cnp csd -cqd -csR -cuN -cvx -cuN -cwB -cnp -cnp -cxO aaa aSp aab @@ -140918,110 +132234,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (229,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -141087,32 +132412,24 @@ aab aab aab aab -aay -aab -bDA -bEB -bEB -bEB -bEB -bEB -bIc -bIU -bJY -bKC -bKC -bKC -bKC -bKC -bNd -aac -aac aab aab aab aab aab -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaA @@ -141124,32 +132441,31 @@ aAY aAY aAY aAY +aAY aaA aaA aco aco aaA -aaA -aaA -aaA aco aco aaA aaA +aaA cnp cnp +wJZ +thV +fAp +hEW +nVD +lWk +cnp +xCM +cnp cpl -cqf +cnp bpP -cSf -csV -ctS -cnp -cvy -cnp -cwC -cnp -cxB aSp aSp aSp @@ -141175,110 +132491,119 @@ aab aab aab aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (230,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -141344,32 +132669,24 @@ aab aab aab aab -aay -aac -bDB -bDB -bDB -bDB -bDB -bDB -aac -bIU -aac -bDB -bDB -bDB -bDB -bDB -bDB -aab -aay aab aab aab -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -141382,9 +132699,7 @@ aAY aAY aAY aAY -aaA -aaA -aaA +aAY aaA aaA aaA @@ -141394,36 +132709,16 @@ aco aco aaA aaA +aaA cnp -cnp -cnp -cnp -csf -csW -ctT -cmT -cvz -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab +lcE +qLB +qLB +qLB +qLB +ylM +kWi +ujn aab aab aab @@ -141435,107 +132730,137 @@ aab aab aab aaa +aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (231,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -141601,32 +132926,24 @@ aab aab aab aab -aay -aab -aab -aac -aab -aac aab aab aab -bIU -aab -aab -aac -aac -aab -aac -aac -aab -aay aab aab aab -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -141640,9 +132957,7 @@ aAY aAY aAY aAY -aaA -aaA -aaA +aAY aaA aaA aaA @@ -141657,6 +132972,9 @@ aaA aaA aaA aaA +aaA +aaA +aaA aab aab aab @@ -141669,130 +132987,137 @@ aab aab aab aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +bvx +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (232,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -141858,32 +133183,24 @@ aab aab aab aab -bBV -aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -bIU -aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -bBV aab aab aab aab aab aab -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -141893,6 +133210,7 @@ aab aaa aaa aaa +aab aAY aAY aAY @@ -141905,7 +133223,7 @@ aaA aaA aaA aaA -aaA +aco aaA aaA aaA @@ -141944,112 +133262,119 @@ aab aab aab aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (233,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa @@ -142115,25 +133440,18 @@ aab aab aab aab -aay aab -bDA -bEB -bEB -bEB -bEB -bEB -bIc -bIU -bJY -bKC -bKC -bKC -bKC -bKC -bNd -aac -aac +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -142183,151 +133501,158 @@ aab aab aab aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (234,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -142372,25 +133697,18 @@ aab aab aab aab -aay -aac -bDB -bDB -bDB -bDB -bDB -bDB -aac -bIU -aac -bDB -bDB -bDB -bDB -bDB -bDB aab -aay +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab @@ -142440,151 +133758,158 @@ aab aab aab aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (235,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -142629,38 +133954,31 @@ aab aab aab aab -aay -aab -aab -aac -aab -aac aab aab aab -bIU aab aab -aac -aac aab -aac -aac aab -aay +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aaa aaa aaa aaa aaa aab -aab -aab -aab -aab -aab -aab -aab aaa aaa aaa @@ -142697,151 +134015,158 @@ aab aab aab aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (236,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -142886,35 +134211,28 @@ aab aab aab aab -aay -aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -bIU -aab -bDz -bDz -bDz -bDz -bDz -bDz -aac -aay -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa aaa aaa aaa @@ -142954,151 +134272,158 @@ aab aab aab aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (237,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -143143,35 +134468,29 @@ aab aab aab aab -aay aab -bDA -bEB -bEB -bEB -bEB -bEB -bIc -bIU -bJY -bKC -bKC -bKC -bKC -bKC -bNd aab -aay -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa aaa aaa aaa @@ -143228,134 +134547,140 @@ aab aab aab aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (238,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acW +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -143400,35 +134725,29 @@ aab aab aab aab -aay -aac -bDB -bDB -bDB -bDB -bDB -bDB -aac -bIW -aac -bDB -bDB -bDB -bDB -bDB -bDB -aab -bBV -aaa -aaa -aaa -aaa -aaa -aaa aab aab aab aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa aaa aaa aaa @@ -143485,134 +134804,140 @@ aab aab aab aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (239,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -143657,476 +134982,476 @@ aab aab aab aab -aac aab aab -aac -aab -aac -aab -aab -aab -bIS -aab -aac -aab -aac -aab -aab -aab -aac -aay -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (240,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aac -bCQ -bCQ -bCQ -aab -bCQ -aab -aac -aab -bIS -aab -aab -aab -aac -abl -aac -bCQ -bCQ -bBV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acW +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (241,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaw aaa @@ -144171,990 +135496,990 @@ aaa aab aab aab -aaa -aaa aab aab -aab -aac -aab -bCQ -aac -bIX -aac -bBV -aaa -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (242,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaw -aaa -aaa -aab -aab -aab -aaa -aaa -aab -aab -aab -aac -aac -bBV -aab -aab -aab -bCQ -aac -aac -aab -aab -aab -aaa -aaa -aaw -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acW +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (243,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aaa -aaa -aab -aab -aab -aab -aab -bCQ -bCQ -bCQ -bCQ -bCQ -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +jEf +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (244,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aaa -aaa -aab -aab -aab -aab -aab -aab -aac -aab -aac -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (245,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -145201,474 +136526,474 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (246,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +bvx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (247,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -145715,217 +137040,217 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (248,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -145972,217 +137297,217 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (249,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -146229,217 +137554,217 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (250,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -146486,217 +137811,217 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (251,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx aaa aaa aaa @@ -146743,1134 +138068,1134 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (252,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (253,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (254,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} (255,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +bLH +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx +acx "} diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index fdc313c30a..218044c6c2 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -982,11 +982,11 @@ /area/security/prison) "aci" = ( /obj/structure/lattice/catwalk, -/obj/machinery/door/airlock/external{ - req_one_access_txt = "13,8" +/obj/structure/cable{ + icon_state = "0-2" }, /turf/open/space, -/area/maintenance/starboard/fore) +/area/solar/starboard/fore) "acj" = ( /obj/machinery/light/small{ dir = 1 @@ -1136,8 +1136,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red{ @@ -1155,8 +1154,7 @@ "acB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -1196,8 +1194,7 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -3123,6 +3120,17 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"afQ" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -5480,15 +5488,17 @@ /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "akd" = ( -/turf/open/space, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "ake" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/lattice/catwalk, /turf/open/space, -/area/maintenance/solars/starboard/fore) +/area/space) "akf" = ( /obj/machinery/conveyor{ dir = 1; @@ -6294,11 +6304,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "alx" = ( @@ -6997,6 +7002,10 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"amB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/port) "amC" = ( /obj/structure/chair{ dir = 4 @@ -7014,6 +7023,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/crew_quarters/fitness/recreation) +"amF" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Storage Room"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"amG" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "amH" = ( /obj/machinery/door/airlock/external{ req_one_access_txt = "13,8" @@ -7086,14 +7106,9 @@ /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "amN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) +/area/crew_quarters/fitness/pool) "amO" = ( /obj/machinery/light/small{ dir = 8 @@ -7158,6 +7173,13 @@ icon_state = "platingdmg2" }, /area/maintenance/port) +"amV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -7438,6 +7460,9 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/main) +"anz" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "anA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -7898,6 +7923,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/warden) +"aov" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "aow" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -8616,6 +8645,12 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"apP" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "apQ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 @@ -8682,6 +8717,9 @@ /obj/item/assembly/flash/handheld, /turf/open/floor/plasteel, /area/security/main) +"apX" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "apY" = ( /obj/structure/table, /obj/item/folder/red, @@ -8747,6 +8785,12 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"aqe" = ( +/obj/machinery/pool/filter{ + pixel_y = 16 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "aqf" = ( /obj/structure/closet/lasertag/blue, /obj/effect/turf_decal/tile/neutral{ @@ -9248,6 +9292,12 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"arh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "ari" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9478,6 +9528,13 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"arF" = ( +/obj/structure/pool/ladder{ + dir = 8; + pixel_x = 4 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "arG" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, @@ -10167,6 +10224,12 @@ /obj/structure/chair, /turf/open/floor/plasteel/grimy, /area/security/main) +"asN" = ( +/obj/machinery/light/built{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "asO" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -10466,6 +10529,10 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atw" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "atx" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -10536,6 +10603,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "atD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10558,6 +10631,10 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atF" = ( +/obj/machinery/pool/controller, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "atG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -10601,6 +10678,23 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atJ" = ( +/obj/structure/sign/poster/ripped{ + pixel_y = 32 + }, +/obj/structure/table, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/item/light/tube, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/pool"; + dir = 4; + name = "Pool APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "atK" = ( /obj/machinery/computer/prisoner/gulag_teleporter_computer{ dir = 1 @@ -11069,6 +11163,24 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"auQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"auR" = ( +/obj/structure/pool/Lboard, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"auS" = ( +/obj/structure/pool/Rboard, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"auT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "auU" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -11659,6 +11771,50 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"avU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"avV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"avW" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"avX" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "avY" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -11932,6 +12088,11 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) +"awA" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/blue, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "awB" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/storage/box/lights/mixed, @@ -12053,6 +12214,18 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"awN" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"awO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "awP" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/shoes/sneakers/rainbow, @@ -12105,6 +12278,25 @@ "awW" = ( /turf/closed/wall/r_wall, /area/security/nuke_storage) +"awX" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"awY" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) "awZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -15494,15 +15686,7 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDN" = ( -/obj/structure/rack, -/obj/item/storage/briefcase{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/storage/secure/briefcase{ - pixel_x = 2; - pixel_y = -2 - }, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aDO" = ( @@ -54179,21 +54363,6 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/port/aft) -"cek" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cel" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "cem" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -54885,16 +55054,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"cfB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "cfC" = ( /obj/item/trash/pistachios, /obj/structure/closet, @@ -55509,13 +55668,6 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) -"cgG" = ( -/obj/structure/closet/emcloset/anchored, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "cgH" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -63485,8 +63637,7 @@ "cvL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ - id = "researchrangeshutters"; - name = "blast door" + id = "researchrangeshutters" }, /turf/open/floor/plating, /area/science/misc_lab/range) @@ -66348,8 +66499,7 @@ "cBm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ - id = "researchrangeshutters"; - name = "blast door" + id = "researchrangeshutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -81287,19 +81437,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"gsT" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/solar/starboard/aft) "gEk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -97098,15 +97235,15 @@ bTp bUP bVS bXv -bYC -bYC -bYC -bYC -aaa -aaf -aaa -aaa -aaf +bTn +bTn +bTn +bTn +amG +auQ +auQ +amG +amG aaf aaf aaa @@ -97356,16 +97493,16 @@ bTn bTn bTn bTn +amN +anz +arh +asN +anz +arh +awN +amG aaa -aaf -aaa -aaa -aaf -aaf -aaf -aaf -aaa -aaa +lMJ aaa aaa aaa @@ -97609,20 +97746,20 @@ bzx alC mEe alK -aob -aob dix -alK -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaf -aaa +aob +amB +amF +amV +apX +apX +apX +apX +apX +awO +auQ aaa +lMJ aaa aaa aaa @@ -97869,17 +98006,17 @@ bTr bUQ bVT aob -alK -aaa -aaf -aaa -aaa -aaa -aaa -aaa -aaf -aaa +amG +anz +aqe +apX +atw +apX +apX +anz +auQ aaa +lMJ aaa aaa aaa @@ -98126,15 +98263,15 @@ alK bJs bVU bXx -alK -aaa -aaf -aaf -ack -aaf -aaf -aaf -aaf +amG +aov +apX +arF +apX +auR +apX +anz +auQ aaf aaf aaf @@ -98383,15 +98520,15 @@ alK bUR alK alK -alK -aaa -aaf -aaa -ack -aaf -aaa -aaa -aaa +amG +apP +anz +anz +atC +auS +atC +awX +amG aaa aaa aaa @@ -98640,15 +98777,15 @@ alK alK alK bXy -dux -dux -dux -dux -cek -dux -dux -dux -dux +amG +amG +amG +amG +atF +auT +avX +amG +amG ckN ckN ckN @@ -98900,11 +99037,11 @@ bXz bYE bYE cbp -dux -cel -bUU -cgG -dux +amG +atJ +avU +awA +amG cjp ckO cmg @@ -99157,11 +99294,11 @@ dux dux dux cbq -dux -dux -cek -dux -dux +amG +amG +avV +amG +amG cjq ckP ckS @@ -99416,7 +99553,7 @@ dux cbr bYE cem -cfB +avW cbp dux diE @@ -119752,7 +119889,7 @@ cJf dvY aaa dbN -gsT +awY dbN aaa aaa @@ -124021,7 +124158,7 @@ aaf aaa aaf dnh -aci +amH dnh ape dnS @@ -126848,7 +126985,7 @@ aaa aaf aaa aaa -akd +ake alv apm apm @@ -127103,7 +127240,7 @@ aaf aaa aaa aaf -akd +alv alv alv alv @@ -127359,10 +127496,10 @@ abR abR abR abR -abR -ake +aci +afQ +akd alw -amN sGh apo aqz @@ -127617,7 +127754,7 @@ aaf aaa aaa aaf -akd +alv alv alv alv @@ -127876,7 +128013,7 @@ aaa aaf aaa aaa -akd +ake alv apm apm diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index db44dfb92a..5149033cb4 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -1240,13 +1240,26 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hop) "abL" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall, -/area/maintenance/starboard/fore) +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) "abM" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) "abN" = ( /obj/structure/sign/warning/vacuum, /turf/closed/wall, @@ -1602,15 +1615,16 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hop) "acu" = ( -/obj/structure/sign/warning/vacuum{ - pixel_x = 32; - pixel_y = 32 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) "acv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2131,20 +2145,12 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hop) "adm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "0-2" +/obj/structure/sign/warning/securearea{ + pixel_x = 32; + pixel_y = -32 }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/starboard/fore"; - dir = 4; - name = "Starboard Bow Maintenance APC"; - pixel_x = 26 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/starboard/fore) +/turf/open/space/basic, +/area/space) "adn" = ( /turf/closed/wall, /area/quartermaster/storage) @@ -2157,15 +2163,9 @@ /turf/closed/wall, /area/quartermaster/storage) "adq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/closet/emcloset/anchored, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/fore) "adr" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2194,20 +2194,12 @@ /turf/open/floor/plating, /area/engine/supermatter) "adt" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "13" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) +/turf/open/space/basic, +/area/solar/starboard/fore) "adu" = ( /turf/closed/wall, /area/quartermaster/qm) @@ -2393,13 +2385,18 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "adM" = ( -/obj/structure/sign/warning/vacuum{ - pixel_x = 32; - pixel_y = 32 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) "adN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/radio/intercom{ @@ -2597,11 +2594,12 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aef" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) +/turf/open/space/basic, +/area/solar/starboard/fore) "aeg" = ( /obj/machinery/conveyor{ dir = 8; @@ -3063,7 +3061,6 @@ pixel_x = 26 }, /obj/machinery/computer/card/minor/qm{ - icon_state = "computer"; dir = 8 }, /obj/effect/turf_decal/tile/brown{ @@ -3099,6 +3096,7 @@ "aeS" = ( /obj/structure/closet/crate, /obj/effect/turf_decal/delivery, +/obj/item/toy/figure/cargotech, /turf/open/floor/plasteel, /area/quartermaster/storage) "aeT" = ( @@ -3233,9 +3231,9 @@ }, /obj/machinery/door/firedoor, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /turf/open/floor/plasteel, /area/security/prison) @@ -4289,7 +4287,6 @@ pixel_x = 30 }, /obj/machinery/computer/security/hos{ - icon_state = "computer"; dir = 8 }, /turf/open/floor/plasteel/grimy, @@ -4822,7 +4819,6 @@ dir = 4 }, /obj/machinery/computer/card/minor/hos{ - icon_state = "computer"; dir = 4 }, /turf/open/floor/plasteel/dark, @@ -5559,7 +5555,8 @@ icon_state = "plant-21" }, /obj/machinery/camera{ - c_tag = "Chemistry" + c_tag = "Chemistry"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -6262,12 +6259,8 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "ajP" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/landmark/start/research_director, -/turf/open/floor/plasteel, -/area/science/mixing) +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) "ajQ" = ( /obj/effect/turf_decal/loading_area{ dir = 8 @@ -6392,9 +6385,9 @@ }, /obj/machinery/door/firedoor, /obj/machinery/turnstile{ + dir = 4; name = "Genpop Entrance Turnstile"; - req_access_txt = "69"; - dir = 4 + req_access_txt = "69" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7432,7 +7425,8 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Chief Engineer's Office" + c_tag = "Chief Engineer's Office"; + network = list("ss13","engine") }, /mob/living/simple_animal/parrot/Poly, /turf/open/floor/plasteel/dark, @@ -8526,13 +8520,10 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "any" = ( -/obj/structure/table/wood, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/item/clipboard, -/obj/item/folder/red, -/obj/item/hand_labeler, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/wood, /area/security/detectives_office) "anz" = ( @@ -9100,7 +9091,6 @@ }, /obj/machinery/computer/security/telescreen/ce{ dir = 1; - icon_state = "telescreen"; pixel_y = -24 }, /turf/open/floor/plasteel, @@ -12020,18 +12010,28 @@ }, /area/engine/atmos) "asH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics North East"; - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/turf/open/floor/plasteel/checker, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Plasma to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Atmospherics North"; + network = list("ss13","engine") + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "asI" = ( /obj/structure/sign/warning/vacuum{ @@ -12527,20 +12527,6 @@ /turf/open/floor/plasteel/dark, /area/security/detectives_office) "ats" = ( -/obj/item/clothing/suit/jacket{ - desc = "All the class of a trenchcoat without the security fibers."; - icon_state = "greydet"; - name = "trenchcoat" - }, -/obj/item/clothing/suit/jacket{ - desc = "All the class of a trenchcoat without the security fibers."; - icon_state = "detective"; - name = "trenchcoat" - }, -/obj/item/clothing/head/fedora, -/obj/item/clothing/head/fedora{ - icon_state = "detective" - }, /obj/machinery/light/small{ dir = 1 }, @@ -12680,7 +12666,6 @@ dir = 8 }, /obj/machinery/computer/med_data/laptop{ - icon_state = "laptop"; dir = 4 }, /obj/machinery/requests_console{ @@ -13257,7 +13242,6 @@ /obj/structure/table/wood, /obj/machinery/computer/secure_data/laptop{ dir = 1; - icon_state = "laptop"; pixel_y = 4 }, /turf/open/floor/wood, @@ -15126,7 +15110,8 @@ "axu" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/camera{ - c_tag = "Atmospherics Monitoring" + c_tag = "Atmospherics Monitoring"; + network = list("ss13","engine") }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -15702,6 +15687,10 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/item/toy/figure/atmos{ + pixel_x = -2; + pixel_y = 2 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -16177,9 +16166,9 @@ name = "Brig Blast door" }, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -18122,9 +18111,8 @@ "aCt" = ( /obj/machinery/door/firedoor, /obj/machinery/turnstile{ - name = "Genpop Exit Turnstile"; - icon_state = "turnstile_map"; dir = 1; + name = "Genpop Exit Turnstile"; req_access_txt = "70" }, /obj/effect/turf_decal/stripes/line, @@ -18253,23 +18241,25 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aCF" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Air to External Air Ports" +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ - c_tag = "Atmospherics South East"; - dir = 1 + c_tag = "Atmospherics North West"; + dir = 4; + network = list("ss13","engine") }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, /area/engine/atmos) "aCG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -19324,7 +19314,8 @@ }, /obj/machinery/camera{ c_tag = "Engineering Secure Storage"; - dir = 4 + dir = 4; + network = list("ss13","engine") }, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral, @@ -20192,7 +20183,8 @@ }, /obj/machinery/camera{ c_tag = "SMES Access"; - dir = 8 + dir = 8; + network = list("ss13","engine") }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -20226,23 +20218,22 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aFB" = ( -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/machinery/power/terminal{ dir = 4 }, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + pixel_y = 24 + }, /obj/machinery/camera{ - c_tag = "Engineering Access"; - dir = 8 + c_tag = "Starboard Bow Solar"; + network = list("ss13","engine") }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) "aFC" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -20787,7 +20778,8 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Engineering Foyer"; - dir = 1 + dir = 1; + network = list("ss13","engine") }, /obj/machinery/power/apc{ areastring = "/area/engine/break_room"; @@ -21227,22 +21219,20 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aGY" = ( -/obj/structure/bed/dogbed/runtime, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_x = -32 - }, /obj/machinery/camera{ - c_tag = "CMO's Office"; - dir = 4 + c_tag = "Genetics Cloning"; + dir = 4; + network = list("ss13","medbay") }, -/mob/living/simple_animal/pet/cat/Runtime, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/cmo) +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) "aGZ" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -21343,7 +21333,8 @@ "aHg" = ( /obj/machinery/camera{ c_tag = "Gravity Generator Room"; - dir = 8 + dir = 8; + network = list("ss13","engine") }, /obj/effect/turf_decal/bot_white/left, /obj/effect/turf_decal/tile/neutral{ @@ -22188,7 +22179,8 @@ pixel_x = -32 }, /obj/machinery/camera{ - c_tag = "Engineering Monitoring" + c_tag = "Engineering Monitoring"; + network = list("ss13","engine") }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -22593,28 +22585,24 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "aJe" = ( -/obj/structure/table, -/obj/machinery/airalarm/unlocked{ - dir = 4; - pixel_x = -23 +/obj/machinery/firealarm{ + pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/extinguisher_cabinet{ + pixel_x = -24; + pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/item/clipboard, -/obj/item/folder/white, -/obj/item/storage/pill_bottle/mutadone{ - pixel_x = -8; - pixel_y = 8 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/camera{ + c_tag = "Gravity Generator Entry"; + network = list("ss13","engine"); + pixel_x = 23 }, -/obj/item/storage/pill_bottle/mannitol{ - pixel_x = -8; - pixel_y = 2 +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/obj/item/radio/headset/headset_medsci, -/turf/open/floor/plasteel/dark, -/area/medical/genetics) +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "aJf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -22684,23 +22672,30 @@ /turf/open/floor/plating, /area/engine/gravity_generator) "aJk" = ( -/obj/machinery/firealarm{ - pixel_y = 24 +/obj/structure/table/reinforced, +/obj/item/lightreplacer, +/obj/structure/cable/white{ + icon_state = "1-8" }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24; - pixel_y = 32 +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/camera{ - c_tag = "Gravity Generator Entry"; - pixel_x = 23 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/toy/figure/engineer, /turf/open/floor/plasteel, -/area/engine/gravity_generator) +/area/engine/engineering) "aJl" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/engine/gravity_generator"; @@ -22876,8 +22871,7 @@ /obj/machinery/requests_console{ department = "Genetics"; name = "Genetics RC"; - pixel_x = 28; - pixel_y = 0 + pixel_x = 28 }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -23106,19 +23100,13 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "aJO" = ( -/obj/machinery/camera{ - c_tag = "Genetics Cloning"; - dir = 4 +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "Director's Privacy Blast Door" }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) "aJP" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -23394,21 +23382,9 @@ /turf/closed/wall, /area/maintenance/port/aft) "aKo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) "aKp" = ( /obj/machinery/airalarm{ dir = 4; @@ -23446,17 +23422,16 @@ /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "aKr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" }, -/obj/effect/landmark/xeno_spawn, -/obj/structure/sign/warning/vacuum{ - pixel_x = -32; - pixel_y = 32 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) "aKs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -23600,11 +23575,15 @@ /turf/open/floor/engine, /area/engine/supermatter) "aKB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solar/port/aft) "aKC" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Gas to Chamber" @@ -23624,24 +23603,16 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "aKF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) "aKG" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -23750,29 +23721,15 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aKM" = ( -/obj/structure/table/reinforced, -/obj/item/lightreplacer, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/machinery/light_switch{ + pixel_y = -24 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot, +/obj/structure/closet/l3closet/janitor, +/obj/item/toy/figure/janitor, /turf/open/floor/plasteel, -/area/engine/engineering) +/area/janitor) "aKN" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -24268,13 +24225,18 @@ }, /area/maintenance/port/aft) "aLz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/light/small, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/port/aft) "aLA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -24292,12 +24254,8 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "aLC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/cigbutt, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/turf/closed/wall, +/area/maintenance/solars/port/aft) "aLD" = ( /obj/machinery/power/port_gen/pacman, /obj/effect/turf_decal/stripes/line{ @@ -24396,11 +24354,13 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/turf_decal/box, +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/open/floor/plating/airless, -/area/maintenance/port/aft) +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) "aLM" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -24938,27 +24898,19 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "aMH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/turf/open/space/basic, +/area/solar/port/aft) "aMI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/aft) +/turf/open/space/basic, +/area/solar/port/aft) "aMJ" = ( /turf/closed/wall/r_wall, /area/tcommsat/server) @@ -25024,21 +24976,18 @@ /turf/open/floor/engine, /area/engine/engineering) "aMQ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/aft) +/turf/open/space/basic, +/area/solar/port/aft) "aMR" = ( /obj/machinery/camera{ c_tag = "Supermatter Chamber"; @@ -25257,14 +25206,32 @@ /turf/open/floor/plasteel, /area/janitor) "aNl" = ( -/obj/machinery/light_switch{ - pixel_y = -24 +/obj/structure/table, +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/obj/structure/closet/l3closet/janitor, -/turf/open/floor/plasteel, -/area/janitor) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/clipboard, +/obj/item/folder/white, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/radio/headset/headset_medsci, +/obj/item/toy/figure/geneticist{ + pixel_x = 5; + pixel_y = 13 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) "aNm" = ( /obj/effect/turf_decal/bot, /obj/machinery/vending/wardrobe/jani_wardrobe, @@ -25575,23 +25542,17 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "aNO" = ( -/obj/machinery/camera{ - c_tag = "Genetics Lab"; - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/obj/machinery/computer/scan_consolenew{ - icon_state = "computer"; - dir = 1 +/obj/structure/sign/poster/official/anniversary_vintage_reprint{ + pixel_x = 32 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/medical/genetics) +/turf/open/floor/plasteel/white, +/area/science/research) "aNP" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -25744,22 +25705,10 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/cmo) "aOc" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) +/obj/structure/lattice/catwalk, +/obj/effect/landmark/xeno_spawn, +/turf/open/space/basic, +/area/solar/port/aft) "aOd" = ( /obj/machinery/power/apc{ areastring = "/area/engine/engineering"; @@ -26119,17 +26068,18 @@ /turf/open/floor/engine, /area/engine/engineering) "aOH" = ( -/obj/structure/cable/white{ - icon_state = "1-2" +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/port/aft) +/turf/open/space/basic, +/area/solar/port/aft) "aOI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -26175,7 +26125,6 @@ }, /obj/machinery/computer/security/telescreen/cmo{ dir = 1; - icon_state = "telescreen"; pixel_y = -32 }, /turf/open/floor/plasteel/cafeteria, @@ -26329,21 +26278,15 @@ /turf/closed/wall, /area/medical/genetics) "aOX" = ( -/obj/machinery/requests_console{ - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = -30 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ - c_tag = "Medbay Storage" + c_tag = "R&D"; + dir = 1; + network = list("ss13","rd") }, -/obj/machinery/rnd/production/techfab/department/medical, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/box, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/medical/medbay/zone3) +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/science/lab) "aOY" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -26794,7 +26737,6 @@ "aPC" = ( /obj/machinery/computer/security/telescreen/entertainment, /obj/structure/bodycontainer/morgue{ - icon_state = "morgue1"; dir = 2 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -26838,7 +26780,6 @@ /area/medical/medbay/zone3) "aPE" = ( /obj/structure/bodycontainer/morgue{ - icon_state = "morgue1"; dir = 2 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -27125,18 +27066,23 @@ }, /area/hallway/primary/port/aft) "aQe" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Genetics Lab"; + dir = 8; + network = list("ss13","medbay") }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/stamp/cmo, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) "aQf" = ( /obj/machinery/firealarm{ dir = 1; @@ -27424,40 +27370,12 @@ /turf/open/floor/plasteel/dark, /area/medical/morgue) "aQE" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/structure/table/wood, -/obj/item/storage/box/bodybags{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/bodybags, -/obj/machinery/power/apc{ - areastring = "/area/medical/morgue"; +/obj/machinery/airalarm/unlocked{ dir = 4; - name = "Morgue APC"; - pixel_x = 26 + pixel_x = -23 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Morgue"; - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) +/turf/open/floor/plating/asteroid, +/area/crew_quarters/heads/hor) "aQF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -27787,7 +27705,6 @@ /area/crew_quarters/heads/cmo) "aRp" = ( /obj/structure/bodycontainer/morgue{ - icon_state = "morgue1"; dir = 2 }, /obj/effect/turf_decal/tile/neutral{ @@ -27860,7 +27777,6 @@ /area/science/research) "aRw" = ( /obj/structure/bodycontainer/morgue{ - icon_state = "morgue1"; dir = 2 }, /obj/effect/turf_decal/tile/neutral{ @@ -28844,24 +28760,20 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "aTn" = ( -/obj/effect/landmark/start/virologist, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/structure/table/plasmaglass, +/obj/machinery/recharger, +/obj/item/paicard{ + pixel_x = 15 }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/medical/virology"; - dir = 1; - name = "Virology APC"; - pixel_y = 24 +/obj/structure/sign/poster/official/ue_no{ + pixel_y = 32 }, -/obj/structure/cable/white{ - icon_state = "0-4" +/obj/item/toy/figure/rd{ + pixel_x = -8; + pixel_y = 14 }, -/obj/machinery/camera{ - c_tag = "Virology" - }, -/turf/open/floor/plasteel, -/area/medical/virology) +/turf/open/floor/plating/asteroid, +/area/crew_quarters/heads/hor) "aTo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -30095,14 +30007,24 @@ /turf/open/floor/plasteel/white, /area/science/research) "aVz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/machinery/camera{ + c_tag = "Engineering Access"; + dir = 8; + network = list("ss13","engine") }, -/turf/open/floor/plasteel/white, -/area/science/research) +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aVA" = ( /turf/closed/wall, /area/science/research) @@ -30425,6 +30347,10 @@ /obj/item/reagent_containers/glass/bottle/epinephrine, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/dropper, +/obj/item/toy/figure/chemist{ + pixel_x = -6; + pixel_y = 11 + }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "aWg" = ( @@ -30517,14 +30443,24 @@ /turf/open/floor/plasteel/white, /area/science/lab) "aWm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "R&D"; - dir = 1 +/obj/structure/table, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel/white, -/area/science/lab) +/obj/item/storage/box/beakers, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Medbay West"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone3) "aWn" = ( /obj/machinery/firealarm{ dir = 1; @@ -31057,23 +30993,22 @@ /turf/open/floor/plasteel/dark, /area/library) "aXm" = ( -/obj/structure/table, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/beakers, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/obj/machinery/camera{ - c_tag = "Medbay West" - }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/medical/medbay/zone3) +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Research Division North"; + network = list("ss13","rd") + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/research) "aXn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue{ @@ -31712,18 +31647,26 @@ /turf/open/floor/plasteel/white, /area/science/research) "aYp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/camera{ - c_tag = "Research Division South"; + c_tag = "Communications Relay"; + dir = 8; + network = list("ss13","tcomms") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/vending/wardrobe/science_wardrobe, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel/white, -/area/science/research) +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "aYq" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1 @@ -31881,21 +31824,25 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "aYB" = ( -/obj/machinery/shower{ - desc = "From what you understand it was put in rather recently, but the design looks right out of the 2510's. Weird."; - dir = 1; - icon_state = "shower"; - name = "Emergency Shower" +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access_txt = "30" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 4 }, -/obj/machinery/camera{ - c_tag = "Virology Access"; - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hor) "aYC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/event_spawn, @@ -31915,7 +31862,6 @@ /obj/machinery/requests_console{ department = "Virology"; name = "Virology RC"; - pixel_x = 0; pixel_y = -32; receive_ore_updates = 1 }, @@ -32695,6 +32641,17 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"aZS" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/port/aft) +"aZT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/solar/port/aft) "aZU" = ( /obj/machinery/recharge_station, /obj/effect/landmark/start/cyborg, @@ -32822,6 +32779,25 @@ }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) +"bae" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/aft) "baf" = ( /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/metal/fifty, @@ -32895,6 +32871,148 @@ icon_state = "platingdmg1" }, /area/maintenance/starboard) +"baj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/aft) +"bak" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/aft) +"bal" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/aft) +"bam" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/warning/vacuum{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"ban" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bao" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bap" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"baq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bar" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/port/aft) +"bas" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel, +/area/maintenance/solars/port/aft) +"bat" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/port/aft) +"bau" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"bav" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/closed/wall, +/area/maintenance/solars/port/aft) "baw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/departments/medbay/alt, @@ -33015,6 +33133,17 @@ }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) +"baE" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Port Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) "baF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/blue, @@ -33125,28 +33254,22 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "baN" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 +/obj/machinery/computer/card/minor/rd, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/cable/white{ - icon_state = "1-2" +/obj/item/aicard, +/turf/open/floor/plasteel{ + icon_state = "sepia" }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/machinery/camera{ - c_tag = "Mech Bay"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) +/area/crew_quarters/heads/hor) "baO" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ @@ -33292,6 +33415,165 @@ }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) +"bbb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bbc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/cigbutt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bbd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bbe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/maintenance/port/aft) +"bbf" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bbg" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/xeno_spawn, +/turf/open/space/basic, +/area/solar/starboard/fore) +"bbh" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bbi" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/aft"; + dir = 4; + name = "Port Quarter Solar APC"; + pixel_x = 26 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bbj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bbk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bbl" = ( +/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/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bbm" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bbn" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bbo" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) "bbp" = ( /obj/machinery/light{ dir = 8 @@ -33605,6 +33887,153 @@ }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) +"bbP" = ( +/obj/machinery/modular_computer/console/preset/research, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bbQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"bbR" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/machinery/power/solar_control{ + dir = 8; + id = "aftport"; + name = "Port Quarter Solar Control" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bbS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/solar/port/aft) +"bbT" = ( +/turf/closed/wall, +/area/maintenance/solars/starboard/fore) +"bbU" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"bbV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"bbW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"bbX" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"bbY" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"bbZ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"bca" = ( +/obj/structure/sign/warning/vacuum{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"bcb" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"bcc" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) "bcd" = ( /obj/item/retractor, /obj/item/hemostat, @@ -33923,12 +34352,165 @@ }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) +"bcD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) "bcE" = ( /obj/structure/closet/l3closet/scientist{ pixel_x = -2 }, /turf/open/floor/plasteel, /area/science/mixing) +"bcF" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"bcG" = ( +/obj/structure/sign/warning/vacuum{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcH" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcJ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"bcK" = ( +/obj/machinery/power/smes, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcL" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/solar_control{ + id = "forestarboard"; + name = "Starboard Bow Solar Control" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcM" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcP" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space/basic, +/area/solar/starboard/fore) +"bcR" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bcS" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"bcT" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) "bcU" = ( /obj/item/circular_saw, /obj/item/surgicaldrill{ @@ -34174,6 +34756,15 @@ }, /turf/open/floor/plating, /area/security/checkpoint) +"bdi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "bdj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -34319,20 +34910,20 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bdv" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 8 }, -/obj/item/clothing/gloves/color/latex, -/obj/item/surgical_drapes, -/obj/item/cautery, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/camera{ + c_tag = "Atmospherics North East"; + dir = 8; + network = list("ss13","engine") + }, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plasteel/checker, +/area/engine/atmos) "bdw" = ( /obj/machinery/holopad, /obj/effect/turf_decal/tile/purple{ @@ -34380,6 +34971,242 @@ /obj/structure/sign/warning/fire, /turf/closed/wall, /area/science/mixing) +"bdB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"bdC" = ( +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bdD" = ( +/obj/structure/displaycase/labcage, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hor"; + dir = 1; + name = "RD Office APC"; + pixel_y = 26 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdE" = ( +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/fore"; + name = "Starboard Bow Solar APC"; + pixel_y = -26 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bdF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/fore"; + dir = 4; + name = "Starboard Bow Maintenance APC"; + pixel_x = 26 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"bdG" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"bdH" = ( +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Medbay Storage"; + network = list("ss13","medbay") + }, +/obj/machinery/rnd/production/techfab/department/medical, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/box, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/medical/medbay/zone3) +"bdI" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdJ" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdK" = ( +/obj/machinery/computer/mecha{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdL" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/research_director, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdM" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdN" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "rdprivacy"; + name = "Director's Privacy Toggle"; + pixel_x = 24; + pixel_y = -38 + }, +/obj/machinery/light_switch{ + pixel_x = 40; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "rdxeno"; + name = "Xenobiology Containment Lockdown"; + pixel_x = 38; + pixel_y = -38; + req_access_txt = "47" + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bdO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) +"bdP" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/obj/structure/flora/tree/palm, +/turf/open/floor/plating/asteroid, +/area/crew_quarters/heads/hor) "bdQ" = ( /obj/structure/closet/secure_closet/medical2, /obj/machinery/airalarm{ @@ -34487,25 +35314,23 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "bdW" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/structure/extinguisher_cabinet{ - pixel_y = -26 +/obj/structure/bed/dogbed/runtime, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/effect/turf_decal/delivery, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_x = -32 }, /obj/machinery/camera{ - c_tag = "Medbay Recovery Room"; - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 + c_tag = "CMO's Office"; + dir = 4; + network = list("ss13","medbay") }, +/mob/living/simple_animal/pet/cat/Runtime, /turf/open/floor/plasteel/dark, -/area/medical/medbay/zone3) +/area/crew_quarters/heads/cmo) "bdX" = ( /obj/machinery/computer/crew{ dir = 4 @@ -34790,10 +35615,174 @@ /obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) +"beu" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bev" = ( +/obj/structure/table/plasmaglass, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/stamp/rd, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plating/asteroid, +/area/crew_quarters/heads/hor) +"bew" = ( +/obj/machinery/computer/aifixer{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bex" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"bey" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/stamp/cmo, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bez" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"beA" = ( +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"beB" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/science/mixing) +"beC" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 4; + network = list("ss13","rd") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"beD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/official/soft_cap_pop_art{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) "beE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/medical/medbay/zone3) +"beF" = ( +/obj/machinery/camera{ + c_tag = "Toxins Lab West"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/mixing) "beG" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall, @@ -34930,6 +35919,145 @@ }, /turf/closed/wall/r_wall, /area/science/robotics/lab) +"beR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + dir = 1; + network = list("ss13","rd") + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"beS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_y = -32; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) +"beT" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"beU" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"beV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"beW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"beX" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/science/mixing) +"beY" = ( +/obj/structure/sign/warning/nosmoking/circle, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) +"beZ" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfa" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfb" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/storage/firstaid/toxin, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfc" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) "bfe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm/unlocked{ @@ -34969,6 +36097,37 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"bfh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfi" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfj" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bfk" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) "bfl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35033,6 +36192,15 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"bfq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) "bfr" = ( /obj/structure/cable/white{ icon_state = "1-8" @@ -35045,6 +36213,32 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"bfs" = ( +/obj/machinery/vending/wardrobe/science_wardrobe, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/science/mixing) +"bft" = ( +/obj/structure/closet/secure_closet/RD, +/obj/machinery/light, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/item/circuitboard/aicore, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) "bfu" = ( /turf/closed/wall, /area/chapel/main) @@ -35063,6 +36257,26 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/chapel/main) +"bfw" = ( +/obj/machinery/suit_storage_unit/rd, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/rd{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/plasteel{ + icon_state = "sepia" + }, +/area/crew_quarters/heads/hor) "bfx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -35075,16 +36289,148 @@ }, /turf/closed/wall, /area/chapel/main) +"bfz" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/mixing) "bfA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall, /area/chapel/main) +"bfB" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) "bfC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall/rust, /area/chapel/main) +"bfD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/table/wood, +/obj/item/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/bodybags, +/obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; + dir = 4; + name = "Morgue APC"; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Morgue"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bfE" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/surgical_drapes, +/obj/item/cautery, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/toy/figure/roboticist{ + pixel_x = -4; + pixel_y = 14 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bfF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Surgery Operating"; + dir = 1; + network = list("ss13","medbay"); + pixel_x = 22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone3) +"bfG" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/structure/extinguisher_cabinet{ + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay Recovery Room"; + dir = 8; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/zone3) +"bfH" = ( +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/virology"; + dir = 1; + name = "Virology APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Virology"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel, +/area/medical/virology) "bfI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -35162,6 +36508,35 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"bfM" = ( +/obj/machinery/shower{ + desc = "From what you understand it was put in rather recently, but the design looks right out of the 2510's. Weird."; + dir = 1; + name = "Emergency Shower" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Virology Access"; + dir = 1; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bfN" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 4; + network = list("ss13","rd"); + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "bfO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -35367,6 +36742,48 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main) +"bgc" = ( +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Central"; + dir = 4; + network = list("ss13","rd"); + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bgd" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/syringes, +/obj/item/extinguisher/mini, +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Lab"; + dir = 4; + network = list("ss13","rd") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "bge" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -35401,6 +36818,88 @@ heat_capacity = 1e+006 }, /area/hallway/primary/aft) +"bgg" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 1; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bgh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics South West"; + dir = 1; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bgi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air to External Air Ports" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Atmospherics South East"; + dir = 1; + network = list("ss13","engine") + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bgj" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airlock_sensor{ + id_tag = "incinerator_airlock_sensor"; + master_tag = "incinerator_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/camera/autoname{ + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"bgk" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Port Quarter Solar"; + dir = 1; + network = list("ss13","engine") + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) "bgl" = ( /obj/machinery/vending/cola/random, /obj/machinery/newscaster{ @@ -35428,6 +36927,20 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"bgn" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Research Division South"; + dir = 8; + network = list("ss13","rd") + }, +/obj/machinery/vending/wardrobe/science_wardrobe, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/science/research) "bgo" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -36710,22 +38223,6 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) -"biC" = ( -/obj/machinery/shower{ - dir = 4; - name = "emergency shower" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology Central"; - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) "biD" = ( /obj/machinery/shower{ dir = 8; @@ -37396,46 +38893,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"bjP" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/beakers{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/syringes, -/obj/item/extinguisher/mini, -/obj/machinery/airalarm/unlocked{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology Lab"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bjQ" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) "bjR" = ( /obj/machinery/computer/camera_advanced/xenobio{ dir = 1 @@ -37844,22 +39301,6 @@ /obj/machinery/telecomms/broadcaster/preset_left/birdstation, /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) -"blr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Research Division North" - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) "bls" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -37881,27 +39322,6 @@ heat_capacity = 1e+006 }, /area/hallway/primary/aft) -"blt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Surgery Operating"; - dir = 1; - pixel_x = 22 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/medbay/zone3) "blv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -38715,26 +40135,6 @@ }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) -"buU" = ( -/obj/machinery/camera{ - c_tag = "Communications Relay"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) "buW" = ( /turf/closed/wall/r_wall, /area/engine/supermatter) @@ -39149,9 +40549,6 @@ heat_capacity = 1e+006 }, /area/hallway/secondary/entry) -"bxZ" = ( -/turf/closed/wall, -/area/maintenance/starboard/fore) "bye" = ( /turf/closed/wall/rust, /area/maintenance/fore) @@ -39206,14 +40603,6 @@ dir = 1 }, /area/engine/atmos) -"bNB" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/mixing) "bOJ" = ( /obj/machinery/camera{ c_tag = "Toxins Launch Room Access"; @@ -39227,15 +40616,6 @@ }, /turf/open/floor/plasteel, /area/science/mixing) -"bWO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/mixing) "bYE" = ( /obj/structure/sign/warning/fire, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -39374,19 +40754,6 @@ }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) -"cGz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics South West"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; @@ -39595,18 +40962,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) -"edA" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) "eew" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -39738,18 +41093,6 @@ }, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"eFp" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Xenobiology North"; - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) "eGm" = ( /turf/closed/wall/r_wall, /area/science/storage) @@ -40201,12 +41544,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"hns" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/rust, -/area/science/mixing) "hpr" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=3.2-AtriumSW"; @@ -40512,14 +41849,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/visible, /turf/open/floor/plasteel, /area/engine/atmos) -"iXB" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/mixing) "iZQ" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input, /turf/open/floor/engine/co2, @@ -40725,13 +42054,6 @@ }, /turf/open/floor/plasteel, /area/science/mixing) -"jLT" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/item/storage/firstaid/toxin, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/science/mixing) "jRe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -40890,10 +42212,6 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating, /area/science/storage) -"lmr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/science/mixing) "low" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -40965,26 +42283,6 @@ }, /turf/open/floor/plasteel, /area/science/mixing) -"lAs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics North West"; - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) "lCg" = ( /obj/machinery/door/airlock/external{ name = "Supply Dock Airlock"; @@ -41084,13 +42382,6 @@ "meo" = ( /turf/closed/wall/r_wall/rust, /area/science/mixing) -"mfj" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) "mgs" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ dir = 1 @@ -41494,15 +42785,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"oRo" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) "pbT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -41701,10 +42983,6 @@ }, /turf/closed/wall/r_wall, /area/engine/atmos) -"pXH" = ( -/obj/machinery/vending/wardrobe/science_wardrobe, -/turf/open/floor/plasteel, -/area/science/mixing) "pZU" = ( /obj/structure/lattice, /obj/structure/grille, @@ -41879,23 +43157,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) -"rjV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; - pixel_y = 24 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) "rlq" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -41908,13 +43169,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"rpy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall, -/area/science/mixing) "rzn" = ( /obj/machinery/status_display, /turf/closed/wall, @@ -41994,18 +43248,6 @@ /mob/living/simple_animal/opossum, /turf/open/floor/plating, /area/maintenance/starboard) -"scn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/mixing) "sdL" = ( /obj/effect/turf_decal/delivery, /obj/machinery/hydroponics/soil, @@ -44840,12 +46082,6 @@ "tin" = ( /turf/open/floor/engine/vacuum, /area/science/mixing) -"tms" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) "ttp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -45025,29 +46261,6 @@ }, /turf/closed/wall/r_wall, /area/engine/atmos) -"uoy" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Plasma to Pure" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Atmospherics North" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) "upN" = ( /obj/machinery/door/airlock/research{ name = "Toxins Launch Room"; @@ -45778,14 +46991,6 @@ /obj/structure/grille, /turf/closed/wall/r_wall, /area/engine/atmos) -"xLe" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/mixing) "xPz" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -70446,22 +71651,22 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -70703,22 +71908,22 @@ jFP jFP jFP jFP -jFP -jFP -jFP -uXD -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -70961,19 +72166,19 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU +sdX +pZU +pZU +pZU +sdX +aLL +sdX +pZU +pZU +pZU +sdX +pZU aaa aaa jFP @@ -71218,19 +72423,19 @@ aaa aaa aaa aaa +pZU aaa aaa aaa aaa aaa +aMH aaa aaa aaa aaa aaa -aaa -aaa -aaa +pZU aaa aaa jFP @@ -71475,19 +72680,19 @@ aaa aaa aaa aaa +pZU aaa +aKr +aKr +aKr +aKr +aMI +aKr +aKr +aKr +aKr aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU aaa aaa jFP @@ -71732,19 +72937,19 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +sdX +sdX +aKB +aLz +aLz +aLz +aMQ +bar +bar +bar +bbS +sdX +sdX aaa aaa jFP @@ -71989,19 +73194,19 @@ aaa aaa aaa aaa +pZU aaa +aKF +aKF +aKF +aKF +aMH +aKF +aKF +aKF +aKF aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU aaa aaa jFP @@ -72227,7 +73432,7 @@ aad aad aad gdA -rjV +bgj fsJ eyu uvg @@ -72246,19 +73451,19 @@ aaa aaa aaa aaa +pZU aaa aaa aaa aaa aaa +aOc aaa aaa aaa aaa aaa -aaa -aaa -aaa +pZU aaa aaa jFP @@ -72503,19 +73708,19 @@ aaa aaa aaa aaa +pZU aaa +aKr +aKr +aKr +aKr +aMI +aKr +aKr +aKr +aKr aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU aaa aaa jFP @@ -72760,19 +73965,19 @@ aac aac aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU +sdX +aKB +aLz +aLz +aLz +aOH +bar +bar +bar +bbS +sdX +sdX aaa aaa jFP @@ -72990,7 +74195,7 @@ aad aad aad aqz -lAs +aCF qTa oJp hUG @@ -73017,19 +74222,19 @@ aad aac aac aac +sdX aaa +aKF +aKF +aKF +aKF +aMH +aKF +aKF +aKF +aKF aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU aaa aaa jFP @@ -73257,7 +74462,7 @@ bGL vuN jkl eew -cGz +bgh qUW aqz aqz @@ -73274,19 +74479,19 @@ aad aad aad aad -aac -aac -aaa +aKo aaa aaa aaa aaa aaa +aZS aaa aaa aaa aaa aaa +pZU aaa aaa jFP @@ -73531,19 +74736,19 @@ aad aad aad aad -aad +adx aad aac aad aad aad -bvg +aZT aac aaa aaa aaa aaa -aaa +pZU aaa aaa jFP @@ -73793,14 +74998,14 @@ aad aad aad aad -aKm -aKo -aKm -aKm -aaa -aaa -aaa -aaa +aLC +bae +aLC +aLC +sdX +sdX +sdX +sdX aaa aaa aaa @@ -74051,13 +75256,13 @@ aMJ aMJ sJV aMJ -aKr -aLz -aKm -aaa +baj +bas +aLC aaa aaa aaa +pZU aaa aaa aaa @@ -74308,13 +75513,13 @@ buJ buO sKn aMJ -aKB -aLs -aKm -aac -aaa -aaa +bak +bat +aLC +aLC +aLC aaa +pZU aaa aaa aaa @@ -74549,7 +75754,7 @@ anv anK aoo aGe -aJk +aJe aKt aLH aMK @@ -74565,13 +75770,13 @@ buK sKj buR aMJ -aKF -aqo -aad -aac -aaa -aaa +bal +bau +bbf +bbo +aLC aaa +pZU aaa aaa aaa @@ -74822,13 +76027,13 @@ buL buP buS aMJ -aKJ -aKm -aad -aad -aaa -aaa -aaa +bam +bav +bdC +bgk +aLC +sdX +sdX aaa aaa aaa @@ -75079,13 +76284,13 @@ buK sKj buR aMJ -aKJ -aKm -aad -aad -aaa -aaa +ban +baE +bbh +bdG +aLC aaa +pZU aaa aaa aaa @@ -75302,7 +76507,7 @@ pNE oOk xej oaV -uoy +asH lqz fFw auq @@ -75334,15 +76539,15 @@ aTZ blq buN buQ -buU +aYp sJV -aKJ -aqo -aad -aaa -aaa -aaa +bao +bau +bbi +bbR +aLC aaa +pZU aaa aaa aaa @@ -75593,13 +76798,13 @@ sJV aMJ aMJ sJV -aKJ -aqo -aLs -aac -aaa -aaa +bap +bau +bat +aLC +aLC aaa +pZU aaa aaa aaa @@ -75850,13 +77055,13 @@ aad bvo aad aKm -aLp -aLB +baq +bbb aKm aac aac aac -aac +aKo aaa aaa aaa @@ -76108,12 +77313,12 @@ aUQ aXc aKm aqo -aLC +bbc aLv aac aac aac -aad +adx aad aaa aaa @@ -76365,7 +77570,7 @@ aUR aUQ bvo aLs -aKJ +bbd aKm aac aad @@ -76622,7 +77827,7 @@ aWz aVL bvo aqo -aLL +bbe aKm aad aad @@ -76879,7 +78084,7 @@ aWz aUQ bvg aKm -aKJ +bbd aKm aKm aad @@ -77136,7 +78341,7 @@ aWz aVL bvg aLv -aKJ +bbd aME aKm aad @@ -77393,7 +78598,7 @@ aUU aUQ bvg aKm -aKJ +bbd aMF aKm aac @@ -77650,7 +78855,7 @@ aWz aVL bvg aKm -aKJ +bbd aMG aKm aKm @@ -77907,8 +79112,8 @@ aWz aUQ bvo aKm -aLp -aLB +baq +bbb aOI aPQ aPQ @@ -78130,7 +79335,7 @@ asA asD sAx arA -asH +bdv atI auB avG @@ -78165,7 +79370,7 @@ aVL bvo aqo aKm -aMH +bbj axU aKm aMG @@ -78422,7 +79627,7 @@ aUQ aad aLs aLX -aMI +bbk aOL aPR aQV @@ -78679,7 +79884,7 @@ aVL aad aqo aMv -aMQ +bbl aOM aPS aRc @@ -78911,10 +80116,10 @@ ayl azr aAt aBB -aCF +bgi aDu aEz -aFB +aVz aGo aHu aIr @@ -78936,7 +80141,7 @@ bvo bvo aqo aMw -aMI +bbk aON aPT aRd @@ -78945,7 +80150,7 @@ aUm aKm aVH aRe -aTn +bfH aWL aZB aTv @@ -79193,7 +80398,7 @@ axX aEg aEg aMD -aOc +bbm aOS aPU aRj @@ -79450,7 +80655,7 @@ aFM aFM aKl aFM -aOH +bbn aOT aPV uXV @@ -79717,7 +80922,7 @@ aKm aSQ aKV aWJ -aYB +bfM aKV aYA aZJ @@ -80461,7 +81666,7 @@ aGt aHz aIw aJF -aKM +aJk aMa aNe aEt @@ -81504,7 +82709,7 @@ aVT aVQ aXg ajG -aGY +bdW aOl aOQ aCy @@ -82019,7 +83224,7 @@ aVQ aXk ajG aOZ -aQe +bey aOK aCy aPE @@ -82776,7 +83981,7 @@ aIC aJK aKR aMg -aNl +aKM aID aOU aQc @@ -82794,7 +83999,7 @@ aNS aPz aPB aPH -aQE +bfD aQL aRb aVc @@ -83039,13 +84244,13 @@ aEh aFh aGf aHG -aJe +aNl aJo aLo aLu aMl aOW -aOX +bdH aGZ aOE aPv @@ -83557,7 +84762,7 @@ aJg aJA aLr aLA -aNO +aQe ail aXQ aYI @@ -83823,7 +85028,7 @@ baw aSh bcf bcW -blt +bfF ooX avB bfA @@ -84068,11 +85273,11 @@ bxQ sJJ ail aGF -aJO +aGY aNL aNo aNP -aXm +aWm aXS aYK aZG @@ -85108,7 +86313,7 @@ baB bbr bci bcZ -bdW +bfG aSh atE bfA @@ -89216,7 +90421,7 @@ aXy aYi aZb aZU -baN +beC bbC bct bdl @@ -89724,7 +90929,7 @@ aSw aTI aUC aVv -aWm +aOX aWV aXA aYk @@ -90263,7 +91468,7 @@ nTi jdD bhb bhO -bjP +bgd bfP aad aad @@ -90497,7 +91702,7 @@ aSz aTL aWp aWW -blr +aXm aYn aZf aZY @@ -90512,15 +91717,15 @@ bfQ bgq bhc bhP -eFp +bfN bhP pLb bhP -biC +bgc bhP bjq bjD -bjQ +bgg bfP aad aad @@ -90954,9 +92159,9 @@ sOk aae aae aaf -aaa -aaa -aaa +sdX +sdX +sdX aae aad abs @@ -91008,11 +92213,11 @@ aRv aSB aTN aUG -aVz +aNO aWr aWX aXE -aYp +bgn aZh baa baU @@ -91210,12 +92415,12 @@ aad aad aaa aaa -aae -aaa -aaa -bxZ -abL -bxZ +bbT +bbT +bbT +bbT +bcF +bbT swz abs abs @@ -91466,17 +92671,17 @@ sMq aad aad aaa -aaa -aae -aad -aac -edA -abM -acu -adt -adM -aef adm +bbT +bbX +bbZ +bcc +bcG +bcM +bcT +bym +bdi +bdF bxw bym afB @@ -91724,13 +92929,13 @@ aad aad aaa aad -aah -aad -aad -bxZ -bxZ -adq -bxZ +bbU +bbT +bca +bbT +bcH +bcN +bbT adY aei adn @@ -91789,7 +92994,7 @@ bad baX bbL bcA -bdv +bfE beo aZl sPK @@ -91982,11 +93187,11 @@ aac aaa aad aad -aad -aad -aad -bxZ -bxZ +bbT +bcb +bbT +bcI +bcO adu adu aej @@ -92239,11 +93444,11 @@ aac aaa aaa aad -aac -aac -aad -aad -aad +bbY +bdB +bbT +aFB +bcP ady adZ aek @@ -92491,16 +93696,16 @@ sMq sMr sMr aad +adx +sdX +sdX +bbW +bcQ +adq aad -aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aad +bbT +bcK +bdE adu aea aen @@ -92748,16 +93953,16 @@ aad aad aad aad -aac +aKo +aaa +aaa +aef aaa aaa aaa -aaa -aaa -aaa -aad -aad -aad +bbT +bcL +bcR adu aeb aeP @@ -93002,19 +94207,19 @@ aad aad aac aac -aad +adx aaa aaa +sdX aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac +adq +sdX +sdX +sdX +bbT +bbT +bbU adu adu adu @@ -93259,19 +94464,19 @@ aad aac aac aaa +sdX +aaa +aaa +sdX +aaa +aaa +adq aaa aaa aaa +sdX aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac +bcS aad aad aad @@ -93324,8 +94529,8 @@ auu avz avF abv -sON -tms +hXc +orV hXc abP jLF @@ -93516,19 +94721,19 @@ aad aaa aaa aaa +pZU aaa +abL +abL +abL +abL +adt +abL +abL +abL +abL aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac +aKo aac aad aad @@ -93581,8 +94786,8 @@ aux avA avH abv -aad -orV +beA +beV iio tPn wOe @@ -93773,19 +94978,19 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU +sdX +abM +bbQ +bbQ +bbQ +adM +bbV +bbV +bbV +bcD +sdX +pZU aaa aaa aac @@ -93838,9 +95043,9 @@ atF atF atF swG -aad -hns -iXB +beF +beW +beZ hVE sPq hVE @@ -94030,19 +95235,19 @@ aaa aaa aaa aaa +pZU aaa +acu +acu +acu +acu +aef +acu +acu +acu +acu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU aaa aaa aaa @@ -94094,14 +95299,14 @@ aaa aaa aaa aad -aad -aad -hns -xLe +iio +beB +beX +bfa +bfc +bfi hVE -ajP -hVE -pXH +bfs sVt vCu tin @@ -94287,19 +95492,19 @@ aaa aaa aaa aaa +pZU aaa aaa aaa aaa aaa +bbg aaa aaa aaa aaa aaa -aaa -aaa -aaa +pZU aaa aaa aaa @@ -94349,13 +95554,13 @@ aaa aaa aaa aaa -aac aad -aad -aad -orV +ajP +ajP +aYB +ajP nMh -hVE +beW sPq wPr jIk @@ -94544,19 +95749,19 @@ aaa aaa aaa aaa +sdX aaa +abL +abL +abL +abL +adt +abL +abL +abL +abL aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +sdX aaa aaa aaa @@ -94606,14 +95811,14 @@ aaa aaa aaa aaa -aac -aac aad -aad -orV +ajP +aQE +bex +ajP pdX -hVE -bWO +bfd +bfj oKp dXv sVt @@ -94798,23 +96003,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP aaa aaa aaa +pZU +sdX +abM +bbQ +bbQ +bbQ +adM +bbV +bbV +bbV +bcD +sdX +pZU +aaa aaa aaa aaa @@ -94862,15 +96067,15 @@ aaf aaa aaa aaa -aaa aac aad -aad -aad -rpy -jLT -lmr -oRo +ajP +bdP +bez +beY +bfb +bfh +bfk pAN nTg gcw @@ -95055,23 +96260,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP aaa aaa aaa +pZU +aaa +acu +acu +acu +acu +aef +acu +acu +acu +acu +aaa +pZU +aaa aaa aaa aaa @@ -95119,15 +96324,15 @@ aaf aaa aaa aaa -aaa -aac aad aad -aad -sVt -bNB -hVE -sPq +ajP +aTn +beD +bdO +beu +mvB +beT hVE lzC sVt @@ -95312,23 +96517,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP aaa aaa aaa +pZU +aaa +aaa +aaa +aaa +aaa +adt +aaa +aaa +aaa +aaa +aaa +pZU +aaa aaa aaa aaa @@ -95376,15 +96581,15 @@ aaf aaa aaa aaa -aaa -aac aad -aad -aad -sVt +ajP +ajP +bev +beR +ajP jXX wwT -sPq +beU tFk hVE lzG @@ -95569,23 +96774,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP aaa aaa aaa +sdX +sdX +pZU +pZU +pZU +sdX +bcJ +sdX +pZU +pZU +pZU +sdX +sdX +aaa aaa aaa aaa @@ -95633,16 +96838,16 @@ aaa aaa aaa aaa -aaa -aac -aad -aad -aad -meo +ajP +ajP +bdD +bdL +beS +ajP xiZ wvy -sPq -mfj +bfz +bfB mvB mvB kqH @@ -95826,20 +97031,20 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -95890,12 +97095,12 @@ aaa aaa aaa aaa -aaa -aac -aac -aad -aad -sVt +aJO +baN +bdI +bdM +bft +ajP mhf kCG ybw @@ -96083,20 +97288,20 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -96147,12 +97352,12 @@ aaf aaa aaa aaa -aaa -aac -aac -aad -aad -sVt +aJO +bbP +bdJ +bdN +bfw +ajP sVt sVt sVt @@ -96340,20 +97545,20 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -96404,16 +97609,16 @@ aaf aaa aaa aaa -aaa -aaa -aad -aad -eGm -eGm +aJO +aJO +bdK +bew +ajP +ajP eGm meo uiT -scn +bfq bpj iio aad @@ -96597,20 +97802,20 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -96662,10 +97867,10 @@ aaa aaa aaa aaa -aaa -aad -aad -leU +aJO +aJO +aJO +ajP dfK dfK sVt @@ -96854,20 +98059,20 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 263cb44144..3e79030b78 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -334,8 +334,7 @@ /area/crew_quarters/fitness/pool) "aaM" = ( /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 8; - icon_state = "yellowcornersiding" + dir = 8 }, /area/crew_quarters/fitness/pool) "aaN" = ( @@ -354,8 +353,7 @@ /area/crew_quarters/fitness/pool) "aaP" = ( /turf/open/floor/plasteel/yellowsiding{ - dir = 8; - icon_state = "yellowsiding" + dir = 8 }, /area/crew_quarters/fitness/pool) "aaQ" = ( @@ -433,8 +431,7 @@ /area/crew_quarters/fitness/pool) "aaW" = ( /turf/open/floor/plasteel/yellowsiding{ - dir = 1; - icon_state = "yellowsiding" + dir = 1 }, /area/crew_quarters/fitness/pool) "aaX" = ( @@ -550,8 +547,7 @@ "abm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abn" = ( @@ -580,8 +576,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abr" = ( @@ -595,8 +590,7 @@ "abt" = ( /obj/structure/pool/Rboard, /turf/open/floor/plasteel/yellowsiding{ - dir = 8; - icon_state = "yellowsiding" + dir = 8 }, /area/crew_quarters/fitness/pool) "abu" = ( @@ -659,8 +653,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 4; - icon_state = "yellowcornersiding" + dir = 4 }, /area/crew_quarters/fitness/pool) "abB" = ( @@ -670,21 +663,18 @@ pixel_y = -27 }, /turf/open/floor/plasteel/yellowsiding{ - dir = 1; - icon_state = "yellowsiding" + dir = 1 }, /area/crew_quarters/fitness/pool) "abC" = ( /obj/machinery/light, /turf/open/floor/plasteel/yellowsiding{ - dir = 1; - icon_state = "yellowsiding" + dir = 1 }, /area/crew_quarters/fitness/pool) "abD" = ( /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 1; - icon_state = "yellowcornersiding" + dir = 1 }, /area/crew_quarters/fitness/pool) "abE" = ( @@ -2757,8 +2747,7 @@ icon_state = "0-8" }, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plating, @@ -54863,6 +54852,10 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"gQo" = ( +/obj/machinery/vending/wardrobe/det_wardrobe, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) "gSH" = ( /turf/closed/wall, /area/lawoffice) @@ -57234,8 +57227,7 @@ icon_state = "0-4" }, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -59204,8 +59196,7 @@ icon_state = "2-4" }, /obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" + id = "executionfireblast" }, /turf/open/floor/plating, /area/security/execution/transfer) @@ -85514,7 +85505,7 @@ aCo aCk aEr aGa -aCk +gQo oEA uoS uoS diff --git a/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm b/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm index 403f155854..153ad4265d 100644 --- a/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm +++ b/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm @@ -112,7 +112,7 @@ /obj/machinery/light/small{ dir = 8 }, -/turf/closed/mineral/random/snow, +/turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/unexplored/rivers) "eH" = ( /obj/machinery/airalarm{ @@ -581,7 +581,7 @@ desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks."; name = "charred bike horn" }, -/turf/closed/mineral/random/snow, +/turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/unexplored/rivers) "nN" = ( /turf/closed/wall/r_wall, @@ -722,6 +722,9 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) +"rs" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/unexplored/rivers) "ry" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -809,6 +812,9 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) +"sL" = ( +/turf/open/transparent/openspace/icemoon, +/area/icemoon/underground/unexplored/rivers) "sM" = ( /obj/structure/table, /obj/item/storage/firstaid/toxin{ @@ -2367,7 +2373,7 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/closed/mineral/random/snow, +/turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/unexplored/rivers) "WE" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -29940,9 +29946,9 @@ ah ah ah ah +rs ah -ah -ah +rs ah ah ah @@ -30199,8 +30205,8 @@ ah ah ah ah -ah -ah +rs +rs ah ah ah @@ -30456,8 +30462,8 @@ ah ah ah ah -ah -ah +rs +rs ah ah ah @@ -30712,10 +30718,10 @@ ah ah ah nE -ah -ah -ah -ah +rs +sL +sL +rs ah ah ah @@ -30968,11 +30974,11 @@ ah ah ah ah -ah -ah -ah -ah -ah +rs +rs +rs +sL +rs ah ah ah @@ -31498,8 +31504,8 @@ ah ah ah ah -ah -ah +rs +rs ah ah ah @@ -31749,14 +31755,14 @@ ah ah ah ah +rs +rs +rs +rs ah -ah -ah -ah -ah -ah -ah -ah +rs +rs +rs ah ah ah @@ -32005,14 +32011,14 @@ Gw op nd ah -ah -ah -ah -ah -ah -ah -ah -ah +sL +rs +rs +rs +rs +rs +rs +rs ah ah ah @@ -32262,15 +32268,15 @@ GI Lg nd ah -ah -ah -ah +sL +sL +rs op WE op -ah -ah -ah +rs +rs +rs ah ah ah @@ -32519,17 +32525,17 @@ GN Lu nd ah -ah -ah -ah +rs +rs +rs op sa op -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs ah ah ah @@ -32782,11 +32788,11 @@ nd op WM op -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs ah ah ah @@ -33039,10 +33045,10 @@ Rx ry WO op -ah -ah -ah -ah +rs +rs +rs +rs ah ah ah @@ -33296,9 +33302,9 @@ sa sa sa op -ah -ah -ah +rs +rs +rs ah ah ah @@ -33553,8 +33559,8 @@ TA sa Xf op -ah -ah +rs +rs ah ah ah @@ -33810,8 +33816,8 @@ TA sa sa op -ah -ah +rs +rs ah ah ah @@ -37651,8 +37657,8 @@ ah ah ah ah -ah -ah +rs +rs op sa Ho @@ -37908,8 +37914,8 @@ ah ah ah ah -ah -ah +rs +rs op ET HY @@ -38165,18 +38171,18 @@ ah ah ah ah -ah -ah +rs +rs op op Iq op op -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs ah ah ah @@ -38422,19 +38428,19 @@ ah ah ah ah -ah -ah -ah +rs +rs +rs op Iv op -ah -ah -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs +rs +rs ah ah ah @@ -38680,18 +38686,18 @@ ah ah ah ah -ah -ah +rs +rs op Ho op -ah -ah -ah -ah -ah -ah -ah +rs +rs +sL +rs +rs +rs +rs ah ah ah @@ -38937,18 +38943,18 @@ ah ah ah ah -ah -ah +sL +rs op Ho op -ah -ah -ah -ah -ah -ah -ah +rs +sL +sL +sL +rs +rs +rs ah ah ah @@ -39193,21 +39199,21 @@ ah ah ah ah -ah -ah -ah +sL +sL +rs op Ho op -ah -ah -ah -ah -ah -ah -ah -ah -ah +rs +sL +sL +sL +rs +rs +rs +rs +rs ah ah ah @@ -39444,26 +39450,26 @@ ah ah ah ah +rs +rs +rs ah ah ah ah -ah -ah -ah -ah -ah +rs +rs er IB er -ah -ah -ah -ah -ah -ah -ah -ah +rs +sL +sL +rs +rs +rs +rs +rs ah ah ah @@ -39700,24 +39706,24 @@ ah ah ah ah +rs +rs +rs +rs +rs ah ah ah -ah -ah -ah -ah -ah -ah -ah +rs +rs er IB er -ah -ah -ah -ah -ah +rs +sL +sL +rs +rs ah ah ah @@ -39957,24 +39963,24 @@ ah ah ah ah -ah +rs eZ fB er +rs ah ah ah -ah -ah -ah +rs +rs er IB er -ah -ah -ah -ah -ah +rs +rs +sL +sL +rs ah ah ah @@ -40213,25 +40219,25 @@ ah ah ah ah -ah -ah +rs +rs er fC er +rs +rs ah ah -ah -ah -ah -ah +rs +rs er IF er -ah -ah -ah -ah -ah +rs +rs +sL +sL +rs ah ah ah @@ -40470,25 +40476,25 @@ ah ah ah ah -ah +rs er er fD er er +rs ah -ah -ah -ah +rs +rs Be er IK er er -ah -ah -ah -ah +rs +rs +rs +rs ah ah ah @@ -40743,8 +40749,8 @@ IM gS er eq -ah -ah +rs +rs ah ah ah @@ -40983,7 +40989,7 @@ ah ah ah ah -ah +rs eq eH fb @@ -41000,8 +41006,8 @@ IB fC Nt eq -ah -ah +rs +rs ah ah ah @@ -41240,7 +41246,7 @@ ah ah ah ah -ah +rs er eI fc @@ -41497,7 +41503,7 @@ ah ah ah ah -ah +rs er eJ fd @@ -41774,8 +41780,8 @@ er Tk NK er -ah -ah +rs +rs ah ah ah @@ -42009,7 +42015,7 @@ ah ah ah ah -ah +rs dW ei es @@ -42031,9 +42037,9 @@ Rf Tn NP VC -ah -ah -ah +rs +rs +rs ah ah ah @@ -42265,8 +42271,8 @@ ah ah ah ah -ah -ah +rs +rs dX ej et @@ -42288,8 +42294,8 @@ er To UJ er -ah -ah +rs +rs ah ah ah @@ -42522,8 +42528,8 @@ ah ah ah ah -ah -ah +rs +rs dX ej eu @@ -42780,7 +42786,7 @@ ah ah ah ah -ah +rs dW ek ew @@ -44069,9 +44075,9 @@ ah ah ah ex -ah -ah -ah +rs +rs +rs ex ah ah @@ -44324,13 +44330,13 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs +rs +rs ah ah ah @@ -44581,13 +44587,13 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs +rs +rs ah ah ah @@ -44839,11 +44845,11 @@ ah ah ah ah -ah -ah -ah -ah -ah +rs +rs +rs +rs +rs ah ah ah @@ -45097,9 +45103,9 @@ ah ah ah ah -ah -ah -ah +rs +rs +rs ah ah ah diff --git a/_maps/map_files/Snaxi/IcemoonUnderground_Below.dmm b/_maps/map_files/Snaxi/IcemoonUnderground_Below.dmm index 42971e4315..79e5080644 100644 --- a/_maps/map_files/Snaxi/IcemoonUnderground_Below.dmm +++ b/_maps/map_files/Snaxi/IcemoonUnderground_Below.dmm @@ -5,6 +5,9 @@ "b" = ( /turf/closed/mineral/random/high_chance/snow, /area/icemoon/underground/unexplored/rivers) +"c" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/unexplored/rivers) "d" = ( /turf/closed/wall, /area/icemoon/underground/explored) @@ -19,6 +22,9 @@ /obj/item/gps/mining, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"G" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/mine/maintenance) "N" = ( /obj/item/flashlight/lantern{ on = 1 @@ -33,6 +39,22 @@ /obj/structure/ladder, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"X" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/bluespace_beacon, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastright{ + dir = 8; + req_access_txt = "48" + }, +/turf/open/floor/circuit, +/area/icemoon/underground/explored) (1,1,1) = {" a @@ -39499,9 +39521,9 @@ a a a a -a -a -a +c +c +c a a a @@ -40011,13 +40033,13 @@ a a a a -a +c e i h h e -a +c a a a @@ -40268,13 +40290,13 @@ a a a a -a +c h h T h h -a +c a a a @@ -40525,13 +40547,13 @@ a a a a -a +c e N h -h +G e -a +c a a a @@ -40786,7 +40808,7 @@ a d O h -e +X d a a @@ -41041,9 +41063,9 @@ a a a a -a -a -a +c +c +c a a a diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index 45e6e4dee0..5cf7c43a3e 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -197,12 +197,10 @@ /obj/structure/closet/emcloset/anchored, /obj/structure/sign/directions/medical{ dir = 8; - icon_state = "direction_med"; pixel_y = 36 }, /obj/structure/sign/directions/science{ dir = 8; - icon_state = "direction_sci"; pixel_y = 28 }, /turf/open/floor/plasteel, @@ -247,17 +245,17 @@ }, /obj/structure/sign/directions/engineering{ dir = 4; - icon_state = "direction_eng"; pixel_x = 32; pixel_y = -28 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aar" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/departments/botany, -/turf/open/floor/plating, -/area/hydroponics) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/fore) "aas" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -284,8 +282,6 @@ }, /obj/structure/sign/directions/engineering{ dir = 4; - icon_state = "direction_eng"; - pixel_x = 0; pixel_y = 40 }, /turf/open/floor/plasteel, @@ -310,6 +306,9 @@ dir = 1 }, /obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "aaw" = ( @@ -346,7 +345,6 @@ /obj/structure/disposalpipe/segment, /obj/structure/sign/directions/engineering{ dir = 1; - icon_state = "direction_eng"; pixel_x = 32; pixel_y = 32 }, @@ -381,12 +379,10 @@ "aaC" = ( /obj/structure/sign/directions/medical{ dir = 8; - icon_state = "direction_med"; pixel_y = 36 }, /obj/structure/sign/directions/science{ dir = 8; - icon_state = "direction_sci"; pixel_y = 28 }, /turf/open/floor/plasteel, @@ -394,13 +390,10 @@ "aaD" = ( /obj/structure/sign/directions/engineering{ dir = 4; - icon_state = "direction_eng"; pixel_y = 36 }, /obj/structure/sign/directions/supply{ dir = 4; - icon_state = "direction_supply"; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel, @@ -442,12 +435,10 @@ }, /obj/structure/sign/directions/medical{ dir = 8; - icon_state = "direction_med"; pixel_y = 40 }, /obj/structure/sign/directions/science{ dir = 8; - icon_state = "direction_sci"; pixel_y = 32 }, /obj/structure/sign/directions/security{ @@ -468,13 +459,10 @@ }, /obj/structure/sign/directions/engineering{ dir = 4; - icon_state = "direction_eng"; pixel_y = 40 }, /obj/structure/sign/directions/supply{ dir = 4; - icon_state = "direction_supply"; - pixel_x = 0; pixel_y = 32 }, /obj/structure/sign/directions/evac{ @@ -502,7 +490,6 @@ }, /obj/structure/sign/directions/evac{ dir = 4; - pixel_x = 0; pixel_y = 40 }, /turf/open/floor/plasteel/white/corner{ @@ -516,13 +503,6 @@ }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/fitness/recreation) -"aaM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) "aaN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/quantumpad{ @@ -532,12 +512,10 @@ }, /obj/structure/sign/directions/medical{ dir = 8; - icon_state = "direction_med"; pixel_y = 36 }, /obj/structure/sign/directions/science{ dir = 8; - icon_state = "direction_sci"; pixel_y = 28 }, /obj/structure/sign/directions/science{ @@ -568,13 +546,10 @@ /obj/machinery/computer/shuttle/snow_taxi, /obj/structure/sign/directions/supply{ dir = 4; - icon_state = "direction_supply"; - pixel_x = 0; pixel_y = 36 }, /obj/structure/sign/directions/engineering{ dir = 4; - icon_state = "direction_eng"; pixel_y = 28 }, /turf/open/floor/plasteel, @@ -602,23 +577,19 @@ /obj/structure/sign/departments/restroom{ pixel_x = 32 }, -/turf/open/floor/carpet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, /area/crew_quarters/dorms) "aaV" = ( /obj/structure/sign/directions/evac{ dir = 1; - icon_state = "direction_evac"; pixel_y = 8 }, /obj/structure/sign/directions/security{ - dir = 8; - icon_state = "direction_sec"; - pixel_x = 0; - pixel_y = 0 + dir = 8 }, /obj/structure/sign/directions/command{ dir = 8; - icon_state = "direction_bridge"; pixel_y = -8 }, /turf/closed/wall/r_wall, @@ -673,8 +644,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/sign/mining{ - pixel_x = 32 +/obj/machinery/light{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -695,7 +666,6 @@ }, /obj/structure/sign/directions/supply{ dir = 4; - icon_state = "direction_supply"; pixel_x = 32; pixel_y = -24 }, @@ -796,7 +766,6 @@ }, /obj/structure/sign/directions/evac{ dir = 8; - icon_state = "direction_evac"; pixel_x = 32; pixel_y = 32 }, @@ -942,7 +911,7 @@ /obj/structure/sign/poster/official/fashion{ pixel_y = -32 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "abB" = ( /obj/structure/cable{ @@ -1080,13 +1049,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "abL" = ( -/obj/structure/table, -/obj/item/mmi, -/obj/item/mmi, -/obj/item/mmi, /obj/structure/sign/poster/official/state_laws{ pixel_y = -32 }, +/obj/machinery/camera{ + c_tag = "Robotics Lab South"; + dir = 1; + network = list("ss13","rd") + }, /turf/open/floor/plasteel/white, /area/science/robotics/lab) "abM" = ( @@ -1166,13 +1136,11 @@ /obj/structure/disposalpipe/segment, /obj/structure/sign/directions/evac{ dir = 8; - icon_state = "direction_evac"; pixel_x = 32; pixel_y = 40 }, /obj/structure/sign/directions/engineering{ dir = 4; - icon_state = "direction_eng"; pixel_x = 32; pixel_y = 24 }, @@ -1184,14 +1152,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "abU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "abV" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -1358,7 +1320,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "acV" = ( @@ -1568,8 +1532,9 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 + dir = 4 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "aeG" = ( @@ -1711,6 +1676,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 9 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "akB" = ( @@ -1858,7 +1824,6 @@ /obj/structure/table/reinforced, /obj/machinery/door/window/eastright{ base_state = "left"; - dir = 8; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33" @@ -1866,6 +1831,10 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Chemistry Desk" + }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "anw" = ( @@ -2075,8 +2044,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/airlock/external, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plasteel, /area/hallway/primary/port) "arE" = ( @@ -2164,6 +2133,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "asE" = ( @@ -2505,17 +2475,10 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/highsecurity{ - name = "AI Upload Access"; - req_access_txt = "16" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload) "axc" = ( /obj/structure/table, @@ -2604,17 +2567,9 @@ /obj/structure/plasticflaps/opaque, /turf/open/floor/plasteel/dark, /area/science/lab) -"axL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) "axN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 10 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, +/obj/structure/fluff/railing, +/turf/open/transparent/openspace/icemoon, /area/icemoon/surface/outdoors) "ayk" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -2626,7 +2581,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/closed/wall/r_wall, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access"; + req_access_txt = "16" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aym" = ( /obj/structure/cable{ @@ -2741,20 +2703,34 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "robo2" - }, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 }, +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/white, /area/science/robotics/lab) "ayC" = ( -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/fluff/railing/corner{ + dir = 8 + }, +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "ayD" = ( /obj/structure/cable{ icon_state = "0-4" @@ -2805,6 +2781,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/maintenance/department/electrical) "azq" = ( @@ -2890,20 +2867,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "azH" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "robo2" +/obj/structure/fluff/railing{ + dir = 4 }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "aAe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -3136,24 +3104,11 @@ /turf/open/floor/plasteel/white, /area/science/robotics/lab) "aCr" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" +/obj/structure/fluff/railing{ + dir = 8 }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "aCV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3199,8 +3154,7 @@ /area/hallway/primary/port) "aDc" = ( /obj/effect/landmark/start/scientist, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/circuit, /area/science/lab) "aDd" = ( /obj/structure/cable{ @@ -3226,10 +3180,6 @@ /obj/machinery/vending/clothing, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"aDf" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/lab) "aDg" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -3380,8 +3330,10 @@ /turf/open/floor/plasteel, /area/security/checkpoint/medical) "aEE" = ( -/obj/machinery/rnd/destructive_analyzer, -/turf/open/floor/circuit, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/science/lab) "aEF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -3390,25 +3342,24 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "aEG" = ( -/turf/open/floor/circuit, -/area/science/lab) -"aEH" = ( -/obj/machinery/computer/rdconsole/core{ - dir = 1 +/obj/structure/fluff/railing{ + dir = 10 }, +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) +"aEH" = ( /obj/machinery/light, /turf/open/floor/circuit, /area/science/lab) "aEI" = ( -/obj/machinery/rnd/production/protolathe/department/science, +/obj/machinery/rnd/destructive_analyzer, /turf/open/floor/circuit, /area/science/lab) "aEJ" = ( /turf/closed/wall/r_wall, /area/hallway/secondary/entry) "aEK" = ( -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/obj/item/reagent_containers/glass/beaker/sulphuric, +/obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/circuit, /area/science/lab) "aEL" = ( @@ -3606,35 +3557,11 @@ /turf/open/floor/circuit, /area/science/robotics/mechbay) "aHK" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 +/obj/structure/fluff/railing{ + dir = 6 }, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/obj/item/multitool{ - pixel_x = 3 - }, -/obj/item/multitool{ - pixel_x = 3 - }, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "aHU" = ( /obj/machinery/rnd/production/techfab/department/service, /turf/open/floor/plating, @@ -3749,11 +3676,12 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "aKa" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-2" }, -/turf/closed/wall/r_wall, -/area/storage/atmos) +/obj/machinery/power/tracker, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/solar/port/fore) "aKf" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -3982,7 +3910,7 @@ name = "Privacy Shutters"; pixel_y = 24 }, -/obj/machinery/computer/med_data, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aMR" = ( @@ -4062,14 +3990,14 @@ /turf/open/floor/wood, /area/security/courtroom) "aNL" = ( -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/firedoor/border_only{ dir = 1; name = "north facing firelock" }, /obj/structure/fans/tiny, -/turf/open/floor/carpet, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "aNS" = ( /obj/machinery/turnstile{ @@ -4136,18 +4064,12 @@ /obj/structure/cable{ icon_state = "0-4" }, -/obj/machinery/power/apc{ - areastring = "/area/storage/atmos"; - dir = 8; - name = "Atmospherics APC"; - pixel_x = -24 - }, /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "aOq" = ( /obj/structure/cable{ icon_state = "2-4" @@ -4159,7 +4081,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "aOr" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -4203,9 +4125,11 @@ /turf/open/floor/plating, /area/security/checkpoint/medical) "aPC" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/atmos) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "aPD" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -4213,10 +4137,17 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "aPE" = ( -/turf/closed/wall/r_wall, -/area/storage/atmos) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/solar/port/fore) "aPY" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -4286,7 +4217,7 @@ icon_state = "2-4" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "aQT" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4352,6 +4283,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 9 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "aSI" = ( @@ -4700,6 +4632,13 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) +"bfo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "bfB" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4755,6 +4694,12 @@ /obj/machinery/vending/coffee, /turf/open/floor/plasteel/dark, /area/maintenance/department/bridge) +"bjR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "bjU" = ( /obj/machinery/airalarm{ dir = 8; @@ -4804,13 +4749,6 @@ /obj/machinery/holopad, /turf/open/floor/plasteel/dark, /area/maintenance/department/bridge) -"blD" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "blI" = ( /obj/machinery/hydroponics/soil, /obj/item/seeds/ambrosia, @@ -4977,6 +4915,12 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) +"bqb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "bqx" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -5185,9 +5129,6 @@ /area/icemoon/surface/outdoors) "buF" = ( /obj/machinery/light, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, /obj/structure/table, /obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/yellow, @@ -5200,6 +5141,9 @@ dir = 8 }, /obj/item/pipe_dispenser, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "buI" = ( @@ -6106,9 +6050,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/airalarm{ - pixel_y = 28 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -6218,9 +6159,6 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/machinery/light{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bCM" = ( @@ -6414,6 +6352,17 @@ /obj/machinery/vending/wardrobe/science_wardrobe, /turf/open/floor/plasteel/white, /area/science/misc_lab) +"bEp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) "bEJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/purple{ @@ -6921,7 +6870,7 @@ /obj/structure/window/reinforced, /obj/structure/table/reinforced, /obj/machinery/button/door{ - id = "xenobio2"; + id = "xenobiospec"; name = "Containment Blast Doors"; pixel_y = 4; req_access_txt = "55" @@ -6982,7 +6931,7 @@ req_access_txt = "55" }, /obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; + id = "xenobiospec"; name = "containment blast door" }, /turf/open/floor/engine, @@ -7138,35 +7087,9 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/cult, /area/lawoffice) -"bJQ" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Arrivals Airlock" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/secondary/exit/departure_lounge) "bKl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, /obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, +/turf/open/transparent/glass/reinforced, /area/crew_quarters/fitness) "bKo" = ( /obj/machinery/door/airlock/public/glass{ @@ -7245,7 +7168,7 @@ icon_state = "0-4" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "bLI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -7477,6 +7400,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/recharge_station, /turf/open/floor/plasteel, /area/maintenance/department/electrical) "bOp" = ( @@ -7621,16 +7545,16 @@ dir = 8; name = "west facing firelock" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; + id = "xenobiospec"; name = "containment blast door" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/engine, /area/science/xenobiology) "bPW" = ( @@ -8578,23 +8502,14 @@ "chp" = ( /turf/open/floor/plating, /area/maintenance/aft) -"chN" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "chZ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/solars/port/fore) +"cih" = ( +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/aft) "cio" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -8822,7 +8737,7 @@ icon_state = "0-4" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "cly" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -9154,6 +9069,12 @@ }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/fitness/recreation) +"cvN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) "cwm" = ( /obj/machinery/vending/boozeomat, /obj/machinery/firealarm{ @@ -9506,15 +9427,6 @@ }, /turf/open/floor/plating, /area/bridge) -"cDO" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "cDS" = ( /obj/structure/bodycontainer/morgue{ dir = 8 @@ -9542,6 +9454,12 @@ /obj/structure/reflector/single, /turf/open/floor/plating, /area/engine/storage) +"cEs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "cFm" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = -30 @@ -9698,7 +9616,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "cKQ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -9723,7 +9641,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/crew_quarters/fitness) "cLC" = ( /obj/effect/turf_decal/tile/brown{ @@ -9770,7 +9688,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "cNE" = ( /obj/structure/cable{ @@ -10043,6 +9961,13 @@ "cTO" = ( /turf/closed/wall/r_wall, /area/quartermaster/miningoffice) +"cTV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "cUd" = ( /obj/structure/cable{ icon_state = "1-2" @@ -10062,6 +9987,40 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) +"cUs" = ( +/obj/effect/landmark/start/ai, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 25; + pixel_y = -4 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 25; + pixel_y = -13 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 25; + pixel_y = 7 + }, +/obj/machinery/button/door{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber entrance shutters control"; + pixel_x = -7; + pixel_y = -24; + req_access_txt = "16" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) "cUC" = ( /obj/structure/chair, /obj/effect/landmark/start/geneticist, @@ -10090,6 +10049,12 @@ }, /turf/open/floor/pod/dark, /area/maintenance/starboard) +"cVa" = ( +/obj/structure/fluff/railing{ + dir = 9 + }, +/turf/open/transparent/openspace/icemoon, +/area/engine/atmospherics_engine) "cVu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue{ @@ -10143,6 +10108,10 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"cWI" = ( +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "cWO" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -10167,11 +10136,9 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "cXI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "cXO" = ( /obj/structure/cable, /obj/effect/landmark/start/ai/secondary, @@ -10495,21 +10462,23 @@ name = "Port Solar Array" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "dfy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/cable{ icon_state = "1-4" }, /obj/structure/cable{ icon_state = "2-4" }, +/obj/effect/landmark/event_spawn, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26; + pixel_y = 3 + }, /obj/machinery/ai_slipper{ uses = 10 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) "dfV" = ( @@ -10817,8 +10786,8 @@ dir = 4 }, /obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" + name = "Antimatter Engine"; + req_access_txt = "10" }, /obj/machinery/door/firedoor/border_only{ dir = 8; @@ -10886,10 +10855,11 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/carpet, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/wood, /area/crew_quarters/dorms) "duI" = ( /obj/structure/cable{ @@ -10934,6 +10904,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "dvs" = ( @@ -10946,7 +10917,7 @@ /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "dvw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11053,12 +11024,6 @@ }, /turf/open/floor/pod/dark, /area/maintenance/starboard) -"dAi" = ( -/obj/structure/sign/warning/pods{ - pixel_x = -32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "dAs" = ( /obj/structure/cable{ icon_state = "1-2" @@ -11158,36 +11123,11 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "dDC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/fluff/railing{ dir = 1 }, -/obj/structure/closet/crate/engineering{ - name = "Antimatter Engine Crate" - }, -/obj/machinery/power/am_control_unit, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_shielding_container, -/obj/item/am_containment, -/obj/item/am_containment, -/turf/open/floor/plasteel/dark, -/area/engine/secure_construction) +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "dDK" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 6 @@ -11265,9 +11205,11 @@ /turf/closed/wall, /area/quartermaster/qm) "dFJ" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/white, -/area/science/lab) +/obj/structure/fluff/railing{ + dir = 5 + }, +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "dGb" = ( /obj/structure/cable{ icon_state = "1-8" @@ -11354,7 +11296,7 @@ /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "dJc" = ( /obj/structure/cable{ @@ -11386,7 +11328,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "dKw" = ( /obj/structure/cable{ @@ -11437,6 +11379,11 @@ "dMj" = ( /turf/closed/wall/r_wall, /area/ai_monitored/nuke_storage) +"dMo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "dMI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -12102,6 +12049,7 @@ dir = 1; sortType = 26 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "egM" = ( @@ -12218,15 +12166,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"ejw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "ekw" = ( /obj/structure/chair{ dir = 1 @@ -12287,6 +12226,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) +"eoH" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "eoL" = ( /obj/structure/chair{ dir = 4 @@ -12354,9 +12305,6 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "ery" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -12371,10 +12319,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -28 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) "erG" = ( @@ -12587,6 +12531,12 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) +"eyc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/dorms) "eyP" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -12690,6 +12640,13 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) +"eCS" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Room Four" + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "eDr" = ( /obj/structure/cable{ icon_state = "4-8" @@ -12870,7 +12827,7 @@ /area/hallway/primary/central) "eHK" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, /turf/open/floor/plating, @@ -12982,25 +12939,6 @@ }, /turf/open/floor/plasteel, /area/maintenance/aft) -"eLl" = ( -/obj/structure/window{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "eLm" = ( /obj/structure/cable{ icon_state = "4-8" @@ -13174,10 +13112,6 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) -"eOO" = ( -/obj/structure/weightmachine/weightlifter, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "eOZ" = ( /obj/machinery/atmospherics/components/binary/pump/on, /turf/open/floor/plasteel/dark, @@ -13417,6 +13351,20 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/mineral/wood, /area/maintenance/bar) +"eXy" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/white, +/area/science/lab) +"eXO" = ( +/obj/structure/table, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "eYe" = ( /obj/machinery/conveyor{ dir = 4; @@ -13489,7 +13437,7 @@ icon_state = "1-4" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/aft) "faR" = ( /obj/structure/window/reinforced{ dir = 8 @@ -13497,7 +13445,7 @@ /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/effect/landmark/blobstart, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "faV" = ( /obj/machinery/light{ dir = 4 @@ -13819,6 +13767,13 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/icemoon/surface/outdoors) +"fkA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "fkC" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /turf/closed/wall/r_wall, @@ -13914,9 +13869,14 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "fne" = ( -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "fni" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ dir = 8 @@ -13957,6 +13917,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) +"fol" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/item/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/circuit, +/area/science/lab) "foy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -13986,17 +13951,6 @@ /turf/open/floor/plating, /area/maintenance/disposal) "fpS" = ( -/obj/structure/table, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/circular_saw, -/obj/item/cautery{ - pixel_x = 4 - }, -/obj/item/surgical_drapes, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -14004,7 +13958,14 @@ c_tag = "Robotics Lab"; network = list("ss13","rd") }, -/turf/open/floor/plasteel/white, +/obj/machinery/mecha_part_fabricator, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "fqj" = ( /obj/machinery/field/generator, @@ -14088,7 +14049,7 @@ icon_state = "1-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "fsA" = ( /obj/structure/bodycontainer/morgue, /obj/effect/turf_decal/tile/blue{ @@ -14115,11 +14076,8 @@ /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "ftH" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 2; - output_dir = 1 - }, -/turf/open/floor/plating, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/space/basic, /area/quartermaster/miningdock) "ftM" = ( /obj/structure/cable{ @@ -14189,11 +14147,6 @@ /turf/open/floor/plasteel, /area/engine/engineering) "fvz" = ( -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, @@ -14355,6 +14308,9 @@ c_tag = "Bathrooms"; dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/dorms) "fBG" = ( @@ -14376,9 +14332,6 @@ /turf/open/floor/engine, /area/engine/atmospherics_engine) "fCQ" = ( -/obj/structure/toilet/secret/low_loot{ - pixel_y = 14 - }, /obj/machinery/button/door{ id = "Bath2"; name = "Door Bolt Control"; @@ -14391,6 +14344,7 @@ dir = 8 }, /obj/effect/landmark/blobstart, +/obj/machinery/recharge_station, /turf/open/floor/plasteel/freezer, /area/crew_quarters/dorms) "fDi" = ( @@ -14416,6 +14370,13 @@ "fDJ" = ( /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) +"fEz" = ( +/obj/machinery/computer/operating, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "fET" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera{ @@ -14514,7 +14475,18 @@ dir = 4 }, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) +"fIk" = ( +/obj/machinery/button/door{ + id = "holoprivacy"; + name = "Holodeck Privacy"; + pixel_x = 24; + pixel_y = 7 + }, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) "fIu" = ( /obj/structure/cable{ icon_state = "1-8" @@ -14733,11 +14705,11 @@ pixel_y = -28 }, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "fNh" = ( /obj/structure/cable, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "fNC" = ( /obj/structure/cable{ icon_state = "1-2" @@ -14869,6 +14841,9 @@ dir = 8; name = "west facing firelock" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/crew_quarters/dorms) "fPN" = ( @@ -14955,6 +14930,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"fSb" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "fSw" = ( /obj/structure/cable{ icon_state = "2-4" @@ -14998,8 +14980,14 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) +"fUc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/aft) "fUm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -15044,7 +15032,7 @@ icon_state = "2-4" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "fVT" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/engine, @@ -15273,6 +15261,12 @@ /obj/item/storage/fancy/donut_box, /turf/open/floor/plasteel, /area/security/checkpoint/supply) +"gdH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) "gdL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -15441,6 +15435,12 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/engine/engineering) +"gjZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) "gkl" = ( /obj/machinery/jukebox, /turf/open/floor/wood, @@ -15504,28 +15504,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"gls" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/door/window/westright{ - name = "Red Corner" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "gmf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -15699,9 +15677,6 @@ /turf/closed/wall, /area/security/courtroom) "grZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/table, /obj/item/aiModule/core/full/custom, /obj/item/aiModule/core/freeformcore, @@ -15713,6 +15688,9 @@ dir = 1; network = list("aiupload") }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) "gsr" = ( @@ -15814,12 +15792,11 @@ /turf/open/floor/plasteel/dark, /area/bridge) "guI" = ( -/obj/machinery/light/floor, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/fore) "guR" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/yellow{ @@ -16063,7 +16040,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "gCG" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, @@ -16078,15 +16055,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "gCO" = ( -/obj/machinery/light, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/wood, /area/crew_quarters/dorms) "gCS" = ( /obj/structure/bodycontainer/morgue, @@ -16240,6 +16212,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"gIW" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "gJi" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/machinery/atmospherics/pipe/simple/green/visible{ @@ -16486,7 +16464,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "gPE" = ( /obj/machinery/portable_atmospherics/pump, /obj/machinery/firealarm{ @@ -16662,7 +16640,7 @@ icon_state = "2-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "gTH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -16692,11 +16670,18 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "gUc" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dorms Central"; + dir = 1 + }, +/turf/open/floor/carpet, /area/crew_quarters/dorms) "gUw" = ( /obj/structure/plasticflaps, @@ -16773,7 +16758,8 @@ /obj/structure/cable{ icon_state = "2-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "gXE" = ( /obj/structure/table, @@ -17108,13 +17094,16 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "hiO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "hjv" = ( @@ -17158,6 +17147,14 @@ }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/surface/outdoors) +"hlQ" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "hlT" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -17168,9 +17165,6 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) "hmM" = ( @@ -17195,6 +17189,15 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"hnN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "hnO" = ( /obj/machinery/atmospherics/components/unary/cryo_cell, /turf/open/floor/plasteel/white, @@ -17219,20 +17222,10 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "hop" = ( -/obj/structure/window{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "hoq" = ( @@ -17342,6 +17335,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/machinery/vending/cigarette, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "hrN" = ( @@ -17361,15 +17355,14 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "hrS" = ( -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "hse" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-4" }, -/turf/open/floor/circuit/off, -/area/ai_monitored/turret_protected/ai) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "hsl" = ( /turf/open/floor/plating, /area/maintenance/starboard) @@ -17419,12 +17412,6 @@ }, /turf/open/floor/wood, /area/bridge/meeting_room) -"hsQ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "hta" = ( /obj/structure/cable{ icon_state = "1-2" @@ -17471,11 +17458,14 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "huF" = ( -/obj/machinery/mineral/stacking_unit_console{ - machinedir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/closed/wall, -/area/maintenance/disposal) +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "huQ" = ( /obj/machinery/power/terminal{ dir = 1 @@ -17507,6 +17497,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"hvG" = ( +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "hwg" = ( /obj/machinery/computer/teleporter{ dir = 8 @@ -17567,7 +17565,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "hxP" = ( /obj/machinery/door/airlock/medical/glass{ id_tag = "MedbayFoyer"; @@ -17589,6 +17587,18 @@ /obj/structure/closet/secure_closet/personal/cabinet, /turf/open/floor/carpet, /area/quartermaster/miningoffice) +"hyx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) "hyz" = ( /obj/machinery/vending/autodrobe, /turf/open/floor/plasteel, @@ -17680,7 +17690,7 @@ dir = 1; name = "north facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "hBb" = ( /obj/machinery/camera{ @@ -17710,6 +17720,10 @@ /obj/machinery/vending/medical, /turf/open/floor/plasteel/white, /area/medical/virology) +"hBM" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/lab) "hBQ" = ( /obj/structure/cable{ icon_state = "2-4" @@ -17720,6 +17734,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/port) +"hCx" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "hCD" = ( /obj/structure/cable{ icon_state = "4-8" @@ -17829,7 +17853,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "hFG" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -17855,7 +17879,7 @@ icon_state = "0-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "hGU" = ( /obj/structure/closet/secure_closet/personal/cabinet{ pixel_x = -8 @@ -17896,6 +17920,12 @@ }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) +"hHV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) "hHW" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -18001,7 +18031,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "hKt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -18127,7 +18157,7 @@ /area/engine/secure_construction) "hNT" = ( /obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "hNZ" = ( /obj/effect/turf_decal/tile/yellow{ @@ -18154,7 +18184,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "hOw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ @@ -18403,6 +18433,10 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"hUg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "hUo" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -18554,6 +18588,10 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"hWp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "hWW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -18866,28 +18904,6 @@ /obj/machinery/space_heater, /turf/open/floor/plasteel, /area/engine/atmos) -"igK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/door/window/eastleft{ - name = "Blue Corner" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "igO" = ( /obj/machinery/vending/boozeomat, /turf/open/floor/wood{ @@ -18916,17 +18932,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = -26; - pixel_y = 3 - }, -/obj/machinery/turretid{ - icon_state = "control_stun"; - name = "AI Chamber turret control"; - pixel_x = -25; - pixel_y = -3 - }, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) "ihE" = ( @@ -18937,6 +18942,7 @@ dir = 10 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/science/mixing) "ihJ" = ( @@ -18970,6 +18976,9 @@ /obj/machinery/power/smes, /turf/open/floor/plating, /area/maintenance/department/electrical) +"ihY" = ( +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "iiM" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -19305,6 +19314,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) +"iru" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) "irN" = ( /obj/machinery/requests_console{ department = "AI"; @@ -19363,7 +19378,7 @@ }, /obj/machinery/light, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "itw" = ( /obj/structure/cable{ icon_state = "4-8" @@ -19437,7 +19452,7 @@ dir = 1; name = "north facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "iuP" = ( /obj/machinery/door/airlock/external{ @@ -19446,15 +19461,6 @@ }, /turf/open/floor/engine, /area/engine/atmospherics_engine) -"ivM" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit/departure_lounge) "ivQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -19488,6 +19494,13 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"iwH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "ixf" = ( /obj/structure/cable{ icon_state = "1-2" @@ -19501,6 +19514,12 @@ /obj/item/hand_tele, /turf/open/floor/plasteel/dark, /area/teleporter) +"ixO" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/aft) "ixZ" = ( /obj/structure/chair/office/dark, /mob/living/simple_animal/pet/cat/Runtime{ @@ -19791,6 +19810,13 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) "iFl" = ( @@ -19976,7 +20002,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "iJK" = ( /obj/structure/table/reinforced, @@ -20018,6 +20044,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"iMk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) "iML" = ( /obj/machinery/light, /obj/machinery/requests_console{ @@ -20030,14 +20063,15 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hop) "iMX" = ( -/obj/structure/cable, -/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) "iNi" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, /obj/machinery/computer/rdconsole/production{ dir = 4 }, @@ -20047,6 +20081,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "iNE" = ( @@ -20062,22 +20099,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"iNK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "iNV" = ( /obj/structure/cable{ icon_state = "1-2" @@ -20102,12 +20123,6 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/structure/window/plasma/reinforced{ - dir = 1 - }, /obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -20119,6 +20134,12 @@ c_tag = "Engineering Storage"; dir = 4 }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "iOG" = ( @@ -20163,6 +20184,13 @@ /obj/machinery/light, /turf/open/floor/plasteel, /area/hallway/primary/port) +"iQu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "iQv" = ( /obj/machinery/door/airlock/public/glass{ name = "Courtroom"; @@ -20204,12 +20232,12 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "iRF" = ( -/obj/machinery/door/airlock/external, /obj/machinery/door/firedoor/border_only{ dir = 1; name = "north facing firelock" }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plating, /area/hallway/primary/aft) "iRO" = ( @@ -20246,9 +20274,13 @@ /turf/open/floor/plasteel/cult, /area/lawoffice) "iSB" = ( -/obj/machinery/light/floor, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/solar/port/fore) "iTP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, @@ -20351,7 +20383,6 @@ "iXZ" = ( /obj/machinery/computer/security/telescreen/toxins{ dir = 1; - network = list("toxins"); pixel_y = -28 }, /obj/structure/chair{ @@ -20404,7 +20435,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "iZu" = ( /obj/machinery/firealarm{ @@ -20709,7 +20740,7 @@ /area/quartermaster/storage) "jjB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "jjC" = ( /obj/structure/closet/crate, @@ -20776,7 +20807,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "jmU" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -20898,10 +20929,11 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "jso" = ( -/obj/machinery/light/small{ - dir = 8 +/obj/machinery/power/smes{ + charge = 5e+006 }, -/turf/open/floor/circuit/off, +/obj/structure/cable, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "jsu" = ( /obj/structure/cable{ @@ -20952,11 +20984,11 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "jvV" = ( -/obj/machinery/mineral/stacking_unit_console{ - machinedir = 8 +/obj/structure/cable{ + icon_state = "0-2" }, -/turf/closed/wall, -/area/maintenance/disposal) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/fore) "jwc" = ( /obj/structure/cable{ icon_state = "1-2" @@ -21027,7 +21059,7 @@ name = "Starboard Solar Array" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/starboard/aft) "jxS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ @@ -21122,22 +21154,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) -"jAT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "jBk" = ( /obj/structure/cable{ icon_state = "1-2" @@ -21256,6 +21272,12 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/paramedic) +"jEm" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "jER" = ( /obj/machinery/vending/kink, /turf/open/floor/plating, @@ -21569,7 +21591,7 @@ }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "jOB" = ( /obj/structure/cable{ icon_state = "4-8" @@ -21604,6 +21626,12 @@ }, /turf/open/floor/plating, /area/engine/atmospherics_engine) +"jPf" = ( +/obj/machinery/computer/rdconsole/core{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/science/lab) "jPh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -21824,6 +21852,9 @@ "jWr" = ( /turf/closed/wall/r_wall, /area/storage/tech) +"jWw" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "jWx" = ( /obj/structure/table/glass, /obj/item/stack/sheet/mineral/plasma, @@ -21882,7 +21913,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "jYS" = ( /obj/structure/chair{ @@ -21941,6 +21972,13 @@ /obj/machinery/smartfridge, /turf/open/floor/plasteel, /area/hydroponics) +"kbE" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 8 + }, +/turf/open/transparent/glass/reinforced, +/area/crew_quarters/fitness) "kbR" = ( /obj/structure/table, /obj/item/storage/firstaid/regular{ @@ -22027,15 +22065,18 @@ }, /turf/open/floor/plasteel, /area/storage/auxiliary) +"kdy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) "kdA" = ( /obj/structure/table/glass, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, /turf/open/floor/plasteel/white, /area/science/lab) "kdM" = ( @@ -22124,24 +22165,11 @@ /turf/open/floor/carpet, /area/chapel/office) "kge" = ( -/obj/structure/window{ - dir = 8 - }, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/chair/comfy/brown{ + color = "#596479"; dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, +/turf/open/transparent/glass/reinforced, /area/crew_quarters/fitness) "kgx" = ( /obj/structure/table, @@ -22245,6 +22273,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"kjx" = ( +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Robotics Surgery"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "kkn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -22412,7 +22448,7 @@ icon_state = "2-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "kol" = ( /obj/machinery/light{ dir = 1 @@ -22934,6 +22970,13 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"kHJ" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) "kHP" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 4 @@ -22963,6 +23006,12 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) +"kIV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "kJk" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 9 @@ -23063,7 +23112,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -23071,6 +23119,7 @@ dir = 4 }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plasteel, /area/hallway/primary/port) "kMy" = ( @@ -23153,9 +23202,6 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "kPu" = ( -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, /obj/structure/table, /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/metal/fifty, @@ -23166,6 +23212,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "kPA" = ( @@ -23227,9 +23276,6 @@ }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/maintenance/aft/secondary) -"kRk" = ( -/turf/open/floor/plasteel/white, -/area/crew_quarters/dorms) "kRz" = ( /obj/structure/cable{ icon_state = "1-8" @@ -23363,6 +23409,13 @@ "kVO" = ( /turf/closed/wall, /area/hallway/primary/aft) +"kWz" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Room Five" + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "kWC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -23373,6 +23426,17 @@ /obj/machinery/door/airlock/maintenance, /turf/open/floor/plating, /area/maintenance/aft/secondary) +"kXL" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "kXY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23486,7 +23550,7 @@ name = "Port Auxiliary Solar Array" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "lbv" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/machinery/door/firedoor/border_only{ @@ -23495,6 +23559,19 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"lcv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "ldt" = ( /obj/structure/cable{ icon_state = "1-2" @@ -23593,15 +23670,15 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/public/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, /obj/machinery/door/firedoor/border_only{ dir = 1; name = "north facing firelock" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock{ + name = "Hydroponics"; + req_access_txt = "35" + }, /turf/open/floor/plasteel, /area/hydroponics) "lfD" = ( @@ -23621,6 +23698,12 @@ /obj/structure/closet/cardboard, /turf/open/floor/plating, /area/maintenance/starboard) +"lgg" = ( +/obj/structure/fluff/railing{ + dir = 5 + }, +/turf/open/transparent/openspace/icemoon, +/area/engine/atmospherics_engine) "lgn" = ( /obj/structure/cable{ icon_state = "1-2" @@ -23673,14 +23756,12 @@ /turf/open/floor/plasteel, /area/maintenance/aft) "lhr" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 1; + pixel_x = -30 }, -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) +/turf/open/floor/plasteel, +/area/maintenance/disposal) "lhB" = ( /obj/machinery/camera{ c_tag = "Northwestern Hall 7"; @@ -23710,29 +23791,27 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "liL" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, /obj/machinery/ai_slipper{ uses = 10 }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/ai_monitored/turret_protected/ai"; +/obj/machinery/door/window{ + base_state = "rightsecure"; dir = 4; - name = "AI Chamber APC"; - pixel_x = 24 + icon_state = "rightsecure"; + layer = 4.1; + name = "Secondary AI Core Access"; + obj_integrity = 300; + pixel_x = 4; + req_access_txt = "16" + }, +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) @@ -23757,11 +23836,11 @@ /turf/open/floor/pod/dark, /area/medical/paramedic) "lki" = ( -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plasteel, /area/hallway/primary/port) "lkP" = ( @@ -23992,7 +24071,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "lqW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -24544,7 +24623,12 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/structure/weightmachine/stacklifter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "lJi" = ( @@ -24571,12 +24655,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/icemoon/surface/outdoors) -"lJN" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/dorms) "lKT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -24591,12 +24669,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/theatre) -"lLv" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "lLD" = ( /obj/structure/cable{ icon_state = "1-2" @@ -24672,6 +24744,19 @@ }, /turf/open/floor/carpet/orange, /area/engine/secure_construction) +"lOa" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "lOs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -24716,27 +24801,35 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) -"lQp" = ( +"lQd" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/porta_turret/ai{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) +"lQp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "waste relief valve" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "lQs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/hallway/secondary/exit/departure_lounge) "lQJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/structure/fluff/railing{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) +/turf/open/transparent/openspace/icemoon, +/area/icemoon/surface/outdoors) "lRx" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -25107,7 +25200,9 @@ dir = 4 }, /obj/effect/turf_decal/tile/green, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, /area/hydroponics) "mbM" = ( /obj/effect/turf_decal/tile/blue{ @@ -25216,6 +25311,13 @@ }, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) +"mfU" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "mgo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor/border_only{ @@ -25391,7 +25493,7 @@ icon_state = "4-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/fore) "mmO" = ( /obj/structure/cable{ icon_state = "1-2" @@ -25475,11 +25577,11 @@ /turf/open/floor/plating, /area/medical/virology) "mps" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/structure/chair/comfy/beige{ + dir = 8 }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "mqb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -25499,6 +25601,15 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"mqd" = ( +/obj/item/paper/fluff{ + info = "Crystal has been moved to a lockbox in secure storage until further notice."; + name = "Note from an engineer"; + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/engine, +/area/engine/supermatter) "mqm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -25591,7 +25702,7 @@ /turf/open/floor/plating, /area/maintenance/aft/secondary) "mtP" = ( -/turf/open/floor/carpet, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "mtY" = ( /obj/structure/cable{ @@ -25846,17 +25957,28 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"mEH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "mEI" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/eastright{ base_state = "left"; - dir = 2; + dir = 1; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33" }, /obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Chemistry Desk" + }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "mFg" = ( @@ -25917,6 +26039,16 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/icemoon/surface/outdoors) +"mHm" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "mHT" = ( /obj/structure/closet/l3closet/scientist, /obj/item/extinguisher, @@ -26527,7 +26659,7 @@ }, /obj/structure/bed, /obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "mWD" = ( /obj/structure/cable{ @@ -26618,6 +26750,10 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/machinery/door/window/eastright{ + dir = 1; + name = "Chemistry Desk" + }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "mZk" = ( @@ -26635,7 +26771,11 @@ name = "Station Intercom (General)"; pixel_x = 30 }, -/turf/open/floor/carpet, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, /area/crew_quarters/dorms) "nbr" = ( /obj/structure/cable{ @@ -26975,13 +27115,13 @@ /turf/open/floor/plating, /area/security/checkpoint/medical) "nlF" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, /area/crew_quarters/dorms) "nlM" = ( /obj/machinery/light{ @@ -26994,19 +27134,6 @@ /obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"nmL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) "nmM" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -27147,7 +27274,6 @@ /area/storage/auxiliary) "nrY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -27155,7 +27281,8 @@ name = "south facing firelock" }, /obj/structure/fans/tiny, -/turf/open/floor/carpet, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "nsf" = ( /obj/machinery/door/firedoor, @@ -27244,6 +27371,12 @@ dir = 4; network = list("aicore") }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) "ntX" = ( @@ -27258,7 +27391,7 @@ }, /obj/machinery/power/tracker, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "nuJ" = ( /obj/structure/cable{ icon_state = "1-8" @@ -27362,7 +27495,7 @@ icon_state = "0-2" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "nyT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -27450,7 +27583,7 @@ pixel_x = -24; specialfunctions = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "nBk" = ( /obj/structure/cable{ @@ -27572,16 +27705,26 @@ /turf/open/floor/plasteel, /area/engine/engineering) "nDd" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/closet/crate/engineering{ + name = "Antimatter Engine Crate" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/obj/machinery/light/floor, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/obj/machinery/power/am_control_unit, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_containment, +/obj/item/am_containment, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) "nDl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -27597,8 +27740,21 @@ icon_state = "0-8" }, /obj/structure/grille, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/surface/outdoors) +"nDN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "nEa" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -27640,6 +27796,16 @@ }, /turf/open/floor/carpet, /area/hallway/primary/port) +"nEH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "nEI" = ( /obj/structure/dresser, /obj/machinery/camera{ @@ -27792,6 +27958,13 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) +"nJB" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "nJI" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/southleft{ @@ -27921,10 +28094,15 @@ /area/hallway/primary/port) "nOY" = ( /obj/machinery/camera{ - c_tag = "Dorms West"; + c_tag = "Dorms Northeast"; dir = 8 }, -/turf/open/floor/carpet, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, /area/crew_quarters/dorms) "nPd" = ( /obj/structure/cable{ @@ -28021,6 +28199,13 @@ /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/closed/wall/r_wall, /area/science/mixing) +"nRA" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair/comfy/beige, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "nRS" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -28184,6 +28369,12 @@ }, /turf/open/floor/plasteel/dark, /area/security/main) +"nYd" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "nYv" = ( /obj/structure/chair{ dir = 8 @@ -28639,7 +28830,7 @@ dir = 4; name = "east facing firelock" }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/crew_quarters/fitness) "ojs" = ( /obj/structure/cable{ @@ -28824,6 +29015,18 @@ }, /turf/open/floor/engine/n2, /area/engine/atmos) +"onO" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai"; + dir = 4; + name = "AI Chamber APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) "onY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/green/visible{ @@ -28860,45 +29063,8 @@ /turf/open/floor/plasteel, /area/engine/break_room) "ooR" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/landmark/start/ai, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = -25; - pixel_y = -10 - }, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 27 - }, -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = -25 - }, -/obj/machinery/button/door{ - id = "AI Chamber entrance shutters"; - name = "AI Chamber entrance shutters control"; - pixel_x = 8; - pixel_y = 23; - req_access_txt = "16" - }, -/obj/machinery/door/window{ - base_state = "rightsecure"; - dir = 4; - icon_state = "rightsecure"; - name = "Primary AI Core Access"; - obj_integrity = 300; - req_access_txt = "16" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) "opq" = ( /obj/machinery/computer/rdservercontrol{ dir = 1 @@ -28917,11 +29083,8 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plasteel, /area/maintenance/aft) "opY" = ( @@ -28995,6 +29158,10 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/medical) +"ord" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "orN" = ( /obj/structure/cable{ icon_state = "2-4" @@ -29253,10 +29420,7 @@ /area/engine/engineering) "oBj" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plasteel, /area/maintenance/aft) "oBl" = ( @@ -29281,7 +29445,7 @@ c_tag = "Dorms South"; dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "oBF" = ( /obj/structure/cable{ @@ -29401,6 +29565,12 @@ }, /turf/open/floor/wood, /area/hallway/primary/central) +"oGZ" = ( +/obj/structure/fluff/railing{ + dir = 6 + }, +/turf/open/transparent/openspace/icemoon, +/area/engine/atmospherics_engine) "oHl" = ( /obj/structure/closet/crate/secure/engineering{ name = "TEG crate" @@ -29601,15 +29771,13 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) "oME" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/light/floor, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/obj/machinery/vending/snack/random, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "oNv" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -29679,17 +29847,27 @@ /obj/effect/landmark/start/head_of_personnel, /turf/open/floor/carpet, /area/crew_quarters/heads/hop) +"oPk" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "oPP" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/eastright{ base_state = "left"; - dir = 2; + dir = 1; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33" }, /obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Chemistry Desk" + }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "oPS" = ( @@ -29798,6 +29976,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/engine/storage) +"oUT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "oUV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -29994,17 +30178,7 @@ /turf/open/floor/plasteel, /area/storage/primary) "pbf" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plasteel, @@ -30085,13 +30259,11 @@ /turf/open/floor/carpet, /area/hallway/secondary/exit/departure_lounge) "pce" = ( -/obj/machinery/door/airlock/external{ - name = "Auxiliary Airlock" - }, /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) "pcl" = ( @@ -30233,23 +30405,11 @@ dir = 4 }, /obj/machinery/disposal/bin, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "pgk" = ( -/obj/structure/window{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, +/obj/structure/table, +/turf/open/transparent/glass/reinforced, /area/crew_quarters/fitness) "pgp" = ( /turf/closed/wall, @@ -30419,7 +30579,7 @@ icon_state = "2-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "pkJ" = ( /turf/open/floor/wood{ icon_state = "wood-broken6" @@ -30553,6 +30713,13 @@ "pqj" = ( /turf/open/floor/plasteel, /area/hallway/primary/fore) +"pqm" = ( +/obj/machinery/camera{ + c_tag = "Dorms Northwest"; + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "pqs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -30692,7 +30859,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "ptv" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on/layer1, @@ -30705,6 +30872,16 @@ }, /turf/open/floor/engine, /area/engine/atmospherics_engine) +"ptH" = ( +/obj/machinery/computer/holodeck{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "ptU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -30718,7 +30895,7 @@ dir = 4 }, /obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; + id = "xenobiospec"; name = "containment blast door" }, /turf/open/floor/engine, @@ -30887,6 +31064,15 @@ }, /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) +"pvP" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "pvV" = ( /obj/machinery/airalarm{ pixel_y = 26 @@ -30923,6 +31109,9 @@ /area/engine/storage) "pwE" = ( /obj/effect/landmark/start/cyborg, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/service) "pwL" = ( @@ -31078,14 +31267,12 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "pze" = ( -/obj/machinery/door/airlock/external{ - name = "Auxiliary Airlock" - }, /obj/machinery/door/firedoor/border_only{ dir = 1; name = "north facing firelock" }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plating, /area/quartermaster/miningdock) "pzk" = ( @@ -31176,6 +31363,11 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) +"pDg" = ( +/obj/structure/table, +/obj/item/paicard, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "pDh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -31346,8 +31538,12 @@ /turf/open/floor/plasteel, /area/storage/primary) "pIf" = ( -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"pIs" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/aft) "pIz" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -31376,6 +31572,18 @@ }, /turf/open/floor/plasteel/dark, /area/maintenance/department/bridge) +"pJm" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "pJS" = ( /turf/closed/wall, /area/quartermaster/storage) @@ -31651,6 +31859,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "pQg" = ( @@ -31806,7 +32015,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -31814,7 +32022,8 @@ name = "south facing firelock" }, /obj/structure/fans/tiny, -/turf/open/floor/carpet, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/plasteel, /area/crew_quarters/dorms) "pXl" = ( /obj/machinery/computer/cloning{ @@ -32022,7 +32231,7 @@ icon_state = "4-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/fore) "qfT" = ( /obj/machinery/holopad, /turf/open/floor/carpet, @@ -32103,6 +32312,10 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"qim" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "qip" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -32147,6 +32360,18 @@ }, /turf/open/floor/plasteel, /area/storage/primary) +"qjF" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "qkg" = ( /obj/effect/turf_decal/tile/green{ dir = 4 @@ -32238,23 +32463,7 @@ /turf/closed/wall, /area/quartermaster/miningdock) "qnx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, +/turf/open/transparent/glass/reinforced, /area/crew_quarters/fitness) "qnC" = ( /obj/structure/cable, @@ -32338,7 +32547,7 @@ }, /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "qqo" = ( /obj/machinery/light{ dir = 4 @@ -32704,7 +32913,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "qAI" = ( /obj/structure/cable{ icon_state = "4-8" @@ -32731,6 +32940,13 @@ }, /turf/open/floor/carpet, /area/hallway/primary/central) +"qBl" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 4; + output_dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) "qBu" = ( /obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/plasteel, @@ -32867,7 +33083,7 @@ name = "Station Intercom (General)"; pixel_y = 29 }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "qFZ" = ( /obj/structure/closet/emcloset, @@ -32948,12 +33164,19 @@ /area/hallway/primary/fore) "qHC" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engine/atmos) "qHL" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -32988,13 +33211,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/chair/stool{ - pixel_y = 8 - }, /obj/machinery/camera{ - c_tag = "Dorms Central" + c_tag = "Dorms East" }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "qIR" = ( /obj/machinery/button/massdriver{ @@ -33023,6 +33243,18 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel/white, /area/medical/virology) +"qIW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "qJs" = ( /obj/structure/chair, /obj/effect/turf_decal/stripes/line{ @@ -33076,9 +33308,6 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "qKA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33086,6 +33315,9 @@ dir = 8 }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "qKP" = ( @@ -33184,6 +33416,14 @@ }, /turf/open/floor/plasteel/freezer, /area/medical/surgery) +"qOJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "qOL" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/carpet, @@ -33337,6 +33577,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"qSF" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "qSJ" = ( /obj/machinery/airalarm{ pixel_y = 28 @@ -33527,6 +33773,12 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"qZb" = ( +/obj/structure/fluff/railing{ + dir = 10 + }, +/turf/open/transparent/openspace/icemoon, +/area/engine/atmospherics_engine) "qZO" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 4 @@ -33566,14 +33818,20 @@ /turf/closed/wall/r_wall, /area/maintenance/starboard) "raM" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/door/firedoor/border_only{ - dir = 8; - name = "west facing firelock" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" }, -/obj/structure/fans/tiny, /turf/open/floor/plating, /area/crew_quarters/dorms) +"rbb" = ( +/obj/machinery/space_heater, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "rbg" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8; @@ -34095,7 +34353,7 @@ name = "Starboard Solar Array" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/starboard/aft) "roS" = ( /obj/machinery/computer/card/minor/cmo{ dir = 4 @@ -34327,9 +34585,9 @@ /turf/open/floor/engine, /area/engine/engineering) "ruo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) +/obj/machinery/vending/cola/random, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "ruD" = ( /obj/machinery/airalarm{ dir = 1; @@ -34412,7 +34670,7 @@ name = "Port Solar Array" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "rxJ" = ( /obj/item/stack/cable_coil/random, /turf/open/floor/plating/asteroid/snow/icemoon, @@ -34547,7 +34805,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/science/mixing) "rDE" = ( @@ -34570,6 +34827,18 @@ }, /turf/open/floor/plating, /area/maintenance/department/electrical) +"rEF" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "rFk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, @@ -34705,6 +34974,12 @@ }, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) +"rKC" = ( +/obj/machinery/camera{ + c_tag = "Dorms West" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "rLb" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -34804,28 +35079,16 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "rPU" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "robo1" +/obj/machinery/light{ + dir = 8 }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/wood, +/area/crew_quarters/dorms) "rQs" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/primary/fore) "rQu" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -34865,9 +35128,27 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "rRk" = ( -/obj/structure/chair/comfy/beige, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"rRQ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) "rRV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -34936,6 +35217,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "rTW" = ( @@ -35052,9 +35334,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "rYc" = ( -/obj/machinery/computer/arcade/battle{ - dir = 8 - }, +/obj/machinery/vending/cigarette, /turf/open/floor/wood, /area/crew_quarters/bar) "rYi" = ( @@ -35100,6 +35380,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"sae" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "sat" = ( /obj/machinery/light, /turf/open/floor/plasteel/white, @@ -35184,6 +35471,12 @@ /turf/open/floor/plasteel, /area/maintenance/aft) "scF" = ( +/obj/machinery/turretid{ + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = 24; + pixel_y = -3 + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -35674,6 +35967,16 @@ }, /turf/open/floor/engine/n2o, /area/engine/atmos) +"stP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) "stW" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -35688,7 +35991,7 @@ "sub" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "sup" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -35751,14 +36054,8 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "swQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) +/turf/open/floor/wood, +/area/crew_quarters/dorms) "sxa" = ( /obj/machinery/requests_console{ department = "Medbay"; @@ -35963,20 +36260,16 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/captain) "sFw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, /obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "sGC" = ( @@ -36059,7 +36352,7 @@ /turf/open/floor/engine, /area/engine/engineering) "sIT" = ( -/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/recharge_station, /turf/open/floor/pod/dark, /area/medical/paramedic) "sJs" = ( @@ -36091,9 +36384,6 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "sKN" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, /obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -36101,6 +36391,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "sLg" = ( @@ -36152,6 +36445,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) +"sLF" = ( +/obj/structure/sign/mining{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) "sLN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, @@ -36216,6 +36515,32 @@ name = "Robotics Lab APC"; pixel_x = 25 }, +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/multitool{ + pixel_x = 3 + }, +/obj/item/multitool{ + pixel_x = 3 + }, +/obj/item/storage/belt/utility, /turf/open/floor/plasteel/white, /area/science/robotics/lab) "sOi" = ( @@ -36310,6 +36635,15 @@ }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/surface/outdoors) +"sQk" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "sRh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -36396,8 +36730,24 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "sTq" = ( +/obj/structure/fluff/railing{ + dir = 1 + }, /turf/open/transparent/openspace/icemoon, /area/engine/atmospherics_engine) +"sTt" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fourcolor, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "sTz" = ( /obj/effect/turf_decal/bot_white, /obj/structure/window/reinforced{ @@ -36884,22 +37234,9 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "tgd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/window{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "tht" = ( @@ -37181,7 +37518,7 @@ icon_state = "1-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "tod" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -37288,6 +37625,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "tqp" = ( @@ -37357,7 +37695,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "ttl" = ( /obj/structure/cable{ @@ -37555,6 +37893,18 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) +"tzb" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) "tzB" = ( /obj/machinery/atmospherics/pipe/simple{ dir = 6 @@ -37749,6 +38099,12 @@ /obj/machinery/atmospherics/components/binary/pump/on, /turf/open/floor/plasteel, /area/engine/atmos) +"tEC" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/aft) "tEQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -37776,11 +38132,12 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "tFu" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 30 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) +/turf/open/floor/wood, +/area/crew_quarters/dorms) "tFN" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -37816,11 +38173,9 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/carpet, /area/hallway/primary/port) "tHr" = ( @@ -37894,9 +38249,12 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) "tJi" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "tJA" = ( /obj/structure/cable{ icon_state = "1-2" @@ -37966,6 +38324,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) +"tLb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "tLA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -38109,17 +38477,14 @@ /turf/open/floor/plasteel/freezer, /area/medical/surgery) "tOz" = ( -/obj/machinery/light{ - dir = 1 +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 }, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 }, -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel/white, +/turf/open/floor/wood, /area/crew_quarters/dorms) "tOE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -38140,10 +38505,12 @@ name = "Fitness Room APC"; pixel_y = -24 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "tPB" = ( @@ -38231,18 +38598,11 @@ /turf/open/floor/plasteel/dark, /area/maintenance/department/bridge) "tRC" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -38270,11 +38630,13 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "tSd" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = 29 }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "tSB" = ( /obj/machinery/atmospherics/pipe/simple{ dir = 4 @@ -38350,6 +38712,12 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"tUq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "tUF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -38409,6 +38777,17 @@ }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) +"tWs" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "tXn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -38431,7 +38810,7 @@ pixel_x = -24; specialfunctions = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "tYT" = ( /obj/structure/cable{ @@ -38720,7 +39099,7 @@ /area/engine/atmos) "ugk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "uha" = ( /obj/structure/cable{ @@ -38803,7 +39182,7 @@ /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "ukJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -38814,6 +39193,10 @@ }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/kitchen) +"ule" = ( +/obj/structure/sign/departments/botany, +/turf/closed/wall, +/area/hydroponics) "ulh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -38862,14 +39245,14 @@ /turf/open/floor/plating, /area/crew_quarters/heads/hop) "umC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "umD" = ( @@ -38892,7 +39275,7 @@ dir = 4 }, /obj/structure/closet/wardrobe/white, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "unA" = ( /obj/effect/spawner/structure/window/reinforced, @@ -39031,7 +39414,7 @@ /obj/structure/cable, /obj/machinery/power/smes, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "utS" = ( /obj/structure/table, /obj/item/clothing/suit/apron/surgical, @@ -39046,11 +39429,18 @@ }, /turf/open/floor/plasteel/freezer, /area/medical/surgery) +"utY" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "uup" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "uut" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -39105,13 +39495,9 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -39194,6 +39580,12 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) +"uyV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/port/aft) "uyW" = ( /obj/structure/cable{ icon_state = "0-4" @@ -39384,13 +39776,13 @@ name = "Dormitory APC"; pixel_y = 24 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "uFq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/door/airlock/external{ +/obj/machinery/door/airlock/external/glass{ name = "Arrivals Airlock" }, /turf/open/floor/plating, @@ -39566,12 +39958,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced{ - dir = 1 - }, /obj/structure/table, /obj/item/stack/sheet/glass/fifty, /obj/item/stack/sheet/glass/fifty, @@ -39582,6 +39968,12 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "uKy" = ( @@ -39769,12 +40161,14 @@ /obj/structure/cable, /obj/machinery/power/tracker, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/starboard/aft) "uRg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/bombcloset, -/turf/open/floor/plasteel/white, -/area/science/mixing) +/obj/machinery/door/airlock{ + id_tag = "Dorm7"; + name = "Room Six" + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "uRi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -39843,8 +40237,14 @@ /turf/open/floor/plasteel, /area/engine/atmos) "uUi" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, +/obj/machinery/mecha_part_fabricator, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "uUk" = ( /obj/structure/disposalpipe/segment{ @@ -39937,6 +40337,7 @@ "uWn" = ( /obj/structure/table, /obj/item/toy/cards/deck, +/obj/item/storage/crayons, /turf/open/floor/plasteel/grimy, /area/crew_quarters/fitness/recreation) "uWo" = ( @@ -39968,6 +40369,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "uWW" = ( @@ -40246,11 +40648,9 @@ /turf/open/floor/circuit, /area/science/robotics/mechbay) "vdW" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) +/obj/structure/table/wood, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "vem" = ( /obj/structure/table/wood, /obj/machinery/keycard_auth{ @@ -40268,7 +40668,7 @@ codes_txt = "patrol;next_patrol=CHW"; location = "Dorm" }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "veF" = ( /obj/structure/table/wood, @@ -40407,7 +40807,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "vhf" = ( /obj/effect/spawner/structure/window/reinforced, @@ -40485,6 +40885,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"vko" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "vkw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -40608,13 +41013,10 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "vow" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel/white, +/turf/open/floor/wood, /area/crew_quarters/dorms) "voD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40703,7 +41105,7 @@ pixel_x = -24; specialfunctions = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "vqZ" = ( /obj/structure/window/plasma/reinforced{ @@ -40736,7 +41138,7 @@ "vrg" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "vrx" = ( /turf/closed/wall/r_wall, /area/crew_quarters/dorms) @@ -40812,7 +41214,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "vuk" = ( /obj/effect/spawner/structure/window/plasma/reinforced, @@ -41015,11 +41417,17 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "vzS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 5 +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/obj/machinery/button/door{ + id = "Dorm7"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "vAh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -41193,12 +41601,12 @@ icon_state = "4-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/starboard/aft) "vDI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "vEd" = ( /obj/effect/landmark/event_spawn, @@ -41208,7 +41616,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "vEi" = ( /obj/structure/cable{ @@ -41295,6 +41703,7 @@ c_tag = "Northwest Paramedic Post"; network = list("ss13","medbay") }, +/obj/item/wrench/medical, /turf/open/floor/plasteel/white, /area/medical/paramedic) "vFe" = ( @@ -41306,6 +41715,18 @@ "vFM" = ( /turf/open/floor/plasteel, /area/quartermaster/sorting) +"vFT" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms) "vGi" = ( /obj/structure/cable{ icon_state = "1-2" @@ -41319,6 +41740,8 @@ /area/medical/virology) "vGn" = ( /obj/machinery/light, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/pod/dark, /area/medical/paramedic) "vHU" = ( @@ -41430,17 +41853,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/pen/fourcolor, -/obj/item/paper_bin/bundlenatural{ - pixel_x = 6; - pixel_y = 4 - }, -/turf/open/floor/carpet, +/turf/open/floor/wood, /area/crew_quarters/dorms) "vKO" = ( /obj/effect/spawner/structure/window/reinforced, @@ -41457,16 +41870,15 @@ /turf/open/floor/plating, /area/bridge) "vKP" = ( -/obj/structure/weightmachine/stacklifter, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = -32 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "vKT" = ( @@ -41477,7 +41889,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/storage/atmos) +/area/maintenance/department/electrical) "vLa" = ( /obj/structure/cable{ icon_state = "4-8" @@ -41601,6 +42013,10 @@ pixel_x = 3; pixel_y = 3 }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 5; + pixel_y = 9 + }, /turf/open/floor/plasteel/white, /area/medical/paramedic) "vNY" = ( @@ -41669,15 +42085,15 @@ dir = 8 }, /area/chapel/main) -"vQk" = ( -/obj/machinery/computer/holodeck{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/dorms) "vQo" = ( /turf/closed/wall/r_wall, /area/engine/supermatter) +"vQz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "vQW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -41718,13 +42134,11 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4; sortType = 26 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "vSg" = ( @@ -41875,6 +42289,22 @@ }, /turf/open/floor/plating, /area/maintenance/department/electrical) +"vVJ" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "vVN" = ( /obj/effect/turf_decal/bot, /obj/structure/window/reinforced{ @@ -41887,7 +42317,7 @@ /area/crew_quarters/fitness) "vVZ" = ( /obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "vWg" = ( /obj/effect/turf_decal/delivery, @@ -42232,11 +42662,11 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "weS" = ( -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/plating, /area/hallway/primary/aft) "wfN" = ( @@ -42262,7 +42692,7 @@ /obj/machinery/door/firedoor/border_only{ name = "south facing firelock" }, -/turf/open/floor/carpet, +/turf/open/floor/carpet/blue, /area/crew_quarters/dorms) "wgu" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -42281,6 +42711,20 @@ /obj/structure/chair/stool/bar, /turf/open/floor/wood, /area/crew_quarters/bar) +"wgM" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) "wha" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{ dir = 1 @@ -42668,6 +43112,7 @@ pixel_x = 6; pixel_y = 36 }, +/obj/machinery/computer/med_data/laptop, /turf/open/floor/carpet, /area/security/detectives_office) "wtY" = ( @@ -42733,7 +43178,7 @@ name = "Port Auxiliary Solar Array" }, /turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) +/area/solar/starboard/fore) "wuQ" = ( /obj/structure/table, /obj/machinery/plantgenes{ @@ -42925,7 +43370,7 @@ req_access_txt = "12;24" }, /turf/open/floor/plasteel, -/area/storage/atmos) +/area/maintenance/department/electrical) "wEm" = ( /obj/structure/barricade/wooden{ max_integrity = 10; @@ -43174,6 +43619,12 @@ /obj/machinery/chem_master/condimaster, /turf/open/floor/plasteel, /area/hydroponics) +"wMH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/solar/starboard/aft) "wMJ" = ( /obj/structure/closet/secure_closet/bar{ req_access_txt = "25" @@ -43229,7 +43680,8 @@ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "wPT" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -43331,11 +43783,9 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "wSc" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass, /turf/open/floor/carpet, /area/hallway/primary/port) "wSy" = ( @@ -43562,6 +44012,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/machinery/vending/cigarette, /turf/open/floor/plasteel, /area/hallway/primary/fore) "xaS" = ( @@ -43613,22 +44064,10 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "xcL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "xcY" = ( @@ -43658,6 +44097,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/central) +"xdr" = ( +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "xdD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 @@ -43666,9 +44113,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "xeI" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "robo1" - }, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -43680,8 +44124,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "xfs" = ( -/obj/structure/table, -/obj/item/paicard, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, /turf/open/floor/carpet, /area/crew_quarters/dorms) "xfD" = ( @@ -43819,10 +44268,10 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, /obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass{ + name = "Arrivals Airlock" + }, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) "xka" = ( @@ -43885,6 +44334,7 @@ /obj/machinery/light{ dir = 4 }, +/obj/machinery/vending/wardrobe/robo_wardrobe, /turf/open/floor/plasteel/white, /area/science/robotics/lab) "xmr" = ( @@ -44092,7 +44542,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "xtV" = ( /obj/structure/cable{ @@ -44104,6 +44554,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/light/floor, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "xui" = ( @@ -44242,11 +44693,8 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "xAv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible{ - dir = 6 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "xBi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -44857,6 +45305,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/machinery/disposal/bin, /turf/open/floor/wood, /area/crew_quarters/bar) "xUD" = ( @@ -44919,6 +45368,10 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"xWI" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "xXS" = ( /obj/machinery/rnd/server, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ @@ -45156,7 +45609,7 @@ icon_state = "2-8" }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) +/area/solar/port/aft) "ygB" = ( /obj/structure/cable{ icon_state = "2-8" @@ -45218,6 +45671,9 @@ icon_state = "1-8" }, /obj/effect/landmark/start/cyborg, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/service) "yiZ" = ( @@ -51538,17 +51994,17 @@ qrR qrR bTC avT -lbu -aQK -wuC +aPE +fne +iSB avT -lbu -aQK -wuC +aPE +fne +iSB avT -lbu -aQK -wuC +aPE +fne +iSB avT wuf yhx @@ -51795,17 +52251,17 @@ qrR qrR bTC avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT avT avT @@ -51853,7 +52309,7 @@ ydp ydp buI hnP -swQ +phs ghq ghq ghq @@ -52052,17 +52508,17 @@ qrR qrR bTC avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT avT avT @@ -52110,14 +52566,14 @@ ydp ydp buI buJ -cXI +ghq ghq hfZ shR ntV jso -shR -shR +tzb +iru hfZ ghq ghq @@ -52309,17 +52765,17 @@ avT avT avT avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT avT yhx @@ -52367,14 +52823,14 @@ ydp bTC buI buJ -cXI +ghq ghq shR shR -shR +onO liL scF -hse +lfD shR ghq ghq @@ -52566,17 +53022,17 @@ wuf wuf avT avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT -lbu +aPE qfJ -wuC +iSB avT wBg avT @@ -52585,12 +53041,12 @@ vrd vrd vrd vrd +nbC +nbC +nbC +nbC yhx -yhx -yhx -yhx -yhx -yhx +nbC yhx yhx yhx @@ -52624,12 +53080,12 @@ ydp buI fJZ phs -cXI +ghq ghq shR shR cpe -cpe +cUs cpe xIJ shR @@ -52824,15 +53280,15 @@ avT avT avT avT -hGK +guI avT avT avT -hGK +guI avT avT avT -hGK +guI avT aNg chZ @@ -52847,12 +53303,12 @@ avT avT avT avT +nbC +nbC +nbC +nbC yhx -yhx -yhx -yhx -yhx -yhx +nbC ydp ydp ydp @@ -52881,7 +53337,7 @@ ydp buI lGy ghq -cXI +ghq aJC shR qVf @@ -53077,21 +53533,21 @@ yhx yhx wuf avT -nuu -sXy -sXy -fNh -xUL -nyq -sXy -fNh -xUL -nyq -sXy -fNh -xUL -nyq -sXy +aKa +aPC +aPC +cXI +hrS +jvV +aPC +cXI +hrS +jvV +aPC +cXI +hrS +jvV +aPC eWw tnL iaq @@ -53138,12 +53594,12 @@ avT buI gJx ghq -cXI +ghq irN irr xIJ cpe -ooR +ghq cpe xIJ irr @@ -53338,15 +53794,15 @@ avT avT avT avT -clq +hse avT avT avT -clq +hse avT avT avT -clq +hse avT aNg chZ @@ -53395,9 +53851,9 @@ avT buI phs ghq -cXI +ghq +irr irr -tFu hmC rBA dfy @@ -53594,17 +54050,17 @@ fBG wuf avT avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT ajl avT @@ -53613,10 +54069,10 @@ vrd vrd vrd vrd -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC bBh avT avT @@ -53643,7 +54099,7 @@ avT avT avT avT -bmX +avT avT avT avT @@ -53652,8 +54108,8 @@ ayq ghq ghq ghq -tSd -lQp +ghq +vmr rQu rKd gHG @@ -53851,17 +54307,17 @@ qrR qrR avT avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT avT avT @@ -53873,7 +54329,7 @@ yhx yhx yhx yhx -yhx +nbC rUq sXy sXy @@ -54108,17 +54564,17 @@ qrR qrR wuf avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT avT avT @@ -54130,13 +54586,13 @@ yhx yhx yhx yhx +nbC +nbC +nbC +nbC yhx -yhx -yhx -yhx -yhx -yhx -yhx +nbC +nbC avT avT avT @@ -54152,7 +54608,7 @@ ydp avT avT avT -avT +bmX apJ apJ apJ @@ -54176,7 +54632,7 @@ cwT aAC mGl grZ -vdW +cIh ghq bUB bJf @@ -54365,17 +54821,17 @@ qrR qrR wuf avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT -lbu +aPE mmM -wuC +iSB avT avT avT @@ -54393,7 +54849,7 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT @@ -54433,7 +54889,7 @@ hva vZH lac iMX -lhr +cIh ghq bUB bJf @@ -54483,7 +54939,7 @@ wuf avT avT avT -bBh +fUc avT avT avT @@ -54622,17 +55078,17 @@ qrR qrR wuf avT -lbu -gTh -wuC +aPE +huF +iSB avT -lbu -gTh -wuC +aPE +huF +iSB avT -lbu -gTh -wuC +aPE +huF +iSB avT wuf avT @@ -54650,8 +55106,8 @@ yhx yhx yhx yhx -yhx -yhx +nbC +nbC ydp ydp ydp @@ -54740,7 +55196,7 @@ avT avT avT avT -bBh +fUc avT avT avT @@ -54997,7 +55453,7 @@ rxI rxI rxI avT -hGK +tEC avT rxI rxI @@ -55206,7 +55662,7 @@ nOG vEm fet avT -avT +stP avT ydp ydp @@ -55253,9 +55709,9 @@ pjD pjD pjD pjD -fNh -xUL -nyq +cih +pIs +ixO fsh fsh fsh @@ -55461,9 +55917,9 @@ azz aAF yiT pwE -fet -avT -avT +iMk +wMr +bEp bmX avT avT @@ -55511,7 +55967,7 @@ dfx dfx dfx avT -clq +uyV avT dfx dfx @@ -55720,7 +56176,7 @@ uKG vEm fet avT -avT +kHJ avT avT avT @@ -55768,7 +56224,7 @@ avT avT avT avT -bBh +fUc avT avT avT @@ -56025,7 +56481,7 @@ rxI rxI rxI avT -hGK +tEC avT rxI rxI @@ -56281,9 +56737,9 @@ pjD pjD pjD pjD -fNh -xUL -nyq +cih +pIs +ixO fsh fsh fsh @@ -56539,7 +56995,7 @@ dfx dfx dfx avT -clq +uyV avT dfx dfx @@ -56796,7 +57252,7 @@ avT avT avT avT -bBh +fUc avT avT avT @@ -57053,7 +57509,7 @@ rxI rxI rxI avT -hGK +tEC avT rxI rxI @@ -57309,9 +57765,9 @@ pjD pjD pjD pjD -fNh -xUL -nyq +cih +pIs +ixO fsh fsh fsh @@ -57567,7 +58023,7 @@ dfx dfx dfx avT -clq +uyV avT dfx dfx @@ -57824,7 +58280,7 @@ avT avT avT avT -bBh +fUc avT avT avT @@ -58007,7 +58463,7 @@ ydp ydp avT bBh -bmX +avT avT gLH ohf @@ -58081,7 +58537,7 @@ avT avT avT qlH -bBh +fUc qlH avT avT @@ -58286,8 +58742,8 @@ aFI iek wRz erO -aBK -dFJ +tmx +tmx kdA aFI avT @@ -58544,8 +59000,8 @@ cwH lam erO aBK -aDf -aEG +aBK +aBK aFI avT avT @@ -58800,8 +59256,8 @@ lWb dfa obB aAe -aBK -aDf +eXy +aEE aEE bxM avT @@ -59057,8 +59513,8 @@ aFI ays mQK auT -aBK -aDf +hBM +fol aEI bxM avT @@ -59314,7 +59770,7 @@ aFI uJF lam jcS -aBK +hBM aDc aEH bxM @@ -59571,8 +60027,8 @@ nEi jRU uzT gWn -aBK -aDf +hBM +jPf aEK bxM avT @@ -59828,7 +60284,7 @@ eGO ayt nuJ aAw -aBK +rRQ aEJ aEJ aIP @@ -60135,11 +60591,11 @@ yhx yhx yhx yhx -yhx +nbC xUL bBh xUL -yhx +nbC yhx yhx yhx @@ -60392,11 +60848,11 @@ yhx yhx yhx yhx -yhx +nbC xUL bBh xUL -yhx +nbC yhx yhx yhx @@ -60648,12 +61104,12 @@ yhx yhx yhx yhx -yhx -yhx +nbC +nbC xUL bBh xUL -yhx +nbC yhx yhx yhx @@ -60905,12 +61361,12 @@ yhx yhx yhx yhx -yhx +nbC avT xUL bBh xUL -yhx +nbC yhx yhx yhx @@ -61159,15 +61615,15 @@ yhx yhx yhx yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC euS sXy jAq -yhx -yhx +nbC +nbC yhx yhx yhx @@ -61417,13 +61873,13 @@ yhx yhx yhx yhx -yhx +nbC avT avT bBh xUL avT -yhx +nbC yhx yhx yhx @@ -61666,21 +62122,21 @@ yhx yhx yhx yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC yhx -yhx -yhx -yhx -yhx -yhx -yhx -yhx -yhx +nbC avT avT bBh xUL avT -yhx +nbC yhx yhx yhx @@ -61920,10 +62376,10 @@ yhx yhx yhx yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC avT xUL xUL @@ -61931,13 +62387,13 @@ xUL xUL avT avT -yhx +nbC xUL xUL bBh xUL -yhx -yhx +nbC +nbC yhx yhx yhx @@ -62171,11 +62627,11 @@ yhx yhx yhx yhx -yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC +nbC yhx avT avT @@ -62193,7 +62649,7 @@ sXy sXy jAq xUL -yhx +nbC yhx yhx yhx @@ -62409,9 +62865,9 @@ odR dPx sPA sKh +dMo irt -irt -guI +srB avT avT avT @@ -62425,10 +62881,10 @@ ydp ydp ydp yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC avT avT avT @@ -62441,16 +62897,16 @@ xUL xUL xUL avT -yhx +nbC xUL xUL xUL xUL xUL avT -yhx -yhx -yhx +nbC +nbC +nbC yhx yhx yhx @@ -62666,7 +63122,7 @@ aLk aNo aOo sKh -irt +dMo srB bzc avT @@ -62682,7 +63138,7 @@ ydp ydp ydp yhx -yhx +nbC avT avT avT @@ -62696,16 +63152,16 @@ xUL xUL avT avT -yhx -yhx -yhx -yhx -yhx -yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC yhx yhx yhx @@ -62917,12 +63373,12 @@ aDb qWM hIH nuS -aPE +qsD wDR fHF -aPC -aPE -aPE +aVv +qsD +qsD hmM bzc bzc @@ -62949,11 +63405,11 @@ xUL xUL xUL avT -yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC +nbC yhx yhx yhx @@ -63174,12 +63630,12 @@ bxk bxk hIH iFl -aPC +aVv gCC qAF hOc aOp -aPE +qsD hmM bzc bzc @@ -63202,11 +63658,11 @@ avT euS jAq xUL -yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC +nbC yhx yhx yhx @@ -63431,12 +63887,12 @@ hTk vHU qTO aHD -aPC +aVv jOy lqt gPb hFv -aPC +aVv hmM bzc bzc @@ -63458,8 +63914,8 @@ avT euS jAq xUL -yhx -yhx +nbC +nbC yhx yhx yhx @@ -63688,7 +64144,7 @@ srU aFO aFY aHD -aPC +aVv hxx vKT faR @@ -63714,8 +64170,8 @@ avT euS jAq xUL -yhx -yhx +nbC +nbC yhx yhx yhx @@ -63945,7 +64401,7 @@ aDm hLZ aFY aHD -aPC +aVv cKK sub vrg @@ -63970,8 +64426,8 @@ avT euS jAq xUL -yhx -yhx +nbC +nbC yhx yhx yhx @@ -64152,9 +64608,9 @@ ydp ydp ydp ydp -ydp -ydp -avT +bum +bum +bum avT mpj gNb @@ -64202,15 +64658,15 @@ aDp eZi aFU aHD -aPE +qsD jmf fLW utp itp -aPE +qsD aQV vcG -wgu +lzB avT avT ydp @@ -64226,8 +64682,8 @@ avT euS jAq xUL -yhx -yhx +nbC +nbC yhx yhx yhx @@ -64410,8 +64866,8 @@ ydp ydp ydp ydp -ydp -avT +bum +bum avT mpj eSJ @@ -64459,12 +64915,12 @@ aDe rJk aFT jOj -aPE -aKa -aPE -aPE -aPE -aPE +qsD +mSN +qsD +qsD +qsD +qsD aQV vcG lzB @@ -64483,7 +64939,7 @@ euS jAq xUL avT -yhx +nbC yhx yhx yhx @@ -64667,7 +65123,7 @@ ydp ydp ydp ydp -ydp +bum ydp avT mpj @@ -64733,14 +65189,14 @@ ydp ydp ydp ydp -avT +bmX avT avT bBh xUL -yhx -yhx -yhx +nbC +nbC +nbC yhx yhx yhx @@ -64982,7 +65438,7 @@ xUL xUL vcG lzB -bmX +avT avT ydp ydp @@ -64995,8 +65451,8 @@ avT avT bBh xUL -yhx -yhx +nbC +nbC yhx yhx yhx @@ -65190,7 +65646,7 @@ avT avT avT xUL -vBe +xUL mbm iJl iJl @@ -65226,7 +65682,7 @@ xeI rqW rqW aGD -tJi +rqW myh qLm qTG @@ -65252,7 +65708,7 @@ avT avT bBh xUL -yhx +nbC yhx yhx yhx @@ -65479,9 +65935,9 @@ rQJ fwn awb rqW -ayC -rPU -fne +rqW +rqW +rqW rqW rqW fOA @@ -65509,7 +65965,7 @@ avT avT bBh xUL -yhx +nbC yhx yhx yhx @@ -65701,7 +66157,7 @@ ydp ydp avT avT -bmX +avT avT xUL ace @@ -65735,12 +66191,12 @@ iPX rQJ fpS wPD +ihY +rqW +rqW +rqW rqW -pIf -pIf -pIf rqW -aHK myh uJx ikk @@ -65766,7 +66222,7 @@ avT avT bBh xUL -yhx +nbC yhx yhx yhx @@ -65993,11 +66449,11 @@ rQJ fvz awb rqW -ayC -azH -fne rqW -aCr +rqW +rqW +rqW +rqW myh lHH oYn @@ -66008,7 +66464,7 @@ wUr avT avT avT -vcG +lcv wgu avT avT @@ -66023,7 +66479,7 @@ avT avT bBh xUL -yhx +nbC yhx yhx yhx @@ -66218,7 +66674,7 @@ avT avT avT avT -bGt +ace avT avT avT @@ -66475,7 +66931,7 @@ ydp avT avT avT -ace +bGt avT avT avT @@ -66510,8 +66966,8 @@ myh rQJ rQJ rQJ -myh -myh +eXO +kjx rQJ wUr wUr @@ -66767,9 +67223,9 @@ xxi ayD cGz sqg -avT -ydp -ydp +xdr +ihY +rQJ ydp ydp ydp @@ -67023,10 +67479,10 @@ oaS eqP tcj viF -ayG -avT -avT -ydp +sqg +pJm +ihY +rQJ ydp ydp ydp @@ -67281,9 +67737,9 @@ iat pEF nez sqg -avT -avT -avT +fEz +sae +rQJ ydp ydp ydp @@ -67538,9 +67994,9 @@ axr ayE nez sqg -ydp -ydp -avT +rQJ +rQJ +rQJ ydp ydp ydp @@ -67807,7 +68263,7 @@ ydp avT avT avT -vcG +lcv wgu avT avT @@ -68042,7 +68498,7 @@ ujE grz arP xWq -wje +xWI nrd wje sqg @@ -68792,7 +69248,7 @@ ace avT avT avT -bmX +avT avT avT avT @@ -69058,7 +69514,7 @@ avT avT avT vBe -xnm +tLb xUL rhX lXR @@ -69316,12 +69772,12 @@ avT avT xUL xnm -xUL +vBe eTu kHd ljT kHd -gVo +kHd rhX xUL xUL @@ -69573,7 +70029,7 @@ avT avT xUL xnm -xUL +vBe eTu kHd apK @@ -69606,7 +70062,7 @@ ydp ydp avT avT -vcG +lcv wgu avT avT @@ -69829,7 +70285,7 @@ avT avT avT vBe -xnm +tLb xUL rhX rhX @@ -70588,18 +71044,18 @@ avT avT avT ace -xUL vBe xUL -xUL -xUL -xUL vBe xUL xUL xUL vBe xUL +xUL +xUL +xUL +vBe xnm avT avT @@ -70626,9 +71082,9 @@ ydp ydp ydp ydp -avT -avT -avT +ydp +ydp +ydp avT avT avT @@ -70847,11 +71303,11 @@ avT pQd kLh kQr +qOJ lZn lZn lZn -lZn -lZn +qOJ lZn lZn lZn @@ -70881,12 +71337,12 @@ ydp ydp ydp avT -avT -avT -avT -avT -avT -avT +ydp +ydp +ydp +ydp +ydp +ydp avT avT avT @@ -71138,23 +71594,23 @@ ydp ydp avT avT +ydp +ydp +ydp +ydp +ydp +ydp avT avT avT -avT -avT -avT -avT -avT -avT -avT +xUL vcG lzB avT avT avT avT -bmX +avT ydp ydp ydp @@ -71360,7 +71816,7 @@ avT avT avT xZL -qZO +xBk avT avT avT @@ -71391,21 +71847,21 @@ ydp ydp ydp ydp +ydp avT avT +bmX +ydp +ydp +ydp +ydp +ydp +ydp +avT avT avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT -avT -vcG +lcv wgu xUL xUL @@ -71450,7 +71906,7 @@ nxv kYF bVM avT -bmX +avT ydp ydp ydp @@ -71629,7 +72085,7 @@ avT avT avT avT -bmX +avT avT avT ydp @@ -71651,17 +72107,17 @@ ydp avT avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL +ydp +ydp +ydp +ydp +ydp +ydp avT +avT +avT +avT +xUL vcG lzB xUL @@ -71873,8 +72329,8 @@ ydp avT avT avT -xZL -xBk +aez +qZO avT avT avT @@ -71907,18 +72363,18 @@ ydp avT avT avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT vcG lzB avT @@ -72164,17 +72620,17 @@ ydp avT avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT xUL vcG lzB @@ -72419,20 +72875,20 @@ ydp ydp ydp avT -bmX +avT +avT +avT +avT +avT +ydp +ydp +ydp +avT +avT +avT +avT avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT vcG lzB avT @@ -72678,18 +73134,18 @@ ydp avT avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL avT +avT +avT +avT +ydp +avT +avT +avT +avT +avT +avT +xUL vcG lzB avT @@ -72707,7 +73163,7 @@ avT avT avT avT -avT +bmX wql wql vEG @@ -72935,18 +73391,18 @@ ydp avT avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL vcG lzB avT @@ -73192,19 +73648,19 @@ ydp ydp avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL avT -vcG +avT +avT +avT +avT +avT +avT +ydp +ydp +avT +avT +xUL +lcv wgu avT avT @@ -73217,7 +73673,7 @@ ydp ydp ydp ydp -bmX +avT avT wql wql @@ -73429,7 +73885,8 @@ avT avT avT avT -avT +bmX +ydp ydp ydp ydp @@ -73449,18 +73906,17 @@ ydp ydp avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +avT +xUL vcG lzB avT @@ -73507,7 +73963,7 @@ bUD bVM avT avT -bmX +avT avT avT avT @@ -73704,20 +74160,20 @@ ydp ydp ydp ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +ydp +ydp avT avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT vcG lzB avT @@ -73929,7 +74385,7 @@ avT avT avT avT -xZL +aez qZO avT avT @@ -73961,20 +74417,20 @@ ydp ydp ydp ydp +ydp +ydp +avT +avT +avT +ydp +ydp +avT +avT +avT +avT avT avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT vcG lzB xUL @@ -74218,20 +74674,20 @@ ydp ydp ydp ydp +ydp +avT +avT +avT +avT +ydp +ydp +ydp +avT +avT +avT avT avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT vcG lzB xUL @@ -74477,20 +74933,20 @@ ydp ydp avT avT +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -vcG -lzB +lcv +nDN xUL xUL xUL @@ -74733,19 +75189,19 @@ ydp ydp avT avT +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT avT xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -avT vcG lzB xUL @@ -74800,7 +75256,7 @@ cer avT avT avT -bmX +avT avT avT avT @@ -74992,19 +75448,19 @@ avT avT avT avT -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL -xUL avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL vcG -wgu +lzB xUL xUL xUL @@ -75249,17 +75705,17 @@ avT avT avT avT -avT xUL xUL xUL -avT -avT xUL xUL xUL -avT -avT +xUL +xUL +xUL +xUL +xUL vcG lzB avT @@ -75512,7 +75968,7 @@ nGx nGx nGx nGx -nGx +hnN nGx nGx nGx @@ -75526,8 +75982,8 @@ avT avT bok unA -bJQ -bJQ +xjZ +xjZ unA avT avT @@ -75762,7 +76218,7 @@ avT avT avT avT -tFr +vcG dvc sLv sLv @@ -75985,7 +76441,7 @@ avT avT avT avT -xZL +aez qZO avT avT @@ -76033,7 +76489,7 @@ avT avT avT avT -bmX +avT avT avT bok @@ -76094,7 +76550,7 @@ ruD clR avT avT -bmX +avT avT avT avT @@ -76534,7 +76990,7 @@ gky vmM jOo azc -lzB +nDN avT avT avT @@ -76559,7 +77015,7 @@ wcB unA avT avT -bmX +avT avT bwt cTD @@ -76808,7 +77264,7 @@ ncg aXh jHC bok -ivM +uFq bok unA uFq @@ -77263,12 +77719,12 @@ ydp ydp ydp ydp -avT -avT -avT -avT -avT -avT +pgp +iHM +iHM +iHM +iHM +iHM avT xZL xBk @@ -77520,15 +77976,15 @@ ydp ydp ydp ydp +pgp +sTt +nRA +pDg +qSF +iHM avT -avT -avT -bHt -nZE -nZE -nZE aez -xBk +qZO avT avT ydp @@ -77561,7 +78017,7 @@ kxI dPM xNs wwx -nDd +aAh aDQ avT avT @@ -77777,15 +78233,15 @@ ydp ydp ydp avT -avT -avT -avT +pgp +xAv +xAv mps xAv -ruo -ruo +iHM +avT acQ -aUb +xBk avT avT avT @@ -78021,28 +78477,28 @@ yhx yhx yhx yhx -ydp -ydp -ydp -ydp -ydp -ydp +nbC +nbC +nbC +pgp +pgp +pgp +pgp +pgp +pgp +pgp +pgp +pgp +pgp +pgp +rKC +bjR +xAv +xAv +pgp avT -avT -avT -avT -avT -avT -avT -avT -avT -avT -axL -aaM -nZE -nZE -abU -vBe +xZL +nYd avT avT avT @@ -78278,28 +78734,28 @@ yhx yhx yhx yhx -ydp -ydp -ydp -ydp -ydp -ydp +nbC +nbC avT -avT -avT -avT -avT -avT -iHM +pgp +tJi +vdW +pgp +tJi +vdW +pgp +tJi +vdW +pgp tOz -iHM +tUq gCO -iHM -axN -ruo -ruo -aAh -vzS +hvG +pgp +pgp +pgp +xZL +xBk avT ydp ydp @@ -78535,27 +78991,27 @@ yhx yhx yhx yhx -ydp -ydp -ydp -ydp -ydp -ydp avT avT avT -avT -avT -avT -iHM -kRk -iHM -kRk -iHM -avT -avT -avT -xZL +pgp +tSd +vzS +pgp +tSd +rEF +pgp +tSd +vFT +pgp +vow +swQ +gCO +swQ +kXL +mtP +tWs +aez xBk avT ydp @@ -78591,13 +79047,13 @@ spa dIj pIH bpT +dMo irt irt +dMo irt irt -irt -irt -irt +dMo gZS uyK aRt @@ -78792,27 +79248,27 @@ yhx yhx yhx yhx -ydp -ydp -ydp -ydp -ydp -ydp avT -avT -iHM -iHM -iHM -iHM -iHM +pgp +pgp +pgp +uRg +pgp +pgp +kWz +pgp +pgp +eCS +pgp +pgp vow -iHM -vow -iHM -iHM -iHM -iHM -xZL +swQ +gCO +swQ +kXL +mtP +tWs +aez xBk avT ydp @@ -79048,26 +79504,26 @@ yhx yhx yhx yhx -yhx -ydp -ydp -ydp -ydp -ydp -ydp -avT +ooR avT iHM -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD +oME +rPU +swQ +fSb +pqm +swQ +swQ +rPU +swQ +swQ +vQz +vow +swQ +gCO +swQ +iHM +rbb iHM xZL xBk @@ -79103,8 +79559,8 @@ cPI hPe vAs ktw -xZL -lzB +aez +nDN avT avT avT @@ -79305,26 +79761,26 @@ ydp ydp ydp ydp -ydp -ydp -ydp -ydp -ydp -ydp -ydp avT avT iHM -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD +pIf +swQ +swQ +swQ +swQ +jjB +ugk +ugk +ugk +ugk +ugk +fkA +ugk +hUg +qim +iHM +iHM iHM xZL xBk @@ -79346,7 +79802,7 @@ ydp ydp ydp avT -bmX +avT avT avT avT @@ -79360,7 +79816,7 @@ spa vir fkr ktw -oME +xZL lzB avT avT @@ -79562,27 +80018,27 @@ ydp ydp ydp ydp -ydp -ydp -ydp -ydp -ydp -ydp -avT avT avT iHM -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD +ruo +tFu +swQ +swQ +hWp +ptH +iQu +iQu +iQu +iQu +mHm +bfo +swQ +gCO iHM +lJC +avT +avT xZL xBk avT @@ -79820,29 +80276,29 @@ ydp ydp ydp ydp -ydp -ydp -ydp -ydp -avT -avT -avT avT +pgp +pgp +pgp +raM +raM +raM +raM +mfU +raM +raM +raM +pgp +vVJ +hCx +lOa iHM -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -iHM -xZL -xBk -vBe +avT +avT +avT +aez +qZO +xUL ydp ydp ydp @@ -79957,7 +80413,7 @@ jQj avT avT avT -bmX +avT avT avT avT @@ -80078,25 +80534,25 @@ ydp ydp ydp ydp -ydp -ydp -ydp +pgp +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +raM +eoH +xAv +nJB +iHM +avT +avT avT -xUL -cav -xUL -iHM -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -kHD -iHM xZL xBk xUL @@ -80125,7 +80581,7 @@ sLv sLv sLv sLv -sLv +cEs sLv sLv sLv @@ -80335,25 +80791,25 @@ ydp ydp ydp ydp -ydp -ydp +raM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +raM +nlF +xAv +oUT +iHM +avT avT avT -xUL -xUL -xUL -iHM -iHM -iHM -iHM -iHM -nlF -iHM -nlF -iHM -iHM -iHM -iHM xZL xBk avT @@ -80592,20 +81048,20 @@ ydp ydp ydp ydp -ydp -ydp -avT -avT -xUL -xUL -xUL -avT -avT -avT -avT -iHM -lJN -vQk +raM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +raM +nlF +xAv gUc iHM avT @@ -80849,21 +81305,21 @@ ydp ydp ydp ydp -ydp -ydp -avT -pgp -xUL -xUL -xUL -pgp -avT -avT -avT -iHM -kRk -kRk -kRk +raM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +raM +nlF +xAv +oUT iHM avT avT @@ -81106,28 +81562,28 @@ ydp ydp ydp ydp -ydp -avT -avT pgp -xUL -bSC -xUL -pgp -avT -avT -avT -iHM -vow -iHM -vow +kHD +kHD +kHD +fIk +kHD +kHD +kHD +kHD +kHD +kHD +raM +eoH +xAv +nJB iHM avT avT avT -xZL -xBk -iSB +aez +qZO +avT wdv xUL xUL @@ -81363,18 +81819,18 @@ ydp ydp ydp ydp -avT -avT -iHM -iHM +pgp +pgp pgp raM -iHM pgp -iHM -iHM -iHM -iHM +raM +raM +mfU +raM +raM +raM +pgp rRk xfs qHL @@ -81503,7 +81959,7 @@ avT avT avT avT -avT +bmX ydp ydp ydp @@ -81625,20 +82081,20 @@ xUL aNL mtP dvs -mtP -mtP -dAi -mtP -mtP -mtP -mtP -mtP -lLv -mtP +jjB +kIV +ugk +ugk +ugk +ugk +utY +mEH +ugk +hUg oBD iHM -lJC -lJC +iHM +iHM xZL xBk avT @@ -81661,7 +82117,7 @@ avT avT avT tFr -lzB +nDN avT avT avT @@ -81882,30 +82338,30 @@ xUL aNL fTM dvs -mtP +swQ naE -mtP +bqb aaU nOY -mtP -naE +iwH +hlQ duB tsK -tsK +nEH tsK iuC -tsK +cTV pXb aSE xBk xUL xUL xUL +xUL +xUL vBe xUL xUL -xUL -xUL vBe xUL xUL @@ -81915,7 +82371,7 @@ xUL vBe xUL xUL -xUL +vBe xUL vcG lzB @@ -81975,7 +82431,7 @@ anA wbT rTs hTL -uRg +hTL jab jFy qJV @@ -82140,39 +82596,39 @@ iHM pgp pgp pgp -pgp +eyc fPM pgp pgp pgp pgp vhb -mtP +swQ vDI ugk hAx -ugk +ord nrY -vsM +vko aUb xUL xUL xUL xUL xUL +vBe +xUL +xUL +vBe xUL xUL xUL xUL xUL +vBe xUL xUL -xUL -xUL -xUL -xUL -xUL -xUL +vBe xUL vcG lzB @@ -82392,19 +82848,19 @@ xUL ydp ydp ydp -bmX +avT avT pgp aab dZV -dZV -gLk +wgM +kdy pgp qFH nBd wfS iJs -mtP +swQ sgL qxk pgp @@ -82418,7 +82874,7 @@ xUL xUL xUL avT -bmX +avT avT avT avT @@ -82478,7 +82934,7 @@ vAs vAs krT pze -bEi +sLF bEi lbp bAs @@ -82654,25 +83110,25 @@ avT pgp aac gLk -gLk -gLk +hHV +kdy pgp vVZ mWy pgp iJs -mtP +swQ inA qMn pgp -wdv -wdv +pgp +pgp +xUL +xUL +xUL +xUL +vBe vBe -xUL -xUL -xUL -xUL -xUL xUL avT avT @@ -82740,7 +83196,7 @@ bFT bCO gRE thV -bCO +qBl bEa kxj aaw @@ -82911,7 +83367,7 @@ avT pgp aab aad -gLk +gdH fBs pgp pgp @@ -83457,10 +83913,10 @@ ydp ydp avT avT -bmX +avT avT tFr -lzB +nDN avT avT ydp @@ -84178,7 +84634,7 @@ ydp ydp ydp ydp -avT +bmX avT ydp ydp @@ -84693,7 +85149,7 @@ ydp ydp avT avT -bmX +avT avT avT avT @@ -84795,7 +85251,7 @@ hJE cmC aIt bCO -bBN +hyx vTF tRe eVp @@ -85080,7 +85536,7 @@ bPn avT avT avT -bmX +avT avT avT avT @@ -85259,7 +85715,7 @@ ydp avT avT tFr -lzB +nDN avT avT avT @@ -85432,23 +85888,23 @@ yhx wuf avT nuu -sXy -sXy +aar +aar fNh -xUL +abU nyq -sXy +aar fNh -xUL +abU nyq -sXy +aar fNh -xUL +abU nyq -sXy -sXy -sXy -sXy +aar +aar +aar +aar sDD eNK jwc @@ -86290,7 +86746,7 @@ vcG lzB avT avT -bmX +avT avT ydp ydp @@ -86512,7 +86968,7 @@ mGp rgm wAx wAx -wAx +ule uEz uEz wzf @@ -87026,11 +87482,11 @@ mKv sAh sAh acb -aar +urI +uEz +uEz uEz uEz -hrS -lQJ lia uvB tOY @@ -87058,7 +87514,7 @@ xUL xUL avT tFr -lzB +nDN avT avT ydp @@ -87103,7 +87559,7 @@ avT avT avT avT -bmX +avT avT avT avT @@ -87285,10 +87741,10 @@ sAh acb urI qkO -uEz -blD +qnx kge -gls +kge +qnx tgd tRC pJS @@ -87382,7 +87838,7 @@ avT avT avT avT -bmX +avT avT avT ydp @@ -87542,12 +87998,12 @@ qss qss ylW uoV -uEz -blD +qnx +pgk pgk bKl -iNK -chN +tgd +tRC pJS sWD bNF @@ -87799,9 +88255,9 @@ sAh acb urI uoV -uEz -blD -pgk +qnx +kbE +kbE qnx pbf sFw @@ -87884,7 +88340,7 @@ sXy ikA avT avT -bmX +avT avT avT avT @@ -88056,10 +88512,10 @@ sAh acb urI uoV -uEz -blD -eLl -igK +qnx +kge +kge +qnx xcL hop pJS @@ -88287,14 +88743,14 @@ ydp ydp ydp ydp -bmX +avT avT avT bBh avT aKf irQ -huF +cfp cfp gxY cfp @@ -88313,11 +88769,11 @@ qss oXl pPz uoV -uEz -hsQ -cDO -jAT -nmL +qnx +pgk +pgk +qnx +tgd vKP pJS hNg @@ -88405,7 +88861,7 @@ ydp ydp ydp ydp -avT +bmX avT ydp ydp @@ -88552,7 +89008,7 @@ avT aKf irQ jLG -piu +lhr piu xac gNI @@ -88570,12 +89026,12 @@ wAx wAx wAx hru -uEz -uEz -uEz -ejw -rTv -eOO +qnx +kbE +kbE +qnx +tgd +tRC pJS hNg bNF @@ -88802,7 +89258,7 @@ ydp ydp ydp avT -avT +bmX ydp bBh avT @@ -88830,9 +89286,9 @@ pbg uEz uEz uEz -ejw -rTv -eOO +cvN +gjZ +tRC pJS jiY bNF @@ -88857,7 +89313,7 @@ xUL xiw avT tFr -lzB +nDN avT avT avT @@ -88945,7 +89401,7 @@ ydp ydp ydp avT -bmX +avT avT ydp ydp @@ -90607,7 +91063,7 @@ bBh avT aKf gLO -jvV +cfp evO cfp kBe @@ -90656,7 +91112,7 @@ avT avT avT tFr -lzB +nDN avT avT avT @@ -91422,7 +91878,7 @@ uMF jsl gFM cuY -nGx +hnN nGx nGx nGx @@ -91679,11 +92135,11 @@ dks nEl ust sHJ +cEs sLv sLv sLv sLv -ybT asr avT avT @@ -91989,12 +92445,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT bBh avT -yhx +nbC yhx yhx yhx @@ -92195,7 +92651,7 @@ lGB jJu avT avT -bmX +avT avT avT avT @@ -92246,12 +92702,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT bBh avT -yhx +nbC yhx yhx yhx @@ -92399,8 +92855,8 @@ bqN avT xUL xUL -bmX avT +bmX bxL bxL bxL @@ -92408,7 +92864,7 @@ xUL bxL dri dri -dDC +uot nQp kVx eLQ @@ -92503,12 +92959,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT bBh avT -yhx +nbC yhx yhx yhx @@ -92641,7 +93097,7 @@ avT avT bzc xUL -avT +bmX avT ydp ydp @@ -92660,7 +93116,7 @@ avT avT bxL bxL -bum +axN xUL xUL dri @@ -92758,14 +93214,14 @@ yhx yhx yhx yhx -yhx -yhx -yhx +nbC +nbC +nbC avT avT bBh avT -yhx +nbC yhx yhx yhx @@ -92895,7 +93351,7 @@ ydp ydp ydp avT -avT +bum bzh xUL avT @@ -92917,7 +93373,7 @@ avT bxL bxL bum -bum +axN xUL xUL rww @@ -92925,7 +93381,7 @@ rww rww ttQ lNU -bZI +nDd bZI nNV dBP @@ -93015,14 +93471,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT avT bBh avT -yhx +nbC yhx yhx yhx @@ -93152,9 +93608,9 @@ ydp ydp ydp avT -avT -avT -bmX +bum +bum +bum avT avT ydp @@ -93174,7 +93630,7 @@ bxL bxL bum bum -bum +axN xUL xUL jrq @@ -93272,14 +93728,14 @@ yhx yhx yhx yhx -yhx +nbC avT euS sXy sXy jAq avT -yhx +nbC yhx yhx yhx @@ -93409,10 +93865,10 @@ ydp ydp ydp ydp -avT -avT -avT -avT +bum +bum +bum +bum ydp ydp ydp @@ -93431,7 +93887,7 @@ bKI bum bum bum -bum +axN xUL xUL rww @@ -93529,14 +93985,14 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT avT avT -yhx +nbC yhx yhx yhx @@ -93667,7 +94123,7 @@ ydp ydp avT avT -avT +bum avT avT ydp @@ -93688,7 +94144,7 @@ bKI bum bum bum -bum +axN xUL xUL dri @@ -93786,14 +94242,14 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx -yhx -yhx +nbC +nbC +nbC yhx yhx yhx @@ -93945,7 +94401,7 @@ bKI bum bum bum -bum +axN xUL xUL wmB @@ -94043,12 +94499,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -94199,10 +94655,10 @@ bKI bCC bCC bKI -bum -bum -bum -bum +azH +azH +azH +aHK xUL xUL fen @@ -94245,7 +94701,7 @@ qzz uqa iIQ avT -bmX +avT avT avT ydp @@ -94300,12 +94756,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -94557,7 +95013,7 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT @@ -94709,7 +95165,7 @@ bqN bqN bqN bxL -bum +axN xUL xUL xUL @@ -94814,12 +95270,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -94966,8 +95422,8 @@ bqN bqN bxL bxL -bum -bum +ayC +aEG xUL xUL bKI @@ -95071,12 +95527,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -95224,7 +95680,7 @@ bqN bqN bxL bum -bum +axN xUL xUL bKI @@ -95328,12 +95784,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -95481,7 +95937,7 @@ bqN bxL bxL bum -bum +axN xUL xUL bKI @@ -95585,12 +96041,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -95737,8 +96193,8 @@ bqN bqN bxL bxL -bum -bum +azH +aHK xUL xUL bKI @@ -95840,14 +96296,14 @@ yhx yhx yhx yhx -yhx -yhx -yhx +nbC +nbC +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -96005,7 +96461,7 @@ bKI bKI bMT fgj -nOk +lQp lfG sdr gyE @@ -96097,14 +96553,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -96359,9 +96815,9 @@ avT avT avT bBh -yhx -yhx -yhx +nbC +nbC +nbC yhx yhx yhx @@ -96508,9 +96964,9 @@ bqN bqN bxL bxL -bum -bum -bum +aCr +aCr +aEG xUL bOb bKI @@ -96611,7 +97067,7 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT @@ -96767,7 +97223,7 @@ bqN bxL bum bum -bum +axN xUL bOb bKI @@ -96868,12 +97324,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -97024,7 +97480,7 @@ bqN bxL bum bum -bum +axN xUL bOb bKI @@ -97073,7 +97529,7 @@ wFO mZp avT avT -bmX +avT avT avT avT @@ -97125,12 +97581,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -97281,7 +97737,7 @@ bqN bxL bum bum -bum +axN xUL bOb bKI @@ -97382,12 +97838,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -97538,13 +97994,13 @@ bqN bxL bum bum -bum +axN xUL bOb -xUL -xUL -xUL -xUL +dDC +bum +bum +axN xbp onY gNy @@ -97639,12 +98095,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -97795,13 +98251,13 @@ bxL bxL bxL bum -bum +axN xUL bOb -bum -bum -bum -bum +dFJ +azH +azH +aHK xbp fen eHK @@ -97896,12 +98352,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -98052,7 +98508,7 @@ bxL bxL bxL bum -bum +axN bDA bGW bYY @@ -98153,12 +98609,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -98309,7 +98765,7 @@ bxL bxL bxL bum -bum +axN bFx bOb bKI @@ -98410,7 +98866,7 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT @@ -98566,7 +99022,7 @@ bqN bqN bxL bum -bum +axN bFx bRD caS @@ -98667,14 +99123,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx -yhx -yhx +nbC +nbC +nbC yhx yhx yhx @@ -98823,7 +99279,7 @@ bqN bxL bxL bum -bum +axN aEF bYY ccD @@ -98924,14 +99380,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -99079,8 +99535,8 @@ bqN bqN bxL bxL -bum -bum +azH +aHK xUL xUL bKI @@ -99181,14 +99637,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -99340,12 +99796,13 @@ xUL xUL xUL xUL +dDC bum bum -bum -bum +axN xbp xUL +dDC bum bum bum @@ -99359,8 +99816,7 @@ bum bum bum bum -bum -bum +axN rGc jPj ucC @@ -99438,14 +99894,14 @@ yhx yhx yhx yhx -yhx -yhx -yhx +nbC +nbC +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -99597,27 +100053,27 @@ xUL xUL xUL xUL -bum -bum -bum -bum +dFJ +azH +azH +aHK xbp xUL -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum +dFJ +azH +azH +azH +azH +azH +azH +azH +azH +azH +azH +azH +azH +azH +aHK dQW jls ucC @@ -99697,12 +100153,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -99850,8 +100306,8 @@ bqN bqN bxL bxL -bum -bum +aCr +aEG xUL xUL xUL @@ -99954,7 +100410,7 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT @@ -100108,7 +100564,7 @@ bqN bxL bxL bum -bum +axN xUL xUL xUL @@ -100211,12 +100667,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -100366,24 +100822,24 @@ bxL bxL bxL bum -bum -bum -bum -bum -bum -bum +aCr +aCr +aCr +aCr +aCr +aEG xbp xUL -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum +lQJ +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aEG rGc tdX tdX @@ -100397,7 +100853,7 @@ aNU kVD noQ leT -leT +mqd leT iCq leT @@ -100408,7 +100864,7 @@ wku xGy lBH bnU -bmX +avT avT ydp ydp @@ -100468,12 +100924,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -100628,9 +101084,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -100639,8 +101096,7 @@ bum bum bum bum -bum -bum +axN dQW tdX tdX @@ -100725,12 +101181,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -100885,9 +101341,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -100896,8 +101353,7 @@ bum bum bum bum -bum -bum +axN rGc tdX tdX @@ -100982,12 +101438,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -101142,9 +101598,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -101153,8 +101610,7 @@ bum bum bum bum -bum -bum +axN dQW tdX tdX @@ -101244,7 +101700,7 @@ avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -101399,9 +101855,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -101410,8 +101867,7 @@ bum bum bum bum -bum -bum +axN rGc jPj dQW @@ -101494,14 +101950,14 @@ yhx yhx yhx yhx -yhx -yhx -yhx +nbC +nbC +nbC avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -101656,9 +102112,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -101667,8 +102124,7 @@ bum bum bum bum -bum -bum +axN dQW cly cly @@ -101751,14 +102207,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -101913,9 +102369,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -101924,8 +102381,7 @@ bum bum bum bum -bum -bum +axN xUL xUL xUL @@ -102008,14 +102464,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh avT avT -yhx +nbC yhx yhx yhx @@ -102170,9 +102626,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -102181,8 +102638,7 @@ bum bum bum bum -bum -bum +axN xUL xUL xUL @@ -102265,14 +102721,14 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx -yhx -yhx +nbC +nbC +nbC yhx yhx yhx @@ -102427,9 +102883,10 @@ bum bum bum bum -bum +axN xbp xUL +dDC bum bum bum @@ -102438,16 +102895,15 @@ bum bum bum bum -bum -bum +axN xUL xUL xUL xUL xUL -bum -bum -bum +lQJ +aCr +aCr hBq pCv iuP @@ -102522,12 +102978,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -102679,24 +103135,24 @@ bqN bxL bxL bxL -bum -bum -bum -bum -bum -bum +azH +azH +azH +azH +azH +aHK xbp xUL -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum +dFJ +azH +azH +azH +azH +azH +azH +azH +azH +aHK xUL xUL xUL @@ -102779,12 +103235,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -103036,12 +103492,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -103293,12 +103749,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -103450,27 +103906,27 @@ bqN bqN bxL bxL -bum -bum -bum -bum -bum -bum +aCr +aCr +aCr +aCr +aCr +aEG xUL xUL -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum +lQJ +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aEG xUL xbp sTq @@ -103550,12 +104006,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -103712,9 +104168,10 @@ bum bum bum bum -bum +axN xUL xUL +dDC bum bum bum @@ -103726,11 +104183,10 @@ bum bum bum bum -bum -bum +axN xUL xbp -sTq +lgg hBq xBV hBq @@ -103750,7 +104206,7 @@ avT avT avT avT -bmX +avT ydp ydp ydp @@ -103807,12 +104263,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -103969,9 +104425,10 @@ bum bum bum bum -bum +axN xUL xUL +dDC bum bum bum @@ -103983,8 +104440,7 @@ bum bum bum bum -bum -bum +axN rGc rvf umD @@ -104064,12 +104520,12 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx +nbC yhx yhx yhx @@ -104226,9 +104682,10 @@ bum bum bum bum -bum +axN xUL xUL +dDC bum bum bum @@ -104240,8 +104697,7 @@ bum bum bum bum -bum -bum +axN odg xbp bZa @@ -104321,13 +104777,13 @@ yhx yhx yhx yhx -yhx +nbC avT avT avT bBh -yhx -yhx +nbC +nbC yhx yhx yhx @@ -104351,7 +104807,7 @@ faJ rot avT jxB -aQK +sQk rot avT wuf @@ -104483,9 +104939,10 @@ bum bum bum bum -bum +axN xUL xUL +dDC bum bum bum @@ -104497,12 +104954,11 @@ bum bum bum bum -bum -bum +axN odg xbp -sTq -sTq +cVa +qZb lHa nQd umD @@ -104584,8 +105040,8 @@ avT avT bBh avT -yhx -yhx +nbC +nbC yhx yhx yhx @@ -104608,7 +105064,7 @@ vDy rot avT jxB -qfJ +qjF rot avT wuf @@ -104740,9 +105196,10 @@ bum bum bum bum -bum +axN xUL xUL +dDC bum bum bum @@ -104754,12 +105211,11 @@ bum bum bum bum -bum -bum +axN odg xbp -sTq -sTq +lgg +oGZ pQg tFN tFN @@ -104835,13 +105291,13 @@ yhx yhx yhx yhx -yhx -yhx -yhx +nbC +nbC +nbC avT bBh avT -yhx +nbC yhx yhx yhx @@ -104865,7 +105321,7 @@ vDy rot avT jxB -qfJ +qjF rot avT wuf @@ -104997,9 +105453,10 @@ bxL bum bum bum -bum +axN xUL xUL +dDC bum bum bum @@ -105011,8 +105468,7 @@ bum bum bum bum -bum -bum +axN dQW rvf cly @@ -105094,12 +105550,12 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT -yhx -yhx +nbC +nbC yhx yhx yhx @@ -105122,7 +105578,7 @@ vDy rot avT jxB -qfJ +qjF rot avT avT @@ -105254,9 +105710,10 @@ bxL bxL bxL bum -bum +axN xUL xUL +dDC bum bum bum @@ -105268,8 +105725,7 @@ bum bum bum bum -bum -bum +axN xUL wDd alE @@ -105351,7 +105807,7 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT @@ -105379,7 +105835,7 @@ vDy rot avT jxB -qfJ +qjF rot avT avT @@ -105514,22 +105970,22 @@ bKI bKI xUL xUL -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum +dFJ +azH +azH +azH +azH +azH +azH +azH +azH +azH +azH +azH +aHK +xUL +xUL +xUL xUL bOb xUL @@ -105608,7 +106064,7 @@ yhx yhx yhx yhx -yhx +nbC avT bBh avT @@ -105628,15 +106084,15 @@ avT avT avT avT -hGK +jEm avT avT avT -hGK +jEm avT avT avT -hGK +jEm avT avT avT @@ -105865,7 +106321,7 @@ yhx yhx yhx yhx -yhx +nbC avT rUq sXy @@ -105877,26 +106333,26 @@ oBl uyM dUH fUm -sXy -sXy -sXy -sXy -sXy -sXy -sXy -fNh -xUL -xUL -xUL -xUL -xUL -nyq -sXy -fNh -xUL -nyq -sXy -sXy +wMH +wMH +wMH +wMH +wMH +wMH +wMH +cWI +jWw +jWw +jWw +jWw +jWw +gIW +wMH +cWI +jWw +gIW +wMH +wMH uRc avT wuf @@ -106122,8 +106578,8 @@ yhx yhx yhx yhx -yhx -yhx +nbC +nbC avT avT avT @@ -106142,15 +106598,15 @@ avT avT avT avT -clq +oPk avT avT avT -clq +oPk avT avT avT -clq +oPk avT avT avT @@ -106285,24 +106741,24 @@ bKI bKI bxL bxL -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum -bum +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr +aCr bxL bqN bqN @@ -106311,7 +106767,7 @@ bqN avT avT avT -bmX +avT avT avT avT @@ -106399,15 +106855,15 @@ avT avT avT jxB -mmM +qIW rot avT jxB -mmM +qIW rot avT jxB -knR +lQd rot avT avT @@ -106637,11 +107093,11 @@ yhx yhx yhx yhx -yhx -yhx -yhx -yhx -yhx +nbC +nbC +nbC +nbC +nbC yhx yhx yhx @@ -106656,15 +107112,15 @@ avT avT avT jxB -mmM +qIW rot avT jxB -mmM +qIW rot avT jxB -knR +lQd rot avT avT @@ -106913,15 +107369,15 @@ avT avT avT jxB -mmM +qIW rot avT jxB -mmM +qIW rot avT jxB -knR +lQd rot avT wuf @@ -107170,15 +107626,15 @@ avT avT avT jxB -mmM +qIW rot avT jxB -mmM +qIW rot avT jxB -knR +lQd rot avT wuf @@ -107427,15 +107883,15 @@ avT avT avT jxB -gTh +pvP rot avT jxB -gTh +pvP rot avT jxB -gTh +pvP rot avT wuf diff --git a/_maps/shuttles/emergency_arena.dmm b/_maps/shuttles/emergency_arena.dmm index 1314b8a732..2ba9206830 100644 --- a/_maps/shuttles/emergency_arena.dmm +++ b/_maps/shuttles/emergency_arena.dmm @@ -43,7 +43,7 @@ }, /area/shuttle/escape/arena) "l" = ( -/obj/structure/closet/crate/necropolis/tendril, +/obj/structure/closet/crate/necropolis/tendril/magic, /turf/open/indestructible/necropolis/air, /area/shuttle/escape/arena) "m" = ( @@ -65,10 +65,18 @@ /obj/structure/healingfountain, /turf/open/indestructible/necropolis/air, /area/shuttle/escape/arena) +"t" = ( +/obj/structure/closet/crate/necropolis/tendril/misc, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape/arena) "z" = ( /obj/effect/landmark/shuttle_arena_safe, /turf/open/indestructible/necropolis/air, /area/shuttle/escape/arena) +"H" = ( +/obj/structure/closet/crate/necropolis/tendril/weapon_armor, +/turf/open/indestructible/necropolis/air, +/area/shuttle/escape/arena) (1,1,1) = {" a @@ -264,16 +272,16 @@ m l j m -l +H j k -l +H j m -l +t j m -j +t j p g @@ -524,16 +532,16 @@ m l j m -l +H j m -l +H j m -l +t j m -j +t j p g diff --git a/byond-extools.dll b/byond-extools.dll index bd6b34c48e..c404bf1be5 100644 Binary files a/byond-extools.dll and b/byond-extools.dll differ diff --git a/byond-extools.pdb b/byond-extools.pdb new file mode 100644 index 0000000000..f89dc06441 Binary files /dev/null and b/byond-extools.pdb differ diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 035563627f..62438ac7c1 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -79,21 +79,22 @@ //DNA - Because fuck you and your magic numbers being all over the codebase. #define DNA_BLOCK_SIZE 3 -#define DNA_UNI_IDENTITY_BLOCKS 14 +#define DNA_UNI_IDENTITY_BLOCKS 15 #define DNA_HAIR_COLOR_BLOCK 1 #define DNA_FACIAL_HAIR_COLOR_BLOCK 2 #define DNA_SKIN_TONE_BLOCK 3 -#define DNA_EYE_COLOR_BLOCK 4 -#define DNA_GENDER_BLOCK 5 -#define DNA_FACIAL_HAIR_STYLE_BLOCK 6 -#define DNA_HAIR_STYLE_BLOCK 7 -#define DNA_COLOR_ONE_BLOCK 8 -#define DNA_COLOR_TWO_BLOCK 9 -#define DNA_COLOR_THREE_BLOCK 10 -#define DNA_MUTANTTAIL_BLOCK 11 -#define DNA_MUTANTEAR_BLOCK 12 -#define DNA_MUTANTMARKING_BLOCK 13 -#define DNA_TAUR_BLOCK 14 +#define DNA_LEFT_EYE_COLOR_BLOCK 4 +#define DNA_RIGHT_EYE_COLOR_BLOCK 5 +#define DNA_GENDER_BLOCK 6 +#define DNA_FACIAL_HAIR_STYLE_BLOCK 7 +#define DNA_HAIR_STYLE_BLOCK 8 +#define DNA_COLOR_ONE_BLOCK 9 +#define DNA_COLOR_TWO_BLOCK 10 +#define DNA_COLOR_THREE_BLOCK 11 +#define DNA_MUTANTTAIL_BLOCK 12 +#define DNA_MUTANTEAR_BLOCK 13 +#define DNA_MUTANTMARKING_BLOCK 14 +#define DNA_TAUR_BLOCK 15 #define DNA_SEQUENCE_LENGTH 4 #define DNA_MUTATION_BLOCKS 8 @@ -142,11 +143,11 @@ #define CUSTOM_SKINTONE 24 //adds a "_g" suffix to bodypart overlays icon states if a custom skintone is used. #define HORNCOLOR 25 #define WINGCOLOR 26 -#define CAN_SCAR 27 // If this species can be scarred (fleshy) - +#define ROBOTIC_LIMBS 27 //has robotic limbs that render like organic ones +#define CAN_SCAR 28 // If this species can be scarred (fleshy) /// Used for determining which wounds are applicable to this species. -#define HAS_FLESH 28 /// if we have flesh (can suffer slash/piercing/burn wounds, requires they don't have NOBLOOD) -#define HAS_BONE 29 /// if we have bones (can suffer bone wounds) +#define HAS_FLESH 29 /// if we have flesh (can suffer slash/piercing/burn wounds, requires they don't have NOBLOOD) +#define HAS_BONE 30 /// if we have bones (can suffer bone wounds) //organ slots #define ORGAN_SLOT_BRAIN "brain" diff --git a/code/__DEFINES/_extools.dm b/code/__DEFINES/_extools.dm new file mode 100644 index 0000000000..4513243aae --- /dev/null +++ b/code/__DEFINES/_extools.dm @@ -0,0 +1 @@ +#define EXTOOLS (world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so") diff --git a/code/__DEFINES/_flags/_flags.dm b/code/__DEFINES/_flags/_flags.dm index ffa3f1c751..a1d8006dbd 100644 --- a/code/__DEFINES/_flags/_flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -9,7 +9,12 @@ #define DISABLE_BITFIELD(variable, flag) (variable &= ~(flag)) #define CHECK_BITFIELD(variable, flag) (variable & (flag)) #define TOGGLE_BITFIELD(variable, flag) (variable ^= (flag)) - +#define COPY_SPECIFIC_BITFIELDS(a,b,flags)\ + do{\ + var/_old = a & ~(flags);\ + var/_cleaned = b & (flags);\ + a = _old | _cleaned;\ + } while(0); #define CHECK_MULTIPLE_BITFIELDS(flagvar, flags) (((flagvar) & (flags)) == (flags)) GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768)) diff --git a/code/__DEFINES/admin/keybindings.dm b/code/__DEFINES/admin/keybindings.dm index fcfe7c5e58..e8616fd3ce 100644 --- a/code/__DEFINES/admin/keybindings.dm +++ b/code/__DEFINES/admin/keybindings.dm @@ -1,6 +1,6 @@ // Defines for managed input/keybinding system. /// Max length of a keypress command before it's considered to be a forged packet/bogus command -#define MAX_KEYPRESS_COMMANDLENGTH 32 +#define MAX_KEYPRESS_COMMANDLENGTH 64 /// Maximum keys that can be bound to one button #define MAX_COMMANDS_PER_KEY 5 /// Maximum keys per keybind diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 621af2c811..dad2a38afd 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -281,8 +281,6 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) #define CALCULATE_ADJACENT_TURFS(T) SSadjacent_air.queue[T] = 1 #endif -#define EXTOOLS (world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so") - GLOBAL_VAR(atmos_extools_initialized) // this must be an uninitialized (null) one or init_monstermos will be called twice because reasons #define ATMOS_EXTOOLS_CHECK if(!GLOB.atmos_extools_initialized){\ GLOB.atmos_extools_initialized=TRUE;\ diff --git a/code/__DEFINES/botany.dm b/code/__DEFINES/botany.dm new file mode 100644 index 0000000000..d2e4d4e739 --- /dev/null +++ b/code/__DEFINES/botany.dm @@ -0,0 +1,12 @@ + +#define TRAY_NAME_UPDATE name = myseed ? "[initial(name)] ([myseed.plantname])" : initial(name) +#define YIELD_WEED_MINIMUM 3 +#define YIELD_WEED_MAXIMUM 10 +#define STATIC_NUTRIENT_CAPACITY 10 + +//Both available scanning modes for the plant analyzer. +#define PLANT_SCANMODE_STATS 0 +#define PLANT_SCANMODE_CHEMICALS 1 + +//Seed flags. +#define MUTATE_EARLY (1<<0) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 585e8da7d7..0bdf27452b 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -47,7 +47,7 @@ #define BALLS_SIZE_DEF 2 #define BALLS_SIZE_MAX 3 -#define CUM_RATE 2 // holy shit what a really shitty define name - relates to units per arbitrary measure of time? +#define CUM_RATE 2 // units per 10 seconds #define CUM_RATE_MULT 1 #define CUM_EFFICIENCY 1 //amount of nutrition required per life() @@ -58,7 +58,7 @@ #define DEF_BREASTS_SHAPE "Pair" -#define MILK_RATE 5 +#define MILK_RATE 3 #define MILK_RATE_MULT 1 #define MILK_EFFICIENCY 1 @@ -99,8 +99,12 @@ #define NO_ASS_SLAP (1<<10) #define BIMBOFICATION (1<<11) #define NO_AUTO_WAG (1<<12) - +#define GENITAL_EXAMINE (1<<13) +#define VORE_EXAMINE (1<<14) #define TOGGLES_CITADEL 0 //belly sound pref things #define NORMIE_HEARCHECK 4 + +//special species definitions +#define MINIMUM_MUTANT_COLOR "#202020" //this is how dark players mutant parts and skin can be diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 3d15412efe..2273d34c82 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -2,19 +2,6 @@ #define COLOR_INPUT_DISABLED "#F0F0F0" #define COLOR_INPUT_ENABLED "#D3B5B5" - -#define COLOR_DARKMODE_INFO_BUTTONS_BG "#40628A" -#define COLOR_DARKMODE_ISSUE_BUTTON_BG "#A92C2C" -#define COLOR_DARKMODE_BACKGROUND "#272727" -#define COLOR_DARKMODE_DARKBACKGROUND "#242424" -#define COLOR_DARKMODE_TEXT "#E0E0E0" - -#define COLOR_WHITEMODE_INFO_BUTTONS_BG "#90B3DD" -#define COLOR_WHITEMODE_ISSUE_BUTTON_BG "#EF7F7F" -#define COLOR_WHITEMODE_BACKGROUND "#F0F0F0" -#define COLOR_WHITEMODE_DARKBACKGROUND "#E6E6E6" -#define COLOR_WHITEMODE_TEXT "#000000" - #define COLOR_FLOORTILE_GRAY "#8D8B8B" #define COLOR_ALMOST_BLACK "#333333" #define COLOR_BLACK "#000000" @@ -64,4 +51,4 @@ #define COLOR_ASSEMBLY_LBLUE "#5D99BE" #define COLOR_ASSEMBLY_BLUE "#38559E" #define COLOR_ASSEMBLY_PURPLE "#6F6192" -#define COLOR_ASSEMBLY_PINK "#ff4adc" \ No newline at end of file +#define COLOR_ASSEMBLY_PINK "#ff4adc" diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 14d62f7978..eff5d9eca9 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -230,9 +230,6 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define EXPLODE_LIGHT 3 #define EXPLODE_GIB_THRESHOLD 50 -#define EMP_HEAVY 1 -#define EMP_LIGHT 2 - #define GRENADE_CLUMSY_FUMBLE 1 #define GRENADE_NONCLUMSY_FUMBLE 2 #define GRENADE_NO_FUMBLE 3 diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm index a4bf69b2ad..20c1df2ec7 100644 --- a/code/__DEFINES/configuration.dm +++ b/code/__DEFINES/configuration.dm @@ -1,6 +1,7 @@ //config files #define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X) #define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y) +/// Gets the datum of the object, for when editing a const define. #define CONFIG_GET_ENTRY(X) global.config.GetEntryDatum(/datum/config_entry/##X) #define CONFIG_MAPS_FILE "maps.txt" @@ -17,3 +18,5 @@ #define POLICYCONFIG_ON_DEFIB_INTACT "ON_DEFIB_INTACT" /// Displayed to defibbed/revival surgery'd patients after the memory loss time threshold #define POLICYCONFIG_ON_DEFIB_LATE "ON_DEFIB_LATE" +/// Displayed to pyroclastic slimes on spawn +#define POLICYCONFIG_ON_PYROCLASTIC_SENTIENT "PYROCLASTIC_SLIME" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 65994dda5a..02e3fe6f3d 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -32,7 +32,7 @@ #define COMSIG_ELEMENT_DETACH "element_detach" /// sent to the component itself when unregistered from a parent -#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" +#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" /// sent to the component itself when registered to a parent #define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent" @@ -43,6 +43,8 @@ // /atom signals //from base of atom/proc/Initialize(): sent any time a new atom is created #define COMSIG_ATOM_CREATED "atom_created" +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE "atom_init_success" #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) #define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called #define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human) @@ -184,6 +186,7 @@ // #define HEARING_SOURCE 8 #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination) +#define COMSIG_MOVABLE_CHASM_DROP "movable_chasm_drop" //from base of /datum/component/chasm/drop() (/datum/component/chasm) // /mind signals #define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character) @@ -243,6 +246,8 @@ #define COMPONENT_BLOCK_SWAP 1 #define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge" +///from base of mob/AltClickOn(): (atom/A) +#define COMSIG_MOB_ALTCLICKON "mob_altclickon" // /client signals #define COMSIG_MOB_CLIENT_LOGIN "mob_client_login" //sent when a mob/login() finishes: (client) @@ -287,6 +292,10 @@ #define COMPONENT_INTERRUPT_LIFE_BIOLOGICAL 1 // interrupt biological processes #define COMPONENT_INTERRUPT_LIFE_PHYSICAL 2 // interrupt physical handling +#define COMSIG_LIVING_BIOLOGICAL_LIFE "biological_life" //from base of mob/living/BiologicalLife() (seconds, times_fired) + +#define COMSIG_LIVING_PHYSICAL_LIFE "physical_life" //from base of mob/living/PhysicalLife() (seconds, times_fired) + // /mob/living/carbon physiology signals #define COMSIG_CARBON_GAIN_WOUND "carbon_gain_wound" //from /datum/wound/proc/apply_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) #define COMSIG_CARBON_LOSE_WOUND "carbon_lose_wound" //from /datum/wound/proc/remove_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) diff --git a/code/__DEFINES/dye_keys.dm b/code/__DEFINES/dye_keys.dm index 133f9c47d3..a01dcacc18 100644 --- a/code/__DEFINES/dye_keys.dm +++ b/code/__DEFINES/dye_keys.dm @@ -4,6 +4,7 @@ #define DYE_REGISTRY_SNEAKERS "sneakers" #define DYE_REGISTRY_FANNYPACK "fannypack" #define DYE_REGISTRY_BEDSHEET "bedsheet" +#define DYE_LAWYER_SPECIAL "lawyer_special" #define DYE_RED "red" #define DYE_ORANGE "orange" @@ -16,6 +17,7 @@ #define DYE_RAINBOW "rainbow" #define DYE_MIME "mime" #define DYE_COSMIC "cosmic" +#define DYE_SYNDICATE "syndicate" #define DYE_QM "qm" #define DYE_LAW "law" #define DYE_CAPTAIN "captain" @@ -26,3 +28,5 @@ #define DYE_CMO "cmo" #define DYE_REDCOAT "redcoat" #define DYE_CLOWN "clown" +#define DYE_CHAP "chap" +#define DYE_CENTCOM "centcom" diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 77e8d82aca..03110ad04e 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -12,6 +12,7 @@ #define TOXIC (1<<11) #define PINEAPPLE (1<<12) #define BREAKFAST (1<<13) +#define ANTITOXIC (1<<14) #define DRINK_NICE 1 #define DRINK_GOOD 2 diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 55be13834d..66f741b2c7 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -76,6 +76,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define ismush(A) (is_species(A, /datum/species/mush)) #define isshadow(A) (is_species(A, /datum/species/shadow)) #define isskeleton(A) (is_species(A, /datum/species/skeleton)) +#define isrobotic(A) (is_species(A, /datum/species/ipc) || is_species(A, /datum/species/synthliz)) #define isethereal(A) (is_species(A, /datum/species/ethereal)) // Citadel specific species diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index 94059c0880..767894050d 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -54,3 +54,16 @@ //donator items #define LOADOUT_CATEGORY_DONATOR "Donator" + +//how many prosthetics can we have +#define MAXIMUM_LOADOUT_PROSTHETICS 2 + +//what limbs can be amputated or be prosthetic +#define LOADOUT_ALLOWED_LIMB_TARGETS list(BODY_ZONE_L_ARM,BODY_ZONE_R_ARM,BODY_ZONE_L_LEG,BODY_ZONE_R_LEG) + +//options for modifiying limbs +#define LOADOUT_LIMB_NORMAL "Normal" +#define LOADOUT_LIMB_PROSTHETIC "Prosthetic" +#define LOADOUT_LIMB_AMPUTATED "Amputated" + +#define LOADOUT_LIMBS list(LOADOUT_LIMB_NORMAL,LOADOUT_LIMB_PROSTHETIC,LOADOUT_LIMB_AMPUTATED) //you can amputate your legs/arms though \ No newline at end of file diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 0e8e34d20e..df5b7d9f11 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -41,11 +41,13 @@ #define MC_HDD "HDD" #define MC_SDD "SDD" #define MC_CARD "CARD" +#define MC_CARD2 "CARD2" #define MC_NET "NET" #define MC_PRINT "PRINT" #define MC_CELL "CELL" #define MC_CHARGE "CHARGE" #define MC_AI "AI" +#define MC_SENSORS "SENSORS" //NTNet stuff, for modular computers // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index 370f869c48..3fdda06dbf 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -199,8 +199,8 @@ #define EXP_DISTRIBUTION(desired_mean) ( -(1/(1/desired_mean)) * log(rand(1, 1000) * 0.001) ) -#define LORENTZ_DISTRIBUTION(x, s) ( s*tan(TODEGREES(PI*(rand()-0.5))) + x ) -#define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/PI)*TORADIANS(arctan((x-y)/s)) + 1/2 ) +#define LORENTZ_DISTRIBUTION(x, s) ( s*tan((rand()-0.5)*180) + x ) +#define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/180)*(arctan((x-y)/s)) + 1/2 ) #define RULE_OF_THREE(a, b, x) ((a*x)/b) // ) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 927b661898..0704947dda 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -116,6 +116,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define CRAYON_FONT "Comic Sans MS" #define PRINTER_FONT "Times New Roman" #define SIGNFONT "Times New Roman" +#define CHARCOAL_FONT "Candara" #define RESIZE_DEFAULT_SIZE 1 @@ -318,9 +319,9 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects" //debug printing macros -#define debug_world(msg) if (GLOB.Debug2) to_chat(world, "DEBUG: [msg]") -#define debug_usr(msg) if (GLOB.Debug2&&usr) to_chat(usr, "DEBUG: [msg]") -#define debug_admins(msg) if (GLOB.Debug2) to_chat(GLOB.admins, "DEBUG: [msg]") +#define debug_world(msg) if (GLOB.Debug2) to_chat(world, "DEBUG: [msg]") +#define debug_usr(msg) if (GLOB.Debug2&&usr) to_chat(usr, "DEBUG: [msg]") +#define debug_admins(msg) if (GLOB.Debug2) to_chat(GLOB.admins, "DEBUG: [msg]") #define debug_world_log(msg) if (GLOB.Debug2) log_world("DEBUG: [msg]") #define INCREMENT_TALLY(L, stat) if(L[stat]){L[stat]++}else{L[stat] = 1} diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 6ddd269b4b..586fce3e0c 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -64,7 +64,6 @@ #define DEFAULT_BODYPART_ICON 'icons/mob/human_parts.dmi' #define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/human_parts_greyscale.dmi' #define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi' -#define DEFAULT_BODYPART_ICON_CITADEL 'modular_citadel/icons/mob/mutant_bodyparts.dmi' #define MONKEY_BODYPART "monkey" #define ALIEN_BODYPART "alien" @@ -313,7 +312,7 @@ #define HUMAN_FIRE_STACK_ICON_NUM 3 -#define TYPING_INDICATOR_TIMEOUT 5 MINUTES +#define TYPING_INDICATOR_TIMEOUT 20 MINUTES #define GRAB_PIXEL_SHIFT_PASSIVE 6 #define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 @@ -333,4 +332,4 @@ /// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine() #define EXAMINE_MORE_TIME 1 SECONDS -#define SILENCE_RANGED_MESSAGE (1<<0) +#define SILENCE_RANGED_MESSAGE (1<<0) diff --git a/code/__DEFINES/procpath.dm b/code/__DEFINES/procpath.dm index 1180058358..642ca3eab6 100644 --- a/code/__DEFINES/procpath.dm +++ b/code/__DEFINES/procpath.dm @@ -22,3 +22,5 @@ var/category as text /// Only clients/mobs with `see_invisibility` higher can use the verb. var/invisibility as num + /// Whether or not the verb appears in statpanel and commandbar when you press space + var/hidden as num diff --git a/code/__DEFINES/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm new file mode 100644 index 0000000000..35d99a982d --- /dev/null +++ b/code/__DEFINES/research/anomalies.dm @@ -0,0 +1,21 @@ +// Anomaly core types +/// Bluespace cores +#define ANOMALY_CORE_BLUESPACE /obj/item/assembly/signaler/anomaly/bluespace +/// Gravitational cores +#define ANOMALY_CORE_GRAVITATIONAL /obj/item/assembly/signaler/anomaly/grav +/// Flux +#define ANOMALY_CORE_FLUX /obj/item/assembly/signaler/anomaly/flux +/// Vortex +#define ANOMALY_CORE_VORTEX /obj/item/assembly/signaler/anomaly/vortex +/// Pyro +#define ANOMALY_CORE_PYRO /obj/item/assembly/signaler/anomaly/pyro + +// Max amounts of cores you can make +#define MAX_CORES_BLUESPACE 8 +#define MAX_CORES_GRAVITATIONAL 8 +#define MAX_CORES_FLUX 8 +#define MAX_CORES_VORTEX 8 +#define MAX_CORES_PYRO 8 + +/// chance supermatter anomalies drop real cores +#define SUPERMATTER_ANOMALY_DROP_CHANCE 20 diff --git a/code/__DEFINES/rockpaperscissors.dm b/code/__DEFINES/rockpaperscissors.dm new file mode 100644 index 0000000000..77ba81938d --- /dev/null +++ b/code/__DEFINES/rockpaperscissors.dm @@ -0,0 +1,7 @@ +#define ROCKPAPERSCISSORS_RANGE 3 +#define ROCKPAPERSCISSORS_TIME_LIMIT 20 SECONDS + +#define ROCKPAPERSCISSORS_LOSE "lose" +#define ROCKPAPERSCISSORS_WIN "win" +#define ROCKPAPERSCISSORS_TIE "tie" +#define ROCKPAPERSCISSORS_NOT_DECIDED "not_decided" \ No newline at end of file diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index bfff1dc629..d6db35e68d 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -30,6 +30,8 @@ #define STATUS_EFFECT_FLESHMEND /datum/status_effect/fleshmend //Very fast healing; suppressed by fire, and heals less fire damage +#define STATUS_EFFECT_PANACEA /datum/status_effect/panacea //Anatomic panacea that directly heals, rather than injecting a small chemical cocktail + #define STATUS_EFFECT_EXERCISED /datum/status_effect/exercised //Prevents heart disease #define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost diff --git a/code/__DEFINES/storage/volumetrics.dm b/code/__DEFINES/storage/volumetrics.dm index c3f45976ce..e6b732e083 100644 --- a/code/__DEFINES/storage/volumetrics.dm +++ b/code/__DEFINES/storage/volumetrics.dm @@ -24,7 +24,10 @@ GLOBAL_LIST_INIT(default_weight_class_to_volume, list( // Let's keep all of this in one place. given what we put above anyways.. // volume amount for items +/// volume for a data disk #define ITEM_VOLUME_DISK 1 +/// volume for a shotgun stripper clip holding 4 shells +#define ITEM_VOLUME_STRIPPER_CLIP (DEFAULT_VOLUME_NORMAL * 0.5) // #define SAMPLE_VOLUME_AMOUNT 2 diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 81b5c5620f..9deddd4b46 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -51,7 +51,8 @@ #define INIT_ORDER_FAIL2TOPIC 99 #define INIT_ORDER_TITLE 98 #define INIT_ORDER_GARBAGE 95 -#define INIT_ORDER_DBCORE 93 +#define INIT_ORDER_DBCORE 94 +#define INIT_ORDER_STATPANELS 93 #define INIT_ORDER_BLACKBOX 92 #define INIT_ORDER_SERVER_MAINT 91 #define INIT_ORDER_INPUT 90 @@ -86,6 +87,7 @@ #define INIT_ORDER_MINOR_MAPPING -40 #define INIT_ORDER_PATH -50 #define INIT_ORDER_PERSISTENCE -95 +#define INIT_ORDER_DEMO -99 // o avoid a bunch of changes related to initialization being written, do this last #define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init. @@ -93,7 +95,6 @@ // If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child) #define FIRE_PRIORITY_VORE 5 -#define FIRE_PRIORITY_PING 10 #define FIRE_PRIORITY_IDLE_NPC 10 #define FIRE_PRIORITY_SERVER_MAINT 10 #define FIRE_PRIORITY_RESEARCH 10 @@ -121,6 +122,7 @@ #define FIRE_PRIORITY_PROJECTILES 200 #define FIRE_PRIORITY_TICKER 200 #define FIRE_PRIORITY_ATMOS_ADJACENCY 300 +#define FIRE_PRIORITY_STATPANEL 390 #define FIRE_PRIORITY_CHAT 400 #define FIRE_PRIORITY_OVERLAYS 500 #define FIRE_PRIORITY_INPUT 1000 // This must always always be the max highest priority. Player input must never be lost. diff --git a/code/__DEFINES/tgui.dm b/code/__DEFINES/tgui.dm index f5adeadade..467058f27a 100644 --- a/code/__DEFINES/tgui.dm +++ b/code/__DEFINES/tgui.dm @@ -26,3 +26,10 @@ #define TGUI_WINDOW_ID(index) "tgui-window-[index]" /// Get a pool index of the provided window id #define TGUI_WINDOW_INDEX(window_id) text2num(copytext(window_id, 13)) + +/// Creates a message packet for sending via output() +#define TGUI_CREATE_MESSAGE(type, payload) ( \ + url_encode(json_encode(list( \ + "type" = type, \ + "payload" = payload, \ + )))) \ No newline at end of file diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 674cc16980..f054f163b5 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -205,6 +205,7 @@ #define TRAIT_NO_ALCOHOL "alcohol_intolerance" #define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. #define TRAIT_FAST_PUMP "fast_pump" +#define TRAIT_NO_PROCESS_FOOD "no-process-food" // You don't get benefits from nutriment, nor nutrition from reagent consumables #define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good... // mobility flag traits diff --git a/code/__DEFINES/wounds.dm b/code/__DEFINES/wounds.dm index 73ada71423..cda67caaab 100644 --- a/code/__DEFINES/wounds.dm +++ b/code/__DEFINES/wounds.dm @@ -1,5 +1,5 @@ -#define WOUND_DAMAGE_EXPONENT 1.225 +#define WOUND_DAMAGE_EXPONENT 1.2 /// an attack must do this much damage after armor in order to roll for being a wound (incremental pressure damage need not apply) #define WOUND_MINIMUM_DAMAGE 5 diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index 5e57dd5328..a5ffda36f9 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -17,7 +17,7 @@ var/matrix/mtrx=new() return mtrx.Scale(0.65) -proc/get_racelist(var/mob/user)//This proc returns a list of species that 'user' has available to them. It searches the list of ckeys attached to the 'whitelist' var for a species and also checks if they're an admin. +/proc/get_racelist(mob/user)//This proc returns a list of species that 'user' has available to them. It searches the list of ckeys attached to the 'whitelist' var for a species and also checks if they're an admin. for(var/spath in subtypesof(/datum/species)) var/datum/species/S = new spath() var/list/wlist = S.whitelist diff --git a/code/__HELPERS/_extools_api.dm b/code/__HELPERS/_extools_api.dm new file mode 100644 index 0000000000..af348dc939 --- /dev/null +++ b/code/__HELPERS/_extools_api.dm @@ -0,0 +1,5 @@ +#define EXTOOLS_LOGGING // rust_g is used as a fallback if this is undefined + +/proc/extools_log_write() + +/proc/extools_finalize_logging() diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 719735392d..3efb50ef65 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -553,12 +553,6 @@ if(D.vars[varname] == value) return D -//remove all nulls from a list -/proc/removeNullsFromList(list/L) - while(L.Remove(null)) - continue - return L - //Copies a list, and all lists inside it recusively //Does not copy any other reference type /proc/deepCopyList(list/l) @@ -681,3 +675,11 @@ continue if(istype(D, path)) return TRUE + +/proc/safe_json_encode(list/L, default = "") + . = default + return json_encode(L) + +/proc/safe_json_decode(string, default = list()) + . = default + return json_decode(string) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 62e6c4daf9..583427cab7 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -4,10 +4,15 @@ #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) #define SEND_TEXT(target, text) DIRECT_OUTPUT(target, text) #define WRITE_FILE(file, text) DIRECT_OUTPUT(file, text) +#ifdef EXTOOLS_LOGGING +// proc hooked, so we can just put in standard TRUE and FALSE +#define WRITE_LOG(log, text) extools_log_write(log,text,TRUE) +#define WRITE_LOG_NO_FORMAT(log, text) extools_log_write(log,text,FALSE) +#else //This is an external call, "true" and "false" are how rust parses out booleans #define WRITE_LOG(log, text) rustg_log_write(log, text, "true") #define WRITE_LOG_NO_FORMAT(log, text) rustg_log_write(log, text, "false") - +#endif //print a warning message to world.log #define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [UNLINT(src)] usr: [usr].") /proc/warning(msg) @@ -200,23 +205,45 @@ /proc/start_log(log) WRITE_LOG(log, "Starting up round ID [GLOB.round_id].\n-------------------------") -/* ui logging */ -/proc/log_tgui(user_or_client, text) +/** + * Appends a tgui-related log entry. All arguments are optional. + */ +/proc/log_tgui(user, message, context, + datum/tgui_window/window, + datum/src_object) var/entry = "" - if(!user_or_client) - entry += "no user" - else if(istype(user_or_client, /mob)) - var/mob/user = user_or_client - entry += "[user.ckey] (as [user])" - else if(istype(user_or_client, /client)) - var/client/client = user_or_client + // Insert user info + if(!user) + entry += "" + else if(istype(user, /mob)) + var/mob/mob = user + entry += "[mob.ckey] (as [mob] at [mob.x],[mob.y],[mob.z])" + else if(istype(user, /client)) + var/client/client = user entry += "[client.ckey]" - entry += ":\n[text]" + // Insert context + if(context) + entry += " in [context]" + else if(window) + entry += " in [window.id]" + // Resolve src_object + if(!src_object && window && window.locked_by) + src_object = window.locked_by.src_object + // Insert src_object info + if(src_object) + entry += "\nUsing: [src_object.type] [REF(src_object)]" + // Insert message + if(message) + entry += "\n[message]" WRITE_LOG(GLOB.tgui_log, entry) /* Close open log handles. This should be called as late as possible, and no logging should hapen after. */ /proc/shutdown_logging() +#ifdef EXTOOLS_LOGGING + extools_finalize_logging() +#else rustg_log_close_all() +#endif /* Helper procs for building detailed log lines */ diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index 8b4f8d5b54..aad5b4cab1 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -71,3 +71,18 @@ /proc/pathflatten(path) return replacetext(path, "/", "_") + +/// Returns the md5 of a file at a given path. +/proc/md5filepath(path) + . = md5(file(path)) + +/// Save file as an external file then md5 it. +/// Used because md5ing files stored in the rsc sometimes gives incorrect md5 results. +/proc/md5asfile(file) + var/static/notch = 0 + // its importaint this code can handle md5filepath sleeping instead of hard blocking, if it's converted to use rust_g. + var/filename = "tmp/md5asfile.[world.realtime].[world.timeofday].[world.time].[world.tick_usage].[notch]" + notch = WRAP(notch+1, 0, 2^15) + fcopy(file, filename) + . = md5filepath(filename) + fdel(filename) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 3155fe2548..4723577fad 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1103,24 +1103,36 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 alpha += 25 obj_flags &= ~FROZEN +/// Save file used in icon2base64. Used for converting icons to base64. +GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of icons for the browser output -//Converts an icon to base64. Operates by putting the icon in the iconCache savefile, -// exporting it as text, and then parsing the base64 from that. -// (This relies on byond automatically storing icons in savefiles as base64) -/proc/icon2base64(icon/icon, iconKey = "misc") + +/// Generate a filename for this asset +/// The same asset will always lead to the same asset name +/// (Generated names do not include file extention.) +/proc/generate_asset_name(file) + return "asset.[md5(fcopy_rsc(file))]" + +/** + * Converts an icon to base64. Operates by putting the icon in the iconCache savefile, + * exporting it as text, and then parsing the base64 from that. + * (This relies on byond automatically storing icons in savefiles as base64) + */ +/proc/icon2base64(icon/icon) if (!isicon(icon)) return FALSE - WRITE_FILE(GLOB.iconCache[iconKey], icon) - var/iconData = GLOB.iconCache.ExportText(iconKey) + WRITE_FILE(GLOB.dummySave["dummy"], icon) + var/iconData = GLOB.dummySave.ExportText("dummy") var/list/partial = splittext(iconData, "{") return replacetext(copytext_char(partial[2], 3, -5), "\n", "") -/proc/icon2html(thing, target, icon_state, dir, frame = 1, moving = FALSE) +/proc/icon2html(thing, target, icon_state, dir = SOUTH, frame = 1, moving = FALSE, sourceonly = FALSE) if (!thing) return var/key var/icon/I = thing + if (!target) return if (target == world) @@ -1136,17 +1148,26 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 if (!isicon(I)) if (isfile(thing)) //special snowflake var/name = sanitize_filename("[generate_asset_name(thing)].png") - if(!SSassets.cache[name]) - register_asset(name, thing) + if (!SSassets.cache[name]) + SSassets.transport.register_asset(name, thing) for (var/thing2 in targets) - send_asset(thing2, key) - return "" + SSassets.transport.send_assets(thing2, name) + if(sourceonly) + return SSassets.transport.get_asset_url(name) + return "" var/atom/A = thing - if (isnull(dir)) - dir = A.dir + + I = A.icon if (isnull(icon_state)) icon_state = A.icon_state - I = A.icon + if (!(icon_state in icon_states(I, 1))) + icon_state = initial(A.icon_state) + if (isnull(dir)) + dir = initial(A.dir) + + if (isnull(dir)) + dir = A.dir + if (ishuman(thing)) // Shitty workaround for a BYOND issue. var/icon/temp = I I = icon() @@ -1162,11 +1183,11 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 key = "[generate_asset_name(I)].png" if(!SSassets.cache[key]) - register_asset(key, I) + SSassets.transport.register_asset(key, I) for (var/thing2 in targets) - send_asset(thing2, key) + SSassets.transport.send_assets(thing2, key) - return "" + return "" /proc/icon2base64html(thing) if (!thing) @@ -1202,7 +1223,7 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 return "" //Costlier version of icon2html() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs. -/proc/costly_icon2html(thing, target) +/proc/costly_icon2html(thing, target, sourceonly = FALSE) if (!thing) return @@ -1210,4 +1231,5 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 return icon2html(thing, target) var/icon/I = getFlatIcon(thing) - return icon2html(I, target) + return icon2html(I, target, sourceonly = sourceonly) + diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 045ca2c519..e4a2e6521a 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -349,7 +349,7 @@ if(!previous) var/list/report_parts = list(personal_report(C), GLOB.common_report) content = report_parts.Join() - C.verbs -= /client/proc/show_previous_roundend_report + remove_verb(C, /client/proc/show_previous_roundend_report) fdel(filename) text2file(content, filename) else @@ -358,7 +358,7 @@ roundend_report.stylesheets = list() roundend_report.add_stylesheet("roundend", 'html/browser/roundend.css') roundend_report.add_stylesheet("font-awesome", 'html/font-awesome/css/all.min.css') - roundend_report.open(0) + roundend_report.open(FALSE) /datum/controller/subsystem/ticker/proc/personal_report(client/C, popcount) var/list/parts = list() @@ -402,7 +402,7 @@ for (var/i in GLOB.ai_list) var/mob/living/silicon/ai/aiPlayer = i if(aiPlayer.mind) - parts += "[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws [aiPlayer.stat != DEAD ? "at the end of the round" : "when it was deactivated"] were:" + parts += "[aiPlayer.name][aiPlayer.mind.hide_ckey ? "" : " (Played by: [aiPlayer.mind.key])"]'s laws [aiPlayer.stat != DEAD ? "at the end of the round" : "when it was deactivated"] were:" parts += aiPlayer.laws.get_law_list(include_zeroth=TRUE) parts += "Total law changes: [aiPlayer.law_change_counter]" @@ -413,14 +413,14 @@ for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots) borg_num-- if(robo.mind) - robolist += "[robo.name] (Played by: [robo.mind.key])[robo.stat == DEAD ? " (Deactivated)" : ""][borg_num ?", ":""]
" + robolist += "[robo.name][robo.mind.hide_ckey ? "" : " (Played by: [robo.mind.key])"] [robo.stat == DEAD ? " (Deactivated)" : ""][borg_num ?", ":""]
" parts += "[robolist]" if(!borg_spacer) borg_spacer = TRUE for (var/mob/living/silicon/robot/robo in GLOB.silicon_mobs) if (!robo.connected_ai && robo.mind) - parts += "[borg_spacer?"
":""][robo.name] (Played by: [robo.mind.key]) [(robo.stat != DEAD)? "survived as an AI-less borg!" : "was unable to survive the rigors of being a cyborg without an AI."] Its laws were:" + parts += "[borg_spacer?"
":""][robo.name][robo.mind.hide_ckey ? "" : " (Played by: [robo.mind.key])"] [(robo.stat != DEAD)? "survived as an AI-less borg!" : "was unable to survive the rigors of being a cyborg without an AI."] Its laws were:" if(robo) //How the hell do we lose robo between here and the world messages directly above this? parts += robo.laws.get_law_list(include_zeroth=TRUE) @@ -529,7 +529,7 @@ var/jobtext = "" if(ply.assigned_role) jobtext = " the [ply.assigned_role]" - var/text = "[ply.key] was [ply.name][jobtext] and" + var/text = "[ply.hide_ckey ? "[ply.name][jobtext] " : "[ply.key] was [ply.name][jobtext] and "]" if(ply.current) if(ply.current.stat == DEAD) text += " died" diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 7a18d2ce01..bbbf99c9de 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -462,16 +462,14 @@ else . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) -/proc/fusionpower2text(power) //used when displaying fusion power on analyzers - switch(power) - if(0 to 5) - return "low" - if(5 to 20) - return "mid" - if(20 to 50) - return "high" - if(50 to INFINITY) - return "super" +/proc/instability2text(instability) //used when displaying fusion power on analyzers + switch(instability) + if(0 to 2) + return "stable, meaning that its heat will always increase." + if(2 to 3) + return "metastable, meaning that its heat will trend upwards." + if (3 to INFINITY) + return "unstable, meaning that its heat will trend downwards." /proc/color2hex(color) //web colors if(!color) @@ -620,6 +618,12 @@ else //regex everything else (works for /proc too) return lowertext(replacetext("[the_type]", "[type2parent(the_type)]/", "")) + +/// Return html to load a url. +/// for use inside of browse() calls to html assets that might be loaded on a cdn. +/proc/url2htmlloader(url) + return {""} + /proc/strtohex(str) if(!istext(str)||!str) return diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 4addae3ac4..92bd726641 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1254,6 +1254,10 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) var/obj/structure/window/W = O if(W.ini_dir == dir_to_check || W.ini_dir == FULLTILE_WINDOW_DIR || dir_to_check == FULLTILE_WINDOW_DIR) return FALSE + if(istype(O, /obj/structure/railing)) + var/obj/structure/railing/rail = O + if(rail.ini_dir == dir_to_check || rail.ini_dir == FULLTILE_WINDOW_DIR || dir_to_check == FULLTILE_WINDOW_DIR) + return FALSE return TRUE /proc/pass() diff --git a/code/__HELPERS/verbs.dm b/code/__HELPERS/verbs.dm new file mode 100644 index 0000000000..3606c7d918 --- /dev/null +++ b/code/__HELPERS/verbs.dm @@ -0,0 +1,96 @@ +/** + * handles adding verbs and updating the stat panel browser + * + * pass the verb type path to this instead of adding it directly to verbs so the statpanel can update + * Arguments: + * * target - Who the verb is being added to, client or mob typepath + * * verb - typepath to a verb, or a list of verbs, supports lists of lists + */ +/proc/add_verb(client/target, verb_or_list_to_add) + if(!target) + CRASH("add_verb called without a target") + if(IsAdminAdvancedProcCall()) + return + var/mob/mob_target = null + + if(ismob(target)) + mob_target = target + target = mob_target.client + else if(!istype(target, /client)) + CRASH("add_verb called on a non-mob and non-client") + var/list/verbs_list = list() + if(!islist(verb_or_list_to_add)) + verbs_list += verb_or_list_to_add + else + var/list/verb_listref = verb_or_list_to_add + var/list/elements_to_process = verb_listref.Copy() + while(length(elements_to_process)) + var/element_or_list = elements_to_process[length(elements_to_process)] //Last element + elements_to_process.len-- + if(islist(element_or_list)) + elements_to_process += element_or_list //list/a += list/b adds the contents of b into a, not the reference to the list itself + else + verbs_list += element_or_list + + if(mob_target) + mob_target.verbs += verbs_list + if(!target) + return //Our work is done. + else + target.verbs += verbs_list + + var/list/output_list = list() + for(var/thing in verbs_list) + var/procpath/verb_to_add = thing + output_list[++output_list.len] = list(verb_to_add.category, verb_to_add.name) + output_list = url_encode(json_encode(output_list)) + + target << output("[output_list];", "statbrowser:add_verb_list") + +/** + * handles removing verb and sending it to browser to update, use this for removing verbs + * + * pass the verb type path to this instead of removing it from verbs so the statpanel can update + * Arguments: + * * target - Who the verb is being removed from, client or mob typepath + * * verb - typepath to a verb, or a list of verbs, supports lists of lists + */ +/proc/remove_verb(client/target, verb_or_list_to_remove) + if(IsAdminAdvancedProcCall()) + return + + var/mob/mob_target = null + if(ismob(target)) + mob_target = target + target = mob_target.client + else if(!istype(target, /client)) + CRASH("remove_verb called on a non-mob and non-client") + + var/list/verbs_list = list() + if(!islist(verb_or_list_to_remove)) + verbs_list += verb_or_list_to_remove + else + var/list/verb_listref = verb_or_list_to_remove + var/list/elements_to_process = verb_listref.Copy() + while(length(elements_to_process)) + var/element_or_list = elements_to_process[length(elements_to_process)] //Last element + elements_to_process.len-- + if(islist(element_or_list)) + elements_to_process += element_or_list //list/a += list/b adds the contents of b into a, not the reference to the list itself + else + verbs_list += element_or_list + + if(mob_target) + mob_target.verbs -= verbs_list + if(!target) + return //Our work is done. + else + target.verbs -= verbs_list + + var/list/output_list = list() + for(var/thing in verbs_list) + var/procpath/verb_to_remove = thing + output_list[++output_list.len] = list(verb_to_remove.category, verb_to_remove.name) + output_list = url_encode(json_encode(output_list)) + + target << output("[output_list];", "statbrowser:remove_verb_list") diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 8225725ffd..ae0f5201f9 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -267,7 +267,7 @@ GLOBAL_LIST_INIT(redacted_strings, list("\[REDACTED\]", "\[CLASSIFIED\]", "\[ARC GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) -GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "declares", "bellows", "buzzes" ,"beeps", "chirps" ,"hisses" ,"poofs" ,"rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters")) +GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "chimpers", "declares", "bellows", "buzzes" ,"beeps", "chirps", "clicks", "hisses" ,"poofs" , "puffs", "rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters", "warbles")) GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc)) @@ -278,3 +278,12 @@ GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Ta GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns", "insect_fluff")) //parts in either of the above two lists that require a second option that allows them to be coloured GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color")) + +//body ids that have greyscale sprites +GLOBAL_LIST_INIT(greyscale_limb_types, list("human","moth","lizard","pod","plant","jelly","slime","golem","lum","stargazer","mush","ethereal","snail","c_golem","b_golem","mammal","xeno","ipc","insect","synthliz","avian","aquatic")) + +//body ids that have prosthetic sprites +GLOBAL_LIST_INIT(prosthetic_limb_types, list("xion","bishop","cybersolutions","grayson","hephaestus","nanotrasen","talon")) + +//body ids that have non-gendered bodyparts +GLOBAL_LIST_INIT(nongendered_limb_types, list("fly", "zombie" ,"synth", "shadow", "cultgolem", "agent", "plasmaman", "clockgolem", "clothgolem")) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 865f405442..14a1924e76 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -107,13 +107,8 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/toy/eightball = 1, /obj/item/reagent_containers/pill/floorpill = 1, /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2, - /obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint - /obj/item/storage/pill_bottle/penis_enlargement = 2, - /obj/item/storage/pill_bottle/breast_enlargement = 2, /obj/item/clothing/shoes/wheelys = 1, /obj/item/clothing/shoes/kindleKicks = 1, - /obj/item/autosurgeon/penis = 1, - /obj/item/autosurgeon/testicles = 1, /obj/item/storage/box/marshmallow = 2, /obj/item/clothing/gloves/tackler/offbrand = 1, /obj/item/stack/sticky_tape = 1, diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 4de7c88bf7..706a5ed955 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -13,6 +13,7 @@ GLOBAL_LIST_EMPTY(deliverybeacontags) //list of all tags associated with d GLOBAL_LIST_EMPTY(nuke_list) GLOBAL_LIST_EMPTY(alarmdisplay) //list of all machines or programs that can display station alerts GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the station (actually technically all engines) +GLOBAL_LIST_EMPTY(grounding_rods) //list of all grounding rods on the station GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff @@ -41,3 +42,6 @@ GLOBAL_LIST_EMPTY(ai_status_displays) GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert + +//list of everyone playing rock paper scissors +GLOBAL_LIST_EMPTY(rockpaperscissors_players) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 18aaf66659..59b78577af 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -112,8 +112,8 @@ /mob/living/silicon/ai/CtrlClickOn(var/atom/A) A.AICtrlClick(src) /mob/living/silicon/ai/AltClickOn(var/atom/A) - if(!A.AIAltClick(src)) - altclick_listed_turf(A) + A.AIAltClick(src) + /* The following criminally helpful code is just the previous code cleaned up; diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 042ab3aaee..2e52fa5bd7 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -319,20 +319,13 @@ return ..() /* Alt click - Unused except for AI + Used as an alternate way to interact with things. */ /mob/proc/AltClickOn(atom/A) - if(!A.AltClick(src)) - altclick_listed_turf(A) - -/mob/proc/altclick_listed_turf(atom/A) - var/turf/T = get_turf(A) - if(T == A.loc || T == A) - if(T == listed_turf) - listed_turf = null - else if(TurfAdjacent(T)) - listed_turf = T - client.statpanel = T.name + . = SEND_SIGNAL(src, COMSIG_MOB_ALTCLICKON, A) + if(. & COMSIG_MOB_CANCEL_CLICKON) + return + A.AltClick(src) /mob/living/carbon/AltClickOn(atom/A) if(!stat && mind && iscarbon(A) && A != src) @@ -344,7 +337,18 @@ ..() /atom/proc/AltClick(mob/user) - . = SEND_SIGNAL(src, COMSIG_CLICK_ALT, user) + SEND_SIGNAL(src, COMSIG_CLICK_ALT, user) + var/turf/T = get_turf(src) + if(T && (isturf(loc) || isturf(src)) && user.TurfAdjacent(T)) + user.listed_turf = T + user.client << output("[url_encode(json_encode(T.name))];", "statbrowser:create_listedturf") + +/// Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction +/atom/proc/AltClickNoInteract(mob/user, atom/A) + var/turf/T = get_turf(A) + if(T && user.TurfAdjacent(T)) + user.listed_turf = T + user.client << output("[url_encode(json_encode(T.name))];", "statbrowser:create_listedturf") /mob/proc/TurfAdjacent(turf/T) return T.Adjacent(src) diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 372fe46046..afc01a6ec0 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -98,8 +98,7 @@ /mob/living/silicon/robot/CtrlClickOn(atom/A) A.BorgCtrlClick(src) /mob/living/silicon/robot/AltClickOn(atom/A) - if(!A.BorgAltClick(src)) - altclick_listed_turf(A) + A.BorgAltClick(src) /atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overridden CtrlShiftClick(user) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 6dc1433bc8..5bd9632355 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -149,6 +149,27 @@ name = "Choking (Plasma)" desc = "There's highly flammable, toxic plasma in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and gas mask in it." icon_state = "too_much_tox" + +/obj/screen/alert/not_enough_ch4 + name = "Choking (No CH4)" + desc = "You're not getting enough methane. Find some good air before you pass out!" + icon_state = "not_enough_ch4" + +/obj/screen/alert/too_much_ch4 + name = "Choking (CH4)" + desc = "There's too much methane in the air, and you're breathing it in! Find some good air before you pass out!" + icon_state = "too_much_ch4" + +/obj/screen/alert/not_enough_ch3br + name = "Choking (No CH3Br)" + desc = "You're not getting enough methyl bromide. Find some good air before you pass out!" + icon_state = "not_enough_tox" + +/obj/screen/alert/too_much_ch3br + name = "Choking (CH3Br)" + desc = "There's highly toxic methyl bromide in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and gas mask in it." + icon_state = "too_much_tox" + //End gas alerts @@ -184,14 +205,23 @@ /obj/screen/alert/hot name = "Too Hot" - desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit." + desc = "The air around you is pretty toasty! Consider putting on some insulating clothing, or moving to a cooler area." icon_state = "hot" /obj/screen/alert/cold name = "Too Cold" - desc = "You're freezing cold! Get somewhere warmer and take off any insulating clothing like a space suit." + desc = "The air around you is pretty cold! Consider wearing a coat, or moving to a warmer area." icon_state = "cold" +/obj/screen/alert/sweat + name = "Sweating" + desc = "You're sweating! Get somewhere cooler and take off any insulating clothing like a fire suit." + icon_state = "sweat" + +/obj/screen/alert/shiver + name = "Shivering" + desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit." + /obj/screen/alert/lowpressure name = "Low Pressure" desc = "The air around you is hazardously thin. A space suit would protect you." diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm index 2cd0ddedaa..31ea453d4a 100644 --- a/code/_onclick/hud/credits.dm +++ b/code/_onclick/hud/credits.dm @@ -11,7 +11,7 @@ var/icon/credits_icon = new(CREDITS_PATH) LAZYINITLIST(credits) var/list/_credits = credits - verbs += /client/proc/ClearCredits + add_verb(src, /client/proc/ClearCredits) var/static/list/credit_order_for_this_round if(isnull(credit_order_for_this_round)) credit_order_for_this_round = list("Thanks for playing!") + (shuffle(icon_states(credits_icon)) - "Thanks for playing!") @@ -21,13 +21,13 @@ _credits += new /obj/screen/credit(null, I, src, credits_icon) sleep(CREDIT_SPAWN_SPEED) sleep(CREDIT_ROLL_SPEED - CREDIT_SPAWN_SPEED) - verbs -= /client/proc/ClearCredits + remove_verb(src, /client/proc/ClearCredits) qdel(credits_icon) /client/proc/ClearCredits() set name = "Hide Credits" set category = "OOC" - verbs -= /client/proc/ClearCredits + remove_verb(src, /client/proc/ClearCredits) QDEL_LIST(credits) credits = null diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 8a1e745308..d431e6d3cd 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -31,7 +31,7 @@ ShiftClickOn(A) return if(modifiers["alt"]) - altclick_listed_turf(A) + AltClickNoInteract(src, A) return if(modifiers["ctrl"]) CtrlClickOn(A) diff --git a/code/_onclick/overmind.dm b/code/_onclick/overmind.dm index 8ace273dd8..419524c871 100644 --- a/code/_onclick/overmind.dm +++ b/code/_onclick/overmind.dm @@ -32,4 +32,4 @@ /mob/camera/blob/AltClickOn(atom/A) //Remove a blob var/turf/T = get_turf(A) if(T) - remove_blob(T) \ No newline at end of file + remove_blob(T) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 1c6e96f9e4..3ea4d0a870 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -14,13 +14,15 @@ var/list/modes // allowed modes var/list/gamemode_cache var/list/votable_modes // votable modes - // var/list/ic_filter_regex var/list/storyteller_cache var/list/mode_names var/list/mode_reports var/list/mode_false_report_weight var/motd + // var/policy + + // var/static/regex/ic_filter_regex /datum/controller/configuration/proc/admin_reload() if(IsAdminAdvancedProcCall()) @@ -50,6 +52,11 @@ break loadmaplist(CONFIG_MAPS_FILE) LoadMOTD() + // LoadPolicy() + // LoadChatFilter() + + if (Master) + Master.OnConfigLoad() /datum/controller/configuration/proc/full_wipe() if(IsAdminAdvancedProcCall()) @@ -135,7 +142,7 @@ if(entry == "$include") if(!value) - log_config("LINE [linenumber]: Invalid $include directive: [value]") + log_config("LINE [linenumber]: Warning: Invalid $include directive: [value]") else LoadEntries(value, stack) ++. @@ -143,7 +150,7 @@ var/datum/config_entry/E = _entries[entry] if(!E) - log_config("LINE [linenumber]: Unknown setting: '[entry]'") + log_config("LINE [linenumber]: Unknown setting in configuration: '[entry]'") continue if(lockthis) @@ -153,9 +160,9 @@ var/datum/config_entry/new_ver = entries_by_type[E.deprecated_by] var/new_value = E.DeprecationUpdate(value) var/good_update = istext(new_value) - log_config("LINE [linenumber]: [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]") + log_config("LINE [linenumber]: Entry [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]") if(!warned_deprecated_configs) - addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, "This server is using deprecated configuration settings. Please check the logs and update accordingly."), 0) + DelayedMessageAdmins("This server is using deprecated configuration settings. Please check the logs and update accordingly.") warned_deprecated_configs = TRUE if(good_update) value = new_value @@ -163,7 +170,7 @@ else warning("[new_ver.type] is deprecated but gave no proper return for DeprecationUpdate()") - var/validated = E.ValidateAndSet(value, TRUE) + var/validated = E.ValidateAndSet(value) if(!validated) log_config("LINE [linenumber]: Failed to validate setting \"[value]\" for [entry]") else @@ -190,18 +197,11 @@ var/list/banned_edits = list(NAMEOF(src, entries_by_type), NAMEOF(src, entries), NAMEOF(src, directory)) return !(var_name in banned_edits) && ..() -/datum/controller/configuration/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Edit", src) - stat("[name]:", statclick) - -/datum/controller/configuration/proc/Get(entry_type) - var/datum/config_entry/E = GetEntryDatum(entry_type) - if((E.protection & CONFIG_ENTRY_HIDDEN) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") - log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]") - return - return E.config_entry_value +/datum/controller/configuration/stat_entry(msg) + msg = "Edit" + return msg +/// Your typical GET but returns a config. /datum/controller/configuration/proc/GetEntryDatum(entry_type) var/datum/config_entry/E = entry_type var/entry_is_abstract = initial(E.abstract_type) == entry_type @@ -210,8 +210,24 @@ E = entries_by_type[entry_type] if(!E) CRASH("Missing config entry for [entry_type]!") + if((E.protection & CONFIG_ENTRY_HIDDEN) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") + log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]") + return return E +/datum/controller/configuration/proc/Get(entry_type) + var/datum/config_entry/E = entry_type + var/entry_is_abstract = initial(E.abstract_type) == entry_type + if(entry_is_abstract) + CRASH("Tried to retrieve an abstract config_entry: [entry_type]") + E = entries_by_type[entry_type] + if(!E) + CRASH("Missing config entry for [entry_type]!") + if((E.protection & CONFIG_ENTRY_HIDDEN) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") + log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]") + return + return E.config_entry_value + /datum/controller/configuration/proc/Set(entry_type, new_val) var/datum/config_entry/E = entry_type var/entry_is_abstract = initial(E.abstract_type) == entry_type @@ -236,7 +252,6 @@ for(var/T in gamemode_cache) // I wish I didn't have to instance the game modes in order to look up // their information, but it is the only way (at least that I know of). - // for future reference: just use initial() lol var/datum/game_mode/M = new T() if(M.config_tag) @@ -258,7 +273,37 @@ var/tm_info = GLOB.revdata.GetTestMergeInfo() if(motd || tm_info) motd = motd ? "[motd]
[tm_info]" : tm_info +/* +Policy file should be a json file with a single object. +Value is raw html. +Possible keywords : +Job titles / Assigned roles (ghost spawners for example) : Assistant , Captain , Ash Walker +Mob types : /mob/living/simple_animal/hostile/carp +Antagonist types : /datum/antagonist/highlander +Species types : /datum/species/lizard +special keywords defined in _DEFINES/admin.dm + +Example config: +{ + "Assistant" : "Don't kill everyone", + "/datum/antagonist/highlander" : "Kill everyone", + "Ash Walker" : "Kill all spacemans" +} + +*/ +/* +/datum/controller/configuration/proc/LoadPolicy() + policy = list() + var/rawpolicy = file2text("[directory]/policy.json") + if(rawpolicy) + var/parsed = safe_json_decode(rawpolicy) + if(!parsed) + log_config("JSON parsing failure for policy.json") + DelayedMessageAdmins("JSON parsing failure for policy.json") + else + policy = parsed +*/ /datum/controller/configuration/proc/loadmaplist(filename) log_config("Loading config file [filename]...") filename = "[directory]/[filename]" @@ -305,6 +350,8 @@ currentmap.voteweight = text2num(data) if ("default","defaultmap") defaultmap = currentmap + //if ("votable") + // currentmap.votable = TRUE if ("endmap") LAZYINITLIST(maplist) maplist[currentmap.map_name] = currentmap @@ -326,6 +373,7 @@ return new T return new /datum/game_mode/extended() +/// For dynamic. /datum/controller/configuration/proc/pick_storyteller(storyteller_name) for(var/T in storyteller_cache) var/datum/dynamic_storyteller/S = T @@ -334,6 +382,32 @@ return T return /datum/dynamic_storyteller/classic +/// Same with this +/datum/controller/configuration/proc/get_runnable_storytellers() + var/list/datum/dynamic_storyteller/runnable_storytellers = new + var/list/probabilities = Get(/datum/config_entry/keyed_list/storyteller_weight) + var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust) + var/list/min_player_counts = Get(/datum/config_entry/keyed_list/storyteller_min_players) + for(var/T in storyteller_cache) + var/datum/dynamic_storyteller/S = T + var/config_tag = initial(S.config_tag) + var/probability = (config_tag in probabilities) ? probabilities[config_tag] : initial(S.weight) + var/min_players = (config_tag in min_player_counts) ? min_player_counts[config_tag] : initial(S.min_players) + if(probability <= 0) + continue + if(length(GLOB.player_list) < min_players) + continue + if(SSpersistence.saved_storytellers.len == repeated_mode_adjust.len) + var/name = initial(S.name) + var/recent_round = min(SSpersistence.saved_storytellers.Find(name),3) + var/adjustment = 0 + while(recent_round) + adjustment += repeated_mode_adjust[recent_round] + recent_round = SSpersistence.saved_modes.Find(name,recent_round+1,0) + probability *= ((100-adjustment)/100) + runnable_storytellers[S] = probability + return runnable_storytellers + /datum/controller/configuration/proc/get_runnable_modes() var/list/datum/game_mode/runnable_modes = new var/list/probabilities = Get(/datum/config_entry/keyed_list/probability) @@ -367,32 +441,6 @@ runnable_modes[M] = final_weight return runnable_modes -/datum/controller/configuration/proc/get_runnable_storytellers() - var/list/datum/dynamic_storyteller/runnable_storytellers = new - var/list/probabilities = Get(/datum/config_entry/keyed_list/storyteller_weight) - var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust) - var/list/min_player_counts = Get(/datum/config_entry/keyed_list/storyteller_min_players) - for(var/T in storyteller_cache) - var/datum/dynamic_storyteller/S = T - var/config_tag = initial(S.config_tag) - var/probability = (config_tag in probabilities) ? probabilities[config_tag] : initial(S.weight) - var/min_players = (config_tag in min_player_counts) ? min_player_counts[config_tag] : initial(S.min_players) - if(probability <= 0) - continue - if(length(GLOB.player_list) < min_players) - continue - if(SSpersistence.saved_storytellers.len == repeated_mode_adjust.len) - var/name = initial(S.name) - var/recent_round = min(SSpersistence.saved_storytellers.Find(name),3) - var/adjustment = 0 - while(recent_round) - adjustment += repeated_mode_adjust[recent_round] - recent_round = SSpersistence.saved_modes.Find(name,recent_round+1,0) - probability *= ((100-adjustment)/100) - runnable_storytellers[S] = probability - return runnable_storytellers - - /datum/controller/configuration/proc/get_runnable_midround_modes(crew) var/list/datum/game_mode/runnable_modes = new var/list/probabilities = Get(/datum/config_entry/keyed_list/probability) @@ -418,7 +466,6 @@ /* /datum/controller/configuration/proc/LoadChatFilter() var/list/in_character_filter = list() - if(!fexists("[directory]/in_character_filter.txt")) return log_config("Loading config file in_character_filter.txt...") @@ -428,8 +475,8 @@ if(findtextEx(line,"#",1,2)) continue in_character_filter += REGEX_QUOTE(line) - ic_filter_regex = in_character_filter.len ? regex("\\b([jointext(in_character_filter, "|")])\\b", "i") : null - - syncChatRegexes() */ +//Message admins when you can. +/datum/controller/configuration/proc/DelayedMessageAdmins(text) + addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 2e3cb1ea46..8f55293820 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -535,3 +535,15 @@ /datum/config_entry/number/max_shuttle_size config_entry_value = 500 + +//wound config stuff (increases the max injury roll, making injuries more likely) +/datum/config_entry/number/wound_exponent + config_entry_value = WOUND_DAMAGE_EXPONENT + min_val = 0 + integer = FALSE + +//adds a set amount to any injury rolls on a limb using get_damage() multiplied by this number +/datum/config_entry/number/wound_damage_multiplier + config_entry_value = 0.333 + min_val = 0 + integer = FALSE diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 2d5e69f149..273ac7fd3e 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -368,6 +368,10 @@ /datum/config_entry/flag/allow_map_voting +/datum/config_entry/number/client_warn_version + config_entry_value = null + min_val = 500 + /datum/config_entry/number/client_warn_version config_entry_value = null min_val = 500 @@ -384,6 +388,10 @@ /datum/config_entry/string/client_error_message config_entry_value = "Your version of byond is too old, may have issues, and is blocked from accessing this server." +/datum/config_entry/number/client_error_build + config_entry_value = null + min_val = 0 + /datum/config_entry/number/minute_topic_limit config_entry_value = null min_val = 0 diff --git a/code/controllers/configuration/entries/resources.dm b/code/controllers/configuration/entries/resources.dm new file mode 100644 index 0000000000..c839ccc078 --- /dev/null +++ b/code/controllers/configuration/entries/resources.dm @@ -0,0 +1,30 @@ +/datum/config_entry/keyed_list/external_rsc_urls + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/flag/asset_simple_preload + +/datum/config_entry/string/asset_transport +/datum/config_entry/string/asset_transport/ValidateAndSet(str_val) + return (lowertext(str_val) in list("simple", "webroot")) && ..(lowertext(str_val)) + +/datum/config_entry/string/asset_cdn_webroot + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/string/asset_cdn_webroot/ValidateAndSet(str_var) + if (!str_var || trim(str_var) == "") + return FALSE + if (str_var && str_var[length(str_var)] != "/") + str_var += "/" + return ..(str_var) + +/datum/config_entry/string/asset_cdn_url + protection = CONFIG_ENTRY_LOCKED + default = null + +/datum/config_entry/string/asset_cdn_url/ValidateAndSet(str_var) + if (!str_var || trim(str_var) == "") + return FALSE + if (str_var && str_var[length(str_var)] != "/") + str_var += "/" + return ..(str_var) diff --git a/code/controllers/controller.dm b/code/controllers/controller.dm index 06547d120d..1f0a01a072 100644 --- a/code/controllers/controller.dm +++ b/code/controllers/controller.dm @@ -16,4 +16,4 @@ /datum/controller/proc/Recover() -/datum/controller/proc/stat_entry() \ No newline at end of file +/datum/controller/proc/stat_entry(msg) diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index 3ce770b66d..148822cdd1 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -95,8 +95,6 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) /datum/controller/failsafe/proc/defcon_pretty() return defcon -/datum/controller/failsafe/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) - - stat("Failsafe Controller:", statclick.update("Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])")) +/datum/controller/failsafe/stat_entry(msg) + msg = "Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])" + return msg diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index a085b26410..6b5fb294ea 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -24,11 +24,9 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) //fuck off kevinz return QDEL_HINT_IWILLGC -/datum/controller/global_vars/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) - - stat("Globals:", statclick.update("Edit")) +/datum/controller/global_vars/stat_entry(msg) + msg = "Edit" + return msg /datum/controller/global_vars/vv_edit_var(var_name, var_value) if(gvars_datum_protected_varlist[var_name]) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index cdbea1de85..1b5c7e5e83 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -76,7 +76,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // Highlander-style: there can only be one! Kill off the old and replace it with the new. if(!random_seed) - random_seed = (TEST_RUN_PARAMETER in world.params) ? 29051994 : rand(1, 1e9) + #ifdef UNIT_TESTS + random_seed = 29051994 + #else + random_seed = rand(1, 1e9) + #endif rand_seed(random_seed) var/list/_subsystems = list() @@ -184,9 +188,6 @@ GLOBAL_REAL(Master, /datum/controller/master) = new if(delay) sleep(delay) - if(tgs_prime) - world.TgsInitializationComplete() - if(init_sss) init_subtypes(/datum/controller/subsystem, subsystems) @@ -219,6 +220,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new world.fps = CONFIG_GET(number/fps) var/initialized_tod = REALTIMEOFDAY + if(tgs_prime) + world.TgsInitializationComplete() + if(sleep_offline_after_initializations) world.sleep_offline = TRUE sleep(1) @@ -611,13 +615,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new skip_ticks = 1 -/datum/controller/master/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) +/datum/controller/master/stat_entry(msg) + msg = "(TickRate:[Master.processing]) (Iteration:[Master.iteration]) (TickLimit: [round(Master.current_ticklimit, 0.1)])" + return msg - stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)") - stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration]) (TickLimit: [round(Master.current_ticklimit, 0.1)])")) - stat("Misc Subsystems", misc_statclick) /datum/controller/master/StartLoadingMap() //disallow more than one map to load at once, multithreading it will just cause race conditions @@ -643,3 +644,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new processing = CONFIG_GET(number/mc_tick_rate/base_mc_tick_rate) else if (client_count > CONFIG_GET(number/mc_tick_rate/high_pop_mc_mode_amount)) processing = CONFIG_GET(number/mc_tick_rate/high_pop_mc_tick_rate) + +/datum/controller/master/proc/OnConfigLoad() + for (var/thing in subsystems) + var/datum/controller/subsystem/SS = thing + SS.OnConfigLoad() diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index 4ee3a01956..bb8ce951f5 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -1,39 +1,91 @@ +/** + * # Subsystem base class + * + * Defines a subsystem to be managed by the [Master Controller][/datum/controller/master] + * + * Simply define a child of this subsystem, using the [SUBSYSTEM_DEF] macro, and the MC will handle registration. + * Changing the name is required +**/ /datum/controller/subsystem // Metadata; you should define these. - name = "fire coderbus" //name of the subsystem - var/init_order = INIT_ORDER_DEFAULT //order of initialization. Higher numbers are initialized first, lower numbers later. Use defines in __DEFINES/subsystems.dm for easy understanding of order. - var/wait = 20 //time to wait (in deciseconds) between each call to fire(). Must be a positive integer. - var/priority = FIRE_PRIORITY_DEFAULT //When mutiple subsystems need to run in the same tick, higher priority subsystems will run first and be given a higher share of the tick before MC_TICK_CHECK triggers a sleep - var/flags = 0 //see MC.dm in __DEFINES Most flags must be set on world start to take full effect. (You can also restart the mc to force them to process again) + /// Name of the subsystem - you must change this + name = "fire coderbus" - var/initialized = FALSE //set to TRUE after it has been initialized, will obviously never be set if the subsystem doesn't initialize + /// Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file. + var/init_order = INIT_ORDER_DEFAULT - //set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later - // use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to the list + /// Time to wait (in deciseconds) between each call to fire(). Must be a positive integer. + var/wait = 20 + + /// Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems + var/priority = FIRE_PRIORITY_DEFAULT + + /// [Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again) + var/flags = 0 + + /// This var is set to TRUE after the subsystem has been initialized. + var/initialized = FALSE + + /// Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later + /// use the [SS_NO_FIRE] flag instead for systems that never fire to keep it from even being added to list that is checked every tick var/can_fire = TRUE - // Bookkeeping variables; probably shouldn't mess with these. - var/last_fire = 0 //last world.time we called fire() - var/next_fire = 0 //scheduled world.time for next fire() - var/cost = 0 //average time to execute - var/tick_usage = 0 //average tick usage - var/tick_overrun = 0 //average tick overrun - var/state = SS_IDLE //tracks the current state of the ss, running, paused, etc. - var/paused_ticks = 0 //ticks this ss is taking to run right now. - var/paused_tick_usage //total tick_usage of all of our runs while pausing this run - var/ticks = 1 //how many ticks does this ss take to run on avg. - var/times_fired = 0 //number of times we have called fire() - var/queued_time = 0 //time we entered the queue, (for timing and priority reasons) - var/queued_priority //we keep a running total to make the math easier, if priority changes mid-fire that would break our running total, so we store it here - //linked list stuff for the queue - var/datum/controller/subsystem/queue_next - var/datum/controller/subsystem/queue_prev - + ///Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details. var/runlevels = RUNLEVELS_DEFAULT //points of the game at which the SS can fire - var/static/list/failure_strikes //How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out! + /* + * The following variables are managed by the MC and should not be modified directly. + */ + + /// Last world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK]) + var/last_fire = 0 + + /// Scheduled world.time for next fire() + var/next_fire = 0 + + /// Running average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused) + var/cost = 0 + + /// Running average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run + var/tick_usage = 0 + + /// Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing + var/tick_overrun = 0 + + /// Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping + var/state = SS_IDLE + + /// Tracks how many fires the subsystem has consecutively paused on in the current run + var/paused_ticks = 0 + + /// Tracks how much of a tick the subsystem has consumed in the current run + var/paused_tick_usage + + /// Tracks how many fires the subsystem takes to complete a run on average. + var/ticks = 1 + + /// Tracks the amount of completed runs for the subsystem + var/times_fired = 0 + + /// Time the subsystem entered the queue, (for timing and priority reasons) + var/queued_time = 0 + + /// Priority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things. + var/queued_priority + + /// How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out! + var/static/list/failure_strikes + + /// Next subsystem in the queue of subsystems to run this tick + var/datum/controller/subsystem/queue_next + /// Previous subsystem in the queue of subsystems to run this tick + var/datum/controller/subsystem/queue_prev + + //Do not blindly add vars here to the bottom, put it where it goes above + //If your var only has two values, put it in as a flag. + //Do not override ///datum/controller/subsystem/New() @@ -46,6 +98,7 @@ //This is used so the mc knows when the subsystem sleeps. do not override. /datum/controller/subsystem/proc/ignite(resumed = 0) + SHOULD_NOT_OVERRIDE(TRUE) set waitfor = 0 . = SS_SLEEPING fire(resumed) @@ -87,7 +140,7 @@ queue_node_flags = queue_node.flags if (queue_node_flags & SS_TICKER) - if (!(SS_flags & SS_TICKER)) + if ((SS_flags & (SS_TICKER|SS_BACKGROUND)) != SS_TICKER) continue if (queue_node_priority < SS_priority) break @@ -155,6 +208,9 @@ if(SS_SLEEPING) state = SS_PAUSING +/// Called after the config has been loaded or reloaded. +/datum/controller/subsystem/proc/OnConfigLoad() + /datum/controller/subsystem/proc/subsystem_log(msg) return log_subsystem(name, msg) @@ -167,23 +223,12 @@ log_subsystem("INIT", msg) return time -//hook for printing stats to the "MC" statuspanel for admins to see performance and related stats etc. /datum/controller/subsystem/stat_entry(msg) - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) - - - if(can_fire && !(SS_NO_FIRE & flags)) msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)]\t[msg]" else msg = "OFFLINE\t[msg]" - - var/title = name - if (can_fire) - title = "\[[state_letter()]][title]" - - stat(title, statclick.update(msg)) + return msg /datum/controller/subsystem/proc/state_letter() switch (state) diff --git a/code/controllers/subsystem/acid.dm b/code/controllers/subsystem/acid.dm index 7c9e7634ab..25d080a1b1 100644 --- a/code/controllers/subsystem/acid.dm +++ b/code/controllers/subsystem/acid.dm @@ -7,8 +7,9 @@ SUBSYSTEM_DEF(acid) var/list/currentrun = list() var/list/processing = list() -/datum/controller/subsystem/acid/stat_entry() - ..("P:[processing.len]") +/datum/controller/subsystem/acid/stat_entry(msg) + msg = "P:[length(processing)]" + return ..() /datum/controller/subsystem/acid/fire(resumed = 0) diff --git a/code/controllers/subsystem/adjacent_air.dm b/code/controllers/subsystem/adjacent_air.dm index 8395eda708..ccbf8ffc65 100644 --- a/code/controllers/subsystem/adjacent_air.dm +++ b/code/controllers/subsystem/adjacent_air.dm @@ -6,12 +6,13 @@ SUBSYSTEM_DEF(adjacent_air) priority = FIRE_PRIORITY_ATMOS_ADJACENCY var/list/queue = list() -/datum/controller/subsystem/adjacent_air/stat_entry() +/datum/controller/subsystem/adjacent_air/stat_entry(msg) #ifdef TESTING - ..("P:[length(queue)], S:[GLOB.atmos_adjacent_savings[1]], T:[GLOB.atmos_adjacent_savings[2]]") + msg = "P:[length(queue)], S:[GLOB.atmos_adjacent_savings[1]], T:[GLOB.atmos_adjacent_savings[2]]" #else - ..("P:[length(queue)]") + msg = "P:[length(queue)]" #endif + return ..() /datum/controller/subsystem/adjacent_air/Initialize() while(length(queue)) diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index baceb4d055..f777c967ae 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -16,7 +16,6 @@ SUBSYSTEM_DEF(air) var/cost_atmos_machinery = 0 var/cost_equalize = 0 - var/list/active_turfs = list() var/list/hotspots = list() var/list/networks = list() var/list/pipenets_needing_rebuilt = list() @@ -54,14 +53,17 @@ SUBSYSTEM_DEF(air) msg += "PN:[round(cost_pipenets,1)]|" msg += "AM:[round(cost_atmos_machinery,1)]" msg += "} " - msg += "AT:[active_turfs.len]|" + var/active_turfs_len = get_amt_active_turfs() + msg += "AT:[active_turfs_len]|" msg += "EG:[get_amt_excited_groups()]|" msg += "HS:[hotspots.len]|" msg += "PN:[networks.len]|" msg += "HP:[high_pressure_delta.len]|" msg += "AS:[active_super_conductivity.len]|" - msg += "AT/MS:[round((cost ? active_turfs.len/cost : 0),0.1)]" - ..(msg) + msg += "GA:[get_amt_gas_mixes()]|" + msg += "MG:[get_max_gas_mixes()]|" + msg += "AT/MS:[round((cost ? active_turfs_len/cost : 0),0.1)]" + return ..() /datum/controller/subsystem/air/Initialize(timeofday) extools_update_ssair() @@ -70,9 +72,11 @@ SUBSYSTEM_DEF(air) setup_atmos_machinery() setup_pipenets() gas_reactions = init_gas_reactions() + extools_update_reactions() return ..() /datum/controller/subsystem/air/proc/extools_update_ssair() +/datum/controller/subsystem/air/proc/extools_update_reactions() /datum/controller/subsystem/air/fire(resumed = 0) var/timer = TICK_USAGE_REAL @@ -237,6 +241,8 @@ SUBSYSTEM_DEF(air) return /datum/controller/subsystem/air/proc/process_turf_equalize(resumed = 0) + return process_turf_equalize_extools(resumed, (Master.current_ticklimit - TICK_USAGE) * 0.01 * world.tick_lag) + /* //cache for sanic speed var/fire_count = times_fired if (!resumed) @@ -251,8 +257,11 @@ SUBSYSTEM_DEF(air) //equalize_pressure_in_zone(T, fire_count) if (MC_TICK_CHECK) return + */ /datum/controller/subsystem/air/proc/process_active_turfs(resumed = 0) + return process_active_turfs_extools(resumed, (Master.current_ticklimit - TICK_USAGE) * 0.01 * world.tick_lag) + /* //cache for sanic speed var/fire_count = times_fired if (!resumed) @@ -266,10 +275,10 @@ SUBSYSTEM_DEF(air) T.process_cell(fire_count) if (MC_TICK_CHECK) return + */ /datum/controller/subsystem/air/proc/process_excited_groups(resumed = 0) - if(process_excited_groups_extools(resumed, (Master.current_ticklimit - TICK_USAGE) * 0.01 * world.tick_lag)) - sleep() + return process_excited_groups_extools(resumed, (Master.current_ticklimit - TICK_USAGE) * 0.01 * world.tick_lag) /* if (!resumed) src.currentrun = excited_groups.Copy() @@ -288,13 +297,20 @@ SUBSYSTEM_DEF(air) return */ +/datum/controller/subsystem/air/proc/process_active_turfs_extools() +/datum/controller/subsystem/air/proc/process_turf_equalize_extools() /datum/controller/subsystem/air/proc/process_excited_groups_extools() /datum/controller/subsystem/air/proc/get_amt_excited_groups() +/datum/controller/subsystem/air/proc/get_amt_active_turfs() +/datum/controller/subsystem/air/proc/get_amt_gas_mixes() +/datum/controller/subsystem/air/proc/get_max_gas_mixes() +/datum/controller/subsystem/air/proc/add_to_active_extools() +/datum/controller/subsystem/air/proc/remove_from_active_extools() +/datum/controller/subsystem/air/proc/get_active_turfs() +/datum/controller/subsystem/air/proc/clear_active_turfs() /datum/controller/subsystem/air/proc/remove_from_active(turf/open/T) - active_turfs -= T - if(currentpart == SSAIR_ACTIVETURFS) - currentrun -= T + remove_from_active_extools(T) #ifdef VISUALIZE_ACTIVE_TURFS T.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#00ff00") #endif @@ -308,9 +324,7 @@ SUBSYSTEM_DEF(air) T.add_atom_colour("#00ff00", TEMPORARY_COLOUR_PRIORITY) #endif T.set_excited(TRUE) - active_turfs |= T - if(currentpart == SSAIR_ACTIVETURFS) - currentrun |= T + add_to_active_extools(T) if(blockchanges) T.eg_garbage_collect() else if(T.flags_1 & INITIALIZED_1) @@ -335,12 +349,11 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/proc/setup_allturfs() var/list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz)) - var/list/active_turfs = src.active_turfs var/times_fired = ++src.times_fired // Clear active turfs - faster than removing every single turf in the world // one-by-one, and Initalize_Atmos only ever adds `src` back in. - active_turfs.Cut() + clear_active_turfs() for(var/thing in turfs_to_init) var/turf/T = thing @@ -348,28 +361,27 @@ SUBSYSTEM_DEF(air) continue T.Initalize_Atmos(times_fired) CHECK_TICK - - if(active_turfs.len) - var/starting_ats = active_turfs.len + var/starting_ats = get_amt_active_turfs() + if(starting_ats) sleep(world.tick_lag) var/timer = world.timeofday log_mapping("There are [starting_ats] active turfs at roundstart caused by a difference of the air between the adjacent turfs. You can see its coordinates using \"Mapping -> Show roundstart AT list\" verb (debug verbs required).") - for(var/turf/T in active_turfs) + var/list/turfs_to_check = get_active_turfs() + for(var/T in turfs_to_check) GLOB.active_turfs_startlist += T //now lets clear out these active turfs - var/list/turfs_to_check = active_turfs.Copy() do var/list/new_turfs_to_check = list() for(var/turf/open/T in turfs_to_check) new_turfs_to_check += T.resolve_active_graph() CHECK_TICK - - active_turfs += new_turfs_to_check + for(var/T in new_turfs_to_check) + add_to_active_extools(T) turfs_to_check = new_turfs_to_check while (turfs_to_check.len) - var/ending_ats = active_turfs.len + var/ending_ats = get_amt_active_turfs() /*for(var/thing in excited_groups) var/datum/excited_group/EG = thing //EG.self_breakdown(space_is_all_consuming = 1) @@ -445,6 +457,8 @@ SUBSYSTEM_DEF(air) return pipe_init_dirs_cache[type]["[dir]"] +/proc/get_extools_benchmarks() + #undef SSAIR_PIPENETS #undef SSAIR_ATMOSMACHINERY #undef SSAIR_ACTIVETURFS diff --git a/code/controllers/subsystem/assets.dm b/code/controllers/subsystem/assets.dm index 7285298283..4f02d32ad0 100644 --- a/code/controllers/subsystem/assets.dm +++ b/code/controllers/subsystem/assets.dm @@ -4,6 +4,23 @@ SUBSYSTEM_DEF(assets) flags = SS_NO_FIRE var/list/cache = list() var/list/preload = list() + var/datum/asset_transport/transport = new() + +/datum/controller/subsystem/assets/OnConfigLoad() + var/newtransporttype = /datum/asset_transport + switch (CONFIG_GET(string/asset_transport)) + if ("webroot") + newtransporttype = /datum/asset_transport/webroot + + if (newtransporttype == transport.type) + return + + var/datum/asset_transport/newtransport = new newtransporttype () + if (newtransport.validate_config()) + transport = newtransport + transport.Load() + + /datum/controller/subsystem/assets/Initialize(timeofday) for(var/type in typesof(/datum/asset)) @@ -11,8 +28,6 @@ SUBSYSTEM_DEF(assets) if (type != initial(A._abstract)) get_asset_datum(type) - preload = cache.Copy() //don't preload assets generated during the round + transport.Initialize(cache) - for(var/client/C in GLOB.clients) - addtimer(CALLBACK(GLOBAL_PROC, .proc/getFilesSlow, C, preload, FALSE), 10) ..() diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index db1fced637..b9a4785f49 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -90,6 +90,8 @@ SUBSYSTEM_DEF(atoms) qdeleted = TRUE else if(!(A.flags_1 & INITIALIZED_1)) BadInitializeCalls[the_type] |= BAD_INIT_DIDNT_INIT + else + SEND_SIGNAL(A,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE) return qdeleted || QDELING(A) diff --git a/code/controllers/subsystem/augury.dm b/code/controllers/subsystem/augury.dm index 1b1c7bc3b7..53c86004a6 100644 --- a/code/controllers/subsystem/augury.dm +++ b/code/controllers/subsystem/augury.dm @@ -9,7 +9,8 @@ SUBSYSTEM_DEF(augury) var/list/observers_given_action = list() /datum/controller/subsystem/augury/stat_entry(msg) - ..("W:[watchers.len]|D:[doombringers.len]") + msg = "W:[watchers.len]|D:[length(doombringers)]" + return ..() /datum/controller/subsystem/augury/proc/register_doom(atom/A, severity) doombringers[A] = severity diff --git a/code/controllers/subsystem/chat.dm b/code/controllers/subsystem/chat.dm index ba2794d00f..f2e9da704f 100644 --- a/code/controllers/subsystem/chat.dm +++ b/code/controllers/subsystem/chat.dm @@ -1,3 +1,8 @@ +/** + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + SUBSYSTEM_DEF(chat) name = "Chat" flags = SS_TICKER @@ -5,91 +10,29 @@ SUBSYSTEM_DEF(chat) priority = FIRE_PRIORITY_CHAT init_order = INIT_ORDER_CHAT - var/list/payload = list() - + var/list/payload_by_client = list() /datum/controller/subsystem/chat/fire() - for(var/i in payload) - var/client/C = i - C << output(payload[C], "browseroutput:output") - payload -= C - + for(var/key in payload_by_client) + var/client/client = key + var/payload = payload_by_client[key] + payload_by_client -= key + if(client) + // Send to tgchat + client.tgui_panel?.window.send_message("chat/message", payload) + // Send to old chat + for(var/message in payload) + SEND_TEXT(client, message_to_html(message)) if(MC_TICK_CHECK) return - -/datum/controller/subsystem/chat/proc/queue(target, message, handle_whitespace = TRUE, trailing_newline = TRUE, confidential = TRUE) - if(!target || !message) - return - - if(!istext(message)) - stack_trace("to_chat called with invalid input type") - return - - if(target == world) - target = GLOB.clients - - //Some macros remain in the string even after parsing and fuck up the eventual output - var/original_message = message - - //url_encode it TWICE, this way any UTF-8 characters are able to be decoded by the Javascript. - //Do the double-encoding here to save nanoseconds - var/twiceEncoded - +/datum/controller/subsystem/chat/proc/queue(target, message) if(islist(target)) - var/sanitized_message = FALSE - for(var/I in target) - var/client/C = CLIENT_FROM_VAR(I) //Grab us a client if possible - - if(!C) - continue - - //Send it to the old style output window. - SEND_TEXT(C, original_message) - - if(!C?.chatOutput || C.chatOutput.broken) //A player who hasn't updated his skin file. - continue - - if(!sanitized_message) - message = replacetext(message, "\improper", "") - message = replacetext(message, "\proper", "") - if(handle_whitespace) - message = replacetext(message, "\n", "
") - message = replacetext(message, "\t", "[FOURSPACES][FOURSPACES]") - if (trailing_newline) - message += "
" - twiceEncoded = url_encode(url_encode(message)) - sanitized_message = TRUE - - if(!C.chatOutput.loaded) //Client still loading, put their messages in a queue - C.chatOutput.messageQueue += message - continue - - payload[C] += twiceEncoded - - else - var/client/C = CLIENT_FROM_VAR(target) //Grab us a client if possible - - if(!C) - return - - //Send it to the old style output window. - SEND_TEXT(C, original_message) - - if(!C?.chatOutput || C.chatOutput.broken) //A player who hasn't updated his skin file. - return - - message = replacetext(message, "\improper", "") - message = replacetext(message, "\proper", "") - if(handle_whitespace) - message = replacetext(message, "\n", "
") - message = replacetext(message, "\t", "[FOURSPACES][FOURSPACES]") - if (trailing_newline) - message += "
" - twiceEncoded = url_encode(url_encode(message)) - - if(!C.chatOutput.loaded) //Client still loading, put their messages in a queue - C.chatOutput.messageQueue += message - return - - payload[C] += twiceEncoded + for(var/_target in target) + var/client/client = CLIENT_FROM_VAR(_target) + if(client) + LAZYADD(payload_by_client[client], list(message)) + return + var/client/client = CLIENT_FROM_VAR(target) + if(client) + LAZYADD(payload_by_client[client], list(message)) diff --git a/code/controllers/subsystem/disease.dm b/code/controllers/subsystem/disease.dm index 9be1d8d90c..4fe5533e16 100644 --- a/code/controllers/subsystem/disease.dm +++ b/code/controllers/subsystem/disease.dm @@ -20,7 +20,8 @@ SUBSYSTEM_DEF(disease) return ..() /datum/controller/subsystem/disease/stat_entry(msg) - ..("P:[active_diseases.len]") + msg = "P:[length(active_diseases)]" + return ..() /datum/controller/subsystem/disease/proc/get_disease_name(id) var/datum/disease/advance/A = archive_diseases[id] diff --git a/code/controllers/subsystem/fire_burning.dm b/code/controllers/subsystem/fire_burning.dm index db6dc6513e..3251285ade 100644 --- a/code/controllers/subsystem/fire_burning.dm +++ b/code/controllers/subsystem/fire_burning.dm @@ -7,8 +7,9 @@ SUBSYSTEM_DEF(fire_burning) var/list/currentrun = list() var/list/processing = list() -/datum/controller/subsystem/fire_burning/stat_entry() - ..("P:[processing.len]") +/datum/controller/subsystem/fire_burning/stat_entry(msg) + msg = "P:[length(processing)]" + return ..() /datum/controller/subsystem/fire_burning/fire(resumed = 0) @@ -34,4 +35,3 @@ SUBSYSTEM_DEF(fire_burning) if (MC_TICK_CHECK) return - diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index b46e22c1fa..51d56545b6 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -58,7 +58,7 @@ SUBSYSTEM_DEF(garbage) msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%" msg += " P:[pass_counts.Join(",")]" msg += "|F:[fail_counts.Join(",")]" - ..(msg) + return ..() /datum/controller/subsystem/garbage/Shutdown() //Adds the del() log to the qdel log file diff --git a/code/controllers/subsystem/idlenpcpool.dm b/code/controllers/subsystem/idlenpcpool.dm index 8992fa7b92..03b7931d82 100644 --- a/code/controllers/subsystem/idlenpcpool.dm +++ b/code/controllers/subsystem/idlenpcpool.dm @@ -8,10 +8,11 @@ SUBSYSTEM_DEF(idlenpcpool) var/list/currentrun = list() var/static/list/idle_mobs_by_zlevel[][] -/datum/controller/subsystem/idlenpcpool/stat_entry() +/datum/controller/subsystem/idlenpcpool/stat_entry(msg) var/list/idlelist = GLOB.simple_animals[AI_IDLE] var/list/zlist = GLOB.simple_animals[AI_Z_OFF] - ..("IdleNPCS:[idlelist.len]|Z:[zlist.len]") + msg = "IdleNPCS:[length(idlelist)]|Z:[length(zlist)]" + return ..() /datum/controller/subsystem/idlenpcpool/proc/MaxZChanged() if (!islist(idle_mobs_by_zlevel)) diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index c6e6a84bcf..e193c68536 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -7,8 +7,9 @@ SUBSYSTEM_DEF(lighting) wait = 2 init_order = INIT_ORDER_LIGHTING -/datum/controller/subsystem/lighting/stat_entry() - ..("L:[GLOB.lighting_update_lights.len]|C:[GLOB.lighting_update_corners.len]|O:[GLOB.lighting_update_objects.len]") +/datum/controller/subsystem/lighting/stat_entry(msg) + msg = "L:[length(GLOB.lighting_update_lights)]|C:[length(GLOB.lighting_update_corners)]|O:[length(GLOB.lighting_update_objects)]" + return ..() /datum/controller/subsystem/lighting/Initialize(timeofday) diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index c4b09d1b87..f356009569 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -22,8 +22,9 @@ SUBSYSTEM_DEF(machines) NewPN.add_cable(PC) propagate_network(PC,PC.powernet) -/datum/controller/subsystem/machines/stat_entry() - ..("M:[processing.len]|PN:[powernets.len]") +/datum/controller/subsystem/machines/stat_entry(msg) + msg = "M:[length(processing)]|PN:[length(powernets)]" + return ..() /datum/controller/subsystem/machines/fire(resumed = 0) diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm index 885587ff55..5a7dd30ce3 100644 --- a/code/controllers/subsystem/mobs.dm +++ b/code/controllers/subsystem/mobs.dm @@ -10,8 +10,9 @@ SUBSYSTEM_DEF(mobs) var/static/list/cubemonkeys = list() var/static/list/cheeserats = list() -/datum/controller/subsystem/mobs/stat_entry() - ..("P:[GLOB.mob_living_list.len]") +/datum/controller/subsystem/mobs/stat_entry(msg) + msg = "P:[length(GLOB.mob_living_list)]" + return ..() /datum/controller/subsystem/mobs/proc/MaxZChanged() if (!islist(clients_by_zlevel)) diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index 2d2fbb0704..c67deaede1 100644 --- a/code/controllers/subsystem/npcpool.dm +++ b/code/controllers/subsystem/npcpool.dm @@ -6,9 +6,10 @@ SUBSYSTEM_DEF(npcpool) var/list/currentrun = list() -/datum/controller/subsystem/npcpool/stat_entry() +/datum/controller/subsystem/npcpool/stat_entry(msg) var/list/activelist = GLOB.simple_animals[AI_ON] - ..("NPCS:[activelist.len]") + msg = "NPCS:[length(activelist)]" + return ..() /datum/controller/subsystem/npcpool/fire(resumed = FALSE) diff --git a/code/controllers/subsystem/overlays.dm b/code/controllers/subsystem/overlays.dm index ea0f82436c..b42a1e6b7e 100644 --- a/code/controllers/subsystem/overlays.dm +++ b/code/controllers/subsystem/overlays.dm @@ -22,8 +22,9 @@ SUBSYSTEM_DEF(overlays) return ..() -/datum/controller/subsystem/overlays/stat_entry() - ..("Ov:[length(queue)]") +/datum/controller/subsystem/overlays/stat_entry(msg) + msg = "Ov:[length(queue)]" + return ..() /datum/controller/subsystem/overlays/Shutdown() diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 5b60747725..e1b6e6f6e2 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -48,25 +48,6 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/proc/LoadSatchels() var/placed_satchel = 0 var/path - if(fexists("data/npc_saves/SecretSatchels.sav")) //legacy conversion. Will only ever run once. - var/savefile/secret_satchels = new /savefile("data/npc_saves/SecretSatchels.sav") - for(var/map in secret_satchels) - var/json_file = file("data/npc_saves/SecretSatchels[map].json") - var/list/legacy_secret_satchels = splittext(secret_satchels[map],"#") - var/list/satchels = list() - for(var/i=1,i<=legacy_secret_satchels.len,i++) - var/satchel_string = legacy_secret_satchels[i] - var/list/chosen_satchel = splittext(satchel_string,"|") - if(chosen_satchel.len == 3) - var/list/data = list() - data["x"] = text2num(chosen_satchel[1]) - data["y"] = text2num(chosen_satchel[2]) - data["saved_obj"] = chosen_satchel[3] - satchels += list(data) - var/list/file_data = list() - file_data["data"] = satchels - WRITE_FILE(json_file, json_encode(file_data)) - fdel("data/npc_saves/SecretSatchels.sav") var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json") var/list/json = list() diff --git a/code/controllers/subsystem/ping.dm b/code/controllers/subsystem/ping.dm deleted file mode 100644 index c5c9bb3933..0000000000 --- a/code/controllers/subsystem/ping.dm +++ /dev/null @@ -1,33 +0,0 @@ -SUBSYSTEM_DEF(ping) - name = "Ping" - priority = FIRE_PRIORITY_PING - wait = 3 SECONDS - flags = SS_NO_INIT - runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME - - var/list/currentrun = list() - -/datum/controller/subsystem/ping/stat_entry() - ..("P:[GLOB.clients.len]") - - -/datum/controller/subsystem/ping/fire(resumed = 0) - if (!resumed) - src.currentrun = GLOB.clients.Copy() - - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while (currentrun.len) - var/client/C = currentrun[currentrun.len] - currentrun.len-- - - if (!C || !C.chatOutput || !C.chatOutput.loaded) - if (MC_TICK_CHECK) - return - continue - - // softPang isn't handled anywhere but it'll always reset the opts.lastPang. - C.chatOutput.ehjax_send(data = C.is_afk(29) ? "softPang" : "pang") - if (MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/processing/instruments.dm b/code/controllers/subsystem/processing/instruments.dm index a4e0d7703f..ee0fd1ea00 100644 --- a/code/controllers/subsystem/processing/instruments.dm +++ b/code/controllers/subsystem/processing/instruments.dm @@ -4,16 +4,26 @@ PROCESSING_SUBSYSTEM_DEF(instruments) init_order = INIT_ORDER_INSTRUMENTS flags = SS_KEEP_TIMING priority = FIRE_PRIORITY_INSTRUMENTS - var/static/list/datum/instrument/instrument_data = list() //id = datum + /// List of all instrument data, associative id = datum + var/static/list/datum/instrument/instrument_data = list() + /// List of all song datums. var/static/list/datum/song/songs = list() + /// Max lines in songs var/static/musician_maxlines = 600 + /// Max characters per line in songs var/static/musician_maxlinechars = 300 + /// Deciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this. var/static/musician_hearcheck_mindelay = 5 + /// Maximum instrument channels total instruments are allowed to use. This is so you don't have instruments deadlocking all sound channels. var/static/max_instrument_channels = MAX_INSTRUMENT_CHANNELS + /// Current number of channels allocated for instruments var/static/current_instrument_channels = 0 + /// Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer. + var/static/list/synthesizer_instrument_ids /datum/controller/subsystem/processing/instruments/Initialize() initialize_instrument_data() + synthesizer_instrument_ids = get_allowed_instrument_ids() return ..() /datum/controller/subsystem/processing/instruments/proc/on_song_new(datum/song/S) @@ -29,7 +39,10 @@ PROCESSING_SUBSYSTEM_DEF(instruments) continue I = new path I.Initialize() - instrument_data[I.id || "[I.type]"] = I + if(!I.id) + qdel(I) + continue + instrument_data[I.id] = I CHECK_TICK /datum/controller/subsystem/processing/instruments/proc/get_instrument(id_or_path) diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index c5d6dfa126..637b04993d 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -10,8 +10,9 @@ SUBSYSTEM_DEF(processing) var/list/processing = list() var/list/currentrun = list() -/datum/controller/subsystem/processing/stat_entry() - ..("[stat_tag]:[processing.len]") +/datum/controller/subsystem/processing/stat_entry(msg) + msg = "[stat_tag]:[length(processing)]" + return ..() /datum/controller/subsystem/processing/fire(resumed = 0) if (!resumed) diff --git a/code/controllers/subsystem/profiler.dm b/code/controllers/subsystem/profiler.dm index ef10e0626c..81fa77dc6c 100644 --- a/code/controllers/subsystem/profiler.dm +++ b/code/controllers/subsystem/profiler.dm @@ -12,7 +12,7 @@ SUBSYSTEM_DEF(profiler) /datum/controller/subsystem/profiler/stat_entry(msg) msg += "F:[round(fetch_cost,1)]ms" msg += "|W:[round(write_cost,1)]ms" - ..(msg) + return msg /datum/controller/subsystem/profiler/Initialize() if(CONFIG_GET(flag/auto_profile)) diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index 60c5dd5b99..ac9db60ccc 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -294,6 +294,17 @@ SUBSYSTEM_DEF(research) //[88nodes * 5000points/node] / [1.5hr * 90min/hr * 60s/min] //Around 450000 points max??? + /// The global list of raw anomaly types that have been refined, for hard limits. + var/list/created_anomaly_types = list() + /// The hard limits of cores created for each anomaly type. For faster code lookup without switch statements. + var/list/anomaly_hard_limit_by_type = list( + ANOMALY_CORE_BLUESPACE = MAX_CORES_BLUESPACE, + ANOMALY_CORE_PYRO = MAX_CORES_PYRO, + ANOMALY_CORE_GRAVITATIONAL = MAX_CORES_GRAVITATIONAL, + ANOMALY_CORE_VORTEX = MAX_CORES_VORTEX, + ANOMALY_CORE_FLUX = MAX_CORES_FLUX + ) + /datum/controller/subsystem/research/Initialize() point_types = TECHWEB_POINT_TYPE_LIST_ASSOCIATIVE_NAMES initialize_all_techweb_designs() diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index b77c78c4bb..2427fbd277 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -76,9 +76,7 @@ SUBSYSTEM_DEF(server_maint) if(!thing) continue var/client/C = thing - var/datum/chatOutput/co = C.chatOutput - if(co) - co.ehjax_send(data = "roundrestart") + C?.tgui_panel?.send_roundrestart() if(server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite C << link("byond://[server]") var/datum/tgs_version/tgsversion = world.TgsVersion() diff --git a/code/controllers/subsystem/spacedrift.dm b/code/controllers/subsystem/spacedrift.dm index c251492227..c3261df304 100644 --- a/code/controllers/subsystem/spacedrift.dm +++ b/code/controllers/subsystem/spacedrift.dm @@ -8,8 +8,9 @@ SUBSYSTEM_DEF(spacedrift) var/list/currentrun = list() var/list/processing = list() -/datum/controller/subsystem/spacedrift/stat_entry() - ..("P:[processing.len]") +/datum/controller/subsystem/spacedrift/stat_entry(msg) + msg = "P:[length(processing)]" + return ..() /datum/controller/subsystem/spacedrift/fire(resumed = 0) @@ -56,4 +57,3 @@ SUBSYSTEM_DEF(spacedrift) AM.inertia_last_loc = AM.loc if (MC_TICK_CHECK) return - diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm new file mode 100644 index 0000000000..cf7d4ba533 --- /dev/null +++ b/code/controllers/subsystem/statpanel.dm @@ -0,0 +1,195 @@ +SUBSYSTEM_DEF(statpanels) + name = "Stat Panels" + wait = 4 + init_order = INIT_ORDER_STATPANELS + priority = FIRE_PRIORITY_STATPANEL + runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY + var/list/currentrun = list() + var/encoded_global_data + var/mc_data_encoded + var/list/cached_images = list() + +/datum/controller/subsystem/statpanels/fire(resumed = FALSE) + if (!resumed) + var/datum/map_config/cached = SSmapping.next_map_config + var/round_time = world.time - SSticker.round_start_time + var/list/global_data = list( + "Map: [SSmapping.config?.map_name || "Loading..."]", + cached ? "Next Map: [cached.map_name]" : null, + "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", + "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", + "Round Time: [round_time > MIDNIGHT_ROLLOVER ? "[round(round_time/MIDNIGHT_ROLLOVER)]:[worldtime2text()]" : worldtime2text()]", + "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)]", + "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)" + ) + + if(SSshuttle.emergency) + var/ETA = SSshuttle.emergency.getModeStr() + if(ETA) + global_data += "[ETA] [SSshuttle.emergency.getTimerStr()]" +/* Please fix + if(SSvote.mode) + var/static/list/supported = list(PLURALITY_VOTING, APPROVAL_VOTING) + global_data += "Vote active!, There is currently a vote running. Question: [SSvote.question]" + if(!(SSvote.vote_system in supported)) + global_data += ", The current vote system is not supported by statpanel rendering. Please vote manually by opening the vote popup using the action button or chat link." + return + global_data += "Time Left:, [round(SSvote.end_time - world.time)] seconds" + + global_data += "Choices:" + for(var/i in 1 to SSvote.choice_statclicks.len) + var/choice = SSvote.choice_statclicks[i] + var/ivotedforthis = FALSE + if(usr.ckey) + switch(SSvote.vote_system) + if(APPROVAL_VOTING) + ivotedforthis = SSvote.voted[usr.ckey] && (i in SSvote.voted[usr.ckey]) + if(PLURALITY_VOTING) + ivotedforthis = SSvote.voted[usr.ckey] == i + + global_data += (ivotedforthis? "\[X\]" : "\[ \]", SSvote.choice_statclicks[choice]) +*/ + + encoded_global_data = url_encode(json_encode(global_data)) + src.currentrun = GLOB.clients.Copy() + mc_data_encoded = null + var/list/currentrun = src.currentrun + while(length(currentrun)) + var/client/target = currentrun[length(currentrun)] + currentrun.len-- + if(!target.statbrowser_ready) + continue + if(target.stat_tab == "Status") + var/ping_str = url_encode("Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)") + var/other_str = url_encode(json_encode(target.mob.get_status_tab_items())) + target << output("[encoded_global_data];[ping_str];[other_str]", "statbrowser:update") + if(!target.holder) + target << output("", "statbrowser:remove_admin_tabs") + else + if(!("MC" in target.panel_tabs) || !("Tickets" in target.panel_tabs)) + target << output("[url_encode(target.holder.href_token)]", "statbrowser:add_admin_tabs") + if(target.stat_tab == "MC") + var/turf/eye_turf = get_turf(target.eye) + var/coord_entry = url_encode(COORD(eye_turf)) + if(!mc_data_encoded) + generate_mc_data() + target << output("[mc_data_encoded];[coord_entry]", "statbrowser:update_mc") + if(target.stat_tab == "Tickets") + var/list/ahelp_tickets = GLOB.ahelp_tickets.stat_entry() + target << output("[url_encode(json_encode(ahelp_tickets))];", "statbrowser:update_tickets") + if(!length(GLOB.sdql2_queries) && ("SDQL2" in target.panel_tabs)) + target << output("", "statbrowser:remove_sdql2") + else if(length(GLOB.sdql2_queries) && (target.stat_tab == "SDQL2" || !("SDQL2" in target.panel_tabs))) + var/list/sdql2A = list() + sdql2A[++sdql2A.len] = list("", "Access Global SDQL2 List", REF(GLOB.sdql2_vv_statobj)) + var/list/sdql2B = list() + for(var/i in GLOB.sdql2_queries) + var/datum/SDQL2_query/Q = i + sdql2B = Q.generate_stat() + sdql2A += sdql2B + target << output(url_encode(json_encode(sdql2A)), "statbrowser:update_sdql2") + if(target.mob) + var/mob/M = target.mob + if((target.stat_tab in target.spell_tabs) || !length(target.spell_tabs) && (length(M.mob_spell_list) || length(M.mind?.spell_list))) + var/list/proc_holders = M.get_proc_holders() + target.spell_tabs.Cut() + for(var/phl in proc_holders) + var/list/proc_holder_list = phl + target.spell_tabs |= proc_holder_list[1] + var/proc_holders_encoded = "" + if(length(proc_holders)) + proc_holders_encoded = url_encode(json_encode(proc_holders)) + target << output("[url_encode(json_encode(target.spell_tabs))];[proc_holders_encoded]", "statbrowser:update_spells") + if(M?.listed_turf) + var/mob/target_mob = M + if(!target_mob.TurfAdjacent(target_mob.listed_turf)) + target << output("", "statbrowser:remove_listedturf") + target_mob.listed_turf = null + else if(target.stat_tab == M?.listed_turf.name || !(M?.listed_turf.name in target.panel_tabs)) + var/list/overrides = list() + var/list/turfitems = list() + for(var/img in target.images) + var/image/target_image = img + if(!target_image.loc || target_image.loc.loc != target_mob.listed_turf || !target_image.override) + continue + overrides += target_image.loc + turfitems[++turfitems.len] = list("[target_mob.listed_turf]", REF(target_mob.listed_turf), icon2html(target_mob.listed_turf, target, sourceonly=TRUE)) + for(var/tc in target_mob.listed_turf) + var/atom/movable/turf_content = tc + if(turf_content.mouse_opacity == MOUSE_OPACITY_TRANSPARENT) + continue + if(turf_content.invisibility > target_mob.see_invisible) + continue + if(turf_content in overrides) + continue + if(turf_content.IsObscured()) + continue + if(length(turfitems) < 30) // only create images for the first 30 items on the turf, for performance reasons + if(!(REF(turf_content) in cached_images)) + cached_images += REF(turf_content) + turf_content.RegisterSignal(turf_content, COMSIG_PARENT_QDELETING, /atom/.proc/remove_from_cache) // we reset cache if anything in it gets deleted + if(ismob(turf_content) || length(turf_content.overlays) > 2) + turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content), costly_icon2html(turf_content, target, sourceonly=TRUE)) + else + turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content), icon2html(turf_content, target, sourceonly=TRUE)) + else + turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content)) + else + turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content)) + turfitems = url_encode(json_encode(turfitems)) + target << output("[turfitems];", "statbrowser:update_listedturf") + if(MC_TICK_CHECK) + return + + +/datum/controller/subsystem/statpanels/proc/generate_mc_data() + var/list/mc_data = list( + list("CPU:", world.cpu), + list("Instances:", "[num2text(world.contents.len, 10)]"), + list("World Time:", "[world.time]"), + list("Globals:", GLOB.stat_entry(), "\ref[GLOB]"), + list("[config]:", config.stat_entry(), "\ref[config]"), + list("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)"), + list("Master Controller:", Master.stat_entry(), "\ref[Master]"), + list("Failsafe Controller:", Failsafe.stat_entry(), "\ref[Failsafe]"), + list("","") + ) + for(var/ss in Master.subsystems) + var/datum/controller/subsystem/sub_system = ss + mc_data[++mc_data.len] = list("\[[sub_system.state_letter()]][sub_system.name]", sub_system.stat_entry(), "\ref[sub_system]") + mc_data[++mc_data.len] = list("Camera Net", "Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]", "\ref[GLOB.cameranet]") + mc_data_encoded = url_encode(json_encode(mc_data)) + +/atom/proc/remove_from_cache() + SSstatpanels.cached_images -= REF(src) + +/// verbs that send information from the browser UI +/client/verb/set_tab(tab as text|null) + set name = "Set Tab" + set hidden = TRUE + + stat_tab = tab + +/client/verb/send_tabs(tabs as text|null) + set name = "Send Tabs" + set hidden = TRUE + + panel_tabs |= tabs + +/client/verb/remove_tabs(tabs as text|null) + set name = "Remove Tabs" + set hidden = TRUE + + panel_tabs -= tabs + +/client/verb/reset_tabs() + set name = "Reset Tabs" + set hidden = TRUE + + panel_tabs = list() + +/client/verb/panel_ready() + set name = "Panel Ready" + set hidden = TRUE + + statbrowser_ready = TRUE diff --git a/code/controllers/subsystem/tgui.dm b/code/controllers/subsystem/tgui.dm index a5526d2c03..511ab623da 100644 --- a/code/controllers/subsystem/tgui.dm +++ b/code/controllers/subsystem/tgui.dm @@ -24,15 +24,16 @@ SUBSYSTEM_DEF(tgui) var/basehtml /datum/controller/subsystem/tgui/PreInit() - basehtml = file2text('tgui/packages/tgui/public/tgui.html') + basehtml = file2text('tgui/public/tgui.html') /datum/controller/subsystem/tgui/Shutdown() close_all_uis() -/datum/controller/subsystem/tgui/stat_entry() - ..("P:[open_uis.len]") +/datum/controller/subsystem/tgui/stat_entry(msg) + msg = "P:[length(open_uis)]" + return ..() -/datum/controller/subsystem/tgui/fire(resumed = 0) +/datum/controller/subsystem/tgui/fire(resumed = FALSE) if(!resumed) src.current_run = open_uis.Copy() // Cache for sanic speed (lists are references anyways) @@ -81,7 +82,8 @@ SUBSYSTEM_DEF(tgui) window_found = TRUE break if(!window_found) - log_tgui(user, "Error: Pool exhausted") + log_tgui(user, "Error: Pool exhausted", + context = "SStgui/request_pooled_window") return null return window @@ -93,7 +95,7 @@ SUBSYSTEM_DEF(tgui) * required user mob */ /datum/controller/subsystem/tgui/proc/force_close_all_windows(mob/user) - log_tgui(user, "force_close_all_windows") + log_tgui(user, context = "SStgui/force_close_all_windows") if(user.client) user.client.tgui_windows = list() for(var/i in 1 to TGUI_WINDOW_HARD_LIMIT) @@ -109,7 +111,7 @@ SUBSYSTEM_DEF(tgui) * required window_id string */ /datum/controller/subsystem/tgui/proc/force_close_window(mob/user, window_id) - log_tgui(user, "force_close_window") + log_tgui(user, context = "SStgui/force_close_window") // Close all tgui datums based on window_id. for(var/datum/tgui/ui in user.tgui_open_uis) if(ui.window && ui.window.id == window_id) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index d757b00493..8c5abc5469 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -11,8 +11,9 @@ SUBSYSTEM_DEF(throwing) var/list/currentrun var/list/processing = list() -/datum/controller/subsystem/throwing/stat_entry() - ..("P:[processing.len]") +/datum/controller/subsystem/throwing/stat_entry(msg) + msg = "P:[length(processing)]" + return ..() /datum/controller/subsystem/throwing/fire(resumed = 0) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 0bc4e6665a..19f19f05ac 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -396,6 +396,7 @@ SUBSYSTEM_DEF(ticker) SSjob.EquipRank(N, player.mind.assigned_role, 0) if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character)) SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE, N) + N.client.prefs.post_copy_to(player) CHECK_TICK if(captainless) for(var/mob/dead/new_player/N in GLOB.player_list) @@ -416,6 +417,7 @@ SUBSYSTEM_DEF(ticker) living.client.prefs.chat_toggles ^= CHAT_OOC var/obj/screen/splash/S = new(living.client, TRUE) S.Fade(TRUE) + living.client.init_verbs() livings += living if(livings.len) addtimer(CALLBACK(src, .proc/release_characters, livings), 30, TIMER_CLIENT_TIME) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 36bf992cfb..398e23cdc1 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -34,7 +34,8 @@ SUBSYSTEM_DEF(timer) bucket_resolution = world.tick_lag /datum/controller/subsystem/timer/stat_entry(msg) - ..("B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)]") + msg = "B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)]" + return ..() /datum/controller/subsystem/timer/fire(resumed = FALSE) var/lit = last_invoke_tick diff --git a/code/datums/accents.dm b/code/datums/accents.dm new file mode 100644 index 0000000000..ce32aa0884 --- /dev/null +++ b/code/datums/accents.dm @@ -0,0 +1,106 @@ +/datum/accent + +/datum/accent/proc/modify_speech(list/speech_args, datum/source, mob/living/carbon/owner) //transforms the message in some way + return speech_args + +/datum/accent/lizard/modify_speech(list/speech_args) + var/message = speech_args[SPEECH_MESSAGE] + var/static/regex/lizard_hiss = new("s+", "g") + var/static/regex/lizard_hiSS = new("S+", "g") + if(message[1] != "*") + message = lizard_hiss.Replace(message, "sss") + message = lizard_hiSS.Replace(message, "SSS") + speech_args[SPEECH_MESSAGE] = message + return speech_args + +/datum/accent/fly/modify_speech(list/speech_args) + var/message = speech_args[SPEECH_MESSAGE] + var/static/regex/fly_buzz = new("z+", "g") + var/static/regex/fly_buZZ = new("Z+", "g") + if(message[1] != "*") + message = fly_buzz.Replace(message, "zzz") + message = fly_buZZ.Replace(message, "ZZZ") + speech_args[SPEECH_MESSAGE] = message + return speech_args + +/datum/accent/abductor/modify_speech(list/speech_args, datum/source) + var/message = speech_args[SPEECH_MESSAGE] + var/mob/living/carbon/human/user = source + var/rendered = "[user.name]: [message]" + user.log_talk(message, LOG_SAY, tag="abductor") + for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) + var/obj/item/organ/tongue/T = H.getorganslot(ORGAN_SLOT_TONGUE) + if(!T || T.type != type) + continue + if(H.dna && H.dna.species.id == "abductor" && user.dna && user.dna.species.id == "abductor") + var/datum/antagonist/abductor/A = user.mind.has_antag_datum(/datum/antagonist/abductor) + if(!A || !(H.mind in A.team.members)) + continue + to_chat(H, rendered) + for(var/mob/M in GLOB.dead_mob_list) + var/link = FOLLOW_LINK(M, user) + to_chat(M, "[link] [rendered]") + speech_args[SPEECH_MESSAGE] = "" + return speech_args + +/datum/accent/zombie/modify_speech(list/speech_args) + var/message = speech_args[SPEECH_MESSAGE] + var/list/message_list = splittext(message, " ") + var/maxchanges = max(round(message_list.len / 1.5), 2) + + for(var/i = rand(maxchanges / 2, maxchanges), i > 0, i--) + var/insertpos = rand(1, message_list.len - 1) + var/inserttext = message_list[insertpos] + + if(!(copytext(inserttext, -3) == "..."))//3 == length("...") + message_list[insertpos] = inserttext + "..." + + if(prob(20) && message_list.len > 3) + message_list.Insert(insertpos, "[pick("BRAINS", "Brains", "Braaaiinnnsss", "BRAAAIIINNSSS")]...") + + speech_args[SPEECH_MESSAGE] = jointext(message_list, " ") + return speech_args + +/datum/accent/alien/modify_speech(list/speech_args, datum/source) + playsound(source, "hiss", 25, 1, 1) + return speech_args + +/datum/accent/fluffy/modify_speech(list/speech_args) + var/message = speech_args[SPEECH_MESSAGE] + if(message[1] != "*") + message = replacetext(message, "ne", "nye") + message = replacetext(message, "nu", "nyu") + message = replacetext(message, "na", "nya") + message = replacetext(message, "no", "nyo") + message = replacetext(message, "ove", "uv") + message = replacetext(message, "l", "w") + message = replacetext(message, "r", "w") + speech_args[SPEECH_MESSAGE] = lowertext(message) + return speech_args + +/datum/accent/span + var/span_flag + +/datum/accent/span/modify_speech(list/speech_args) + speech_args[SPEECH_SPANS] |= span_flag + return speech_args + +//bone tongues either have the sans accent or the papyrus accent +/datum/accent/span/sans + span_flag = SPAN_SANS + +/datum/accent/span/papyrus + span_flag = SPAN_PAPYRUS + +/datum/accent/span/robot + span_flag = SPAN_ROBOT + +/datum/accent/dullahan/modify_speech(list/speech_args, datum/source, mob/living/carbon/owner) + if(owner) + if(isdullahan(owner)) + var/datum/species/dullahan/D = owner.dna.species + if(isobj(D.myhead.loc)) + var/obj/O = D.myhead.loc + O.say(speech_args[SPEECH_MESSAGE]) + speech_args[SPEECH_MESSAGE] = "" + return speech_args diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 96b2a2a294..dbe60817bd 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -8,14 +8,14 @@ var/window_options = "can_close=1;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;" // window option is set using window_id var/stylesheets[0] var/scripts[0] - var/title_image var/head_elements var/body_elements var/head_content = "" var/content = "" + var/static/datum/asset/simple/namespaced/common/common_asset = get_asset_datum(/datum/asset/simple/namespaced/common) -/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) +/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, atom/nref = null) user = nuser window_id = nwindow_id @@ -27,7 +27,6 @@ height = nheight if (nref) ref = nref - add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs /datum/browser/proc/add_head_content(nhead_content) head_content = nhead_content @@ -35,22 +34,21 @@ /datum/browser/proc/set_window_options(nwindow_options) window_options = nwindow_options -/datum/browser/proc/set_title_image(ntitle_image) - //title_image = ntitle_image - /datum/browser/proc/add_stylesheet(name, file) if(istype(name, /datum/asset/spritesheet)) var/datum/asset/spritesheet/sheet = name stylesheets["spritesheet_[sheet.name].css"] = "data/spritesheets/[sheet.name]" else var/asset_name = "[name].css" + stylesheets[asset_name] = file - if(!SSassets.cache[asset_name]) - register_asset(asset_name, file) + + if (!SSassets.cache[asset_name]) + SSassets.transport.register_asset(asset_name, file) /datum/browser/proc/add_script(name, file) scripts["[ckey(name)].js"] = file - register_asset("[ckey(name)].js", file) + SSassets.transport.register_asset("[ckey(name)].js", file) /datum/browser/proc/set_content(ncontent) content = ncontent @@ -60,15 +58,13 @@ /datum/browser/proc/get_header() var/file + head_content += "" for (file in stylesheets) - head_content += "" + head_content += "" + for (file in scripts) - head_content += "" - - var/title_attributes = "class='uiTitle'" - if (title_image) - title_attributes = "class='uiTitle icon' style='background-image: url([title_image]);'" + head_content += "" return {" @@ -79,7 +75,7 @@
- [title ? "
[title]
" : ""] + [title ? "
[title]
" : ""]
"} //" This is here because else the rest of the file looks like a string in notepad++. @@ -105,10 +101,11 @@ var/window_size = "" if(width && height) window_size = "size=[width]x[height];" + common_asset.send(user) if(stylesheets.len) - send_asset_list(user, stylesheets) + SSassets.transport.send_assets(user, stylesheets) if(scripts.len) - send_asset_list(user, scripts) + SSassets.transport.send_assets(user, scripts) user << browse(get_content(), "window=[window_id];[window_size][window_options]") if(use_onclose) setup_onclose() @@ -169,7 +166,7 @@ return Button3 //Same shit, but it returns the button number, could at some point support unlimited button amounts. -/proc/askuser(var/mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) +/proc/askuser(mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) if (!istype(User)) if (istype(User, /client/)) var/client/C = User @@ -188,7 +185,7 @@ var/selectedbutton = 0 var/stealfocus -/datum/browser/modal/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, StealFocus = 1, Timeout = 6000) +/datum/browser/modal/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, atom/nref = null, StealFocus = 1, Timeout = 6000) ..() stealfocus = StealFocus if (!StealFocus) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 0bb6c4a0af..f5a34bfca2 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -76,19 +76,11 @@ return FALSE if(M.is_flying()) return FALSE - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(istype(H.belt, /obj/item/wormhole_jaunter)) - var/obj/item/wormhole_jaunter/J = H.belt - //To freak out any bystanders - H.visible_message("[H] falls into [parent]!") - J.chasm_react(H) - return FALSE return TRUE /datum/component/chasm/proc/drop(atom/movable/AM) //Make sure the item is still there after our sleep - if(!AM || QDELETED(AM)) + if(!AM || QDELETED(AM) || SEND_SIGNAL(AM, COMSIG_MOVABLE_CHASM_DROP, src)) return falling_atoms[AM] = (falling_atoms[AM] || 0) + 1 var/turf/T = target_turf diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index 717e99e8b2..df0a2a091a 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -273,6 +273,16 @@ time = 30 category = CAT_CLOTHING +/datum/crafting_recipe/twinsheath + name = "Twin Sword Sheath" + result = /obj/item/storage/belt/sabre/twin + reqs = list(/obj/item/stack/sheet/mineral/wood = 3, + /obj/item/stack/sheet/leather = 8) + tools = list(TOOL_WIRECUTTER) + time = 70 + category = CAT_CLOTHING + + /datum/crafting_recipe/durathread_reinforcement_kit name = "Durathread Reinforcement Kit" result = /obj/item/armorkit diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index f113be728d..14987bac44 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -120,6 +120,53 @@ category = CAT_MISC always_availible = FALSE // Disabled til learned +/datum/crafting_recipe/furnace + name = "Sandstone Furnace" + result = /obj/structure/furnace + time = 300 + reqs = list(/obj/item/stack/sheet/mineral/sandstone = 15, + /obj/item/stack/sheet/metal = 4, + /obj/item/stack/rods = 2) + tools = list(TOOL_CROWBAR) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + +/datum/crafting_recipe/tableanvil + name = "Table Anvil" + result = /obj/structure/anvil/obtainable/table + time = 300 + reqs = list(/obj/item/stack/sheet/metal = 4, + /obj/item/stack/rods = 2) + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + +/datum/crafting_recipe/sandvil + name = "Sandstone Anvil" + result = /obj/structure/anvil/obtainable/sandstone + time = 300 + reqs = list(/obj/item/stack/sheet/mineral/sandstone = 24) + tools = list(TOOL_CROWBAR) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + +/datum/crafting_recipe/basaltblock + name = "Sintered Basalt Block" + result = /obj/item/basaltblock + time = 200 + reqs = list(/obj/item/stack/ore/glass/basalt = 50) + tools = list(TOOL_WELDER) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + +/datum/crafting_recipe/basaltanvil + name = "Basalt Anvil" + result = /obj/structure/anvil/obtainable/basalt + time = 200 + reqs = list(/obj/item/basaltblock = 5) + tools = list(TOOL_CROWBAR) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC /////////////////// //Tools & Storage// /////////////////// @@ -175,6 +222,17 @@ subcategory = CAT_TOOL category = CAT_MISC +/datum/crafting_recipe/toolboxhammer + name = "Toolbox Hammer" + result = /obj/item/melee/smith/hammer/toolbox + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + reqs = list(/obj/item/storage/toolbox = 1, + /obj/item/stack/sheet/metal = 4, + /obj/item/stack/rods = 2) + time = 40 + subcategory = CAT_TOOL + category = CAT_MISC + /datum/crafting_recipe/papersack name = "Paper Sack" result = /obj/item/storage/box/papersack @@ -358,6 +416,25 @@ //Unsorted// //////////// + + +/datum/crafting_recipe/stick + name = "Stick" + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 1) + result = /obj/item/stick + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + + +/datum/crafting_recipe/swordhilt + name = "Sword Hilt" + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 2) + result = /obj/item/swordhandle + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + /datum/crafting_recipe/blackcarpet name = "Black Carpet" reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1) diff --git a/code/datums/components/fantasy/prefixes.dm b/code/datums/components/fantasy/prefixes.dm index b6de85cab0..0ada00a2e8 100644 --- a/code/datums/components/fantasy/prefixes.dm +++ b/code/datums/components/fantasy/prefixes.dm @@ -45,8 +45,9 @@ /datum/fantasy_affix/tactical/apply(datum/component/fantasy/comp, newName) var/obj/item/master = comp.parent - master.AddElement(/datum/element/tactical) - comp.appliedElements += list(/datum/element/tactical) + var/list/dat = list(/datum/element/tactical) + master._AddElement(dat) + comp.appliedElements += list(dat) return "tactical [newName]" /datum/fantasy_affix/pyromantic diff --git a/code/datums/components/honkspam.dm b/code/datums/components/honkspam.dm new file mode 100644 index 0000000000..73b5e3335a --- /dev/null +++ b/code/datums/components/honkspam.dm @@ -0,0 +1,22 @@ +// This used to be in paper.dm, it was some snowflake code that was +// used ONLY on april's fool. I moved it to a component so it could be +// used in other places + +/datum/component/honkspam + dupe_mode = COMPONENT_DUPE_UNIQUE + var/spam_flag = FALSE + +/datum/component/honkspam/Initialize() + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) + +/datum/component/honkspam/proc/reset_spamflag() + spam_flag = FALSE + +/datum/component/honkspam/proc/interact(mob/user) + if(!spam_flag) + spam_flag = TRUE + var/obj/item/parent_item = parent + playsound(parent_item.loc, 'sound/items/bikehorn.ogg', 50, TRUE) + addtimer(CALLBACK(src, .proc/reset_spamflag), 2 SECONDS) diff --git a/code/datums/components/killerqueen.dm b/code/datums/components/killerqueen.dm index 1c660d0a87..c700e0d17e 100644 --- a/code/datums/components/killerqueen.dm +++ b/code/datums/components/killerqueen.dm @@ -65,10 +65,14 @@ detonate(user) /datum/component/killerqueen/proc/bump_detonate(datum/source, atom/A) + var/atom/us = parent + if(!us.density) // lazy anti-item-throw-OHKO, we need something better at some point + return detonate(A) /datum/component/killerqueen/proc/touch_detonate(datum/source, mob/user) detonate(user) + return COMPONENT_NO_ATTACK_HAND /datum/component/killerqueen/proc/on_examine(datum/source, mob/examiner, list/examine_return) if(examine_message) diff --git a/code/datums/components/label.dm b/code/datums/components/label.dm new file mode 100644 index 0000000000..c6d0c595eb --- /dev/null +++ b/code/datums/components/label.dm @@ -0,0 +1,87 @@ +/** + The label component. + + This component is used to manage labels applied by the hand labeler. + + Atoms can only have one instance of this component, and therefore only one label at a time. + This is to avoid having names like "Backpack (label1) (label2) (label3)". This is annoying and abnoxious to read. + + When a player clicks the atom with a hand labeler to apply a label, this component gets applied to it. + If the labeler is off, the component will be removed from it, and the label will be removed from its name. + */ +/datum/component/label + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + /// The name of the label the player is applying to the parent. + var/label_name + +/datum/component/label/Initialize(_label_name) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + label_name = _label_name + apply_label() + +/datum/component/label/RegisterWithParent() + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackby) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/Examine) + +/datum/component/label/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) + +/** + This proc will fire after the parent is hit by a hand labeler which is trying to apply another label. + Since the parent already has a label, it will remove the old one from the parent's name, and apply the new one. +*/ +/datum/component/label/InheritComponent(datum/component/label/new_comp , i_am_original, _label_name) + remove_label() + if(new_comp) + label_name = new_comp.label_name + else + label_name = _label_name + apply_label() + +/** + This proc will trigger when any object is used to attack the parent. + + If the attacking object is not a hand labeler, it will return. + If the attacking object is a hand labeler it will restore the name of the parent to what it was before this component was added to it, and the component will be deleted. + + Arguments: + * source: The parent. + * attacker: The object that is hitting the parent. + * user: The mob who is wielding the attacking object. +*/ +/datum/component/label/proc/OnAttackby(datum/source, obj/item/attacker, mob/user) + // If the attacking object is not a hand labeler or its mode is 1 (has a label ready to apply), return. + // The hand labeler should be off (mode is 0), in order to remove a label. + var/obj/item/hand_labeler/labeler = attacker + if(!istype(labeler) || labeler.mode) + return + + remove_label() + playsound(parent, 'sound/items/poster_ripped.ogg', 20, TRUE) + to_chat(user, "You remove the label from [parent].") + qdel(src) // Remove the component from the object. + +/** + This proc will trigger when someone examines the parent. + It will attach the text found in the body of the proc to the `examine_list` and display it to the player examining the parent. + + Arguments: + * source: The parent. + * user: The mob exmaining the parent. + * examine_list: The current list of text getting passed from the parent's normal examine() proc. +*/ +/datum/component/label/proc/Examine(datum/source, mob/user, list/examine_list) + examine_list += "It has a label with some words written on it. Use a hand labeler to remove it." + +/// Applies a label to the name of the parent in the format of: "parent_name (label)" +/datum/component/label/proc/apply_label() + var/atom/owner = parent + owner.name += " ([label_name])" + +/// Removes the label from the parent's name +/datum/component/label/proc/remove_label() + var/atom/owner = parent + owner.name = replacetext(owner.name, "([label_name])", "") // Remove the label text from the parent's name, wherever it's located. + owner.name = trim(owner.name) // Shave off any white space from the beginning or end of the parent's name. diff --git a/code/datums/components/ntnet_interface.dm b/code/datums/components/ntnet_interface.dm index 6159c7c2c4..06d69f0ce3 100644 --- a/code/datums/components/ntnet_interface.dm +++ b/code/datums/components/ntnet_interface.dm @@ -1,4 +1,4 @@ -//Thing meant for allowing datums and objects to access a NTnet network datum. +//Thing meant for allowing datums and objects to access an NTnet network datum. /datum/proc/ntnet_receive(datum/netdata/data) return diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index ea1897b67d..c30da0614a 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -99,7 +99,6 @@ Bonus */ /datum/symptom/alkali - name = "Alkali perspiration" desc = "The virus attaches to sudoriparous glands, synthesizing a chemical that bursts into flames when reacting with water, leading to self-immolation." stealth = 2 @@ -113,9 +112,9 @@ Bonus symptom_delay_max = 90 var/chems = FALSE var/explosion_power = 1 - threshold_desc = "Resistance 9: Doubles the intensity of the effect, but reduces its frequency.
\ - Stage Speed 8: Increases explosion radius when the host is wet.
\ - Transmission 8: Additionally synthesizes chlorine trifluoride and napalm inside the host." + threshold_desc = list("Resistance 9" = "Doubles the intensity of the effect, but reduces its frequency.", + "Stage Speed 8" = "Increases explosion radius when the host is wet.", + "Transmission 8" = "Additionally synthesizes chlorine trifluoride and napalm inside the host.") /datum/symptom/alkali/Start(datum/disease/advance/A) if(!..()) diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm index da14ed87cf..7674d80495 100644 --- a/code/datums/diseases/advance/symptoms/shivering.dm +++ b/code/datums/diseases/advance/symptoms/shivering.dm @@ -32,7 +32,7 @@ Bonus "Stage Speed 10" = "Further increases cooling speed." ) -/datum/symptom/fever/Start(datum/disease/advance/A) +/datum/symptom/shivering/Start(datum/disease/advance/A) if(!..()) return if(A.properties["stage_rate"] >= 5) //dangerous cold @@ -58,4 +58,4 @@ Bonus if(unsafe) limit = 0 M.adjust_bodytemperature(-get_cold * A.stage, limit) - return 1 \ No newline at end of file + return 1 diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 9486029fdd..843ea06f74 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -132,7 +132,8 @@ L[DNA_FACIAL_HAIR_STYLE_BLOCK] = construct_block(GLOB.facial_hair_styles_list.Find(H.facial_hair_style), GLOB.facial_hair_styles_list.len) L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color) L[DNA_SKIN_TONE_BLOCK] = construct_block(GLOB.skin_tones.Find(H.skin_tone), GLOB.skin_tones.len) - L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) + L[DNA_LEFT_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.left_eye_color) + L[DNA_RIGHT_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.right_eye_color) L[DNA_COLOR_ONE_BLOCK] = sanitize_hexcolor(features["mcolor"], 6) L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"], 6) L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"], 6) @@ -224,8 +225,10 @@ setblock(uni_identity, blocknumber, sanitize_hexcolor(H.facial_hair_color)) if(DNA_SKIN_TONE_BLOCK) setblock(uni_identity, blocknumber, construct_block(GLOB.skin_tones.Find(H.skin_tone), GLOB.skin_tones.len)) - if(DNA_EYE_COLOR_BLOCK) - setblock(uni_identity, blocknumber, sanitize_hexcolor(H.eye_color)) + if(DNA_LEFT_EYE_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.left_eye_color)) + if(DNA_RIGHT_EYE_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.right_eye_color)) if(DNA_GENDER_BLOCK) switch(H.gender) if(MALE) @@ -464,7 +467,8 @@ hair_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) facial_hair_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) skin_tone = dna.skin_tone_override || GLOB.skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), GLOB.skin_tones.len)] - eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) + left_eye_color = sanitize_hexcolor(getblock(structure, DNA_LEFT_EYE_COLOR_BLOCK)) + right_eye_color = sanitize_hexcolor(getblock(structure, DNA_RIGHT_EYE_COLOR_BLOCK)) facial_hair_style = GLOB.facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), GLOB.facial_hair_styles_list.len)] hair_style = GLOB.hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), GLOB.hair_styles_list.len)] if(icon_update) diff --git a/code/datums/elements/decal.dm b/code/datums/elements/decal.dm index 50519b08e7..a20d46c813 100644 --- a/code/datums/elements/decal.dm +++ b/code/datums/elements/decal.dm @@ -32,6 +32,7 @@ RegisterSignal(A, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) if(description) RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(A, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlay, TRUE) num_decals_per_atom[A]++ apply(A) @@ -39,21 +40,28 @@ /datum/element/decal/Detach(datum/target) var/atom/A = target num_decals_per_atom[A]-- - apply(A, TRUE) if(!num_decals_per_atom[A]) - UnregisterSignal(A, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS)) + UnregisterSignal(A, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE, + COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS)) LAZYREMOVE(num_decals_per_atom, A) + apply(A) return ..() -/datum/element/decal/proc/apply(atom/target, removing = FALSE) - if(num_decals_per_atom[target] == 1 && !removing) - RegisterSignal(target, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlay, TRUE) - target.update_icon() +/datum/element/decal/proc/apply(atom/target) + if(target.flags_1 & INITIALIZED_1) + target.update_icon() //could use some queuing here now maybe. + else if(!QDELETED(target) && num_decals_per_atom[target] == 1) + RegisterSignal(target, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE, .proc/late_update_icon) if(isitem(target)) addtimer(CALLBACK(target, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) +/datum/element/decal/proc/late_update_icon(atom/source) + source.update_icon() + UnregisterSignal(source,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE) + /datum/element/decal/proc/apply_overlay(atom/source, list/overlay_list) - pic.dir = first_dir == NORTH ? source.dir : turn(first_dir, dir2angle(source.dir)) + if(first_dir) + pic.dir = first_dir == SOUTH ? source.dir : turn(first_dir, dir2angle(source.dir)-180) //Never turn a dir by 0. for(var/i in 1 to num_decals_per_atom[source]) overlay_list += pic diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 3562345d26..ae139104f0 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code LAZYREMOVE(GLOB.mobs_with_editable_flavor_text[M], src) if(!GLOB.mobs_with_editable_flavor_text[M]) GLOB.mobs_with_editable_flavor_text -= M - M.verbs -= /mob/proc/manage_flavor_tests + remove_verb(M, /mob/proc/manage_flavor_tests) /datum/element/flavor_text/proc/show_flavor(atom/target, mob/user, list/examine_list) if(!always_show && isliving(target)) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 1c438c86c5..7ae0d04b05 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -61,7 +61,7 @@ A.AddElement(/datum/element/update_icon_updates_onmob) RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) if(suits_with_helmet_typecache[A.type]) - RegisterSignal(A, COMSIG_SUIT_MADE_HELMET, .proc/register_helmet) + RegisterSignal(A, COMSIG_SUIT_MADE_HELMET, .proc/register_helmet) //you better work now you slut else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized. var/datum/action/polychromic/P = new(A) RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) @@ -166,6 +166,15 @@ examine_list += "Alt-click to recolor it." /datum/element/polychromic/proc/register_helmet(atom/source, obj/item/clothing/head/H) + if(!isitem(H)) //backup in case if it messes up somehow + if(istype(source,/obj/item/clothing/suit/hooded)) //so how come it be like this, where toggleable headslots are named separately (helmet/hood) anyways? + var/obj/item/clothing/suit/hooded/sourcesuit = source + H = sourcesuit.hood + else if(istype(source,/obj/item/clothing/suit/space/hardsuit)) + var/obj/item/clothing/suit/space/hardsuit/sourcesuit = source + H = sourcesuit.helmet + else + return suit_by_helmet[H] = source helmet_by_suit[source] = H colors_by_atom[H] = colors_by_atom[source] diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 6660bafcaf..e1147df225 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -102,8 +102,9 @@ /datum/emote/proc/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE) . = TRUE - if(!is_type_in_typecache(user, mob_type_allowed_typecache)) - return FALSE + if(mob_type_allowed_typecache) //empty list = anyone can use it unless specifically blacklisted + if(!is_type_in_typecache(user, mob_type_allowed_typecache)) + return FALSE if(is_type_in_typecache(user, mob_type_blacklist_typecache)) return FALSE if(status_check && !is_type_in_typecache(user, mob_type_ignore_stat_typecache)) diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index dc9569a4d5..246226ceba 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -103,13 +103,21 @@ GLOBAL_LIST_EMPTY(explosions) // 3/7/14 will calculate to 80 + 35 var/far_dist = 0 - far_dist += heavy_impact_range * 5 + far_dist += heavy_impact_range * 15 // Large explosions carry further far_dist += devastation_range * 20 if(!silent) var/frequency = get_rand_frequency() var/sound/explosion_sound = sound(get_sfx("explosion")) var/sound/far_explosion_sound = sound('sound/effects/explosionfar.ogg') + var/sound/creaking_explosion_sound = sound(get_sfx("explosion_creaking")) + var/sound/hull_creaking_sound = sound(get_sfx("hull_creaking")) + var/sound/explosion_echo_sound = sound('sound/effects/explosion_distant.ogg') + var/on_station = SSmapping.level_trait(epicenter.z, ZTRAIT_STATION) + var/creaking_explosion = FALSE + + if(prob(devastation_range*30+heavy_impact_range*5) && on_station) // Huge explosions are near guaranteed to make the station creak and whine, smaller ones might. + creaking_explosion = TRUE // prob over 100 always returns true for(var/mob/M in GLOB.player_list) // Double check for client @@ -126,11 +134,29 @@ GLOBAL_LIST_EMPTY(explosions) shake_camera(M, 25, clamp(baseshakeamount, 0, 10)) // You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station. else if(dist <= far_dist) - var/far_volume = clamp(far_dist, 30, 50) // Volume is based on explosion size and dist - far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion - M.playsound_local(epicenter, null, far_volume, 1, frequency, falloff = 5, S = far_explosion_sound) - if(baseshakeamount > 0) + var/far_volume = clamp(far_dist/2, 40, 60) // Volume is based on explosion size and dist + if(creaking_explosion) + M.playsound_local(epicenter, null, far_volume, 1, frequency, S = creaking_explosion_sound, distance_multiplier = 0) + else if(prob(75)) + M.playsound_local(epicenter, null, far_volume, 1, frequency, S = far_explosion_sound, distance_multiplier = 0) // Far sound + else + M.playsound_local(epicenter, null, far_volume, 1, frequency, S = explosion_echo_sound, distance_multiplier = 0) // Echo sound + + if(baseshakeamount > 0 || devastation_range) + if(!baseshakeamount) // Devastating explosions rock the station and ground + baseshakeamount = devastation_range*3 shake_camera(M, 10, clamp(baseshakeamount*0.25, 0, 2.5)) + + else if(M.can_hear() && !isspaceturf(get_turf(M)) && heavy_impact_range) // Big enough explosions echo throughout the hull + var/echo_volume = 40 + if(devastation_range) + baseshakeamount = devastation_range + shake_camera(M, 10, clamp(baseshakeamount*0.25, 0, 2.5)) + echo_volume = 60 + M.playsound_local(epicenter, null, echo_volume, 1, frequency, S = explosion_echo_sound, distance_multiplier = 0) + + if(creaking_explosion) // 5 seconds after the bang, the station begins to creak + addtimer(CALLBACK(M, /mob/proc/playsound_local, epicenter, null, rand(25, 40), 1, frequency, null, null, FALSE, hull_creaking_sound, null, null, null, null, 0), 5 SECONDS) EX_PREPROCESS_CHECK_TICK //postpone processing for a bit diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm index 1581323f89..bc48e82395 100644 --- a/code/datums/martial/_martial.dm +++ b/code/datums/martial/_martial.dm @@ -64,7 +64,7 @@ else if(make_temporary) base = H.mind.default_martial_art if(help_verb) - H.verbs += help_verb + add_verb(H, help_verb) H.mind.martial_art = src if(pugilist) ADD_TRAIT(H, TRAIT_PUGILIST, MARTIAL_ARTIST_TRAIT) @@ -90,7 +90,7 @@ /datum/martial_art/proc/on_remove(mob/living/carbon/human/H) if(help_verb) - H.verbs -= help_verb + remove_verb(H, help_verb) return ///Gets called when a projectile hits the owner. Returning anything other than BULLET_ACT_HIT will stop the projectile from hitting the mob. diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index 1469965b57..76e60bc6dc 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -35,23 +35,24 @@ Unless you know what you're doing, only use the first three numbers. They're in value_per_unit = 0.025 beauty_modifier = 0.075 -///Slight force increase +///Slight force decrease. It's gold, it's soft as fuck. /datum/material/gold name = "gold" desc = "Gold" color = list(340/255, 240/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //gold is shiny, but not as bright as bananium - strength_modifier = 1.2 + strength_modifier = 0.8 categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/gold value_per_unit = 0.0625 beauty_modifier = 0.15 armor_modifiers = list("melee" = 1.1, "bullet" = 1.1, "laser" = 1.15, "energy" = 1.15, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1.1) -///Has no special properties +///Small force increase, for diamond swords /datum/material/diamond name = "diamond" desc = "Highly pressurized carbon" color = list(48/255, 272/255, 301/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + strength_modifier = 1.1 alpha = 132 categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/diamond @@ -106,6 +107,7 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "bluespace crystal" desc = "Crystals with bluespace properties" color = list(119/255, 217/255, 396/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + integrity_modifier = 0.2 //these things shatter when thrown. alpha = 200 categories = list(MAT_CATEGORY_ORE = TRUE) beauty_modifier = 0.5 @@ -139,7 +141,7 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "titanium" desc = "Titanium" color = "#b3c0c7" - strength_modifier = 1.3 + strength_modifier = 1.1 categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/titanium value_per_unit = 0.0625 @@ -203,7 +205,7 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "adamantine" desc = "A powerful material made out of magic, I mean science!" color = "#6d7e8e" - strength_modifier = 1.5 + strength_modifier = 1.3 categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/adamantine value_per_unit = 0.25 @@ -276,16 +278,29 @@ Unless you know what you're doing, only use the first three numbers. They're in desc = "Mir'ntrath barhah Nar'sie." color = "#3C3434" categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + strength_modifier = 1.2 sheet_type = /obj/item/stack/sheet/runed_metal value_per_unit = 0.75 armor_modifiers = list("melee" = 1.2, "bullet" = 1.2, "laser" = 1, "energy" = 1, "bomb" = 1.2, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) beauty_modifier = -0.15 texture_layer_icon_state = "runed" +/datum/material/brass + name = "brass" + desc = "Tybel gb-Ratvar" + color = "#917010" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + strength_modifier = 1.3 // Replicant Alloy is very good for skull beatings.. + sheet_type = /obj/item/stack/tile/brass + value_per_unit = 0.75 + armor_modifiers = list("melee" = 1.4, "bullet" = 1.4, "laser" = 0, "energy" = 0, "bomb" = 1.4, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) //But it has.. a few problems that can't easily be compensated for. + beauty_modifier = 0.3 //It really beats the cold plain plating of the station, doesn't it? + /datum/material/bronze name = "bronze" desc = "Clock Cult? Never heard of it." color = "#92661A" + strength_modifier = 1.1 categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/bronze value_per_unit = 0.025 diff --git a/code/datums/mind.dm b/code/datums/mind.dm index cb99fdc5a3..897e2e7d71 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -41,6 +41,8 @@ var/special_role var/list/restricted_roles = list() + var/hide_ckey = FALSE //hide ckey from round-end report + var/list/spell_list = list() // Wizard mode & "Give Spell" badmin button. var/linglink @@ -69,6 +71,7 @@ ///What character we spawned in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not var/mob/original_character + /datum/mind/New(var/key) skill_holder = new(src) src.key = key @@ -129,6 +132,7 @@ new_character.key = key //now transfer the key to link the client to our new body if(new_character.client) LAZYCLEARLIST(new_character.client.recent_examines) + new_character.client.init_verbs() // re-initialize character specific verbs current.update_atom_languages() //CIT CHANGE - makes arousal update when transfering bodies @@ -137,6 +141,8 @@ if(L.client?.prefs && L.client.prefs.auto_ooc && L.client.prefs.chat_toggles & CHAT_OOC) DISABLE_BITFIELD(L.client.prefs.chat_toggles,CHAT_OOC) + hide_ckey = current.client?.prefs?.hide_ckey + SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character) SEND_SIGNAL(new_character, COMSIG_MOB_ON_NEW_MIND) @@ -688,6 +694,7 @@ if(istype(S, spell)) spell_list -= S qdel(S) + current?.client << output(null, "statbrowser:check_spells") /datum/mind/proc/RemoveAllSpells() for(var/obj/effect/proc_holder/S in spell_list) @@ -780,6 +787,7 @@ if(!mind.name) mind.name = real_name mind.current = src + mind.hide_ckey = client?.prefs?.hide_ckey /mob/living/carbon/mind_initialize() ..() diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 38b004a657..1abe077980 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -204,6 +204,11 @@ mood_change = -1 timeout = 2 MINUTES +/datum/mood_event/plush_bite + description = "IT BIT ME!! OW!\n" + mood_change = -3 + timeout = 2 MINUTES + //Cursed stuff below /datum/mood_event/emptypred diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index fb5f6ed5f6..3bddfdaa63 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -11,7 +11,7 @@ var/lowest_value = 256 * 8 var/text_gain_indication = "" var/text_lose_indication = "" - var/list/mutable_appearance/visual_indicators = list() + var/list/visual_indicators = list() var/obj/effect/proc_holder/spell/power var/layer_used = MUTATIONS_LAYER //which mutation layer to use var/list/species_allowed = list() //to restrict mutation to only certain species diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm index 978802fd80..ad08b8ebdc 100644 --- a/code/datums/mutations/antenna.dm +++ b/code/datums/mutations/antenna.dm @@ -90,6 +90,8 @@ to_chat(user, "You catch some drifting memories of their past conversations...") for(var/spoken_memory in recent_speech) to_chat(user, "[recent_speech[spoken_memory]]") + if(usr in GLOB.rockpaperscissors_players) + to_chat(user, "They're planning on playing [GLOB.rockpaperscissors_players[usr][1]]") if(iscarbon(M)) var/mob/living/carbon/human/H = M to_chat(user, "You find that their intent is to [H.a_intent]...") diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index 73748417c3..83c95c6439 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -110,7 +110,7 @@ /** * Automatic skill increase, multiplied by skill affinity if existing. - * Only works if skill is numerical. + * Only works if skill is numerical or levelled.. */ /datum/mind/proc/auto_gain_experience(skill, value, maximum, silent = FALSE) if(!ispath(skill, /datum/skill)) diff --git a/code/datums/skills/blacksmithing.dm b/code/datums/skills/blacksmithing.dm new file mode 100644 index 0000000000..0bddae5562 --- /dev/null +++ b/code/datums/skills/blacksmithing.dm @@ -0,0 +1,6 @@ +/datum/skill/level/dorfy/blacksmithing + name = "Blacksmithing" + desc = "Making metal into fancy shapes using heat and force. Higher levels increase both your working speed at an anvil as well as the quality of your works." + name_color = COLOR_FLOORTILE_GRAY + skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE, SKILL_USE_TOOL, SKILL_TRAINING_TOOL) + ui_category = SKILL_UI_CAT_MISC diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 179ed765c5..ef3979d822 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -580,4 +580,63 @@ /datum/status_effect/regenerative_core/on_remove() . = ..() REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core") - owner.updatehealth() \ No newline at end of file + owner.updatehealth() + +/datum/status_effect/panacea + id = "Anatomic Panacea" + duration = 100 + tick_interval = 10 + alert_type = /obj/screen/alert/status_effect/panacea + +/obj/screen/alert/status_effect/panacea + name = "Panacea" + desc = "We purge the impurities from our body." + icon_state = "panacea" + +// Changeling's anatomic panacea now in buff form. Directly fixes issues instead of injecting chems +/datum/status_effect/panacea/tick() + var/mob/living/carbon/M = owner + + //Heal brain damage and toxyloss, alongside trauma + owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -8) + owner.adjustToxLoss(-6, forced = TRUE) + M.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC) + //Purges 50 rads per tick + if(owner.radiation > 0) + owner.radiation -= min(owner.radiation, 50) + //Mutadone effects + owner.jitteriness = 0 + if(owner.has_dna()) + M.dna.remove_all_mutations(mutadone = TRUE) + if(!QDELETED(owner)) //We were a monkey, now a human + ..() + // Purges toxins + for(var/datum/reagent/toxin/R in owner.reagents.reagent_list) + owner.reagents.remove_reagent(R.type, 5) + //Antihol effects + M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 10, 0, 1) + M.drunkenness = max(M.drunkenness - 10, 0) + owner.dizziness = 0 + owner.drowsyness = 0 + owner.slurring = 0 + owner.confused = 0 + //Organ and disease cure moved from panacea.dm to buff proc + var/list/bad_organs = list( + owner.getorgan(/obj/item/organ/body_egg), + owner.getorgan(/obj/item/organ/zombie_infection)) + for(var/o in bad_organs) + var/obj/item/organ/O = o + if(!istype(O)) + continue + O.Remove() + if(iscarbon(owner)) + var/mob/living/carbon/C = owner + C.vomit(0, toxic = TRUE) + O.forceMove(get_turf(owner)) + if(isliving(owner)) + var/mob/living/L = owner + for(var/thing in L.diseases) + var/datum/disease/D = thing + if(D.severity == DISEASE_SEVERITY_POSITIVE) + continue + D.cure() diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 9cd47403d1..d46694d89c 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -128,6 +128,9 @@ duration = set_duration . = ..() +/datum/status_effect/no_combat_mode/robotic_emp + id = "emp_no_combat_mode" + /datum/status_effect/mesmerize id = "Mesmerize" alert_type = /obj/screen/alert/status_effect/mesmerized @@ -533,6 +536,38 @@ if(100) H.adjustOrganLoss(ORGAN_SLOT_BRAIN,20) +/datum/status_effect/corrosion_curse/lesser + id = "corrosion_curse_lesser" + duration = 20 SECONDS + +/datum/status_effect/corrosion_curse/lesser/tick() + . = ..() + if(!ishuman(owner)) + return + var/mob/living/carbon/human/H = owner + var/chance = rand(0,100) + switch(chance) + if(0 to 19) + H.adjustBruteLoss(6) + if(20 to 29) + H.Dizzy(10) + if(30 to 39) + H.adjustOrganLoss(ORGAN_SLOT_LIVER,2) + if(40 to 49) + H.adjustOrganLoss(ORGAN_SLOT_HEART,2) + if(50 to 59) + H.adjustOrganLoss(ORGAN_SLOT_STOMACH,2) + if(60 to 69) + H.adjustOrganLoss(ORGAN_SLOT_EYES,5) + if(70 to 79) + H.adjustOrganLoss(ORGAN_SLOT_EARS,5) + if(80 to 89) + H.adjustOrganLoss(ORGAN_SLOT_LUNGS,5) + if(90 to 99) + H.adjustOrganLoss(ORGAN_SLOT_TONGUE,5) + if(100) + H.adjustOrganLoss(ORGAN_SLOT_BRAIN,10) + /datum/status_effect/amok id = "amok" status_type = STATUS_EFFECT_REPLACE diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 68b5d6f987..322fba0a33 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -211,24 +211,27 @@ GLOBAL_LIST_EMPTY(family_heirlooms) H.gain_trauma(T, TRAUMA_RESILIENCE_ABSOLUTE) /datum/quirk/paraplegic/on_spawn() - if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. - quirk_holder.buckled.unbuckle_mob(quirk_holder) + if(quirk_holder.client) + var/modified_limbs = quirk_holder.client.prefs.modified_limbs + if(!(modified_limbs[BODY_ZONE_L_LEG] == LOADOUT_LIMB_AMPUTATED && modified_limbs[BODY_ZONE_R_LEG] == LOADOUT_LIMB_AMPUTATED && !isjellyperson(quirk_holder))) + if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. + quirk_holder.buckled.unbuckle_mob(quirk_holder) - var/turf/T = get_turf(quirk_holder) - var/obj/structure/chair/spawn_chair = locate() in T + var/turf/T = get_turf(quirk_holder) + var/obj/structure/chair/spawn_chair = locate() in T - var/obj/vehicle/ridden/wheelchair/wheels = new(T) - if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking - wheels.setDir(spawn_chair.dir) + var/obj/vehicle/ridden/wheelchair/wheels = new(T) + if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking + wheels.setDir(spawn_chair.dir) - wheels.buckle_mob(quirk_holder) + wheels.buckle_mob(quirk_holder) - // During the spawning process, they may have dropped what they were holding, due to the paralysis - // So put the things back in their hands. + // During the spawning process, they may have dropped what they were holding, due to the paralysis + // So put the things back in their hands. - for(var/obj/item/I in T) - if(I.fingerprintslast == quirk_holder.ckey) - quirk_holder.put_in_hands(I) + for(var/obj/item/I in T) + if(I.fingerprintslast == quirk_holder.ckey) + quirk_holder.put_in_hands(I) /datum/quirk/poor_aim name = "Poor Aim" @@ -244,42 +247,6 @@ GLOBAL_LIST_EMPTY(family_heirlooms) mob_trait = TRAIT_PROSOPAGNOSIA medical_record_text = "Patient suffers from prosopagnosia and cannot recognize faces." -/datum/quirk/prosthetic_limb - name = "Prosthetic Limb" - desc = "An accident caused you to lose one of your limbs. Because of this, you now have a random prosthetic!" - value = -1 - var/slot_string = "limb" - -/datum/quirk/prosthetic_limb/on_spawn() - var/mob/living/carbon/human/H = quirk_holder - var/limb_slot - if(HAS_TRAIT(H, TRAIT_PARA))//Prevent paraplegic legs being replaced - limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) - else - limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - var/obj/item/bodypart/old_part = H.get_bodypart(limb_slot) - var/obj/item/bodypart/prosthetic - switch(limb_slot) - if(BODY_ZONE_L_ARM) - prosthetic = new/obj/item/bodypart/l_arm/robot/surplus(quirk_holder) - slot_string = "left arm" - if(BODY_ZONE_R_ARM) - prosthetic = new/obj/item/bodypart/r_arm/robot/surplus(quirk_holder) - slot_string = "right arm" - if(BODY_ZONE_L_LEG) - prosthetic = new/obj/item/bodypart/l_leg/robot/surplus(quirk_holder) - slot_string = "left leg" - if(BODY_ZONE_R_LEG) - prosthetic = new/obj/item/bodypart/r_leg/robot/surplus(quirk_holder) - slot_string = "right leg" - prosthetic.replace_limb(H) - qdel(old_part) - H.regenerate_icons() - -/datum/quirk/prosthetic_limb/post_add() - to_chat(quirk_holder, "Your [slot_string] has been replaced with a surplus prosthetic. It is fragile and will easily come apart under duress. Additionally, \ - you need to use a welding tool and cables to repair it, instead of bruise packs and ointment.") - /datum/quirk/insanity name = "Reality Dissociation Syndrome" desc = "You suffer from a severe disorder that causes very vivid hallucinations. Mindbreaker toxin can suppress its effects, and you are immune to mindbreaker's hallucinogenic properties. This is not a license to grief." diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 04fbc4a590..68c475f67b 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -204,12 +204,12 @@ return S /// Called from [/atom/proc/emp_act] -/datum/wires/proc/emp_pulse() +/datum/wires/proc/emp_pulse(severity) var/list/possible_wires = shuffle(wires) var/remaining_pulses = MAXIMUM_EMP_WIRES for(var/wire in possible_wires) - if(prob(33)) + if(prob(10 + severity/3.5)) pulse(wire) remaining_pulses-- if(!remaining_pulses) diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 6cef7ac50f..9af78b0090 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -53,8 +53,6 @@ /datum/wires/airlock/interactable(mob/user) var/obj/machinery/door/airlock/A = holder - if(!A.hasSiliconAccessInArea(user) && A.isElectrified() && A.shock(user, 100)) - return FALSE if(A.panel_open) return TRUE @@ -73,6 +71,8 @@ /datum/wires/airlock/on_pulse(wire) set waitfor = FALSE var/obj/machinery/door/airlock/A = holder + if(usr && !A.hasSiliconAccessInArea(usr) && A.isElectrified() && A.shock(usr, 100)) + return FALSE switch(wire) if(WIRE_POWER1, WIRE_POWER2) // Pulse to loose power. A.loseMainPower() @@ -127,6 +127,8 @@ /datum/wires/airlock/on_cut(wire, mend) var/obj/machinery/door/airlock/A = holder + if(usr && !A.hasSiliconAccessInArea(usr) && A.isElectrified() && A.shock(usr, 100)) + return FALSE switch(wire) if(WIRE_POWER1, WIRE_POWER2) // Cut to loose power, repair all to gain power. if(mend && !is_cut(WIRE_POWER1) && !is_cut(WIRE_POWER2)) @@ -174,4 +176,4 @@ A.update_icon() if(WIRE_ZAP1, WIRE_ZAP2) // Ouch. if(isliving(usr)) - A.shock(usr, 50) \ No newline at end of file + A.shock(usr, 50) diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index 6ede0415da..593579c469 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -40,7 +40,7 @@ new_ai = select_active_ai(R) R.notify_ai(DISCONNECT) if(new_ai && (new_ai != R.connected_ai)) - R.connected_ai = new_ai + R.set_connected_ai(new_ai) if(R.shell) R.undeploy() //If this borg is an AI shell, disconnect the controlling AI and assign ti to a new AI R.notify_ai(AI_SHELL) @@ -69,7 +69,7 @@ R.notify_ai(DISCONNECT) if(R.shell) R.undeploy() - R.connected_ai = null + R.set_connected_ai(null) if(WIRE_LAWSYNC) // Cut the law wire, and the borg will no longer receive law updates from its AI. Repair and it will re-sync. if(mend) if(!R.emagged) diff --git a/code/datums/wounds/_scars.dm b/code/datums/wounds/_scars.dm index 8cd0d8a047..85589976e6 100644 --- a/code/datums/wounds/_scars.dm +++ b/code/datums/wounds/_scars.dm @@ -79,7 +79,7 @@ /// Used to "load" a persistent scar /datum/scar/proc/load(obj/item/bodypart/BP, version, description, specific_location, severity=WOUND_SEVERITY_SEVERE) - if(!(BP.body_zone in applicable_zones) || !BP.is_organic_limb()) + if(!(BP.body_zone in applicable_zones) || !(BP.is_organic_limb() || BP.render_like_organic)) qdel(src) return diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm index 29c87b32d4..1ed0d98543 100644 --- a/code/datums/wounds/_wounds.dm +++ b/code/datums/wounds/_wounds.dm @@ -110,7 +110,7 @@ * * smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented) */ /datum/wound/proc/apply_wound(obj/item/bodypart/L, silent = FALSE, datum/wound/old_wound = null, smited = FALSE) - if(!istype(L) || !L.owner || !(L.body_zone in viable_zones) || isalien(L.owner) || !L.is_organic_limb()) + if(!istype(L) || !L.owner || !(L.body_zone in viable_zones) || isalien(L.owner) || !(L.is_organic_limb() || L.render_like_organic)) qdel(src) return diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index cbad2f7ab0..5310b24202 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -43,6 +43,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station outdoors = TRUE ambientsounds = SPACE blob_allowed = FALSE //Eating up space doesn't count for victory as a blob. + considered_hull_exterior = TRUE /area/space/nearstation icon_state = "space_near" @@ -1592,4 +1593,4 @@ NOTE: there are two lists of areas in the end of this file: centcom and station valid_territory = FALSE outdoors = TRUE ambientsounds = SPACE - blob_allowed = FALSE //While part of the station, what good will it do you? \ No newline at end of file + blob_allowed = FALSE //While part of the station, what good will it do you? diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 672d5c096f..b9415f3cf8 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -34,6 +34,9 @@ /// If megafauna can be spawned by natural random generation var/megafauna_spawn_allowed = FALSE + /// Considered space for hull shielding + var/considered_hull_exterior = FALSE + var/fire = null var/atmos = TRUE var/atmosalm = FALSE diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index a9f48af64e..b7f9b6b7fd 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -150,6 +150,74 @@ name = "Space Diner Solar Array" icon_state = "yellow" +//Ruin of "Skelter" ship + +/area/ruin/space/has_grav/skelter + name = "The Skelter" + icon_state = "red" + +/area/ruin/space/has_grav/skelter/admin + name = "Administration" + icon_state = "bridge" + +/area/ruin/space/has_grav/skelter/comms + name = "Communications" + icon_state = "tcomsatcomp" + +/area/ruin/space/has_grav/skelter/sec + name = "Security Office" + icon_state = "security" + +/area/ruin/space/has_grav/skelter/cafe + name = "Cafeteria" + icon_state = "cafeteria" + +/area/ruin/space/has_grav/skelter/crew + name = "Crew Quarters" + icon_state = "crew_quarters" + +/area/ruin/space/has_grav/skelter/med + name = "Med Bay" + icon_state = "medbay3" + +/area/ruin/space/has_grav/skelter/engine + name = "Reactor" + icon_state = "engine" + +/area/ruin/space/has_grav/skelter/engine/upper + name = "Port Engine" + +/area/ruin/space/has_grav/skelter/engine/lower + name = "Starboard Engine" + +/area/ruin/space/has_grav/skelter/engine/powerstorage + name = "Electrical" + icon_state = "engine_smes" + +/area/ruin/space/has_grav/skelter/oxy + name = "02" + icon_state = "atmos" + +/area/ruin/space/has_grav/skelter/nav + name = "Navigation" + icon_state = "start" + +/area/ruin/space/has_grav/skelter/forehall + name = "Forward Hallway" + icon_state = "hallF" + +/area/ruin/space/has_grav/skelter/afthall + name = "Aft Hallway" + icon_state = "hallA" + +/area/ruin/space/has_grav/skelter/storage + name = "Storage" + icon_state = "storage" + +/area/ruin/space/has_grav/skelter/shields + name = "Shields" + icon_state = "green" + //Ruin of Derelict Oupost /area/ruin/space/has_grav/derelictoutpost diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 8a66394ecc..98b502122c 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -296,7 +296,7 @@ /atom/proc/emp_act(severity) var/protection = SEND_SIGNAL(src, COMSIG_ATOM_EMP_ACT, severity) if(!(protection & EMP_PROTECT_WIRES) && istype(wires)) - wires.emp_pulse() + wires.emp_pulse(severity) return protection // Pass the protection value collected here upwards /atom/proc/bullet_act(obj/item/projectile/P, def_zone) @@ -1127,3 +1127,21 @@ */ /atom/proc/rust_heretic_act() return + +///Passes Stat Browser Panel clicks to the game and calls client click on an atom +/atom/Topic(href, list/href_list) + . = ..() + if(!usr?.client) + return + var/client/usr_client = usr.client + var/list/paramslist = list() + if(href_list["statpanel_item_shiftclick"]) + paramslist["shift"] = "1" + if(href_list["statpanel_item_ctrlclick"]) + paramslist["ctrl"] = "1" + if(href_list["statpanel_item_altclick"]) + paramslist["alt"] = "1" + if(href_list["statpanel_item_click"]) + // first of all make sure we valid + var/mouseparams = list2params(paramslist) + usr_client.Click(src, loc, null, mouseparams) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 659d50c077..fbc433a8a0 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -6,10 +6,6 @@ GLOBAL_VAR_INIT(dynamic_latejoin_delay_max, (30 MINUTES)) GLOBAL_VAR_INIT(dynamic_midround_delay_min, (10 MINUTES)) GLOBAL_VAR_INIT(dynamic_midround_delay_max, (30 MINUTES)) -GLOBAL_VAR_INIT(dynamic_event_delay_min, (10 MINUTES)) -GLOBAL_VAR_INIT(dynamic_event_delay_max, (30 MINUTES)) // this is on top of regular events, so can't be quite as often - - // -- Roundstart injection delays GLOBAL_VAR_INIT(dynamic_first_latejoin_delay_min, (2 MINUTES)) GLOBAL_VAR_INIT(dynamic_first_latejoin_delay_max, (30 MINUTES)) @@ -58,7 +54,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) // Threat logging vars /// Starting threat level, for things that increase it but can bring it back down. var/initial_threat_level = 0 - /// Target threat level right now. Events and antags will try to keep the round at this level. + /// Target threat level right now. Antags will try to keep the round at this level. var/threat_level = 0 /// The current antag threat. Recalculated every time a ruletype starts or ends. var/threat = 0 @@ -80,8 +76,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/list/latejoin_rules = list() /// List of midround rules used for selecting the rules. var/list/midround_rules = list() - /// List of events used for reducing threat without causing antag injection (necessarily). - var/list/events = list() /** # Pop range per requirement. * If the value is five the range is: * 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+ @@ -119,8 +113,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/latejoin_injection_cooldown = 0 /// When world.time is over this number the mode tries to inject a midround ruleset. var/midround_injection_cooldown = 0 - /// When wor.dtime is over this number the mode tries to do an event. - var/event_injection_cooldown = 0 /// When TRUE GetInjectionChance returns 100. var/forced_injection = FALSE /// Forced ruleset to be executed for the next latejoin. @@ -181,10 +173,9 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) dat += "[DR.ruletype] - [DR.name]
" else dat += "none.
" - dat += "
Injection Timers: ([storyteller.get_injection_chance(TRUE)]% chance)
" + dat += "
Injection Timers:
" dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" - dat += "Event: [(event_injection_cooldown-world.time)>60*10 ? "[round((event_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(event_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" usr << browse(dat.Join(), "window=gamemode_panel;size=500x500") /datum/game_mode/dynamic/Topic(href, href_list) @@ -204,10 +195,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/threatadd = input("Specify how much threat to add (negative to subtract). This can inflate the threat level.", "Adjust Threat", 0) as null|num if(!threatadd) return - if(threatadd > 0) - create_threat(threatadd) - else - remove_threat(threatadd) + create_threat(threatadd) else if (href_list["injectlate"]) latejoin_injection_cooldown = 0 forced_injection = TRUE @@ -216,10 +204,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) midround_injection_cooldown = 0 forced_injection = TRUE message_admins("[key_name(usr)] forced a midround injection.", 1) - else if (href_list["forceevent"]) - event_injection_cooldown = 0 - // events always happen anyway - message_admins("[key_name(usr)] forced an event.", 1) else if (href_list["threatlog"]) show_threatlog(usr) else if (href_list["stacking_limit"]) @@ -377,8 +361,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) generate_threat() storyteller.start_injection_cooldowns() - SSevents.frequency_lower = storyteller.event_frequency_lower // 6 minutes by default - SSevents.frequency_upper = storyteller.event_frequency_upper // 20 minutes by default log_game("DYNAMIC: Dynamic Mode initialized with a Threat Level of... [threat_level]!") initial_threat_level = threat_level return TRUE @@ -397,9 +379,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) if ("Midround") if (ruleset.weight) midround_rules += ruleset - if("Event") - if(ruleset.weight) - events += ruleset for(var/mob/dead/new_player/player in GLOB.player_list) if(player.ready == PLAYER_READY_TO_PLAY && player.mind) roundstart_pop_ready++ @@ -534,7 +513,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) drafted_rules -= starting_rule starting_rule.trim_candidates() - starting_rule.scale_up(extra_rulesets_amount, threat_level) + starting_rule.scale_up(extra_rulesets_amount, threat_level-added_threat) if (starting_rule.pre_execute()) log_threat("[starting_rule.ruletype] - [starting_rule.name] [starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat", verbose = TRUE) if(starting_rule.flags & HIGHLANDER_RULESET) @@ -596,8 +575,6 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) latejoin_rules = remove_from_list(latejoin_rules, rule.type) else if(rule.ruletype == "Midround") midround_rules = remove_from_list(midround_rules, rule.type) - else if(rule.ruletype == "Event") - events = remove_from_list(events,rule.type) addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_midround_latejoin_rule, rule), rule.delay) return TRUE @@ -698,24 +675,12 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) log_game("DYNAMIC: Checking for midround injection.") update_playercounts() - if (prob(storyteller.get_injection_chance())) + if (storyteller.should_inject_antag()) SSblackbox.record_feedback("tally","dynamic",1,"Attempted midround injections") var/list/drafted_rules = storyteller.midround_draft() if (drafted_rules.len > 0) SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections") picking_midround_latejoin_rule(drafted_rules) - // get_injection_chance can do things on fail - - if(event_injection_cooldown < world.time) - SSblackbox.record_feedback("tally","dynamic",1,"Attempted event injections") - event_injection_cooldown = storyteller.get_event_cooldown() + world.time - message_admins("DYNAMIC: Doing event injection.") - log_game("DYNAMIC: Doing event injection.") - update_playercounts() - var/list/drafted_rules = storyteller.event_draft() - if(drafted_rules.len > 0) - SSblackbox.record_feedback("tally","dynamic",1,"Successful event injections") - picking_midround_latejoin_rule(drafted_rules) /// Updates current_players. /datum/game_mode/dynamic/proc/update_playercounts() @@ -791,12 +756,11 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) picking_midround_latejoin_rule(list(forced_latejoin_rule), forced = TRUE) forced_latejoin_rule = null - else if (latejoin_injection_cooldown < world.time && prob(storyteller.get_injection_chance())) + else if (storyteller.should_inject_antag()) SSblackbox.record_feedback("tally","dynamic",1,"Attempted latejoin injections") var/list/drafted_rules = storyteller.latejoin_draft(newPlayer) if (drafted_rules.len > 0 && picking_midround_latejoin_rule(drafted_rules)) SSblackbox.record_feedback("tally","dynamic",1,"Successful latejoin injections") - latejoin_injection_cooldown = storyteller.get_latejoin_cooldown() + world.time /// Increase the threat level. /datum/game_mode/dynamic/proc/create_threat(gain) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm deleted file mode 100644 index 1ee226875b..0000000000 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ /dev/null @@ -1,454 +0,0 @@ -/datum/dynamic_ruleset/event - ruletype = "Event" - var/typepath // typepath of the event - var/triggering - var/earliest_start = 20 MINUTES - -/datum/dynamic_ruleset/event/get_blackbox_info() - var/list/ruleset_data = list() - ruleset_data["name"] = name - ruleset_data["rule_type"] = ruletype - ruleset_data["cost"] = total_cost - ruleset_data["weight"] = weight - ruleset_data["scaled_times"] = scaled_times - ruleset_data["event_type"] = typepath - ruleset_data["population_tier"] = indice_pop - return ruleset_data - -/datum/dynamic_ruleset/event/execute() - var/datum/round_event/E = new typepath() - E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) - // E.control = src // can't be done! we just don't use events that require these, those can be from_ghost almost always - - testing("[time2text(world.time, "hh:mm:ss")] [E.type]") - deadchat_broadcast("[name] has just been triggered by dynamic!") - log_game("Random Event triggering: [name] ([typepath])") - - return E - -/datum/dynamic_ruleset/event/ready(forced = FALSE) - if (!forced) - if(earliest_start >= world.time-SSticker.round_start_time) - return FALSE - var/job_check = 0 - if (enemy_roles.len > 0) - for (var/mob/M in mode.current_players[CURRENT_LIVING_PLAYERS]) - if (M.stat == DEAD) - continue // Dead players cannot count as opponents - if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles)) - job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it - - var/threat = round(mode.threat_level/10) - if (job_check < required_enemies[threat]) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles") - return FALSE - return TRUE - -////////////////////////////////////////////// -// // -// PIRATES // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/pirates - name = "Space Pirates" - config_tag = "pirates" - typepath = /datum/round_event/pirates - antag_flag = ROLE_TRAITOR - enemy_roles = list("AI","Security Officer","Head of Security","Captain") - required_enemies = list(2,2,1,1,0,0,0,0,0,0) - weight = 5 - cost = 10 - earliest_start = 30 MINUTES - blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear) - requirements = list(70,60,50,50,40,40,40,30,20,15) - property_weights = list("story_potential" = 1, "trust" = 1, "chaos" = 1) - high_population_requirement = 15 - -/datum/dynamic_ruleset/event/pirates/ready(forced = FALSE) - if (!SSmapping.empty_space) - return FALSE - return ..() - -////////////////////////////////////////////// -// // -// SPIDERS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/spiders - name = "Spider Infestation" - config_tag = "spiders" - typepath = /datum/round_event/spider_infestation - enemy_roles = list("AI","Security Officer","Head of Security","Captain") - required_enemies = list(2,2,1,1,0,0,0,0,0,0) - weight = 5 - cost = 10 - requirements = list(70,60,50,50,40,40,40,30,20,15) - high_population_requirement = 15 - property_weights = list("chaos" = 1, "valid" = 1) - -////////////////////////////////////////////// -// // -// CLOGGED VENTS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/ventclog - name = "Clogged Vents" - config_tag = "ventclog" - typepath = /datum/round_event/vent_clog - enemy_roles = list("Chemist","Medical Doctor","Chief Medical Officer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - cost = 2 - weight = 4 - repeatable_weight_decrease = 3 - requirements = list(5,5,5,5,5,5,5,5,5,5) // yes, can happen on fake-extended - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("chaos" = 1, "extended" = 2) - -/datum/dynamic_ruleset/event/ventclog/ready() - if(mode.threat_level > 30 && mode.threat >= 5 && prob(20)) - name = "Clogged Vents: Threatening" - cost = 5 - required_enemies = list(3,3,3,2,2,2,1,1,1,1) - typepath = /datum/round_event/vent_clog/threatening - else if(mode.threat_level > 15 && mode.threat > 15 && prob(30)) - name = "Clogged Vents: Catastrophic" - cost = 15 - required_enemies = list(2,2,1,1,1,1,0,0,0,0) - typepath = /datum/round_event/vent_clog/catastrophic - else - cost = 2 - name = "Clogged Vents: Normal" - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - typepath = /datum/round_event/vent_clog - return ..() - -////////////////////////////////////////////// -// // -// ION STORM // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/ion_storm - name = "Ion Storm" - config_tag = "ion_storm" - typepath = /datum/round_event/ion_storm - enemy_roles = list("Research Director","Captain","Chief Engineer") - required_enemies = list(1,1,0,0,0,0,0,0,0,0) - weight = 4 - // no repeatable weight decrease. too variable to be unfun multiple times in one round - cost = 1 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("story_potential" = 1, "extended" = 1) - always_max_weight = TRUE - -////////////////////////////////////////////// -// // -// METEORS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/meteor_wave - name = "Meteor Wave" - config_tag = "meteor_wave" - typepath = /datum/round_event/meteor_wave - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Captain","Cyborg") - required_enemies = list(3,3,3,3,3,3,3,3,3,3) - cost = 15 - weight = 3 - earliest_start = 25 MINUTES - repeatable_weight_decrease = 2 - requirements = list(60,50,40,30,30,30,30,30,30,30) - high_population_requirement = 30 - property_weights = list("extended" = -2) - -/datum/dynamic_ruleset/event/meteor_wave/ready() - if(world.time-SSticker.round_start_time > 35 MINUTES && mode.threat_level > 40 && mode.threat >= 25 && prob(30)) - name = "Meteor Wave: Threatening" - cost = 25 - typepath = /datum/round_event/meteor_wave/threatening - else if(world.time-SSticker.round_start_time > 45 MINUTES && mode.threat_level > 50 && mode.threat >= 40 && prob(30)) - name = "Meteor Wave: Catastrophic" - cost = 40 - typepath = /datum/round_event/meteor_wave/catastrophic - else - name = "Meteor Wave: Normal" - cost = 15 - typepath = /datum/round_event/meteor_wave - return ..() - -////////////////////////////////////////////// -// // -// ANOMALIES // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/anomaly_bluespace - name = "Anomaly: Bluespace" - config_tag = "anomaly_bluespace" - typepath = /datum/round_event/anomaly/anomaly_bluespace - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - weight = 2 - repeatable_weight_decrease = 1 - cost = 3 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_flux - name = "Anomaly: Hyper-Energetic Flux" - config_tag = "anomaly_flux" - typepath = /datum/round_event/anomaly/anomaly_flux - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - weight = 2 - repeatable_weight_decrease = 1 - cost = 5 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_gravitational - name = "Anomaly: Gravitational" - config_tag = "anomaly_gravitational" - typepath = /datum/round_event/anomaly/anomaly_grav - weight = 2 - repeatable_weight_decrease = 1 - cost = 3 - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_pyroclastic - name = "Anomaly: Pyroclastic" - config_tag = "anomaly_pyroclastic" - typepath = /datum/round_event/anomaly/anomaly_pyro - weight = 2 - repeatable_weight_decrease = 1 - cost = 5 - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/anomaly_vortex - name = "Anomaly: Vortex" - config_tag = "anomaly_vortex" - typepath = /datum/round_event/anomaly/anomaly_vortex - weight = 2 - repeatable_weight_decrease = 1 - cost = 5 - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -////////////////////////////////////////////// -// // -// WOW THAT'S A LOT OF EVENTS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/event/brand_intelligence - name = "Brand Intelligence" - config_tag = "brand_intelligence" - typepath = /datum/round_event/brand_intelligence - weight = 1 - repeatable_weight_decrease = 1 - cost = 2 - enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(1,1,1,1,0,0,0,0,0,0) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = -1, "chaos" = 1) - -/datum/dynamic_ruleset/event/carp_migration - name = "Carp Migration" - config_tag = "carp_migration" - typepath = /datum/round_event/carp_migration - weight = 7 - repeatable_weight_decrease = 3 - cost = 4 - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - earliest_start = 10 MINUTES - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/communications_blackout - name = "Communications Blackout" - config_tag = "communications_blackout" - typepath = /datum/round_event/communications_blackout - cost = 4 - weight = 2 - repeatable_weight_decrease = 3 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1, "chaos" = 1) - -/datum/dynamic_ruleset/event/processor_overload - name = "Processor Overload" - config_tag = "processor_overload" - typepath = /datum/round_event/processor_overload - cost = 4 - weight = 2 - repeatable_weight_decrease = 3 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1, "chaos" = 1) - always_max_weight = TRUE - -/datum/dynamic_ruleset/event/space_dust - name = "Minor Space Dust" - config_tag = "space_dust" - typepath = /datum/round_event/space_dust - cost = 2 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - earliest_start = 0 MINUTES - property_weights = list("extended" = 1) - always_max_weight = TRUE - -/datum/dynamic_ruleset/event/major_dust - name = "Major Space Dust" - config_tag = "major_dust" - typepath = /datum/round_event/meteor_wave/major_dust - cost = 4 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/electrical_storm - name = "Electrical Storm" - config_tag = "electrical_storm" - typepath = /datum/round_event/electrical_storm - cost = 1 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Chief Engineer","Station Engineer") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/heart_attack - name = "Random Heart Attack" - config_tag = "heart_attack" - typepath = /datum/round_event/heart_attack - cost = 3 - weight = 2 - repeatable_weight_decrease = 1 - enemy_roles = list("Medical Doctor","Chief Medical Officer") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(101,101,101,5,5,5,5,5,5,5) - high_population_requirement = 5 - repeatable = TRUE - property_weights = list("extended" = 1) - always_max_weight = TRUE - -/datum/dynamic_ruleset/event/radiation_storm - name = "Radiation Storm" - config_tag = "radiation_storm" - typepath = /datum/round_event/radiation_storm - cost = 3 - weight = 1 - enemy_roles = list("Chemist","Chief Medical Officer","Geneticist","Medical Doctor","AI","Captain") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - property_weights = list("extended" = 1,"chaos" = 1) - -/datum/dynamic_ruleset/event/portal_storm_syndicate - name = "Portal Storm" - config_tag = "portal_storm" - typepath = /datum/round_event/portal_storm/syndicate_shocktroop - cost = 10 - weight = 1 - enemy_roles = list("Head of Security","Security Officer","AI","Captain","Shaft Miner") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(101,101,101,30,30,30,30,30,30,30) - high_population_requirement = 30 - earliest_start = 30 MINUTES - property_weights = list("teamwork" = 1,"chaos" = 1, "extended" = -1) - -/datum/dynamic_ruleset/event/wormholes - name = "Wormholes" - config_tag = "wormhole" - typepath = /datum/round_event/wormholes - cost = 3 - weight = 4 - enemy_roles = list("AI","Medical Doctor","Station Engineer","Head of Personnel","Captain") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) - requirements = list(5,5,5,5,5,5,5,5,5,5) - high_population_requirement = 5 - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/event/swarmers - name = "Swarmers" - config_tag = "swarmer" - typepath = /datum/round_event/spawn_swarmer - cost = 10 - weight = 1 - earliest_start = 30 MINUTES - enemy_roles = list("AI","Security Officer","Head of Security","Captain","Station Engineer","Atmos Technician","Chief Engineer") - required_enemies = list(4,4,4,4,3,3,2,2,1,1) - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 5 - property_weights = list("extended" = -2) - -/datum/dynamic_ruleset/event/sentient_disease - name = "Sentient Disease" - config_tag = "sentient_disease" - typepath = /datum/round_event/ghost_role/sentient_disease - enemy_roles = list("Virologist","Chief Medical Officer","Captain","Chemist") - required_enemies = list(2,1,1,1,0,0,0,0,0,0) - required_candidates = 1 - weight = 4 - cost = 5 - requirements = list(30,30,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"! - property_weights = list("story_potential" = 1, "extended" = 1, "valid" = -2) - high_population_requirement = 5 - -/datum/dynamic_ruleset/event/revenant - name = "Revenant" - config_tag = "revenant" - typepath = /datum/round_event/ghost_role/revenant - enemy_roles = list("Chief Engineer","Station Engineer","Captain","Chaplain","AI") - required_enemies = list(2,1,1,1,0,0,0,0,0,0) - required_candidates = 1 - weight = 4 - cost = 5 - requirements = list(30,30,30,30,20,15,15,15,15,15) - high_population_requirement = 15 - property_weights = list("story_potential" = -2, "extended" = -1) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index 63574c6475..d2fa8bcc70 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -200,13 +200,15 @@ /datum/dynamic_ruleset/latejoin/heretic_smuggler name = "Heretic Smuggler" antag_datum = /datum/antagonist/heretic - antag_flag = ROLE_HERETIC + antag_flag = "latejoin_heretic" protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") restricted_roles = list("AI","Cyborg") required_candidates = 1 weight = 4 - cost = 10 - requirements = list(40,30,20,10,10,10,10,10,10,10) + cost = 25 + requirements = list(60,60,60,55,50,50,50,50,50,50) + high_population_requirement = 50 + property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2) repeatable = TRUE ////////////////////////////////////////////// diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 6a7671cd5b..b29584aa58 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -538,7 +538,7 @@ name = "Slaughter Demon" config_tag = "slaughter_demon" antag_flag = ROLE_ALIEN - enemy_roles = list("Security Officer","Shaft Miner","Head of Security","Captain","Janitor","AI","Cyborg") + enemy_roles = list("Security Officer","Shaft Miner","Head of Security","Captain","Janitor","AI","Cyborg","Bartender") required_enemies = list(3,2,2,2,2,1,1,1,1,0) required_candidates = 1 weight = 4 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 766ddcefc7..db4ec99558 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -151,16 +151,18 @@ /datum/dynamic_ruleset/roundstart/heretics name = "Heretics" - antag_flag = ROLE_HERETIC + antag_flag = "heretic" antag_datum = /datum/antagonist/heretic protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain") restricted_roles = list("AI", "Cyborg") required_candidates = 1 weight = 3 - cost = 20 + cost = 25 scaling_cost = 15 - requirements = list(50,45,45,40,35,20,20,15,10,10) + requirements = list(60,60,60,55,50,50,50,50,50,50) + property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2) antag_cap = list(1,1,1,1,2,2,2,2,3,3) + high_population_requirement = 50 /datum/dynamic_ruleset/roundstart/heretics/pre_execute() diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index 148de9568a..04e295356a 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -22,14 +22,14 @@ var/datum/game_mode/dynamic/mode = null // Cached as soon as it's made, by dynamic. /** -Property weights are: +Property weights are added to the config weight of the ruleset. They are: "story_potential" -- essentially how many different ways the antag can be played. "trust" -- How much it makes the crew trust each other. Negative values means they're suspicious. Team antags are like this. "chaos" -- How chaotic it makes the round. Has some overlap with "valid" and somewhat contradicts "extended". "valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to let everyone into the armory, wizard moving around and being a nuisance, nightmare busting lights. "extended" -- How much the antag is conducive to a long round. Nukies and cults are bad for this; Wizard is less bad; and so on. -"conversion" -- Basically a bool. Conversion antags, well, convert. It's its own class for a good reason. +"conversion" -- Basically a bool. Conversion antags, well, convert. It's in its own class 'cause people kinda hate conversion. */ /datum/dynamic_storyteller/proc/start_injection_cooldowns() @@ -39,9 +39,6 @@ Property weights are: var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max) mode.midround_injection_cooldown = round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time - var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - mode.event_injection_cooldown = (round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) - /datum/dynamic_storyteller/proc/calculate_threat() var/threat = 0 for(var/datum/antagonist/A in GLOB.antagonists) @@ -99,21 +96,11 @@ Property weights are: var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min) return round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) -/datum/dynamic_storyteller/proc/get_event_cooldown() - var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - return round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) - -/datum/dynamic_storyteller/proc/get_latejoin_cooldown() - var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min) - return round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) - -/datum/dynamic_storyteller/proc/get_injection_chance(dry_run = FALSE) +/datum/dynamic_storyteller/proc/should_inject_antag(dry_run = FALSE) if(mode.forced_injection) mode.forced_injection = !dry_run - return 100 - var/threat_perc = mode.threat/mode.threat_level - - return clamp(round(100*(1-(threat_perc*threat_perc))**2,1),0,100) + return TRUE + return mode.threat < mode.threat_level /datum/dynamic_storyteller/proc/roundstart_draft() var/list/drafted_rules = list() @@ -126,8 +113,9 @@ Property weights are: for(var/property in property_weights) if(property in rule.property_weights) // just treat it as 0 if it's not in there property_weight += rule.property_weights[property] * property_weights[property] - if(property_weight > 0) - drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult + var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult + if(calced_weight > 0) // negatives in the list might cause problems + drafted_rules[rule] = calced_weight return drafted_rules /datum/dynamic_storyteller/proc/midround_draft() @@ -144,21 +132,24 @@ Property weights are: for(var/property in property_weights) if(property in rule.property_weights) // just treat it as 0 if it's not in there property_weight += rule.property_weights[property] * property_weights[property] - if(property_weight > 0) - var/threat_weight = 1 - if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway - var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) - /* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to - pick this particular ruleset. - Let's use a toy example: there's 60 threat level and 10 threat spent. - We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets. - Ruleset 1 has 30 cost, ruleset 2 has 5 cost. - When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1 - is 2.26 times as likely to be picked, all other things considered. - Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight. - */ - threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0))) - drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult * threat_weight + var/threat_weight = 1 + if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway + var/cost_difference = rule.cost-(mode.threat_level-mode.threat) + /* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to + pick this particular ruleset. + Let's use a toy example: there's 60 threat level and 10 threat spent. + We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets. + Ruleset 1 has 30 cost, ruleset 2 has 5 cost. + When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1 + is 2.26 times as likely to be picked, all other things considered. + Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight. + */ + threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,abs(cost_difference),0))) + if(cost_difference > 0) + threat_weight /= (1+(cost_difference*0.1)) + var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight + if(calced_weight > 0) + drafted_rules[rule] = calced_weight return drafted_rules /datum/dynamic_storyteller/proc/latejoin_draft(mob/living/carbon/human/newPlayer) @@ -180,27 +171,17 @@ Property weights are: for(var/property in property_weights) if(property in rule.property_weights) property_weight += rule.property_weights[property] * property_weights[property] - if(property_weight > 0) - var/threat_weight = 1 - if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) - var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) - threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,cost_difference,0))) - drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult * threat_weight + var/threat_weight = 1 + if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) + var/cost_difference = rule.cost-(mode.threat_level-mode.threat) + threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,abs(cost_difference),0))) + if(cost_difference > 0) + threat_weight /= (1+(cost_difference*0.1)) + var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight + if(calced_weight > 0) + drafted_rules[rule] = calced_weight return drafted_rules -/datum/dynamic_storyteller/proc/event_draft() - var/list/drafted_rules = list() - for(var/datum/dynamic_ruleset/event/rule in mode.events) - if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && (mode.threat_level + 20 - mode.threat) >= rule.cost && rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) - property_weight += rule.property_weights[property] * property_weights[property] - if(property_weight > 0) - drafted_rules[rule] = rule.get_weight() + property_weight * rule.weight_mult - return drafted_rules - - /datum/dynamic_storyteller/chaotic name = "Chaotic" config_tag = "chaotic" @@ -223,9 +204,6 @@ Property weights are: /datum/dynamic_storyteller/chaotic/get_midround_cooldown() return ..() / 4 -/datum/dynamic_storyteller/chaotic/get_latejoin_cooldown() - return ..() / 4 - /datum/dynamic_storyteller/team name = "Teamwork" config_tag = "teamwork" @@ -237,8 +215,8 @@ Property weights are: flags = WAROPS_ALWAYS_ALLOWED | USE_PREV_ROUND_WEIGHTS property_weights = list("valid" = 3, "trust" = 5) -/datum/dynamic_storyteller/team/get_injection_chance(dry_run = FALSE) - return (mode.current_players[CURRENT_LIVING_ANTAGS].len ? 0 : ..()) +/datum/dynamic_storyteller/team/should_inject_antag(dry_run = FALSE) + return (mode.current_players[CURRENT_LIVING_ANTAGS].len ? FALSE : ..()) /datum/dynamic_storyteller/conversion name = "Conversion" @@ -263,14 +241,8 @@ Property weights are: /datum/dynamic_storyteller/random/get_midround_cooldown() return rand(GLOB.dynamic_midround_delay_min/2, GLOB.dynamic_midround_delay_max*2) -/datum/dynamic_storyteller/random/get_event_cooldown() - return rand(GLOB.dynamic_event_delay_min/2, GLOB.dynamic_event_delay_max*2) - -/datum/dynamic_storyteller/random/get_latejoin_cooldown() - return rand(GLOB.dynamic_latejoin_delay_min/2, GLOB.dynamic_latejoin_delay_max*2) - -/datum/dynamic_storyteller/random/get_injection_chance() - return 50 // i would do rand(0,100) but it's actually the same thing when you do the math +/datum/dynamic_storyteller/random/should_inject_antag() + return prob(50) /datum/dynamic_storyteller/random/roundstart_draft() var/list/drafted_rules = list() @@ -311,13 +283,6 @@ Property weights are: drafted_rules[rule] = 1 return drafted_rules -/datum/dynamic_storyteller/random/event_draft() - var/list/drafted_rules = list() - for(var/datum/dynamic_ruleset/event/rule in mode.events) - if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && rule.ready()) - drafted_rules[rule] = 1 - return drafted_rules - /datum/dynamic_storyteller/story name = "Story" config_tag = "story" @@ -327,12 +292,6 @@ Property weights are: flags = USE_PREV_ROUND_WEIGHTS property_weights = list("story_potential" = 2) - -/datum/dynamic_storyteller/story/calculate_threat() - var/current_time = (world.time / SSautotransfer.targettime)*180 - mode.threat_level = round((mode.initial_threat_level*(sin(current_time)/2)+0.75),0.1) - return ..() - /datum/dynamic_storyteller/classic name = "Classic" config_tag = "classic" @@ -347,7 +306,7 @@ Property weights are: curve_width = 2 dead_player_weight = 2 flags = USE_PREV_ROUND_WEIGHTS - property_weights = list("trust" = -3) + property_weights = list("trust" = -2) /datum/dynamic_storyteller/liteextended name = "Calm" @@ -355,7 +314,7 @@ Property weights are: desc = "Low-chaos round. Few antags. No conversion." curve_centre = -3 curve_width = 0.5 - flags = NO_ASSASSIN | FORCE_IF_WON + flags = NO_ASSASSIN weight = 1 dead_player_weight = 5 property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "conversion" = -10) @@ -363,7 +322,7 @@ Property weights are: /datum/dynamic_storyteller/no_antag name = "Extended" config_tag = "semiextended" - desc = "No standard antags. Threatening events may still spawn." + desc = "No standard antags." curve_centre = -5 curve_width = 0.5 flags = NO_ASSASSIN | FORCE_IF_WON @@ -373,17 +332,5 @@ Property weights are: /datum/dynamic_storyteller/no_antag/roundstart_draft() return list() -/datum/dynamic_storyteller/no_antag/get_injection_chance(dry_run) - return 0 - -/datum/dynamic_storyteller/extended - name = "Super Extended" - config_tag = "extended" - desc = "No antags. No dangerous events." - curve_centre = -20 - weight = 0 - curve_width = 0.5 - -/datum/dynamic_storyteller/extended/on_start() - ..() - GLOB.dynamic_forced_extended = TRUE +/datum/dynamic_storyteller/no_antag/should_inject_antag(dry_run) + return FALSE diff --git a/code/game/gamemodes/dynamic/readme.md b/code/game/gamemodes/dynamic/readme.md index 6bd064cf7c..a98a02a8dd 100644 --- a/code/game/gamemodes/dynamic/readme.md +++ b/code/game/gamemodes/dynamic/readme.md @@ -1,14 +1,15 @@ # DYNAMIC +Tries to keep the round at a certain level of action, based on the round's "threat level". + ## ROUNDSTART Dynamic rolls threat based on a special sauce formula: -"dynamic_curve_width \* tan((3.1416 \* (rand() - 0.5) \* 57.2957795)) + dynamic_curve_centre" +"dynamic_curve_width \* tan((rand() - 0.5) \* 180) + dynamic_curve_centre" -Latejoin and midround injection cooldowns are set using exponential distribution between -5 minutes and 25 for latejoin -15 minutes and 35 for midround -this value is then added to world.time and assigned to the injection cooldown variables. +Midround injection cooldowns are set using exponential distribution between 15 minutes and 35 minutes. This value is then added to world.time and assigned to the injection cooldown variables. + +Latejoins are aggressively assigned whenever possible, to keep the round at a certain threat level. rigged_roundstart() is called instead if there are forced rules (an admin set the mode) @@ -26,8 +27,6 @@ If midround injection time is lower than world.time, it updates playercounts aga make_antag_chance(newPlayer) -> [For each latespawn rule...] -> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) **If true, add to drafted rules -**NOTE that acceptable uses threat_level not threat! -**NOTE Latejoin timer is ONLY reset if at least one rule was drafted. **NOTE the new_player.dm AttemptLateSpawn() calls OnPostSetup for all roles (unless assigned role is MODE) [After collecting all draftble rules...] -> picking_latejoin_ruleset(drafted_rules) -> spend threat -> ruleset.execute() diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm index a7e44ef325..ed17d830ba 100644 --- a/code/game/gamemodes/gangs/dominator.dm +++ b/code/game/gamemodes/gangs/dominator.dm @@ -42,7 +42,7 @@ return ..() /obj/machinery/dominator/emp_act(severity) - take_damage(100, BURN, "energy", 0) + take_damage(75+severity/4, BURN, "energy", 0) ..() /obj/machinery/dominator/hulk_damage() diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index cfb4c9a120..795508320b 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -112,7 +112,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event var/turf/T = get_turf(loc) ram_turf(T) - if(prob(10) && !isspaceturf(T))//randomly takes a 'hit' from ramming + if(prob(10) && !isspaceturf(T) && !istype(T, /turf/closed/mineral) && !istype(T, /turf/open/floor/plating/asteroid))//randomly takes a 'hit' from ramming get_hit() /obj/effect/meteor/Destroy() @@ -136,7 +136,8 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event if(A) ram_turf(get_turf(A)) playsound(src.loc, meteorsound, 40, 1) - get_hit() + if(!istype(A, /turf/closed/mineral) && !istype(A, /turf/open/floor/plating/asteroid)) + get_hit() /obj/effect/meteor/proc/ram_turf(turf/T) //first bust whatever is in the turf diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm index f08d84eae2..c8f1ef4713 100644 --- a/code/game/gamemodes/objective_sabotage.dm +++ b/code/game/gamemodes/objective_sabotage.dm @@ -56,7 +56,7 @@
  • There are many other ways; be creative!
  • \ " -/datum/sabotage_objective/processing/supermatter +/*/datum/sabotage_objective/processing/supermatter name = "Sabotage the supermatter so that it goes under 50% integrity. If it is delaminated, you will fail." sabotage_type = "supermatter" special_equipment = list(/obj/item/paper/guides/antag/supermatter_sabotage) @@ -77,7 +77,7 @@ /datum/sabotage_objective/processing/supermatter/can_run() return (locate(/obj/machinery/power/supermatter_crystal) in GLOB.machines) -/* + /datum/sabotage_objective/station_integrity name = "Make sure the station is at less than 80% integrity by the end. Smash walls, windows etc. to reach this goal." sabotage_type = "integrity" diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index e97d276296..92ae0b764f 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -8,7 +8,8 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) sandbox.owner = src.ckey if(src.client.holder) sandbox.admin = 1 - verbs += new/mob/proc/sandbox_panel + add_verb(src, /mob/proc/sandbox_panel) + /mob/proc/sandbox_panel() set name = "Sandbox Panel" if(sandbox) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 047e6c955f..bced9db61f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -95,7 +95,7 @@ inject_chem(R.type, occupant) open_machine() //Is this too much? Cit specific - if(severity == EMP_HEAVY) + if(severity >= 80) var/chem = pick(available_chems) available_chems -= chem available_chems += get_random_reagent_id() diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 2b7411d03f..8d7a8c047a 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -175,7 +175,7 @@ Class Procs: /obj/machinery/emp_act(severity) . = ..() if(use_power && !stat && !(. & EMP_PROTECT_SELF)) - use_power(7500/severity) + use_power(1000 + severity*65) new /obj/effect/temp_visual/emp(loc) /obj/machinery/proc/open_machine(drop = TRUE) @@ -381,6 +381,7 @@ Class Procs: /obj/machinery/obj_break(damage_flag) if(!(flags_1 & NODECONSTRUCT_1)) stat |= BROKEN + return TRUE /obj/machinery/contents_explosion(severity, target) if(occupant) @@ -534,7 +535,7 @@ Class Procs: else if(zap_flags & ZAP_OBJ_DAMAGE) take_damage(power/2000, BURN, "energy") if(prob(40)) - emp_act(EMP_LIGHT) + emp_act(50) /obj/machinery/Exited(atom/movable/AM, atom/newloc) . = ..() @@ -551,4 +552,4 @@ Class Procs: AM.pixel_y = -8 + (round( . / 3)*8) /obj/machinery/rust_heretic_act() - take_damage(500, BRUTE, "melee", 1) + take_damage(500, BRUTE, "melee", 1) diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index b004746051..1b1fa949a2 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -160,7 +160,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system/emp_act(severity) . = ..() - if(!(stat & (NOPOWER|BROKEN)) && !(. & EMP_PROTECT_SELF)) + if(!(stat & (NOPOWER|BROKEN)) && !(. & EMP_PROTECT_SELF) && severity >= 30) act_up() /obj/machinery/announcement_system/emag_act() diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 2795ba45a9..7950d54ad3 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -97,7 +97,7 @@ if(!status) return if(!(. & EMP_PROTECT_SELF)) - if(prob(150/severity)) + if(prob(severity/0.7)) update_icon() var/list/previous_network = network network = list() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 5bbd3f8a65..60a310e9d5 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -431,7 +431,7 @@ . = ..() if (!(. & EMP_PROTECT_SELF)) var/mob/living/mob_occupant = occupant - if(mob_occupant && prob(100/(severity*efficiency))) + if(mob_occupant && prob((25+severity/1.34)/efficiency)) connected_message(Gibberish("EMP-caused Accidental Ejection", 0)) SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of, ERROR: John Doe, prematurely." ,0)) mob_occupant.copy_from_prefs_vr() diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 6a1514a85e..16081db2c1 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -104,13 +104,8 @@ /obj/machinery/computer/emp_act(severity) . = ..() if (!(. & EMP_PROTECT_SELF)) - switch(severity) - if(1) - if(prob(50)) - obj_break("energy") - if(2) - if(prob(10)) - obj_break("energy") + if(prob(severity/1.8)) + obj_break("energy") /obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user) on_deconstruction() diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 4fb39c04e1..077571b931 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -126,12 +126,7 @@ return var/empprize = null - var/num_of_prizes = 0 - switch(severity) - if(1) - num_of_prizes = rand(1,4) - if(2) - num_of_prizes = rand(0,2) + var/num_of_prizes = rand(round(severity/50),round(severity/100)) for(var/i = num_of_prizes; i > 0; i--) empprize = pickweight(prizes) new empprize(loc) diff --git a/code/game/machinery/computer/arcade/battle.dm b/code/game/machinery/computer/arcade/battle.dm index fc99edd3eb..a6c98c6c9c 100644 --- a/code/game/machinery/computer/arcade/battle.dm +++ b/code/game/machinery/computer/arcade/battle.dm @@ -49,7 +49,6 @@ dat += "" var/datum/browser/popup = new(user, "arcade", "Space Villain 2000") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/machinery/computer/arcade/battle/Topic(href, href_list) diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm index ad325455ad..a9c9b5dfd9 100644 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ b/code/game/machinery/computer/arcade/minesweeper.dm @@ -178,9 +178,12 @@ table[y1][x1] += 10 if(href_list["same_board"]) //Reset the board... kinda if(game_status != MINESWEEPER_GAME_PLAYING) + mine_sound = TRUE game_status = MINESWEEPER_GAME_PLAYING if(table[y1][x1] >= 10) //If revealed, become unrevealed! - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) + if(mine_sound) + playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) + mine_sound = FALSE table[y1][x1] -= 10 if(table[y1][x1] > 10 && !reset_board) safe_squares_revealed += 1 diff --git a/code/game/machinery/computer/arcade/orion_trail.dm b/code/game/machinery/computer/arcade/orion_trail.dm index 8b81c69ed2..441010906c 100644 --- a/code/game/machinery/computer/arcade/orion_trail.dm +++ b/code/game/machinery/computer/arcade/orion_trail.dm @@ -160,7 +160,6 @@ dat += "

    Close

    " var/datum/browser/popup = new(user, "arcade", "The Orion Trail",400,700) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() return diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 74cceacd12..46d419a8fe 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -353,7 +353,6 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) dat = list("", header.Join(), body, "
    ") var/datum/browser/popup = new(user, "id_com", src.name, 900, 620) popup.set_content(dat.Join()) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/card/Topic(href, href_list) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 400ce041c7..2a05b359d8 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -276,7 +276,6 @@ var/datum/browser/popup = new(user, "cloning", "Cloning System Control") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/cloning/Topic(href, href_list) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 6a99b248e3..3ef887b156 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -1,3 +1,15 @@ +#define STATE_DEFAULT 1 +#define STATE_CALLSHUTTLE 2 +#define STATE_CANCELSHUTTLE 3 +#define STATE_MESSAGELIST 4 +#define STATE_VIEWMESSAGE 5 +#define STATE_DELMESSAGE 6 +#define STATE_STATUSDISPLAY 7 +#define STATE_ALERT_LEVEL 8 +#define STATE_CONFIRM_LEVEL 9 +#define STATE_TOGGLE_EMERGENCY 10 +#define STATE_PURCHASE 11 + // The communications computer /obj/machinery/computer/communications name = "communications console" @@ -6,6 +18,7 @@ icon_keyboard = "tech_key" req_access = list(ACCESS_HEADS) circuit = /obj/item/circuitboard/computer/communications + light_color = LIGHT_COLOR_BLUE var/auth_id = "Unknown" //Who is currently logged in? var/list/datum/comm_message/messages = list() var/datum/comm_message/currmsg @@ -16,22 +29,10 @@ var/ai_message_cooldown = 0 var/tmp_alertlevel = 0 var/static/security_level_cd // used to stop mass spam. - var/const/STATE_DEFAULT = 1 - var/const/STATE_CALLSHUTTLE = 2 - var/const/STATE_CANCELSHUTTLE = 3 - var/const/STATE_MESSAGELIST = 4 - var/const/STATE_VIEWMESSAGE = 5 - var/const/STATE_DELMESSAGE = 6 - var/const/STATE_STATUSDISPLAY = 7 - var/const/STATE_ALERT_LEVEL = 8 - var/const/STATE_CONFIRM_LEVEL = 9 - var/const/STATE_TOGGLE_EMERGENCY = 10 - var/const/STATE_PURCHASE = 11 var/stat_msg1 var/stat_msg2 - light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/communications/proc/checkCCcooldown() var/obj/item/circuitboard/computer/communications/CM = circuit @@ -46,7 +47,7 @@ /obj/machinery/computer/communications/Topic(href, href_list) if(..()) return - if(!usr.canUseTopic(src)) + if(!usr.canUseTopic(src, !issilicon(usr))) return if(!is_station_level(z) && !is_reserved_level(z)) //Can only use in transit and on SS13 to_chat(usr, "Unable to establish a connection: \black You're too far away from the station!") @@ -132,15 +133,20 @@ if("crossserver") if(authenticated==2) + var/dest = href_list["cross_dest"] if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) return - var/input = stripped_multiline_input(usr, "Please choose a message to transmit to allied stations. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "") + var/warning = dest == "all" ? "Please choose a message to transmit to allied stations." : "Please choose a message to transmit to [dest] sector station." + var/input = stripped_multiline_input(usr, "[warning] Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "") if(!input || !(usr in view(1,src)) || !checkCCcooldown()) return playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) - send2otherserver("[station_name()]", input,"Comms_Console") + if(dest == "all") + send2otherserver("[station_name()]", input,"Comms_Console") + else + send2otherserver("[station_name()]", input,"Comms_Console", list(dest)) minor_announce(input, title = "Outgoing message to allied station") usr.log_talk(input, LOG_SAY, tag="message to the other server") message_admins("[ADMIN_LOOKUPFLW(usr)] has sent a message to the other server.") @@ -156,12 +162,12 @@ var/datum/map_template/shuttle/S = locate(href_list["chosen_shuttle"]) in shuttles if(S && istype(S)) if(SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_IDLE) - to_chat(usr, "It's a bit late to buy a new shuttle, don't you think?") + to_chat(usr, "It's a bit late to buy a new shuttle, don't you think?") return if(SSshuttle.shuttle_purchased) - to_chat(usr, "A replacement shuttle has already been purchased.") + to_chat(usr, "A replacement shuttle has already been purchased.") else if(!S.prerequisites_met()) - to_chat(usr, "You have not met the requirements for purchasing this shuttle.") + to_chat(usr, "You have not met the requirements for purchasing this shuttle.") else var/points_to_check var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) @@ -183,7 +189,7 @@ if("callshuttle") state = STATE_DEFAULT - if(authenticated) + if(authenticated && SSshuttle.canEvac(usr)) state = STATE_CALLSHUTTLE if("callshuttle2") if(authenticated) @@ -284,12 +290,12 @@ if("MessageCentCom") if(authenticated) if(!checkCCcooldown()) - to_chat(usr, "Arrays recycling. Please stand by.") + to_chat(usr, "Arrays recycling. Please stand by.") return var/input = stripped_input(usr, "Please choose a message to transmit to CentCom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to CentCom.", "") if(!input || !(usr in view(1,src)) || !checkCCcooldown()) return - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) CentCom_announce(input, usr) to_chat(usr, "Message transmitted to Central Command.") for(var/client/X in GLOB.admins) @@ -302,7 +308,7 @@ // OMG SYNDICATE ...LETTERHEAD if("MessageSyndicate") - if((authenticated==2) && (obj_flags & EMAGGED)) + if((authenticated) && (obj_flags & EMAGGED)) if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) @@ -332,7 +338,7 @@ if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") return - var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") + var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self-Destruct Code Request.","") if(!input || !(usr in view(1,src)) || !checkCCcooldown()) return Nuke_request(input, usr) @@ -347,7 +353,9 @@ aicurrmsg = null aistate = STATE_DEFAULT if("ai-callshuttle") - aistate = STATE_CALLSHUTTLE + aistate = STATE_DEFAULT + if(SSshuttle.canEvac(usr)) + aistate = STATE_CALLSHUTTLE if("ai-callshuttle2") SSshuttle.requestEvac(usr, href_list["call"]) aistate = STATE_DEFAULT @@ -460,9 +468,8 @@ var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - if(issilicon(user) || (hasSiliconAccessInArea(user) && !in_range(user,src))) + if(issilicon(user)) var/dat2 = interact_ai(user) // give the AI a different interact proc to limit its access if(dat2) dat += dat2 @@ -493,9 +500,15 @@ if (authenticated==2) dat += "

    Captain Functions" dat += "
    \[ Make a Captain's Announcement \]" - var/cross_servers_count = length(CONFIG_GET(keyed_list/cross_server)) - if(cross_servers_count) - dat += "
    \[ Send a message to [cross_servers_count == 1 ? "an " : ""]allied station[cross_servers_count > 1 ? "s" : ""] \]" + var/list/cross_servers = CONFIG_GET(keyed_list/cross_server) + var/our_id = CONFIG_GET(string/cross_comms_name) + if(cross_servers.len) + for(var/server in cross_servers) + if(server == our_id) + continue + dat += "
    \[ Send a message to station in [server] sector. \]" + if(cross_servers.len > 2) + dat += "
    \[ Send a message to all allied stations \]" if(SSmapping.config.allow_custom_shuttles) dat += "
    \[ Purchase Shuttle \]" dat += "
    \[ Change Alert Level \]" @@ -721,8 +734,13 @@ to_chat(user, "Intercomms recharging. Please stand by.") return var/input = stripped_input(user, "Please choose a message to announce to the station crew.", "What?") - if(!input || !user.canUseTopic(src)) + if(!input || !user.canUseTopic(src, !issilicon(usr))) return + if(!(user.can_speak())) //No more cheating, mime/random mute guy! + input = "..." + to_chat(user, "You find yourself unable to speak.") + else + input = user.treat_message(input) //Adds slurs and so on. Someone should make this use languages too. SScommunications.make_announcement(user, is_silicon, input) deadchat_broadcast("[user.real_name] made an priority announcement from [get_area_name(usr, TRUE)].", user) @@ -771,3 +789,15 @@ content = new_content if(new_possible_answers) possible_answers = new_possible_answers + +#undef STATE_DEFAULT +#undef STATE_CALLSHUTTLE +#undef STATE_CANCELSHUTTLE +#undef STATE_MESSAGELIST +#undef STATE_VIEWMESSAGE +#undef STATE_DELMESSAGE +#undef STATE_STATUSDISPLAY +#undef STATE_ALERT_LEVEL +#undef STATE_CONFIRM_LEVEL +#undef STATE_TOGGLE_EMERGENCY +#undef STATE_PURCHASE diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 286c106788..3d212ec0cb 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -217,9 +217,6 @@ // already discovered mutations stored_research = SSresearch.science_tech -/obj/machinery/computer/scan_consolenew/examine(mob/user) - . = ..() - /obj/machinery/computer/scan_consolenew/ui_interact(mob/user, datum/tgui/ui) // Most of ui_interact is spent setting variables for passing to the tgui // interface. @@ -266,6 +263,10 @@ if(!ui) ui = new(user, src, "DnaConsole") ui.open() + +/obj/machinery/computer/scan_consolenew/ui_assets() + . = ..() || list() + . += get_asset_datum(/datum/asset/simple/genetics) /obj/machinery/computer/scan_consolenew/ui_data(mob/user) var/list/data = list() @@ -357,7 +358,7 @@ return data -/obj/machinery/computer/scan_consolenew/ui_act(action, var/list/params) +/obj/machinery/computer/scan_consolenew/ui_act(action, list/params) if(..()) return TRUE @@ -482,6 +483,7 @@ // Resolve mutation's BYOND path from the alias var/alias = params["alias"] var/path = GET_MUTATION_TYPE_FROM_ALIAS(alias) + // Make sure the occupant still has this mutation if(!(path in scanner_occupant.dna.mutation_index)) return diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index d8a5f856f1..7f5fafcd80 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -178,7 +178,6 @@ dat += "{Log In}" var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/machinery/computer/med_data/Topic(href, href_list) @@ -542,7 +541,7 @@ . = ..() if(!(stat & (BROKEN|NOPOWER)) && !(. & EMP_PROTECT_SELF)) for(var/datum/data/record/R in GLOB.data_core.medical) - if(prob(10/severity)) + if(prob(severity/10)) switch(rand(1,6)) if(1) if(prob(10)) @@ -561,7 +560,7 @@ R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") continue - else if(prob(1)) + else if(prob(severity/80)) qdel(R) continue diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 53f7cb7e32..ca64d538b9 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -67,7 +67,6 @@ add_fingerprint(usr) var/datum/browser/popup = new(user, "computer", title, 400, 500) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/machinery/computer/pod/process() diff --git a/code/game/machinery/computer/prisoner/management.dm b/code/game/machinery/computer/prisoner/management.dm index 4b4b39740a..43aa978558 100644 --- a/code/game/machinery/computer/prisoner/management.dm +++ b/code/game/machinery/computer/prisoner/management.dm @@ -66,7 +66,6 @@ dat += "
    {Log Out}" var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() return diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 5c280eeace..0157f4ca87 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -250,7 +250,6 @@ dat += "{Log In}" var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() return @@ -770,7 +769,7 @@ What a mess.*/ return for(var/datum/data/record/R in GLOB.data_core.security) - if(prob(10/severity)) + if(prob(severity/10)) switch(rand(1,8)) if(1) if(prob(10)) @@ -795,7 +794,7 @@ What a mess.*/ R.fields["photo_side"] = G.fields["photo_side"] continue - else if(prob(1)) + else if(prob(severity/80)) qdel(R) continue diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm index 82e8f46ab6..87b7159125 100644 --- a/code/game/machinery/computer/telecrystalconsoles.dm +++ b/code/game/machinery/computer/telecrystalconsoles.dm @@ -103,7 +103,6 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E var/datum/browser/popup = new(user, "computer", "Telecrystal Upload/Receive Station", 700, 500) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/telecrystals/uplinker/Topic(href, href_list) @@ -185,7 +184,6 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E var/datum/browser/popup = new(user, "computer", "Team Telecrystal Management Console", 700, 500) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/telecrystals/boss/Topic(href, href_list) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 9330a30555..b48742d885 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -76,7 +76,6 @@ var/datum/browser/popup = new(user, "cryopod_console", "Cryogenic System Control") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/cryopod/Topic(href, href_list) @@ -308,7 +307,7 @@ var/mob/living/mob_occupant = occupant var/list/obj/item/cryo_items = list() - + investigate_log("Despawning [key_name(mob_occupant)].", INVESTIGATE_CRYOGENICS) //Handle Borg stuff first @@ -356,23 +355,23 @@ cryo_items -= I //Update any existing objectives involving this mob. - for(var/datum/objective/O in GLOB.objectives) + for(var/i in GLOB.objectives) + var/datum/objective/O = i // We don't want revs to get objectives that aren't for heads of staff. Letting // them win or lose based on cryo is silly so we remove the objective. if(istype(O,/datum/objective/mutiny) && O.target == mob_occupant.mind) qdel(O) - else if(O.target && istype(O.target, /datum/mind)) - if(O.target == mob_occupant.mind) - if(O.owner && O.owner.current) - to_chat(O.owner.current, "
    You get the feeling your target is no longer within reach. Time for Plan [pick("A","B","C","D","X","Y","Z")]. Objectives updated!") - O.target = null - spawn(10) //This should ideally fire after the occupant is deleted. - if(!O) - return - O.find_target() - O.update_explanation_text() - if(!(O.target)) - qdel(O) + else if(O.target && istype(O.target, /datum/mind) && !O.check_completion()) + if(O.target == mob_occupant.mind && O.owner?.current) + to_chat(O.owner.current, "
    You get the feeling your target is no longer within reach. Time for Plan [pick("A","B","C","D","X","Y","Z")]. Objectives updated!") + O.target = null + spawn(10) //This should ideally fire after the occupant is deleted. + if(!O) + return + O.find_target() + O.update_explanation_text() + if(!(O.target)) + qdel(O) if(mob_occupant.mind) //Handle job slot/tater cleanup. diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index b34e97d374..fe2bdf90b1 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -612,7 +612,7 @@ . += "The cogwheel has been loosened, but remains connected loosely to the door!" /obj/machinery/door/airlock/clockwork/emp_act(severity) - if(prob(80/severity)) + if(prob(severity/1.25)) open() /obj/machinery/door/airlock/clockwork/canAIControl(mob/user) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index d4ba70bb6c..1faff76626 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -243,13 +243,8 @@ . = ..() if (. & EMP_PROTECT_SELF) return - if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) ) + if(prob(severity/5) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) ) INVOKE_ASYNC(src, .proc/open) - if(prob(severity*10 - 20)) - if(secondsElectrified == MACHINE_NOT_ELECTRIFIED) - secondsElectrified = MACHINE_ELECTRIFIED_PERMANENT - LAZYADD(shockedby, "\[[TIME_STAMP("hh:mm:ss", FALSE)]\]EM Pulse") - addtimer(CALLBACK(src, .proc/unelectrify), 300) /obj/machinery/door/proc/unelectrify() secondsElectrified = MACHINE_NOT_ELECTRIFIED diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 228c2e1f52..d88a9c9072 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -74,12 +74,6 @@ /obj/machinery/door/firedoor/Bumped(atom/movable/AM) if(panel_open || operating || welded) return - if(ismob(AM)) - var/mob/user = AM - if(density && !welded && !operating && !(stat & NOPOWER) && (!density || allow_hand_open(user))) - add_fingerprint(user) - open() - return TRUE return FALSE /obj/machinery/door/firedoor/power_change() @@ -90,14 +84,6 @@ stat |= NOPOWER /obj/machinery/door/firedoor/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - if(!welded && !operating && !(stat & NOPOWER) && (!density || allow_hand_open(user))) - add_fingerprint(user) - if(density) - emergency_close_timer = world.time + 30 // prevent it from instaclosing again if in space - open() - else - close() - return TRUE if(operating || !density) return diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 22bacf6aa1..3cd2011334 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -397,7 +397,7 @@ return ..() /obj/machinery/door/window/clockwork/emp_act(severity) - if(prob(80/severity)) + if(prob(severity/1.25)) open() /obj/machinery/door/window/clockwork/ratvar_act() diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index f74de23171..8eebd779f4 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -260,7 +260,6 @@ /obj/machinery/doorButtons/airlock_controller/ui_interact(mob/user) var/datum/browser/popup = new(user, "computer", name) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.set_content(returnText()) popup.open() diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 6fd351bcff..5d0165189d 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -29,7 +29,6 @@ . = ..() user.set_machine(src) var/datum/browser/popup = new(user, "computer", name) // Set up the popup browser window - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.set_content(return_text()) popup.open() diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 000b3dc7b5..ca9ce09ced 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -103,7 +103,7 @@ if (. & EMP_PROTECT_SELF) return - if(prob(50 / severity)) + if(prob(severity/1.8)) alarm() /obj/machinery/firealarm/emag_act(mob/user) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index bf71786a05..ff6f96a29f 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -3,13 +3,14 @@ /obj/machinery/iv_drip name = "\improper IV drip" - desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate." + desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. Alt-Click to change the transfer rate." icon = 'icons/obj/iv_drip.dmi' icon_state = "iv_drip" anchored = FALSE mouse_drag_pointer = MOUSE_ACTIVE_POINTER var/mob/living/carbon/attached var/mode = IV_INJECTING + var/dripfeed = FALSE var/obj/item/reagent_containers/beaker var/static/list/drip_containers = typecacheof(list(/obj/item/reagent_containers/blood, /obj/item/reagent_containers/food, @@ -132,9 +133,11 @@ if(mode) if(beaker.reagents.total_volume) var/transfer_amount = 5 + if (dripfeed) + transfer_amount = 1 if(istype(beaker, /obj/item/reagent_containers/blood)) // speed up transfer on blood packs - transfer_amount = 10 + transfer_amount *= 2 var/fraction = min(transfer_amount/beaker.reagents.total_volume, 1) //the fraction that is transfered of the total volume beaker.reagents.reaction(attached, INJECT, fraction, FALSE) //make reagents reacts, but don't spam messages beaker.reagents.trans_to(attached, transfer_amount) @@ -169,6 +172,16 @@ else toggle_mode() +/obj/machinery/iv_drip/AltClick(mob/living/user) + if(!user.canUseTopic(src, be_close=TRUE)) + return + if(dripfeed) + dripfeed = FALSE + to_chat(usr, "You loosen the valve to speed up the [src].") + else + dripfeed = TRUE + to_chat(usr, "You tighten the valve to slowly drip-feed the contents of [src].") + /obj/machinery/iv_drip/attack_robot(mob/user) if(Adjacent(user)) attack_hand(user) @@ -227,7 +240,7 @@ /obj/machinery/iv_drip/telescopic name = "telescopic IV drip" - desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down." + desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down.Alt-Click with a beaker attached to change the transfer rate." icon_state = "iv_drip" /obj/machinery/iv_drip/telescopic/update_icon_state() diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index a8fa31d5fb..0b89b117c4 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -38,3 +38,14 @@ if(stat & (BROKEN|NOPOWER)) return drive() + +/obj/machinery/mass_driver/pressure_plate + name = "pressure plated mass driver" + var/drive_delay = 10 + +/obj/machinery/mass_driver/pressure_plate/Crossed(atom/movable/O) + . = ..() + if(isliving(O)) + var/mob/living/L = O + to_chat(L, "You feel something click beneath you!") + addtimer(CALLBACK(src, .proc/drive), drive_delay) \ No newline at end of file diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 54d320e93b..34745a65f6 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -300,6 +300,7 @@ else to_chat(user, "You remove the turret but did not manage to salvage anything.") qdel(src) + return else if((istype(I, /obj/item/wrench)) && (!on)) if(raised) @@ -718,9 +719,7 @@ /obj/machinery/porta_turret/syndicate/ComponentInitialize() . = ..() - // AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) - AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) //this one or ^ one? - + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) /obj/machinery/porta_turret/syndicate/setup() return diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 7c2000175e..2a73ee8d89 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -151,6 +151,7 @@ turret.installation = installed_gun.type turret.setup(installed_gun) qdel(src) + return else if(istype(I, /obj/item/crowbar)) I.play_tool_sound(src, 75) diff --git a/code/game/machinery/poweredfans/fan_assembly.dm b/code/game/machinery/poweredfans/fan_assembly.dm new file mode 100644 index 0000000000..651b3342ac --- /dev/null +++ b/code/game/machinery/poweredfans/fan_assembly.dm @@ -0,0 +1,100 @@ +/obj/machinery/fan_assembly + name = "fan assembly" + desc = "A basic microfan assembly." + icon = 'icons/obj/poweredfans.dmi' + icon_state = "mfan_assembly" + max_integrity = 150 + use_power = NO_POWER_USE + power_channel = ENVIRON + idle_power_usage = 0 + active_power_usage = 0 + layer = ABOVE_NORMAL_TURF_LAYER + anchored = FALSE + density = FALSE + CanAtmosPass = ATMOS_PASS_YES + stat = 1 + var/buildstacktype = /obj/item/stack/sheet/plasteel + var/buildstackamount = 5 + /* + 1 = Wrenched in place + 2 = Welded in place + 3 = Wires attached to it, this makes it change to the full thing. + */ + +/obj/machinery/fan_assembly/attackby(obj/item/W, mob/living/user, params) + switch(stat) + if(1) + // Stat 1 + if(istype(W, /obj/item/weldingtool)) + if(weld(W, user)) + to_chat(user, "You weld the fan assembly securely into place.") + setAnchored(TRUE) + stat = 2 + update_icon_state() + return + if(2) + // Stat 2 + if(istype(W, /obj/item/stack/cable_coil)) + if(!W.tool_start_check(user, amount=2)) + to_chat(user, "You need two lengths of cable to wire the fan assembly!") + return + to_chat(user, "You start to add wires to the assembly...") + if(W.use_tool(src, user, 30, volume=50, amount=2)) + to_chat(user, "You add wires to the fan assembly.") + stat = 3 + var/obj/machinery/poweredfans/F = new(loc, src) + forceMove(F) + F.setDir(src.dir) + return + else if(istype(W, /obj/item/weldingtool)) + if(weld(W, user)) + to_chat(user, "You unweld the fan assembly from its place.") + stat = 1 + update_icon_state() + setAnchored(FALSE) + return + return ..() + +/obj/machinery/fan_assembly/wrench_act(mob/user, obj/item/I) + if(stat != 1) + return FALSE + user.visible_message("[user] disassembles [src].", + "You start to disassemble [src]...", "You hear wrenching noises.") + if(I.use_tool(src, user, 30, volume=50)) + deconstruct() + return TRUE + +/obj/machinery/fan_assembly/proc/weld(obj/item/weldingtool/W, mob/living/user) + if(!W.tool_start_check(user, amount=0)) + return FALSE + switch(stat) + if(1) + to_chat(user, "You start to weld \the [src]...") + if(2) + to_chat(user, "You start to unweld \the [src]...") + if(W.use_tool(src, user, 30, volume=50)) + return TRUE + return FALSE + +/obj/machinery/fan_assembly/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + new buildstacktype(loc,buildstackamount) + qdel(src) + +/obj/machinery/fan_assembly/examine(mob/user) + . = ..() + switch(stat) + if(1) + to_chat(user, "The fan assembly seems to be unwelded and loose.") + if(2) + to_chat(user, "The fan assembly seems to be welded, but missing wires.") + if(3) + to_chat(user, "The outer plating is wired firmly in place.") + +/obj/machinery/fan_assembly/update_icon_state() + . = ..() + switch(stat) + if(1) + icon_state = "mfan_assembly" + if(2) + icon_state = "mfan_welded" diff --git a/code/game/machinery/poweredfans/poweredfans.dm b/code/game/machinery/poweredfans/poweredfans.dm new file mode 100644 index 0000000000..3349a6894e --- /dev/null +++ b/code/game/machinery/poweredfans/poweredfans.dm @@ -0,0 +1,56 @@ +/obj/machinery/poweredfans + icon = 'icons/obj/poweredfans.dmi' + icon_state = "mfan_powered" + name = "micro powered fan" + desc = "A handmade fan, releasing a thin gust of air." + use_power = ACTIVE_POWER_USE + power_channel = ENVIRON + idle_power_usage = 5 + active_power_usage = 10 + max_integrity = 150 + layer = ABOVE_NORMAL_TURF_LAYER + anchored = TRUE + density = FALSE + CanAtmosPass = ATMOS_PASS_NO + var/obj/machinery/fan_assembly/assembly + +/obj/machinery/poweredfans/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(!assembly) + assembly = new() + assembly.forceMove(drop_location()) + assembly.stat = 2 + assembly.setAnchored(TRUE) + assembly.setDir(dir) + assembly = null + new /obj/item/stack/cable_coil(loc, 2) + qdel(src) + +/obj/machinery/poweredfans/wirecutter_act(mob/living/user, obj/item/I) + user.visible_message("[user] removes the wires from the [src].", + "You start to remove the wires from the [src]...", "You hear clanking and banging noises.") + if(I.use_tool(src, user, 30, volume=50)) + deconstruct() + return TRUE + +/obj/machinery/poweredfans/Initialize(mapload, obj/machinery/fan_assembly/FA) + . = ..() + if(FA) + assembly = FA + else + assembly = new(src) + assembly.stat = 3 + air_update_turf(1) + +/obj/machinery/poweredfans/power_change() + ..() + if(powered()) + icon_state = "mfan_powered" + CanAtmosPass = ATMOS_PASS_NO + air_update_turf(1) + else + icon_state = "mfan_unpowered" + CanAtmosPass = ATMOS_PASS_YES + air_update_turf(1) + update_icon_state() + diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index e1f55da551..2915c2f34b 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -218,10 +218,10 @@ GLOBAL_LIST_EMPTY(allConsoles) dat += "Message Authentication

    " dat += "Message for [dpt]: [message]

    " dat += "
    You may authenticate your message now by scanning your ID or your stamp

    " - + dat += "Validated by: [msgVerified ? "[msgVerified]" : "Not Validated"]
    " dat += "Stamped by: [msgStamped ? "[msgStamped]" : "Not Stamped"]

    " - + dat += "Send Message

    " dat += "<< Discard Message
    " @@ -271,7 +271,6 @@ GLOBAL_LIST_EMPTY(allConsoles) var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/requests_console/Topic(href, href_list) @@ -279,7 +278,7 @@ GLOBAL_LIST_EMPTY(allConsoles) return usr.set_machine(src) add_fingerprint(usr) - + if(href_list["write"]) dpt = ckey(reject_bad_text(href_list["write"])) //write contains the string of the receiving department's name var/new_message = stripped_input(usr, "Write your message:", "Awaiting Input", "", MAX_MESSAGE_LEN) @@ -358,7 +357,7 @@ GLOBAL_LIST_EMPTY(allConsoles) workingServer = TRUE if(!workingServer) - screen = 7 + screen = 7 say("NOTICE: No server detected! Please contact your local engineering team.") updateUsrDialog() return @@ -539,7 +538,7 @@ GLOBAL_LIST_EMPTY(allConsoles) to_chat(user, "You are not authorized to send announcements!") updateUsrDialog() return - + if(istype(O, /obj/item/stamp)) if(screen == 9) var/obj/item/stamp/T = O diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 6793d361b5..8a0f376b0f 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -25,11 +25,10 @@ . = ..() if (. & EMP_PROTECT_SELF) return - switch(severity) - if(1) - qdel(src) - if(2) - take_damage(50, BRUTE, "energy", 0) + if(severity >= 70) + qdel(src) + else + take_damage(severity/1.3, BRUTE, "energy", 0) /obj/structure/emergency_shield/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0) switch(damage_type) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 84b205b585..6282d74346 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -132,7 +132,6 @@ var/datum/browser/popup = new(user, "slotmachine", "Slot Machine") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/machinery/computer/slot_machine/Topic(href, href_list) @@ -151,9 +150,9 @@ . = ..() if(stat & (NOPOWER|BROKEN) || . & EMP_PROTECT_SELF) return - if(prob(15 * severity)) + if(prob(1500 / severity)) return - if(prob(1)) // :^) + if(prob(1 * severity/100)) // :^) obj_flags |= EMAGGED var/severity_ascending = 4 - severity money = max(rand(money - (200 * severity_ascending), money + (200 * severity_ascending)), 0) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index e1b345f507..f75eef0b21 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -119,7 +119,7 @@ GLOBAL_LIST_EMPTY(telecomms_list) /obj/machinery/telecomms/proc/update_power() if(toggled) // if powered, on. if not powered, off. if too damaged, off - if(CHECK_BITFIELD(stat, (BROKEN | NOPOWER | EMPED))) + if(CHECK_BITFIELD(stat, (BROKEN | NOPOWER | EMPED))) on = FALSE else on = TRUE @@ -139,9 +139,9 @@ GLOBAL_LIST_EMPTY(telecomms_list) . = ..() if(CHECK_BITFIELD(., EMP_PROTECT_SELF)) return - if(prob(100 / severity)) + if(prob(severity)) if(!CHECK_BITFIELD(stat, EMPED)) ENABLE_BITFIELD(stat, EMPED) - var/duration = (300 * 10) / severity + var/duration = severity * 35 spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. DISABLE_BITFIELD(stat, EMPED) diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index a2d4b9eb7e..8bca58a7de 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -100,7 +100,7 @@ // So he can't jump out the gate right away. R.SetLockdown() if(masterAI) - R.connected_ai = masterAI + R.set_connected_ai(masterAI) R.lawsync() R.lawupdate = 1 addtimer(CALLBACK(src, .proc/unlock_new_robot, R), 50) diff --git a/code/game/mecha/combat/neovgre.dm b/code/game/mecha/combat/neovgre.dm index 1bd68546c8..584a2d007e 100644 --- a/code/game/mecha/combat/neovgre.dm +++ b/code/game/mecha/combat/neovgre.dm @@ -64,6 +64,8 @@ /obj/mecha/combat/neovgre/process() ..() + if(!obj_integrity) //Integrity is zero but we would heal out of that state if we went into this before it recognises it being zero + return if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hope to stop the superweapon cell.charge = INFINITY max_integrity = INFINITY diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 50d18c6fda..0e47872221 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -131,7 +131,7 @@ if(recharging) return if(chassis) - chassis.emp_act(EMP_HEAVY) + chassis.emp_act(80) addtimer(CALLBACK(src, /obj/item/mecha_parts/mecha_tracking/proc/recharge), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) recharging = TRUE diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 40336fb01e..d5b27a9636 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -1,12 +1,10 @@ /obj/mecha/proc/get_armour_facing(relative_dir) switch(relative_dir) - if(0) // BACKSTAB! + if(180) // BACKSTAB! return facing_modifiers[BACK_ARMOUR] - if(45, 90, 270, 315) - return facing_modifiers[SIDE_ARMOUR] - if(225, 180, 135) + if(0, 45) // direct or 45 degrees off return facing_modifiers[FRONT_ARMOUR] - return 1 //always return non-0 + return facing_modifiers[SIDE_ARMOUR] //if its not a front hit or back hit then assume its from the side /obj/mecha/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() @@ -43,7 +41,7 @@ break if(attack_dir) - var/facing_modifier = get_armour_facing(dir2angle(attack_dir) - dir2angle(src)) + var/facing_modifier = get_armour_facing(abs(dir2angle(dir) - dir2angle(attack_dir))) booster_damage_modifier /= facing_modifier booster_deflection_modifier *= facing_modifier if(prob(deflect_chance * booster_deflection_modifier)) @@ -142,8 +140,8 @@ if (. & EMP_PROTECT_SELF) return if(get_charge()) - use_power((cell.charge/3)/(severity*2)) - take_damage(30 / severity, BURN, "energy", 1) + use_power(cell.charge*severity/100) + take_damage(severity/3, BURN, "energy", 1) mecha_log_message("EMP detected", color="red") if(istype(src, /obj/mecha/combat)) @@ -268,12 +266,8 @@ return 1 else if(istype(W, /obj/item/mecha_parts/mecha_tracking)) - if(!user.transferItemToLoc(W, src)) - to_chat(user, "\the [W] is stuck to your hand, you cannot put it in \the [src]!") - return - trackers += W - user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src].") - diag_hud_set_mechtracking() + var/obj/item/mecha_parts/mecha_tracking/tracker = W + tracker.try_attach_part(user, src) return else return ..() @@ -315,7 +309,7 @@ clearInternalDamage(MECHA_INT_CONTROL_LOST) /obj/mecha/narsie_act() - emp_act(EMP_HEAVY) + emp_act(100) /obj/mecha/ratvar_act() if((GLOB.ratvar_awakens || GLOB.clockwork_gateway_activated) && occupant) diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 41270bb09e..9d6d034364 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -17,11 +17,15 @@ var/countdown_colour var/obj/effect/countdown/anomaly/countdown -/obj/effect/anomaly/Initialize(mapload, new_lifespan) + /// chance we drop a core when neutralized + var/core_drop_chance = 100 + +/obj/effect/anomaly/Initialize(mapload, new_lifespan, core_drop_chance = 100) . = ..() GLOB.poi_list |= src START_PROCESSING(SSobj, src) impact_area = get_area(src) + src.core_drop_chance = core_drop_chance if (!impact_area) return INITIALIZE_HINT_QDEL @@ -54,6 +58,8 @@ GLOB.poi_list.Remove(src) STOP_PROCESSING(SSobj, src) qdel(countdown) + if(aSignal) + QDEL_NULL(aSignal) return ..() /obj/effect/anomaly/proc/anomalyEffect() @@ -70,12 +76,12 @@ /obj/effect/anomaly/proc/anomalyNeutralize() new /obj/effect/particle_effect/smoke/bad(loc) - for(var/atom/movable/O in src) - O.forceMove(drop_location()) + if(prob(core_drop_chance)) + aSignal.forceMove(drop_location()) + aSignal = null qdel(src) - /obj/effect/anomaly/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_ANALYZER) //revert if runtimed to_chat(user, "Analyzing... [src]'s unstable field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code].") @@ -285,7 +291,19 @@ S.rabid = TRUE S.amount_grown = SLIME_EVOLUTION_THRESHOLD S.Evolve() - offer_control(S) + var/list/candidates = pollCandidatesForMob("Do you want to play as a pyroclastic anomaly slime?",ROLE_SENTIENCE,null,ROLE_SENTIENCE,100,S,POLL_IGNORE_SENTIENCE_POTION) + if(length(candidates)) + var/mob/C = pick(candidates) + message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(S)])") + C.transfer_ckey(S, FALSE) + var/list/policies = CONFIG_GET(keyed_list/policyconfig) + var/policy = policies[POLICYCONFIG_ON_PYROCLASTIC_SENTIENT] + if(policy) + to_chat(S,policy) + return TRUE + else + message_admins("No ghosts were willing to take control of [ADMIN_LOOKUPFLW(S)])") + return FALSE ///////////////////// diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 25b262a146..5f312f2bf3 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -46,4 +46,5 @@ var/turf/T = loc if(!istype(T)) //you know this will happen somehow CRASH("Turf decal initialized in an object/nullspace") - T.AddElement(/datum/element/decal, icon, icon_state, turn(dir, -dir2angle(T.dir)), CLEAN_GOD, color, null, null, alpha) + var/turn_dir = 180 - dir2angle(T.dir) //Turning a dir by 0 results in a roulette of random dirs. + T.AddElement(/datum/element/decal, icon, icon_state, turn_dir ? turn(dir, turn_dir) : dir, CLEAN_GOD, color, null, null, alpha) diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index 19b0dc76dd..a388d3bc67 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -63,3 +63,23 @@ /datum/effect_system/lightning_spread effect_type = /obj/effect/particle_effect/sparks/electricity + +//fake sparks, not subtyped because we don't want light/heat, nor checks inside an often used proc for a rare subcase for saving like 10 lines of code +/obj/effect/particle_effect/fake_sparks + name = "lightning" + icon_state = "electricity" + +/obj/effect/particle_effect/fake_sparks/Initialize() + . = ..() + flick(icon_state, src) // replay the animation + playsound(src, "sparks", 100, TRUE) + QDEL_IN(src, 20) + +/datum/effect_system/fake_spark_spread + effect_type = /obj/effect/particle_effect/fake_sparks + +/proc/do_fake_sparks(n, c, source) + var/datum/effect_system/fake_spark_spread/sparks = new + sparks.set_up(n, c, source) + sparks.autocleanup = TRUE + sparks.start() diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index b63a126c5d..235fbf6a9f 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -1,32 +1,28 @@ -/proc/empulse(turf/epicenter, heavy_range, light_range, log=0) +/proc/empulse(turf/epicenter, power, log=0) if(!epicenter) return if(!isturf(epicenter)) epicenter = get_turf(epicenter.loc) - if(log) - message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") - log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") + var/max_distance = max(round((power/7)^0.7), 1) - if(heavy_range >= 1) + if(log) + message_admins("EMP with power [power], max distance [max_distance] in area [epicenter.loc.name] ") + log_game("EMP with power [power], max distance [max_distance] in area [epicenter.loc.name] ") + + if(power > 100) new /obj/effect/temp_visual/emp/pulse(epicenter) - if(heavy_range > light_range) - light_range = heavy_range - - for(var/A in spiral_range(light_range, epicenter)) + for(var/A in spiral_range(max_distance, epicenter)) var/atom/T = A var/distance = get_dist(epicenter, T) - if(distance < 0) - distance = 0 - if(distance < heavy_range) - T.emp_act(EMP_HEAVY) - else if(distance == heavy_range) - if(prob(50)) - T.emp_act(EMP_HEAVY) - else - T.emp_act(EMP_LIGHT) - else if(distance <= light_range) - T.emp_act(EMP_LIGHT) + var/severity = 100 + if(distance != 0) //please dont divide by 0 + severity = min(max((max_distance / distance^0.3) * (100/max_distance), 1),100) //if it goes below 1 or above 100 stuff gets bad + T.emp_act(severity) return 1 + +/proc/empulse_using_range(turf/epicenter, range, log=0) //make an emp using range instead of power + var/power_from_range = (7*(range^(1/0.7))) + empulse(epicenter, power_from_range, log) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index c89e318714..07ffe8896e 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -242,7 +242,6 @@ RLD var/datum/browser/popup = new(user, "rcd_access", "Access Control", 900, 500, src) popup.set_content(t1) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/item/construction/rcd/Topic(href, href_list) diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm index 225644109f..4cbd75ed94 100644 --- a/code/game/objects/items/broom.dm +++ b/code/game/objects/items/broom.dm @@ -28,39 +28,37 @@ /// triggered on wield of two handed item /obj/item/broom/proc/on_wield(obj/item/source, mob/user) to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) + RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, .proc/sweep) /// triggered on unwield of two handed item /obj/item/broom/proc/on_unwield(obj/item/source, mob/user) - UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + UnregisterSignal(user, COMSIG_MOVABLE_PRE_MOVE) /obj/item/broom/afterattack(atom/A, mob/user, proximity) . = ..() if(!proximity) return - sweep(user, A, FALSE) + sweep(user, A) -/obj/item/broom/proc/sweep(mob/user, atom/A, moving = TRUE) - var/turf/target - if (!moving) - if (isturf(A)) - target = A - else - target = A.loc - else - target = user.loc - if (!isturf(target)) +/obj/item/broom/proc/sweep(datum/source, atom/newLoc) + if(!ismob(source) || !isturf(newLoc) || (get_dist(source, newLoc) > 1)) return - if (locate(/obj/structure/table) in target.contents) + var/turf/target = newLoc + var/atom/movable/AM + var/sweep_dir = get_dir(source, target) + if(!sweep_dir) return + for(var/i in target.contents) + AM = i + if(AM.density) // eh good enough heuristic check + return var/i = 0 for(var/obj/item/garbage in target.contents) if(!garbage.anchored) - garbage.Move(get_step(target, user.dir), user.dir) - i++ - if(i >= 20) + step(garbage, sweep_dir) + if(++i > 20) break - if(i >= 1) + if(i) playsound(loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) /obj/item/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 5ed719ff94..9b658bc5f1 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -13,6 +13,7 @@ var/ignores_timeout = FALSE var/response_timer_id = null var/approval_time = 600 + var/allow_unicode = FALSE var/static/regex/standard_station_regex @@ -48,6 +49,9 @@ if(!new_name) return + if(!allow_unicode && (length(new_name) != length_char(new_name))) + to_chat(user, "Unicode is not allowed. Adminhelp if you want to use it so badly.") + return log_game("[key_name(user)] has proposed to name the station as \ [new_name]") diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 37d19783b5..8e59e91e38 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -390,7 +390,7 @@ /obj/item/circuitboard/machine/thermomachine/examine() . = ..() - . += "It is set to layer [pipe_layer]." + . += "It is set to layer [pipe_layer]. Use a Multitool on the circuit to change this." /obj/item/circuitboard/machine/thermomachine/heater name = "Heater (Machine Board)" @@ -1146,3 +1146,8 @@ build_path = /obj/machinery/atmospherics/components/unary/shuttle/heater req_components = list(/obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/matter_bin = 1) + +/obj/item/circuitboard/machine/explosive_compressor + name = "Explosive Compressor (Machine Board)" + build_path = /obj/machinery/research/explosive_compressor + req_components = list(/obj/item/stock_parts/matter_bin = 3) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 7f8b720509..2a9944f770 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -735,7 +735,11 @@ if(isobj(target)) if(actually_paints) var/list/hsl = rgb2hsl(hex2num(copytext(paint_color,2,4)),hex2num(copytext(paint_color,4,6)),hex2num(copytext(paint_color,6,8))) - if(hsl[3] < 0.25 && !istype(target, /obj/structure/window) && !istype(target, /obj/effect/decal/cleanable/crayon)) //Colors too dark are rejected + var/static/whitelisted = typecacheof(list(/obj/structure/window, + /obj/effect/decal/cleanable/crayon, + /obj/machinery/door/window) + ) + if(hsl[3] < 0.25 && !whitelisted[target]) //Colors too dark are rejected to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm index 0acb225772..21cfd1fbad 100644 --- a/code/game/objects/items/credit_holochip.dm +++ b/code/game/objects/items/credit_holochip.dm @@ -101,7 +101,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - var/wipe_chance = 60 / severity + var/wipe_chance = severity/1.5 if(prob(wipe_chance)) visible_message("[src] fizzles and disappears!") qdel(src) //rip cash diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 767f8fc395..484901990a 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -140,7 +140,7 @@ /obj/item/defibrillator/emp_act(severity) . = ..() if(cell && !(. & EMP_PROTECT_CONTENTS)) - deductcharge(1000 / severity) + deductcharge(severity*10) if (. & EMP_PROTECT_SELF) return if(safety) @@ -394,8 +394,6 @@ to_chat(user, "[src] are recharging!") return - user.stop_pulling() //User has hands full, and we don't care about anyone else pulling on it, their problem. CLEAR!! - if(user.a_intent == INTENT_DISARM) do_disarm(M, user) return @@ -447,8 +445,7 @@ if(do_after(user, isnull(defib?.disarm_shock_time)? disarm_shock_time : defib.disarm_shock_time, target = M)) M.visible_message("[user] zaps [M] with [src]!", \ "[user] zaps [M] with [src]!") - M.adjustStaminaLoss(50) - M.DefaultCombatKnockdown(100) + M.DefaultCombatKnockdown(140) M.updatehealth() //forces health update before next life tick playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1) M.emote("gasp") diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index ec68cdb40c..c09d23aafb 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -266,7 +266,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/datum/asset/spritesheet/assets = get_asset_datum(/datum/asset/spritesheet/simple/pda) assets.send(user) - var/datum/asset/spritesheet/emoji_s = get_asset_datum(/datum/asset/spritesheet/goonchat) + var/datum/asset/spritesheet/emoji_s = get_asset_datum(/datum/asset/spritesheet/chat) emoji_s.send(user) //Already sent by chat but no harm doing this user.set_machine(src) @@ -1206,7 +1206,7 @@ GLOBAL_LIST_EMPTY(PDAs) A.emp_act(severity) if (!(. & EMP_PROTECT_SELF)) emped += 1 - spawn(200 * severity) + spawn(2 * severity) emped -= 1 /proc/get_viewable_pdas() diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 6eae9f127a..4ca0b86bc0 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -590,7 +590,7 @@ Code: var/static/list/emoji_icon_states var/static/emoji_table if(!emoji_table) - var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/goonchat) + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat) var/list/collate = list("
    ") for(var/emoji in sortList(icon_states(icon('icons/emoji.dmi')))) var/tag = sheet.icon_tag("emoji-[emoji]") diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 6b53a9ba46..e20321414d 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -225,7 +225,7 @@ if(C && istype(C) && C.bug == src) if(!same_z_level(C)) return - C.emp_act(EMP_HEAVY) + C.emp_act(80) C.bug = null bugged_cameras -= C.c_tag interact() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 75024aec26..035375fdaf 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -428,7 +428,7 @@ else A.visible_message("[user] blinks \the [src] at \the [A].") to_chat(user, "\The [src] now has [emp_cur_charges] charge\s.") - A.emp_act(EMP_HEAVY) + A.emp_act(80) else to_chat(user, "\The [src] needs time to recharge!") return diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index c931d92379..6d10d31f5c 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -128,7 +128,7 @@ else if(istype(target, /obj/machinery/camera)) var/obj/machinery/camera/C = target if(prob(effectchance * diode.rating)) - C.emp_act(EMP_HEAVY) + C.emp_act(80) outmsg = "You hit the lens of [C] with [src], temporarily disabling the camera!" log_combat(user, C, "EMPed", src) else diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm new file mode 100644 index 0000000000..3e1b20cfc2 --- /dev/null +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -0,0 +1,206 @@ +/obj/item/storage/portable_chem_mixer + name = "Portable Chemical Mixer" + desc = "A portable device that dispenses and mixes chemicals. All necessary reagents need to be supplied with beakers. A label indicates that a screwdriver is required to open it for refills. This device can be worn on a belt. The letters 'S&T' are imprinted on the side." + icon = 'icons/obj/chemical.dmi' + icon_state = "portablechemicalmixer_open" + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BELT + custom_price = 2000 + custom_premium_price = 2000 + + var/obj/item/reagent_containers/beaker = null ///Creating an empty slot for a beaker that can be added to dispense into + var/amount = 30 ///The amount of reagent that is to be dispensed currently + + var/list/dispensable_reagents = list() ///List in which all currently dispensable reagents go + +/obj/item/storage/portable_chem_mixer/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_combined_w_class = 200 + STR.max_items = 50 + STR.insert_preposition = "in" + STR.can_hold = typecacheof(list( + /obj/item/reagent_containers/glass/beaker, + )) + +/obj/item/storage/portable_chem_mixer/Destroy() + QDEL_NULL(beaker) + return ..() + +/obj/item/storage/portable_chem_mixer/ex_act(severity, target) + if(severity < 3) + ..() + +/obj/item/storage/portable_chem_mixer/attackby(obj/item/I, mob/user, params) + var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED) + if (I.tool_behaviour == TOOL_SCREWDRIVER) + SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SET_LOCKSTATE, !locked) + if (!locked) + update_contents() + if (locked) + replace_beaker(user) + update_icon() + I.play_tool_sound(src, 50) + return + + else if (istype(I, /obj/item/reagent_containers) && !(I.item_flags & ABSTRACT) && I.is_open_container() && locked) + var/obj/item/reagent_containers/B = I + . = TRUE //no afterattack + if(!user.transferItemToLoc(B, src)) + return + replace_beaker(user, B) + update_icon() + updateUsrDialog() + return + + return ..() + +/** + * Updates the contents of the portable chemical mixer + * + * A list of dispensable reagents is created by iterating through each source beaker in the portable chemical beaker and reading its contents + */ +/obj/item/storage/portable_chem_mixer/proc/update_contents() + dispensable_reagents.Cut() + + for (var/obj/item/reagent_containers/glass/beaker/B in contents) + var/key = B.reagents.get_master_reagent_id() + if (!(key in dispensable_reagents)) + dispensable_reagents[key] = list() + dispensable_reagents[key]["reagents"] = list() + dispensable_reagents[key]["reagents"] += B.reagents + + return + +/obj/item/storage/portable_chem_mixer/update_icon_state() + var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED) + if (!locked) + icon_state = "portablechemicalmixer_open" + else if (beaker) + icon_state = "portablechemicalmixer_full" + else + icon_state = "portablechemicalmixer_empty" + + +/obj/item/storage/portable_chem_mixer/AltClick(mob/living/user) + var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED) + if (!locked) + return ..() + if(!can_interact(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + replace_beaker(user) + update_icon() + +/** + * Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently + * + * Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded + * Arguments: + * * mob/living/user - The user who is trying to exchange beakers + * * obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device + */ +/obj/item/storage/portable_chem_mixer/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) + if(!user) + return FALSE + if(beaker) + user.put_in_hands(beaker) + beaker = null + if(new_beaker) + beaker = new_beaker + return TRUE + +/obj/item/storage/portable_chem_mixer/attack_hand(mob/user) + if (loc != user) + return ..() + if(SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED)) + INVOKE_ASYNC(src, /datum.proc/ui_interact, user) + +/obj/item/storage/portable_chem_mixer/attack_self(mob/user) + if(loc == user) + var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED) + if (locked) + ui_interact(user) + return + else + to_chat(user, "The portable chemical mixer is currently open and its contents can be accessed.") + return + return + +/obj/item/storage/portable_chem_mixer/MouseDrop(obj/over_object) + . = ..() + if(ismob(loc)) + var/mob/M = loc + if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(src, H.held_index) + +/obj/item/storage/portable_chem_mixer/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PortableChemMixer", name) + if(user.hallucinating()) + // to not ruin the immersion by constantly changing the fake chemicals + ui.set_autoupdate(FALSE) + ui.open() + +/obj/item/storage/portable_chem_mixer/ui_data(mob/user) + var/list/data = list() + data["amount"] = amount + data["isBeakerLoaded"] = beaker ? 1 : 0 + data["beakerCurrentVolume"] = beaker ? beaker.reagents.total_volume : null + data["beakerMaxVolume"] = beaker ? beaker.volume : null + data["beakerTransferAmounts"] = beaker ? beaker.possible_transfer_amounts : null + var/chemicals[0] + var/is_hallucinating = user.hallucinating() + if(user.hallucinating()) + is_hallucinating = TRUE + for(var/re in dispensable_reagents) + var/value = dispensable_reagents[re] + var/datum/reagent/temp = GLOB.chemical_reagents_list[re] + if(temp) + var/chemname = temp.name + var/total_volume = 0 + for (var/datum/reagents/rs in value["reagents"]) + total_volume += rs.total_volume + if(is_hallucinating && prob(5)) + chemname = "[pick_list_replacements("hallucination.json", "chemicals")]" + chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name), "volume" = total_volume ))) + data["chemicals"] = chemicals + var/beakerContents[0] + if(beaker) + for(var/datum/reagent/R in beaker.reagents.reagent_list) + beakerContents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = R.volume))) // list in a list because Byond merges the first list... + data["beakerContents"] = beakerContents + return data + +/obj/item/storage/portable_chem_mixer/ui_act(action, params) + if(..()) + return + switch(action) + if("amount") + var/target = text2num(params["target"]) + amount = target + . = TRUE + if("dispense") + var/reagent_name = params["reagent"] + var/datum/reagent/reagent = GLOB.name2reagent[reagent_name] + var/entry = dispensable_reagents[reagent] + if(beaker) + var/datum/reagents/R = beaker.reagents + var/actual = min(amount, 1000, R.maximum_volume - R.total_volume) + // todo: add check if we have enough reagent left + for (var/datum/reagents/source in entry["reagents"]) + var/to_transfer = min(source.total_volume, actual) + source.trans_to(beaker, to_transfer) + actual -= to_transfer + if (actual <= 0) + break + . = TRUE + if("remove") + var/amount = text2num(params["amount"]) + beaker.reagents.remove_all(amount) + . = TRUE + if("eject") + replace_beaker(usr) + update_icon() + . = TRUE diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index e65325587c..c51edc8106 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -16,9 +16,6 @@ var/on = TRUE var/shock_cooldown = FALSE - var/ui_x = 260 - var/ui_y = 137 - /obj/item/electropack/suicide_act(mob/living/carbon/user) user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) @@ -201,17 +198,7 @@ else return ..() -/obj/item/electropack/shockcollar/ui_interact(mob/user) //note to src: use tgooey - var/dat = {" - -Frequency/Code for shock collar:
    -Frequency: -[format_frequency(src.frequency)] -Set
    -Code: -[src.code] -Set
    -
    "} - user << browse(dat, "window=radio") - onclose(user, "radio") - return +/obj/item/electropack/ui_act(action, params) + if(action == "power") // DO. NOT. + return FALSE + return ..() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index fae2833c8a..db29614f20 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -718,8 +718,9 @@ GENETICS SCANNER to_chat(user, "Pressure: [round(pressure,0.01)] kPa") for(var/id in air_contents.get_gases()) - var/gas_concentration = air_contents.get_moles(id)/total_moles - to_chat(user, "[GLOB.meta_gas_names[id]]: [round(gas_concentration*100, 0.01)] % ([round(air_contents.get_moles(id), 0.01)] mol)") + if(air_contents.get_moles(id) >= 0.005) + var/gas_concentration = air_contents.get_moles(id)/total_moles + to_chat(user, "[GLOB.meta_gas_names[id]]: [round(gas_concentration*100, 0.01)] % ([round(air_contents.get_moles(id), 0.01)] mol)") to_chat(user, "Temperature: [round(temperature - T0C,0.01)] °C ([round(temperature, 0.01)] K)") else @@ -729,10 +730,10 @@ GENETICS SCANNER to_chat(user, "[target] is empty!") if(cached_scan_results && cached_scan_results["fusion"]) //notify the user if a fusion reaction was detected - var/fusion_power = round(cached_scan_results["fusion"], 0.01) - var/tier = fusionpower2text(fusion_power) + var/instability = round(cached_scan_results["fusion"], 0.01) + var/tier = instability2text(instability) to_chat(user, "Large amounts of free neutrons detected in the air indicate that a fusion reaction took place.") - to_chat(user, "Power of the last fusion reaction: [fusion_power]\n This power indicates it was a [tier]-tier fusion reaction.") + to_chat(user, "Instability of the last fusion reaction: [instability]\n This indicates it was [tier].") return /obj/item/analyzer/proc/scan_turf(mob/user, turf/location) @@ -783,10 +784,10 @@ GENETICS SCANNER to_chat(user, "Temperature: [round(environment.return_temperature()-T0C, 0.01)] °C ([round(environment.return_temperature(), 0.01)] K)") if(cached_scan_results && cached_scan_results["fusion"]) //notify the user if a fusion reaction was detected - var/fusion_power = round(cached_scan_results["fusion"], 0.01) - var/tier = fusionpower2text(fusion_power) + var/instability = round(cached_scan_results["fusion"], 0.01) + var/tier = instability2text(instability) to_chat(user, "Large amounts of free neutrons detected in the air indicate that a fusion reaction took place.") - to_chat(user, "Power of the last fusion reaction: [fusion_power]\n This power indicates it was a [tier]-tier fusion reaction.") + to_chat(user, "Instability of the last fusion reaction: [instability]\n This indicates it was [tier].") /obj/item/analyzer/ranged desc = "A hand-held scanner which uses advanced spectroscopy and infrared readings to analyze gases as a distance. Alt-Click to use the built in barometer function." @@ -992,4 +993,4 @@ GENETICS SCANNER #undef SCANMODE_CHEMICAL #undef SCANMODE_WOUND #undef SCANNER_CONDENSED -#undef SCANNER_VERBOSE \ No newline at end of file +#undef SCANNER_VERBOSE diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 32d9c02a27..8b0d46be44 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -289,3 +289,9 @@ . = TRUE update_icon() + +/** + * Returns if this is ready to be detonated. Checks if both tanks are in place. + */ +/obj/item/transfer_valve/proc/ready() + return tank_one && tank_two diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index cf5c3d4fc5..6cf6a524de 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -26,6 +26,7 @@ wound_bonus = -110 bare_wound_bonus = 20 block_parry_data = /datum/block_parry_data/dual_esword + block_chance = 60 var/hacked = FALSE /// Can this reflect all energy projectiles? var/can_reflect = TRUE @@ -38,7 +39,8 @@ var/wielded = FALSE // track wielded status on item var/slowdown_wielded = 0 -/datum/block_parry_data/dual_esword +/datum/block_parry_data/dual_esword // please run at the man going apeshit with his funny doublesword + can_block_directions = BLOCK_DIR_NORTH | BLOCK_DIR_NORTHEAST | BLOCK_DIR_NORTHWEST | BLOCK_DIR_WEST | BLOCK_DIR_EAST block_damage_absorption = 2 block_damage_multiplier = 0.15 block_damage_multiplier_override = list( @@ -50,10 +52,10 @@ block_lock_sprinting = TRUE // no attacking while blocking block_lock_attacking = TRUE - block_projectile_mitigation = 75 + block_projectile_mitigation = 85 // more efficient vs projectiles block_stamina_efficiency_override = list( - TEXT_ATTACK_TYPE_PROJECTILE = 4 + TEXT_ATTACK_TYPE_PROJECTILE = 6 ) parry_time_windup = 0 diff --git a/code/game/objects/items/electrostaff.dm b/code/game/objects/items/electrostaff.dm index 9750994c87..65d2fdd699 100644 --- a/code/game/objects/items/electrostaff.dm +++ b/code/game/objects/items/electrostaff.dm @@ -261,4 +261,4 @@ if (!(. & EMP_PROTECT_SELF)) turn_off() if(!iscyborg(loc)) - deductcharge(1000 / severity, TRUE, FALSE) + deductcharge(severity*10, TRUE, FALSE) diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 979fa7e958..6ab12b7e39 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -351,7 +351,7 @@ /obj/item/book/granter/spell/charge/recoil(mob/user) ..() to_chat(user,"[src] suddenly feels very warm!") - empulse(src, 1, 1) + empulse_using_range(src, 1) /obj/item/book/granter/spell/summonitem spell = /obj/effect/proc_holder/spell/targeted/summonitem diff --git a/code/game/objects/items/grenades/emgrenade.dm b/code/game/objects/items/grenades/emgrenade.dm index 815a3b343c..56b00bd2d6 100644 --- a/code/game/objects/items/grenades/emgrenade.dm +++ b/code/game/objects/items/grenades/emgrenade.dm @@ -7,5 +7,5 @@ /obj/item/grenade/empgrenade/prime(mob/living/lanced_by) . = ..() update_mob() - empulse(src, 4, 10) + empulse_using_range(src, 14) qdel(src) diff --git a/code/game/objects/items/implants/implant_hijack.dm b/code/game/objects/items/implants/implant_hijack.dm index 5dd610059c..36e58d8887 100644 --- a/code/game/objects/items/implants/implant_hijack.dm +++ b/code/game/objects/items/implants/implant_hijack.dm @@ -7,7 +7,8 @@ activated = 1 var/toggled = FALSE icon_state = "hijack" - var/eye_color + var/left_eye_color + var/right_eye_color var/stealthmode = FALSE var/stealthcooldown = 0 var/hijacking = FALSE @@ -25,8 +26,10 @@ return var/on = toggled && !stealthmode var/mob/living/carbon/human/H = imp_in - H.eye_color = on ? "ff0" : eye_color - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) + H.left_eye_color = on ? "ff0" : left_eye_color + H.right_eye_color = on ? "ff0" : right_eye_color + H.dna.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK) + H.dna.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK) H.update_body() /obj/item/implant/hijack/implant(mob/living/target, mob/user, silent = FALSE) @@ -34,7 +37,8 @@ ADD_TRAIT(target, TRAIT_HIJACKER, "implant") if (ishuman(target)) var/mob/living/carbon/human/H = target - eye_color = H.eye_color + left_eye_color = H.left_eye_color + right_eye_color = H.right_eye_color return TRUE /obj/item/implant/hijack/removed(mob/living/source, silent = FALSE, special = 0) @@ -49,7 +53,8 @@ apc.update_icon() if (ishuman(source)) var/mob/living/carbon/human/H = source - H.eye_color = eye_color + H.left_eye_color = left_eye_color + H.right_eye_color = left_eye_color return TRUE /obj/item/implant/hijack/proc/InterceptClickOn(mob/living/user,params,atom/object) diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm index 08d6a586c8..36f82b599c 100644 --- a/code/game/objects/items/implants/implant_misc.dm +++ b/code/game/objects/items/implants/implant_misc.dm @@ -65,7 +65,7 @@ /obj/item/implant/emp/activate() . = ..() uses-- - empulse(imp_in, 3, 5) + empulse_using_range(imp_in, 7) if(!uses) qdel(src) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 01d2924a90..52ff0f740e 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -234,6 +234,9 @@ /obj/item/melee/rapier/attack(mob/living/target, mob/living/user) . = ..() if(iscarbon(target)) + if(HAS_TRAIT(user, TRAIT_PACIFISM)) + visible_message("[user] gently taps [target] with [src].",null,null,COMBAT_MESSAGE_RANGE) + log_combat(user, target, "slept", src) var/mob/living/carbon/H = target H.Dizzy(10) H.adjustStaminaLoss(30) diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index 6f1aec287b..7e14fb9d35 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -255,7 +255,7 @@ /obj/item/choice_beacon/box/plushie/generate_display_names() var/list/plushie_list = list() //plushie set 1: just subtypes of /obj/item/toy/plush - var/list/plushies_set_one = subtypesof(/obj/item/toy/plush) - list(/obj/item/toy/plush/narplush, /obj/item/toy/plush/awakenedplushie, /obj/item/toy/plush/random_snowflake, /obj/item/toy/plush/random) //don't allow these special ones (you can still get narplush/hugbox) + var/list/plushies_set_one = subtypesof(/obj/item/toy/plush) - list(/obj/item/toy/plush/narplush, /obj/item/toy/plush/awakenedplushie, /obj/item/toy/plush/random_snowflake, /obj/item/toy/plush/plushling, /obj/item/toy/plush/random) //don't allow these special ones (you can still get narplush/hugbox) for(var/V in plushies_set_one) var/atom/A = V plushie_list[initial(A.name)] = A @@ -272,4 +272,3 @@ icon_state = "skub" w_class = WEIGHT_CLASS_BULKY attack_verb = list("skubbed") - diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index a3da49ed89..9bc20565a6 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -150,6 +150,7 @@ if(squeak_override) var/datum/component/squeak/S = GetComponent(/datum/component/squeak) S?.override_squeak_sounds = squeak_override + snowflake_id = id /obj/item/toy/plush/handle_atom_del(atom/A) if(A == grenade) @@ -167,7 +168,7 @@ return log_game("[key_name(user)] activated a hidden grenade in [src].") grenade.preprime(user, msg = FALSE, volume = 10) - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushpet", /datum/mood_event/plushpet) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushpet", /datum/mood_event/plushpet) else to_chat(user, "You try to pet [src], but it has no stuffing. Aww...") SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plush_nostuffing", /datum/mood_event/plush_nostuffing) @@ -688,18 +689,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) icon_state = "scrubpuppy" item_state = "scrubpuppy" -/obj/item/toy/plush/borgplushie/meddrake - name = "MediDrake Plushie" - desc = "An adorable stuffed toy of a Medidrake." - icon_state = "meddrake" - item_state = "meddrake" - -/obj/item/toy/plush/borgplushie/secdrake - name = "SecDrake Plushie" - desc = "An adorable stuffed toy of a Secdrake." - icon_state = "secdrake" - item_state = "secdrake" - /obj/item/toy/plush/aiplush name = "AI plushie" desc = "A little stuffed toy AI core... it appears to be malfunctioning." @@ -766,8 +755,8 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) attack_verb = list("headbutt", "scritched", "bit") squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) can_random_spawn = FALSE - - + + /obj/item/toy/plush/hairball name = "Hairball" desc = "A bundle of undigested fibers and scales. Yuck." @@ -777,3 +766,82 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) squeak_override = list('sound/misc/splort.ogg'=1) attack_verb = list("sploshed", "splorted", "slushed") can_random_spawn = FALSE + +/obj/item/toy/plush/plushling + name = "peculiar plushie" + desc = "An adorable stuffed toy- wait, did it just move?" + can_random_spawn = FALSE + var/absorb_cooldown = 100 //ticks cooldown between absorbs + var/next_absorb = 0 //When can it absorb another plushie + var/check_interval = 20 + var/next_check = 0 + +//Overrides parent proc +/obj/item/toy/plush/plushling/attack_self(mob/user) + if(!user) //hmmmmm + return + to_chat(user, "You try to pet the plushie, but recoil as it bites your hand instead! OW!") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plush_bite", /datum/mood_event/plush_bite) + var/mob/living/carbon/human/H = user + if(!H) + return //Type safety. + H.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + addtimer(CALLBACK(H, /mob/living/carbon/human.proc/dropItemToGround, src, TRUE), 1) + +/obj/item/toy/plush/plushling/New() + var/initial_state = pick("plushie_lizard", "plushie_snake", "plushie_slime", "fox") + icon_state = initial_state + item_state = initial_state + START_PROCESSING(SSobj, src) + . = ..() + +/obj/item/toy/plush/plushling/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/toy/plush/plushling/process() + if(world.time < next_absorb || world.time < next_check) + return + next_check = world.time + check_interval + var/obj/item/toy/plush/target + for(var/obj/item/toy/plush/possible_target in loc) //First, it tries to get anything in its same location, be it a tile or a backpack + if(possible_target == src || istype(possible_target, /obj/item/toy/plush/plushling)) + continue + target = possible_target + break + if(!target) + if(!isturf(loc)) + return + for(var/obj/item/toy/plush/P in oview(1, src)) //If that doesn't work, it hunts for plushies adjacent to its own tile + if(istype(P, /obj/item/toy/plush/plushling)) //These do not hunt their own kind + continue + src.throw_at(P, 1, 2) + visible_message("[src] leaps at [P]!") + break + return + if(istype(target, /obj/item/toy/plush/plushling)) //These do not consume their own. + return + next_absorb = world.time + absorb_cooldown + plushie_absorb(target) + +/obj/item/toy/plush/plushling/proc/plushie_absorb(obj/item/toy/plush/victim) + if(!victim) + return + visible_message("[src] gruesomely mutilliates [victim], leaving nothing more than dust!") + if(victim.snowflake_id) //Snowflake code for snowflake plushies. + set_snowflake_from_config(victim.snowflake_id) + desc += " Wait, did it just move..?" + else + name = victim.name + desc = victim.desc + " Wait, did it just move..?" + icon_state = victim.icon_state + item_state = victim.item_state + squeak_override = victim.squeak_override + attack_verb = victim.attack_verb + new /obj/effect/decal/cleanable/ash(get_turf(victim)) + qdel(victim) + +/obj/item/toy/plush/plushling/love(obj/item/toy/plush/Kisser, mob/living/user) //You shouldn't have come here, poor plush. + if(!Kisser) + return + plushie_absorb(Kisser) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 6621095b72..a9cd4c33a7 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -281,12 +281,12 @@ O.custom_name = created_name O.locked = panel_locked if(!aisync) - lawsync = 0 - O.connected_ai = null + lawsync = FALSE + O.set_connected_ai(null) else O.notify_ai(NEW_BORG) if(forced_ai) - O.connected_ai = forced_ai + O.set_connected_ai(forced_ai) if(!lawsync) O.lawupdate = 0 if(M.laws.id == DEFAULT_AI_LAWID) @@ -337,10 +337,10 @@ if(!aisync) lawsync = FALSE - O.connected_ai = null + O.set_connected_ai(null) else if(forced_ai) - O.connected_ai = forced_ai + O.set_connected_ai(forced_ai) O.notify_ai(AI_SHELL) if(!lawsync) O.lawupdate = FALSE diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 7ba2196184..a96b0104f1 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -269,8 +269,8 @@ to_chat(user, "[M] is at full health.") return FALSE user.visible_message("[user] applies \the [src] on [M].", "You apply \the [src] on [M].") - return heal_carbon(M, user, heal_brute, heal_burn) - + M.heal_bodypart_damage(heal_brute) + return TRUE to_chat(user, "You can't heal [M] with \the [src]!") /obj/item/stack/medical/ointment diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index efcc075110..1277bb3d4e 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -2,6 +2,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \ + new/datum/stack_recipe("railing", /obj/structure/railing, 3, time = 18, window_checks = TRUE), \ )) /obj/item/stack/rods diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 7692278ba3..426958b99a 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -117,6 +117,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \ new/datum/stack_recipe("Captain Statue", /obj/structure/statue/diamond/captain, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("AI Hologram Statue", /obj/structure/statue/diamond/ai1, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("AI Core Statue", /obj/structure/statue/diamond/ai2, 5, one_per_turf = 1, on_floor = 1), \ +// new/datum/stack_recipe("diamond brick", /obj/item/ingot/diamond, 6, time = 100), \ not yet )) /obj/item/stack/sheet/mineral/diamond/get_main_recipes() @@ -145,6 +146,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ new/datum/stack_recipe("uranium tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \ new/datum/stack_recipe("Nuke Statue", /obj/structure/statue/uranium/nuke, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("Engineer Statue", /obj/structure/statue/uranium/eng, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("uranium ingot", /obj/item/ingot/uranium, 6, time = 100), \ )) /obj/item/stack/sheet/mineral/uranium/get_main_recipes() @@ -177,6 +179,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("plasma tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \ new/datum/stack_recipe("Scientist Statue", /obj/structure/statue/plasma/scientist, 5, one_per_turf = 1, on_floor = 1), \ +// new/datum/stack_recipe("plasma ingot", /obj/item/ingot/plasma, 6, time = 100), \ no )) /obj/item/stack/sheet/mineral/plasma/get_main_recipes() @@ -221,6 +224,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ new/datum/stack_recipe("RD Statue", /obj/structure/statue/gold/rd, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), \ new/datum/stack_recipe("CMO Statue", /obj/structure/statue/gold/cmo, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("gold ingot", /obj/item/ingot/gold, 6, time = 100), \ )) /obj/item/stack/sheet/mineral/gold/get_main_recipes() @@ -252,6 +256,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ new/datum/stack_recipe("Sec Officer Statue", /obj/structure/statue/silver/sec, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("Sec Borg Statue", /obj/structure/statue/silver/secborg, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("Med Borg Statue", /obj/structure/statue/silver/medborg, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("silver ingot", /obj/item/ingot/silver, 6, time = 100), \ )) /obj/item/stack/sheet/mineral/silver/get_main_recipes() @@ -278,6 +283,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ GLOBAL_LIST_INIT(bananium_recipes, list ( \ new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ new/datum/stack_recipe("Clown Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("hilarious ingot", /obj/item/ingot/bananium, 6, time = 100), \ )) /obj/item/stack/sheet/mineral/bananium/get_main_recipes() @@ -306,6 +312,7 @@ GLOBAL_LIST_INIT(bananium_recipes, list ( \ GLOBAL_LIST_INIT(titanium_recipes, list ( \ new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ + new/datum/stack_recipe("titanic ingot", /obj/item/ingot/titanium, 6, time = 100), \ )) /obj/item/stack/sheet/mineral/titanium/get_main_recipes() @@ -353,6 +360,7 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ */ GLOBAL_LIST_INIT(adamantine_recipes, list( new /datum/stack_recipe("incomplete servant golem shell", /obj/item/golem_shell/servant, req_amount=1, res_amount=1), + new/datum/stack_recipe("adamant ingot", /obj/item/ingot/adamantine, 6, time = 100), \ )) /obj/item/stack/sheet/mineral/adamantine diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 645051b7c2..32d65041bc 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -121,6 +121,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \ new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("iron ingot", /obj/item/ingot/iron, 6, time = 100), \ )) /obj/item/stack/sheet/metal @@ -178,6 +179,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ + new/datum/stack_recipe("micro powered fan assembly", /obj/machinery/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe_list("crates", list( \ new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("internals crate", /obj/structure/closet/crate/internals, 5, time = 50, one_per_turf = 1, on_floor = 1), \ @@ -231,9 +233,13 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \ new/datum/stack_recipe("tiki mask", /obj/item/clothing/mask/gas/tiki_mask, 2), \ - new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ null, \ + new/datum/stack_recipe("wooden floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ + new/datum/stack_recipe("large wooden floor tile", /obj/item/stack/tile/wood/wood_large, 1, 4, 20), \ + new/datum/stack_recipe("tiled wooden floor tile", /obj/item/stack/tile/wood/wood_tiled, 1, 4, 20), \ + new/datum/stack_recipe("diagonal wooden floor tile", /obj/item/stack/tile/wood/wood_diagonal, 1, 4, 20), \ + null, \ new/datum/stack_recipe_list("pews", list( new /datum/stack_recipe("pew (middle)", /obj/structure/chair/pew, 3, one_per_turf = TRUE, on_floor = TRUE),\ new /datum/stack_recipe("pew (left)", /obj/structure/chair/pew/left, 3, one_per_turf = TRUE, on_floor = TRUE),\ @@ -556,6 +562,9 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("anvil", /obj/structure/anvil/obtainable/narsie, 4, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("runic ingot", /obj/item/ingot/cult, 2, time = 100), \ + new/datum/stack_recipe("rune smith's hammer", /obj/item/melee/smith/hammer/narsie, 6), \ )) /obj/item/stack/sheet/runed_metal @@ -618,6 +627,8 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ new/datum/stack_recipe("brass bar stool", /obj/structure/chair/stool/bar/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass stool", /obj/structure/chair/stool/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("brass anvil", /obj/structure/anvil/obtainable/ratvar, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("brass furnace", /obj/structure/furnace/infinite/ratvar, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("sender - pressure sensor", /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("sender - mech sensor", /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor/mech, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ @@ -629,6 +640,8 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ new/datum/stack_recipe("receiver - power nullifier", /obj/structure/destructible/clockwork/trap/power_nullifier, 5, time = 20, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_CARDINALS), \ null, \ new/datum/stack_recipe("brass flask", /obj/item/reagent_containers/food/drinks/bottle/holyoil/empty), \ + new/datum/stack_recipe("brass smith's hammer", /obj/item/melee/smith/hammer/ratvar, 6), \ + new/datum/stack_recipe("brass ingot", /obj/item/ingot/ratvar, 6, time = 100), \ )) /obj/item/stack/tile/brass @@ -684,7 +697,10 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze bar stool", /obj/structure/chair/stool/bar/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze stool", /obj/structure/chair/stool/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ - new /datum/stack_recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \ + new/datum/stack_recipe("bronze anvil",/obj/structure/anvil/obtainable/bronze, 20, time = 110, one_per_turf = TRUE, on_floor = TRUE), \ + null, + new/datum/stack_recipe("bronze ingot", /obj/item/ingot/bronze, 6, time = 100), \ + new/datum/stack_recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \ )) /obj/item/stack/sheet/bronze diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 0d85e897d2..7a33134afd 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -154,13 +154,31 @@ //Wood /obj/item/stack/tile/wood - name = "wood floor tile" + name = "wooden plank floor tile" singular_name = "wood floor tile" desc = "An easy to fit wood floor tile." icon_state = "tile-wood" turf_type = /turf/open/floor/wood resistance_flags = FLAMMABLE +/obj/item/stack/tile/wood/wood_large + name = "large wooden plank floor tile" + singular_name = "large wooden plank floor tile" + icon_state = "tile-wood_large" + turf_type = /turf/open/floor/wood/wood_large + +/obj/item/stack/tile/wood/wood_tiled + name = "tiled wooden plank floor tile" + singular_name = "tiled wooden plank floor tile" + icon_state = "tile-wood_tile" + turf_type = /turf/open/floor/wood/wood_tiled + +/obj/item/stack/tile/wood/wood_diagonal + name = "diagonal wooden plank floor tile" + singular_name = "diagonal wooden plank floor tile" + icon_state = "tile-wood_diagonal" + turf_type = /turf/open/floor/wood/wood_diagonal + //Cloth Floors /obj/item/stack/tile/padded diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 0001494fdd..590df34cde 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -815,3 +815,18 @@ attack_verb = list("bashed", "slashes", "prods", "pokes") fitting_swords = list(/obj/item/melee/rapier) starting_sword = /obj/item/melee/rapier + +/obj/item/storage/belt/sabre/twin + name = "twin sheath" + desc = "Two sheaths. One is capable of holding a katana (or bokken) and the other a wakizashi. You could put two wakizashis in if you really wanted to. Now you can really roleplay as a samurai." + icon_state = "twinsheath" + item_state = "quiver" //this'll do. + w_class = WEIGHT_CLASS_BULKY + fitting_swords = list(/obj/item/melee/smith/wakizashi, /obj/item/melee/smith/twohand/katana, /obj/item/melee/bokken) + starting_sword = null + +/obj/item/storage/belt/sabre/twin/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 2 + STR.max_w_class = WEIGHT_CLASS_BULKY + WEIGHT_CLASS_NORMAL //katana and waki. diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index a6b34c59e3..73246276c2 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -281,6 +281,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/clothing/suit/armor/vest/infiltrator, /obj/item/clothing/under/syndicate/bloodred, /obj/item/clothing/gloves/color/latex/nitrile/infiltrator, + /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator, /obj/item/clothing/mask/infiltrator, /obj/item/clothing/shoes/combat/sneakboots, /obj/item/gun/ballistic/automatic/pistol, @@ -292,7 +293,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) new /obj/item/clothing/head/helmet/infiltrator(src) new /obj/item/clothing/suit/armor/vest/infiltrator(src) new /obj/item/clothing/under/syndicate/bloodred(src) - new /obj/item/clothing/gloves/color/latex/nitrile/infiltrator(src) + new /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator(src) new /obj/item/clothing/mask/infiltrator(src) new /obj/item/clothing/shoes/combat/sneakboots(src) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 1a84b85a1a..5e76d506ba 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -232,7 +232,7 @@ if (!(. & EMP_PROTECT_SELF)) switch_status(FALSE) if(!iscyborg(loc)) - deductcharge(1000 / severity, TRUE, FALSE) + deductcharge(severity*10, TRUE, FALSE) /obj/item/melee/baton/stunsword name = "stunsword" diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 1c90a83c0a..d16d1b29f1 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -182,3 +182,20 @@ /obj/item/tank/internals/emergency_oxygen/double/empty/populate_gas() return + +/* + * Methyl Bromide + */ +/obj/item/tank/internals/methyl_bromide + name = "mantid gas reactor" + desc = "A mantid gas processing plant that continuously synthesises 'breathable' atmosphere." + icon_state = "methyl_bromide" + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + force = 6 + distribute_pressure = 14 + volume = 10 + +/obj/item/tank/internals/methyl_bromide/populate_gas() + air_contents.set_moles(/datum/gas/methyl_bromide, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + return \ No newline at end of file diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 2e12a2ab8c..4cada03307 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -110,13 +110,18 @@ var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) + //only heal to 25 if limb is damaged to or past 25 brute, otherwise heal normally + var/difference = affecting.brute_dam - 25 + var/heal_amount = 15 + if(difference >= 0) + heal_amount = difference if(src.use_tool(H, user, 0, volume=50, amount=1)) if(user == H) user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", "You start fixing some of the dents on [H]'s [affecting.name].") if(!do_mob(user, H, 50)) return - item_heal_robotic(H, user, 15, 0) + item_heal_robotic(H, user, heal_amount, 0) else return ..() diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index f462050789..3f2dc2506a 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -237,6 +237,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 resistance_flags = FIRE_PROOF total_mass = TOTAL_MASS_MEDIEVAL_WEAPON +/obj/item/katana/lavaland + desc = "Woefully underpowered in Lavaland." + block_chance = 30 + force = 25 //Like a fireaxe but one handed and can block! + /obj/item/katana/cursed slot_flags = null @@ -291,7 +296,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY - force = 9 + force = 7 //how much harm mode damage we do + var/stamina_damage_increment = 4 //how much extra damage do we do when in non-harm mode throwforce = 10 damtype = STAMINA attack_verb = list("whacked", "smacked", "struck") @@ -342,17 +348,19 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/melee/bokken/Initialize() . = ..() AddElement(/datum/element/sword_point) + if(!harm) //if initialised in non-harm mode, setup force accordingly + force = force + stamina_damage_increment /obj/item/melee/bokken/attack_self(mob/user) harm = !harm if(harm) - force -= 2 + force -= stamina_damage_increment damtype = BRUTE attack_verb = list("bashed", "smashed", "attacked") bare_wound_bonus = 15 // having your leg smacked by a wooden stick is probably not great for it if it's naked wound_bonus = 0 else - force += 2 + force += stamina_damage_increment damtype = STAMINA attack_verb = list("whacked", "smacked", "struck") bare_wound_bonus = 0 diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index f5003e035b..3de28b38e8 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -143,10 +143,18 @@ var/amt = max(0, ((force - (move_resist * MOVE_FORCE_CRUSH_RATIO)) / (move_resist * MOVE_FORCE_CRUSH_RATIO)) * 10) take_damage(amt, BRUTE) +#define BLACKLISTED_OBJECTS list(/obj/machinery/power/apc, /obj/machinery/airalarm, /obj/machinery/power/smes, /obj/structure/cable) + /obj/attack_slime(mob/living/simple_animal/slime/user) if(!user.is_adult) return - attack_generic(user, rand(10, 15), "melee", 1) + if(src.type in BLACKLISTED_OBJECTS) + return + if(istype(src, /obj/machinery/atmospherics)) + return + attack_generic(user, rand(10, 15), BRUTE, "melee", 1) + +#undef BLACKLISTED_OBJECTS /obj/mech_melee_attack(obj/mecha/M) M.do_attack_animation(src) @@ -196,9 +204,6 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e /obj/proc/acid_processing() . = 1 if(!(resistance_flags & ACID_PROOF)) - for(var/armour_value in armor) - if(armour_value != "acid" && armour_value != "fire") - armor = armor.modifyAllRatings(0 - round(sqrt(acid_level)*0.1)) if(prob(33)) playsound(loc, 'sound/items/welder.ogg', 150, 1) take_damage(min(1 + round(sqrt(acid_level)*0.3), 300), BURN, "acid", 0) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 99b302e9ce..3abee4db33 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -304,18 +304,20 @@ /obj/proc/reskin_obj(mob/M) if(!LAZYLEN(unique_reskin)) return - var/dat = "Reskin options for [name]:\n" - for(var/V in unique_reskin) - var/output = icon2html(src, M, unique_reskin[V]) - dat += "[V]: [output]\n" - to_chat(M, dat) - - var/choice = input(M, always_reskinnable ? "Choose the a reskin for [src]" : "Warning, you can only reskin [src] once!","Reskin Object") as null|anything in unique_reskin - if(QDELETED(src) || !choice || (current_skin && !always_reskinnable) || M.incapacitated() || !in_range(M,src) || !unique_reskin[choice] || unique_reskin[choice] == current_skin) - return - current_skin = choice + var/list/skins = list() + for(var/S in unique_reskin) + skins[S] = image(icon = icon, icon_state = unique_reskin[S]) + var/choice = show_radial_menu(M, src, skins, custom_check = CALLBACK(src, .proc/check_skinnable, M), radius = 40, require_near = TRUE) + if(!choice) + return FALSE icon_state = unique_reskin[choice] - to_chat(M, "[src] is now skinned as '[choice]'.") + current_skin = choice + return + +/obj/proc/check_skinnable(/mob/M) + if(current_skin || !always_reskinnable) + return FALSE + return TRUE /obj/update_overlays() . = ..() diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index 905888c904..2a4856f60e 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -104,9 +104,6 @@ set_sign(new /datum/barsign/hiddensigns/empbarsign) broken = TRUE - - - /obj/structure/sign/barsign/emag_act(mob/user) . = ..() if(broken || (obj_flags & EMAGGED)) @@ -128,8 +125,6 @@ return set_sign(picked_name) - - //Code below is to define useless variables for datums. It errors without these @@ -140,95 +135,77 @@ var/desc = "desc" var/hidden = FALSE - //Anything below this is where all the specific signs are. If people want to add more signs, add them below. - - - /datum/barsign/maltesefalcon name = "Maltese Falcon" icon = "maltesefalcon" desc = "The Maltese Falcon, Space Bar and Grill." - /datum/barsign/thebark name = "The Bark" icon = "thebark" desc = "Ian's bar of choice." - /datum/barsign/harmbaton name = "The Harmbaton" icon = "theharmbaton" desc = "A great dining experience for both security members and assistants." - /datum/barsign/thesingulo name = "The Singulo" icon = "thesingulo" desc = "Where people go that'd rather not be called by their name." - /datum/barsign/thedrunkcarp name = "The Drunk Carp" icon = "thedrunkcarp" desc = "Don't drink and swim." - /datum/barsign/scotchservinwill name = "Scotch Servin Willy's" icon = "scotchservinwill" desc = "Willy sure moved up in the world from clown to bartender." - /datum/barsign/officerbeersky name = "Officer Beersky's" icon = "officerbeersky" desc = "Man eat a dong, these drinks are great." - /datum/barsign/thecavern name = "The Cavern" icon = "thecavern" desc = "Fine drinks while listening to some fine tunes." - /datum/barsign/theouterspess name = "The Outer Spess" icon = "theouterspess" desc = "This bar isn't actually located in outer space." - /datum/barsign/slipperyshots name = "Slippery Shots" icon = "slipperyshots" desc = "Slippery slope to drunkeness with our shots!" - /datum/barsign/thegreytide name = "The Grey Tide" icon = "thegreytide" desc = "Abandon your toolboxing ways and enjoy a lazy beer!" - /datum/barsign/honkednloaded name = "Honked 'n' Loaded" icon = "honkednloaded" desc = "Honk." - /datum/barsign/thenest name = "The Nest" icon = "thenest" desc = "A good place to retire for a drink after a long night of crime fighting." - /datum/barsign/thecoderbus name = "The Coderbus" icon = "thecoderbus" desc = "A very controversial bar known for its wide variety of constantly-changing drinks." - /datum/barsign/theadminbus name = "The Adminbus" icon = "theadminbus" @@ -313,7 +290,6 @@ hidden = TRUE //Hidden signs list below this point - /datum/barsign/hiddensigns/empbarsign name = "Haywire Barsign" icon = "empbarsign" diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 5c5b2bb132..46eb82342a 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -571,10 +571,10 @@ O.emp_act(severity) if(!secure || broken) return ..() - if(prob(50 / severity)) + if(prob(severity/2)) locked = !locked update_icon() - if(prob(20 / severity) && !opened) + if(prob(severity/5) && !opened) if(!locked) open() else diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 7f22a49df9..ee8773c384 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -8,6 +8,7 @@ new /obj/item/clothing/neck/cloak/qm(src) new /obj/item/clothing/head/beret/qm(src) new /obj/item/storage/lockbox/medal/cargo(src) + new /obj/item/clothing/suit/toggle/labcoat/depjacket/sup/qm(src) new /obj/item/clothing/under/rank/cargo/qm(src) new /obj/item/clothing/under/rank/cargo/qm/skirt(src) new /obj/item/clothing/shoes/sneakers/brown(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index beb14ff48c..d127a87b20 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -4,25 +4,6 @@ req_access = list(ACCESS_ALL_PERSONAL_LOCKERS) var/registered_name = null -/obj/structure/closet/secure_closet/personal/examine(mob/user) - . = ..() - if(registered_name) - . += "The display reads, \"Owned by [registered_name]\"." - -/obj/structure/closet/secure_closet/personal/check_access(obj/item/I) - . = ..() - if(!I || !istype(I)) - return - if(istype(I,/obj/item/modular_computer/tablet)) - var/obj/item/modular_computer/tablet/ourTablet = I - var/obj/item/computer_hardware/card_slot/card_slot = ourTablet.all_components[MC_CARD] - if(card_slot) - return registered_name == card_slot.stored_card.registered_name || registered_name == card_slot.stored_card2.registered_name - var/obj/item/card/id/ID = I.GetID() - if(ID && registered_name == ID.registered_name) - return TRUE - return FALSE - /obj/structure/closet/secure_closet/personal/PopulateContents() ..() if(prob(50)) @@ -54,15 +35,24 @@ /obj/structure/closet/secure_closet/personal/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/I = W.GetID() - if(!I || !istype(I)) - return ..() - if(!can_lock(user, FALSE)) //Can't do anything if there isn't a lock! - return - if(I.registered_name && !registered_name) - to_chat(user, "You claim [src].") - registered_name = I.registered_name + if(istype(I)) + if(broken) + to_chat(user, "It appears to be broken.") + return + if(!I || !I.registered_name) + return + if(allowed(user) || !registered_name || (istype(I) && (registered_name == I.registered_name))) + //they can open all lockers, or nobody owns this, or they own this locker + locked = !locked + update_icon() + + if(!registered_name) + registered_name = I.registered_name + desc = "Owned by [I.registered_name]." + else + to_chat(user, "Access Denied.") else - ..() + return ..() /obj/structure/closet/secure_closet/personal/handle_lock_addition() //If lock construction is successful we don't care what access the electronics had, so we override it if(..()) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index ad7680f2f9..2c31303f79 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -25,6 +25,7 @@ /obj/structure/closet/secure_closet/hop/PopulateContents() ..() new /obj/item/clothing/neck/cloak/hop(src) + new /obj/item/clothing/under/rank/civilian/head_of_personnel/whimsy(src) new /obj/item/clothing/under/rank/civilian/head_of_personnel(src) new /obj/item/clothing/under/rank/civilian/head_of_personnel/skirt(src) new /obj/item/clothing/head/hopcap(src) @@ -59,6 +60,7 @@ new /obj/item/radio/headset/heads/hos(src) new /obj/item/clothing/under/rank/security/head_of_security/parade/female(src) new /obj/item/clothing/under/rank/security/head_of_security/parade(src) + new /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/hoscorp(src) new /obj/item/clothing/suit/armor/vest/leather(src) new /obj/item/clothing/suit/armor/hos(src) new /obj/item/clothing/under/rank/security/head_of_security/skirt(src) @@ -95,6 +97,7 @@ new /obj/item/clothing/head/warden/drill(src) new /obj/item/clothing/head/beret/sec/navywarden(src) new /obj/item/clothing/suit/armor/vest/warden/alt(src) + new /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/wardencorp(src) new /obj/item/clothing/under/rank/security/warden/formal(src) new /obj/item/clothing/under/rank/security/warden/skirt(src) new /obj/item/clothing/glasses/hud/security/sunglasses(src) @@ -156,17 +159,6 @@ /obj/structure/closet/secure_closet/detective/PopulateContents() ..() - new /obj/item/clothing/under/rank/security/detective(src) - new /obj/item/clothing/under/rank/security/detective/skirt(src) - new /obj/item/clothing/suit/det_suit(src) - new /obj/item/clothing/head/fedora/det_hat(src) - new /obj/item/clothing/gloves/color/black(src) - new /obj/item/clothing/under/rank/security/detective/grey(src) - new /obj/item/clothing/under/rank/security/detective/grey/skirt(src) - new /obj/item/clothing/accessory/waistcoat(src) - new /obj/item/clothing/suit/det_suit/grey(src) - new /obj/item/clothing/head/fedora(src) - new /obj/item/clothing/shoes/laceup(src) new /obj/item/storage/box/evidence(src) new /obj/item/radio/headset/headset_sec(src) new /obj/item/detective_scanner(src) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 4d500837d9..fadf33cb85 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -75,6 +75,8 @@ if(ishuman(new_spawn)) var/mob/living/carbon/human/H = new_spawn H.underwear = "Nude" + H.undershirt = "Nude" + H.socks = "Nude" H.update_body() /obj/effect/mob_spawn/human/ash_walker/Initialize(mapload) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 36e4f825da..7853b9619c 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -86,6 +86,10 @@ /obj/structure/grille/attack_animal(mob/user) . = ..() + if(!user.CheckActionCooldown(CLICK_CD_MELEE)) + return + user.DelayNextAction(flush = TRUE) + user.do_attack_animation(src) if(!shock(user, 70) && !QDELETED(src)) //Last hit still shocks but shouldn't deal damage to the grille) take_damage(rand(5,10), BRUTE, "melee", 1) @@ -114,12 +118,12 @@ /obj/structure/grille/attack_alien(mob/living/user) if(!user.CheckActionCooldown(CLICK_CD_MELEE)) return + user.DelayNextAction(flush = TRUE) user.do_attack_animation(src) user.visible_message("[user] mangles [src].", null, null, COMBAT_MESSAGE_RANGE) if(!shock(user, 70)) take_damage(20, BRUTE, "melee", 1) - /obj/structure/grille/CanPass(atom/movable/mover, turf/target) if(istype(mover) && (mover.pass_flags & PASSGRILLE)) return TRUE diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index dc5355e9d8..1e278a9f88 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -9,6 +9,7 @@ armor = list("melee" = 0, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) var/obj/item/holosign_creator/projector var/init_vis_overlay = TRUE + rad_flags = RAD_NO_CONTAMINATE /obj/structure/holosign/Initialize(mapload, source_projector) . = ..() diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 2911babd83..edc4f0c91f 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -10,6 +10,7 @@ max_mobs = 3 max_integrity = 250 mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril) + var/loot_type = /obj/structure/closet/crate/necropolis/tendril/all move_resist=INFINITY // just killing it tears a massive hole in the ground, let's not move it anchored = TRUE @@ -41,7 +42,7 @@ GLOBAL_LIST_INIT(tendrils, list()) /obj/structure/spawner/lavaland/deconstruct(disassembled) new /obj/effect/collapse(loc) - new /obj/structure/closet/crate/necropolis/tendril(loc) + new loot_type(loc) return ..() diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 237cfdbf0b..fa6bab0fcc 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -163,7 +163,7 @@ var/custom_tone = input(user, "Choose your custom skin tone:", "Race change", default) as color|null if(custom_tone) var/temp_hsv = RGBtoHSV(new_s_tone) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) to_chat(H,"Invalid color. Your color is not bright enough.") else H.skin_tone = custom_tone @@ -177,7 +177,7 @@ if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright + if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) // mutantcolors must be bright H.dna.features["mcolor"] = sanitize_hexcolor(new_mutantcolor) else @@ -229,17 +229,32 @@ H.update_hair() if(BODY_ZONE_PRECISE_EYES) - var/new_eye_color = input(H, "Choose your eye color", "Eye Color","#"+H.eye_color) as color|null - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - return - if(new_eye_color) - var/n_color = sanitize_hexcolor(new_eye_color) - var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) - if(eyes) - eyes.eye_color = n_color - H.eye_color = n_color - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - H.dna.species.handle_body() + var/eye_type = input(H, "Choose the eye you want to color", "Eye Color") as null|anything in list("Both Eyes", "Left Eye", "Right Eye") + if(eye_type) + var/input_color = H.left_eye_color + if(eye_type == "Right Eye") + input_color = H.right_eye_color + var/new_eye_color = input(H, "Choose your eye color", "Eye Color","#"+input_color) as color|null + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + if(new_eye_color) + var/n_color = sanitize_hexcolor(new_eye_color) + var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) + var/left_color = n_color + var/right_color = n_color + if(eye_type == "Left Eye") + right_color = H.right_eye_color + else + if(eye_type == "Right Eye") + left_color = H.left_eye_color + if(eyes) + eyes.left_eye_color = left_color + eyes.right_eye_color = right_color + H.left_eye_color = left_color + H.right_eye_color = right_color + H.dna.update_ui_block(DNA_LEFT_EYE_COLOR_BLOCK) + H.dna.update_ui_block(DNA_RIGHT_EYE_COLOR_BLOCK) + H.dna.species.handle_body() if(choice) curse(user) diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm new file mode 100644 index 0000000000..21cf97ba70 --- /dev/null +++ b/code/game/objects/structures/railings.dm @@ -0,0 +1,107 @@ +/obj/structure/railing + name = "railing" + desc = "Basic railing meant to protect idiots like you from falling." + icon = 'icons/obj/fluff.dmi' + icon_state = "railing" + density = TRUE + anchored = TRUE + climbable = TRUE + ///Initial direction of the railing. + var/ini_dir + +/obj/structure/railing/corner //aesthetic corner sharp edges hurt oof ouch + icon_state = "railing_corner" + density = FALSE + climbable = FALSE + +/obj/structure/railing/ComponentInitialize() + . = ..() + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) + +/obj/structure/railing/Initialize() + . = ..() + ini_dir = dir + +/obj/structure/railing/attackby(obj/item/I, mob/living/user, params) + ..() + add_fingerprint(user) + if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP) + if(obj_integrity < max_integrity) + if(!I.tool_start_check(user, amount=0)) + return + to_chat(user, "You begin repairing [src]...") + if(I.use_tool(src, user, 40, volume=50)) + obj_integrity = max_integrity + to_chat(user, "You repair [src].") + else + to_chat(user, "[src] is already in good condition!") + return + +/obj/structure/railing/wirecutter_act(mob/living/user, obj/item/I) + . = ..() + if(!anchored) + to_chat(user, "You cut apart the railing.") + I.play_tool_sound(src, 100) + deconstruct() + return TRUE + +/obj/structure/railing/deconstruct(disassembled) + . = ..() + if(!loc) //quick check if it's qdeleted already. + return + if(!(flags_1 & NODECONSTRUCT_1)) + var/obj/item/stack/rods/rod = new /obj/item/stack/rods(drop_location(), 3) + transfer_fingerprints_to(rod) + qdel(src) +///Implements behaviour that makes it possible to unanchor the railing. +/obj/structure/railing/wrench_act(mob/living/user, obj/item/I) + . = ..() + if(flags_1&NODECONSTRUCT_1) + return + to_chat(user, "You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor...") + if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored))) + setAnchored(!anchored) + to_chat(user, "You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor.") + return TRUE + +/obj/structure/railing/CanPass(atom/movable/mover, turf/target) + . = ..() + if(get_dir(loc, target) & dir) + var/checking = FLYING | FLOATING + return . || mover.throwing || mover.movement_type & checking + return TRUE + +/obj/structure/railing/corner/CanPass() + ..() + return TRUE + +/obj/structure/railing/CheckExit(atom/movable/mover, turf/target) + ..() + if(get_dir(loc, target) & dir) + var/checking = UNSTOPPABLE | FLYING | FLOATING + return !density || mover.throwing || mover.movement_type & checking || mover.move_force >= MOVE_FORCE_EXTREMELY_STRONG + return TRUE + +/obj/structure/railing/corner/CheckExit() + return TRUE + +/obj/structure/railing/proc/can_be_rotated(mob/user,rotation_type) + if(anchored) + to_chat(user, "[src] cannot be rotated while it is fastened to the floor!") + return FALSE + + var/target_dir = turn(dir, rotation_type == ROTATION_CLOCKWISE ? -90 : 90) + + if(!valid_window_location(loc, target_dir)) //Expanded to include rails, as well! + to_chat(user, "[src] cannot be rotated in that direction!") + return FALSE + return TRUE + +/obj/structure/railing/proc/check_anchored(checked_anchored) + if(anchored == checked_anchored) + return TRUE + +/obj/structure/railing/proc/after_rotation(mob/user,rotation_type) + air_update_turf(1) + ini_dir = dir + add_fingerprint(user) diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm index 1358b2e296..8472926679 100644 --- a/code/game/objects/structures/stairs.dm +++ b/code/game/objects/structures/stairs.dm @@ -16,6 +16,18 @@ var/terminator_mode = STAIR_TERMINATOR_AUTOMATIC var/turf/listeningTo +/obj/structure/stairs/north + dir = NORTH + +/obj/structure/stairs/south + dir = SOUTH + +/obj/structure/stairs/east + dir = EAST + +/obj/structure/stairs/west + dir = WEST + /obj/structure/stairs/Initialize(mapload) if(force_open_above) force_open_above() @@ -105,6 +117,9 @@ T.ChangeTurf(/turf/open/transparent/openspace, flags = CHANGETURF_INHERIT_AIR) /obj/structure/stairs/proc/on_multiz_new(turf/source, dir) + //SIGNAL_HANDLER + SHOULD_NOT_SLEEP(TRUE) //the same thing. + if(dir == UP) var/turf/open/transparent/openspace/T = get_step_multiz(get_turf(src), UP) if(T && !istype(T)) diff --git a/code/game/sound.dm b/code/game/sound.dm index 0feb01c223..b012ba4e2a 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -130,6 +130,10 @@ /proc/get_sfx(soundin) if(istext(soundin)) switch(soundin) + if ("explosion_creaking") // from skyrat-ss13/skyrat13/pull/3295 + soundin = pick('sound/effects/explosioncreak1.ogg', 'sound/effects/explosioncreak2.ogg') + if ("hull_creaking") // from skyrat-ss13/skyrat13/pull/3295 + soundin = pick('sound/effects/creak1.ogg', 'sound/effects/creak2.ogg', 'sound/effects/creak3.ogg') if ("shatter") soundin = pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg') if ("explosion") diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 6552e29246..1ff056c572 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -210,7 +210,7 @@ if(!get_excited() && air.compare(enemy_air)) //testing("Active turf found. Return value of compare(): [is_active]") set_excited(TRUE) - SSair.active_turfs |= src + SSair.add_to_active_extools(src) /turf/open/proc/GetHeatCapacity() . = air.heat_capacity() diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 758f824727..877d236e84 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -13,7 +13,7 @@ var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default var/icon_plating = "plating" - thermal_conductivity = 0.040 + thermal_conductivity = 0.004 heat_capacity = 10000 intact = 1 var/broken = 0 diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 5024a4bada..eae45bfd76 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -74,6 +74,24 @@ /turf/open/floor/wood/airless initial_gas_mix = AIRLESS_ATMOS +/turf/open/floor/wood/wood_large + desc = "Stylish dark wood." + icon_state = "large_wood" + floor_tile = /obj/item/stack/tile/wood/wood_large + broken_states = list("large_wood-broken", "large_wood-broken2", "large_wood-broken3") + +/turf/open/floor/wood/wood_tiled + desc = "Stylish dark wood." + icon_state = "wood_tile" + floor_tile = /obj/item/stack/tile/wood/wood_tiled + broken_states = list("wood_tile-broken", "wood_tile-broken2", "wood_tile-broken3") + +/turf/open/floor/wood/wood_diagonal + desc = "Stylish dark wood." + icon_state = "diagonal_wood" + floor_tile = /obj/item/stack/tile/wood/wood_diagonal + broken_states = list("diagonal_wood-broken", "diagonal_wood-broken2", "diagonal_wood-broken3") + /turf/open/floor/grass name = "grass patch" desc = "You can't tell if this is real grass or just cheap plastic imitation." diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index 03045674e4..42b4707b50 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -3,7 +3,7 @@ name = "reinforced floor" desc = "Extremely sturdy." icon_state = "engine" - thermal_conductivity = 0.025 + thermal_conductivity = 0.0025 heat_capacity = INFINITY floor_tile = /obj/item/stack/rods footstep = FOOTSTEP_PLATING diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index ed48c24462..5d928f377e 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -90,7 +90,7 @@ icon = 'icons/turf/walls/plasma_wall.dmi' icon_state = "plasma" sheet_type = /obj/item/stack/sheet/mineral/plasma - thermal_conductivity = 0.04 + thermal_conductivity = 0.004 canSmoothWith = list(/turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma) /turf/closed/wall/mineral/plasma/attackby(obj/item/W, mob/user, params) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 9ff4f668a4..402ab36947 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -138,7 +138,7 @@ if(prob(hardness)) playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") - hulk_recoil(arm, user) + //hulk_recoil(arm, user) // citadel edit - no, hulks are already subject to stamina combat dismantle_wall(1) else diff --git a/code/game/world.dm b/code/game/world.dm index a342200b3d..42c90d8be1 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -11,6 +11,11 @@ GLOBAL_LIST(topic_status_cache) /world/New() if (fexists(EXTOOLS)) call(EXTOOLS, "maptick_initialize")() + #ifdef EXTOOLS_LOGGING + call(EXTOOLS, "init_logging")() + else + CRASH("[EXTOOLS] does not exist!") + #endif enable_debugger() #ifdef REFERENCE_TRACKING enable_reference_tracking() @@ -20,8 +25,6 @@ GLOBAL_LIST(topic_status_cache) log_world("World loaded at [TIME_STAMP("hh:mm:ss", FALSE)]!") - SetupExternalRSC() - GLOB.config_error_log = GLOB.world_manifest_log = GLOB.world_pda_log = GLOB.world_job_debug_log = GLOB.sql_error_log = GLOB.world_href_log = GLOB.world_runtime_log = GLOB.world_attack_log = GLOB.world_game_log = "data/logs/config_error.[GUID()].log" //temporary file used to record errors with loading config, moved to log directory once logging is set bl make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) @@ -87,17 +90,6 @@ GLOBAL_LIST(topic_status_cache) #endif SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, cb, 10 SECONDS)) -/world/proc/SetupExternalRSC() -#if (PRELOAD_RSC == 0) - GLOB.external_rsc_urls = world.file2list("[global.config.directory]/external_rsc_urls.txt","\n") - var/i=1 - while(i<=GLOB.external_rsc_urls.len) - if(GLOB.external_rsc_urls[i]) - i++ - else - GLOB.external_rsc_urls.Cut(i,i+1) -#endif - /world/proc/SetupLogs() var/override_dir = params[OVERRIDE_LOG_DIRECTORY_PARAMETER] if(!override_dir) @@ -281,12 +273,7 @@ GLOBAL_LIST(topic_status_cache) ..() /world/Del() - // memory leaks bad - var/num_deleted = 0 - for(var/datum/gas_mixture/GM) - GM.__gasmixture_unregister() - num_deleted++ - log_world("Deallocated [num_deleted] gas mixtures") + shutdown_logging() // makes sure the thread is closed before end, else we terminate ..() /world/proc/update_status() diff --git a/code/modules/NTNet/network.dm b/code/modules/NTNet/network.dm index d86ad792fe..2a2820d289 100644 --- a/code/modules/NTNet/network.dm +++ b/code/modules/NTNet/network.dm @@ -206,7 +206,7 @@ for(var/datum/ntnet_conversation/chan in chat_channels) if(chan.id == id) return chan - + // Resets the IDS alarm /datum/ntnet/proc/resetIDS() intrusion_detection_alarm = FALSE diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 8cfae3820a..8421d9955d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1,12 +1,12 @@ //////////////////////////////// /proc/message_admins(msg) - msg = "ADMIN LOG: [msg]" - to_chat(GLOB.admins, msg) + msg = "ADMIN LOG: [msg]" + to_chat(GLOB.admins, msg, confidential = TRUE) /proc/relay_msg_admins(msg) - msg = "RELAY: [msg]" - to_chat(GLOB.admins, msg) + msg = "RELAY: [msg]" + to_chat(GLOB.admins, msg, confidential = TRUE) ///////////////////////////////////////////////////////////////////////////////////////////////Panels @@ -22,7 +22,7 @@ log_admin("[key_name(usr)] checked the individual player panel for [key_name(M)][isobserver(usr)?"":" while in game"].") if(!M) - to_chat(usr, "You seem to be selecting a mob that doesn't exist anymore.") + to_chat(usr, "You seem to be selecting a mob that doesn't exist anymore.", confidential = TRUE) return var/body = "Options for [M.key]" @@ -65,6 +65,7 @@ body += "VV - " if(M.mind) body += "TP - " + // body += "SKILLS - " else body += "Init Mind - " if (iscyborg(M)) @@ -122,6 +123,7 @@ body += "Traitor panel | " body += "Narrate to | " body += "Subtle message | " + // body += "Play sound to | " body += "Language Menu" if (M.client) @@ -216,7 +218,7 @@ if (!istype(src, /datum/admins)) src = usr.client.holder if (!istype(src, /datum/admins)) - to_chat(usr, "Error: you are not an admin!") + to_chat(usr, "Error: you are not an admin!", confidential = TRUE) return var/dat dat = text("Admin Newscaster

    Admin Newscaster Unit

    ") @@ -242,7 +244,7 @@ dat+="

    The newscaster recognises you as:
    [src.admin_signature]
    " if(1) dat+= "Station Feed Channels
    " - if( isemptylist(GLOB.news_network.network_channels) ) + if( !length(GLOB.news_network.network_channels) ) dat+="No active channels found..." else for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) @@ -295,7 +297,7 @@ dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
    " dat+="No further feed story additions are allowed while the D-Notice is in effect.

    " else - if( isemptylist(src.admincaster_feed_channel.messages) ) + if( !length(src.admincaster_feed_channel.messages) ) dat+="No feed messages found in channel...
    " else var/i = 0 @@ -317,7 +319,7 @@ dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
    " dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
    " dat+="
    Select Feed channel to get Stories from:
    " - if(isemptylist(GLOB.news_network.network_channels)) + if(!length(GLOB.news_network.network_channels)) dat+="No feed channels found active...
    " else for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) @@ -328,7 +330,7 @@ dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
    " - if(isemptylist(GLOB.news_network.network_channels)) + if(!length(GLOB.news_network.network_channels)) dat+="No feed channels found active...
    " else for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) @@ -339,7 +341,7 @@ dat+="[src.admincaster_feed_channel.channel_name]: \[ created by: [src.admincaster_feed_channel.returnAuthor(-1)] \]
    " dat+="[(src.admincaster_feed_channel.authorCensor) ? ("Undo Author censorship") : ("Censor channel Author")]
    " - if( isemptylist(src.admincaster_feed_channel.messages) ) + if( !length(src.admincaster_feed_channel.messages) ) dat+="No feed messages found in channel...
    " else for(var/datum/news/feed_message/MESSAGE in src.admincaster_feed_channel.messages) @@ -356,7 +358,7 @@ dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
    " dat+="No further feed story additions are allowed while the D-Notice is in effect.

    " else - if( isemptylist(src.admincaster_feed_channel.messages) ) + if( !length(src.admincaster_feed_channel.messages) ) dat+="No feed messages found in channel...
    " else for(var/datum/news/feed_message/MESSAGE in src.admincaster_feed_channel.messages) @@ -426,7 +428,6 @@ "} if(GLOB.master_mode == "secret") dat += "(Force Secret Mode)
    " - if(GLOB.master_mode == "dynamic") if(SSticker.current_state <= GAME_STATE_PREGAME) dat += "(Force Roundstart Rulesets)
    " @@ -449,7 +450,6 @@ dat += "
    " if(SSticker.IsRoundInProgress()) dat += "(Game Mode Panel)
    " - dat += {"
    Create Object
    @@ -461,7 +461,7 @@ if(marked_datum && istype(marked_datum, /atom)) dat += "Duplicate Marked Datum
    " - usr << browse(dat, "window=admin2;size=210x200") + usr << browse(dat, "window=admin2;size=240x280") return /////////////////////////////////////////////////////////////////////////////////////////////////admins2.dm merge @@ -475,33 +475,42 @@ if (!usr.client.holder) return - var/list/options = list("Regular Restart", "Hard Restart (No Delay/Feeback Reason)", "Hardest Restart (No actions, just reboot)") + var/localhost_addresses = list("127.0.0.1", "::1") + var/list/options = list("Regular Restart", "Regular Restart (with delay)", "Hard Restart (No Delay/Feeback Reason)", "Hardest Restart (No actions, just reboot)") if(world.TgsAvailable()) options += "Server Restart (Kill and restart DD)"; - var/rebootconfirm if(SSticker.admin_delay_notice) - if(alert(usr, "Are you sure? An admin has already delayed the round end for the following reason: [SSticker.admin_delay_notice]", "Confirmation", "Yes", "No") == "Yes") - rebootconfirm = TRUE - else - rebootconfirm = TRUE - if(rebootconfirm) - var/result = input(usr, "Select reboot method", "World Reboot", options[1]) as null|anything in options - if(result) - SSblackbox.record_feedback("tally", "admin_verb", 1, "Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - var/init_by = "Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]." - switch(result) - if("Regular Restart") - SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10) - if("Hard Restart (No Delay, No Feeback Reason)") - to_chat(world, "World reboot - [init_by]") - world.Reboot() - if("Hardest Restart (No actions, just reboot)") - to_chat(world, "Hard world reboot - [init_by]") - world.Reboot(fast_track = TRUE) - if("Server Restart (Kill and restart DD)") - to_chat(world, "Server restart - [init_by]") - world.TgsEndProcess() + if(alert(usr, "Are you sure? An admin has already delayed the round end for the following reason: [SSticker.admin_delay_notice]", "Confirmation", "Yes", "No") != "Yes") + return FALSE + + var/result = input(usr, "Select reboot method", "World Reboot", options[1]) as null|anything in options + if(result) + SSblackbox.record_feedback("tally", "admin_verb", 1, "Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + var/init_by = "Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]." + switch(result) + if("Regular Restart") + if(!(isnull(usr.client.address) || (usr.client.address in localhost_addresses))) + if(alert("Are you sure you want to restart the server?","This server is live","Restart","Cancel") != "Restart") + return FALSE + SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10) + if("Regular Restart (with delay)") + var/delay = input("What delay should the restart have (in seconds)?", "Restart Delay", 5) as num|null + if(!delay) + return FALSE + if(!(isnull(usr.client.address) || (usr.client.address in localhost_addresses))) + if(alert("Are you sure you want to restart the server?","This server is live","Restart","Cancel") != "Restart") + return FALSE + SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", delay * 10) + if("Hard Restart (No Delay, No Feeback Reason)") + to_chat(world, "World reboot - [init_by]") + world.Reboot() + if("Hardest Restart (No actions, just reboot)") + to_chat(world, "Hard world reboot - [init_by]") + world.Reboot(fast_track = TRUE) + if("Server Restart (Kill and restart DD)") + to_chat(world, "Server restart - [init_by]") + world.TgsEndProcess() /datum/admins/proc/end_round() set category = "Server" @@ -529,7 +538,7 @@ if(message) if(!check_rights(R_SERVER,0)) message = adminscrub(message,500) - to_chat(world, "[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]") + to_chat(world, "[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]", confidential = TRUE) log_admin("Announce: [key_name(usr)] : [message]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -551,7 +560,7 @@ else message_admins("[key_name(usr)] set the admin notice.") log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]") - to_chat(world, "Admin Notice:\n \t [new_admin_notice]") + to_chat(world, "Admin Notice:\n \t [new_admin_notice]", confidential = TRUE) SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOB.admin_notice = new_admin_notice return @@ -598,20 +607,29 @@ set desc="Start the round RIGHT NOW" set name="Start Now" if(SSticker.current_state == GAME_STATE_PREGAME || SSticker.current_state == GAME_STATE_STARTUP) - SSticker.start_immediately = TRUE - log_admin("[usr.key] has started the game.") - var/msg = "" - if(SSticker.current_state == GAME_STATE_STARTUP) - msg = " (The server is still setting up, but the round will be \ - started as soon as possible.)" - message_admins("\ - [usr.key] has started the game.[msg]") - SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - return 1 + if(!SSticker.start_immediately) + var/localhost_addresses = list("127.0.0.1", "::1") + if(!(isnull(usr.client.address) || (usr.client.address in localhost_addresses))) + if(alert("Are you sure you want to start the round?","Start Now","Start Now","Cancel") != "Start Now") + return FALSE + SSticker.start_immediately = TRUE + log_admin("[usr.key] has started the game.") + var/msg = "" + if(SSticker.current_state == GAME_STATE_STARTUP) + msg = " (The server is still setting up, but the round will be \ + started as soon as possible.)" + message_admins("[usr.key] has started the game.[msg]") + SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return TRUE + SSticker.start_immediately = FALSE + SSticker.SetTimeLeft(1800) + to_chat(world, "The game will start in 180 seconds.") + SEND_SOUND(world, sound(get_announcer_sound("attention"))) + message_admins("[usr.key] has cancelled immediate game start. Game will start in 180 seconds.") + log_admin("[usr.key] has cancelled immediate game start.") else to_chat(usr, "Error: Start Now: Game has already started.") - - return 0 + return FALSE /datum/admins/proc/toggleenter() set category = "Server" @@ -619,9 +637,9 @@ set name="Toggle Entering" GLOB.enter_allowed = !( GLOB.enter_allowed ) if (!( GLOB.enter_allowed )) - to_chat(world, "New players may no longer enter the game.") + to_chat(world, "New players may no longer enter the game.", confidential = TRUE) else - to_chat(world, "New players may now enter the game.") + to_chat(world, "New players may now enter the game.", confidential = TRUE) log_admin("[key_name(usr)] toggled new player game entering.") message_admins("[key_name_admin(usr)] toggled new player game entering.") world.update_status() @@ -634,9 +652,9 @@ var/alai = CONFIG_GET(flag/allow_ai) CONFIG_SET(flag/allow_ai, !alai) if (alai) - to_chat(world, "The AI job is no longer chooseable.") + to_chat(world, "The AI job is no longer chooseable.", confidential = TRUE) else - to_chat(world, "The AI job is chooseable now.") + to_chat(world, "The AI job is chooseable now.", confidential = TRUE) log_admin("[key_name(usr)] toggled AI allowed.") world.update_status() SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle AI", "[!alai ? "Disabled" : "Enabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -654,7 +672,7 @@ aiPlayer.end_multicam() log_admin("[key_name(usr)] toggled AI multicam.") world.update_status() - to_chat(GLOB.ai_list | GLOB.admins, "The AI [almcam ? "no longer" : "now"] has multicam.") + to_chat(GLOB.ai_list | GLOB.admins, "The AI [almcam ? "no longer" : "now"] has multicam.", confidential = TRUE) SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Multicam", "[!almcam ? "Disabled" : "Enabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleaban() @@ -664,9 +682,9 @@ var/new_nores = !CONFIG_GET(flag/norespawn) CONFIG_SET(flag/norespawn, new_nores) if (!new_nores) - to_chat(world, "You may now respawn.") + to_chat(world, "You may now respawn.", confidential = TRUE) else - to_chat(world, "You may no longer respawn :(") + to_chat(world, "You may no longer respawn :(", confidential = TRUE) message_admins("[key_name_admin(usr)] toggled respawn to [!new_nores ? "On" : "Off"].") log_admin("[key_name(usr)] toggled respawn to [!new_nores ? "On" : "Off"].") world.update_status() @@ -675,7 +693,7 @@ /datum/admins/proc/delay() set category = "Server" set desc="Delay the game start" - set name="Delay pre-game" + set name="Delay Pre-Game" var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(SSticker.GetTimeLeft()/10)) as num|null if(SSticker.current_state > GAME_STATE_PREGAME) @@ -683,11 +701,12 @@ if(newtime) newtime = newtime*10 SSticker.SetTimeLeft(newtime) + SSticker.start_immediately = FALSE if(newtime < 0) - to_chat(world, "The game start has been delayed.") + to_chat(world, "The game start has been delayed.", confidential = TRUE) log_admin("[key_name(usr)] delayed the round start.") else - to_chat(world, "The game will start in [DisplayTimeText(newtime)].") + to_chat(world, "The game will start in [DisplayTimeText(newtime)].", confidential = TRUE) SEND_SOUND(world, sound(get_announcer_sound("attention"))) log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -724,20 +743,28 @@ set desc = "(atom path) Spawn an atom" set name = "Spawn" - if(!check_rights(R_SPAWN)) + if(!check_rights(R_SPAWN) || !object) + return + + var/list/preparsed = splittext(object,":") + var/path = preparsed[1] + var/amount = 1 + if(preparsed.len > 1) + amount = clamp(text2num(preparsed[2]),1, 50) //50 at a time! + + var/chosen = pick_closest_path(path) + if(!chosen) return var/turf/T = get_turf(usr) - var/chosen = pick_closest_path(object) - if(!chosen) - return if(ispath(chosen, /turf)) T.ChangeTurf(chosen) else - var/atom/A = new chosen(T) - A.flags_1 |= ADMIN_SPAWNED_1 + for(var/i in 1 to amount) + var/atom/A = new chosen(T) + A.flags_1 |= ADMIN_SPAWNED_1 - log_admin("[key_name(usr)] spawned [chosen] at [AREACOORD(usr)]") + log_admin("[key_name(usr)] spawned [amount] x [chosen] at [AREACOORD(usr)]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/podspawn_atom(object as text) @@ -782,20 +809,18 @@ log_admin("[key_name(usr)] spawned cargo pack [chosen] at [AREACOORD(usr)]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Cargo") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/datum/admins/proc/show_traitor_panel(mob/M in GLOB.mob_list) +/datum/admins/proc/show_traitor_panel(mob/target_mob in GLOB.mob_list) set category = "Admin" set desc = "Edit mobs's memory and role" set name = "Show Traitor Panel" - - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") + var/datum/mind/target_mind = target_mob.mind + if(!target_mind) + to_chat(usr, "This mob has no mind!", confidential = TRUE) return - if(!M.mind) - to_chat(usr, "This mob has no mind!") + if(!istype(target_mob) && !istype(target_mind)) + to_chat(usr, "This can only be used on instances of type /mob and /mind", confidential = TRUE) return - - M.mind.traitor_panel() + target_mind.traitor_panel() SSblackbox.record_feedback("tally", "admin_verb", 1, "Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -805,9 +830,9 @@ set name="Toggle tinted welding helmes" GLOB.tinted_weldhelh = !( GLOB.tinted_weldhelh ) if (GLOB.tinted_weldhelh) - to_chat(world, "The tinted_weldhelh has been enabled!") + to_chat(world, "The tinted_weldhelh has been enabled!", confidential = TRUE) else - to_chat(world, "The tinted_weldhelh has been disabled!") + to_chat(world, "The tinted_weldhelh has been disabled!", confidential = TRUE) log_admin("[key_name(usr)] toggled tinted_weldhelh.") message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.") SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Tinted Welding Helmets", "[GLOB.tinted_weldhelh ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -819,9 +844,9 @@ var/new_guest_ban = !CONFIG_GET(flag/guest_ban) CONFIG_SET(flag/guest_ban, new_guest_ban) if (new_guest_ban) - to_chat(world, "Guests may no longer enter the game.") + to_chat(world, "Guests may no longer enter the game.", confidential = TRUE) else - to_chat(world, "Guests may now enter the game.") + to_chat(world, "Guests may now enter the game.", confidential = TRUE) log_admin("[key_name(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.") message_admins("[key_name_admin(usr)] toggled guests game entering [!new_guest_ban ? "" : "dis"]allowed.") SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Guests", "[!new_guest_ban ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -832,37 +857,37 @@ var/mob/living/silicon/S = i ai_number++ if(isAI(S)) - to_chat(usr, "AI [key_name(S, usr)]'s laws:") + to_chat(usr, "AI [key_name(S, usr)]'s laws:", confidential = TRUE) else if(iscyborg(S)) var/mob/living/silicon/robot/R = S - to_chat(usr, "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [key_name(R.connected_ai)])":"(Independent)"]: laws:") + to_chat(usr, "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [key_name(R.connected_ai)])":"(Independent)"]: laws:", confidential = TRUE) else if (ispAI(S)) - to_chat(usr, "pAI [key_name(S, usr)]'s laws:") + to_chat(usr, "pAI [key_name(S, usr)]'s laws:", confidential = TRUE) else - to_chat(usr, "SOMETHING SILICON [key_name(S, usr)]'s laws:") + to_chat(usr, "SOMETHING SILICON [key_name(S, usr)]'s laws:", confidential = TRUE) if (S.laws == null) - to_chat(usr, "[key_name(S, usr)]'s laws are null?? Contact a coder.") + to_chat(usr, "[key_name(S, usr)]'s laws are null?? Contact a coder.", confidential = TRUE) else S.laws.show_laws(usr) if(!ai_number) - to_chat(usr, "No AIs located" ) + to_chat(usr, "No AIs located" , confidential = TRUE) /datum/admins/proc/output_all_devil_info() var/devil_number = 0 for(var/datum/mind/D in SSticker.mode.devils) devil_number++ var/datum/antagonist/devil/devil = D.has_antag_datum(/datum/antagonist/devil) - to_chat(usr, "Devil #[devil_number]:

    " + devil.printdevilinfo()) + to_chat(usr, "Devil #[devil_number]:

    " + devil.printdevilinfo(), confidential = TRUE) if(!devil_number) - to_chat(usr, "No Devils located" ) + to_chat(usr, "No Devils located" , confidential = TRUE) /datum/admins/proc/output_devil_info(mob/living/M) if(is_devil(M)) var/datum/antagonist/devil/devil = M.mind.has_antag_datum(/datum/antagonist/devil) - to_chat(usr, devil.printdevilinfo()) + to_chat(usr, devil.printdevilinfo(), confidential = TRUE) else - to_chat(usr, "[M] is not a devil.") + to_chat(usr, "[M] is not a devil.", confidential = TRUE) /datum/admins/proc/manage_free_slots() if(!check_rights()) @@ -965,21 +990,21 @@ if(kick_only_afk && !C.is_afk()) //Ignore clients who are not afk continue if(message) - to_chat(C, message) + to_chat(C, message, confidential = TRUE) kicked_client_names.Add("[C.key]") qdel(C) return kicked_client_names -//returns 1 to let the dragdrop code know we are trapping this event -//returns 0 if we don't plan to trap the event +//returns TRUE to let the dragdrop code know we are trapping this event +//returns FALSE if we don't plan to trap the event /datum/admins/proc/cmd_ghost_drag(mob/dead/observer/frommob, mob/tomob) //this is the exact two check rights checks required to edit a ckey with vv. if (!check_rights(R_VAREDIT,0) || !check_rights(R_SPAWN|R_DEBUG,0)) - return 0 + return FALSE if (!frommob.ckey) - return 0 + return FALSE var/question = "" if (tomob.ckey) @@ -988,12 +1013,18 @@ var/ask = alert(question, "Place ghost in control of mob?", "Yes", "No") if (ask != "Yes") - return 1 + return TRUE if (!frommob || !tomob) //make sure the mobs don't go away while we waited for a response - return 1 + return TRUE - tomob.ghostize(0) + // Disassociates observer mind from the body mind + if(tomob.client) + tomob.ghostize(FALSE) + else + for(var/mob/dead/observer/ghost in GLOB.dead_mob_list) + if(tomob.mind == ghost.mind) + ghost.mind = null message_admins("[key_name_admin(usr)] has put [frommob.key] in control of [tomob.name].") log_admin("[key_name(usr)] stuffed [frommob.key] into [tomob.name].") @@ -1002,7 +1033,7 @@ tomob.ckey = frommob.ckey qdel(frommob) - return 1 + return TRUE /client/proc/adminGreet(logout) if(SSticker.HasRoundStarted()) diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 99bb988be6..7e5c104d90 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -4,19 +4,39 @@ var/F = file("[GLOB.log_directory]/[subject].html") WRITE_FILE(F, "[TIME_STAMP("hh:mm:ss", FALSE)] [REF(src)] ([x],[y],[z]) || [src] [message]
    ") -/client/proc/investigate_show(subject in list("notes, memos, watchlist", INVESTIGATE_RCD, INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_CIRCUIT, INVESTIGATE_NANITES, INVESTIGATE_CRYOGENICS) ) +/client/proc/investigate_show() set name = "Investigate" set category = "Admin" if(!holder) return - switch(subject) - if("notes, memos, watchlist") - if(!check_rights(R_ADMIN)) - return - browse_messages() + + var/list/investigates = list(INVESTIGATE_RCD, INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_CIRCUIT, INVESTIGATE_NANITES, INVESTIGATE_CRYOGENICS) + + var/list/logs_present = list("notes, memos, watchlist") + var/list/logs_missing = list("---") + + for(var/subject in investigates) + var/temp_file = file("[GLOB.log_directory]/[subject].html") + if(fexists(temp_file)) + logs_present += subject else - var/F = file("[GLOB.log_directory]/[subject].html") - if(!fexists(F)) - to_chat(src, "No [subject] logfile was found.") - return - src << browse(F,"window=investigate[subject];size=800x300") + logs_missing += "[subject] (empty)" + + var/list/combined = sortList(logs_present) + sortList(logs_missing) + + var/selected = input("Investigate what?", "Investigate") as null|anything in combined + + if(!(selected in combined) || selected == "---") + return + + selected = replacetext(selected, " (empty)", "") + + if(selected == "notes, memos, watchlist" && check_rights(R_ADMIN)) + browse_messages() + return + + var/F = file("[GLOB.log_directory]/[selected].html") + if(!fexists(F)) + to_chat(src, "No [selected] logfile was found.", confidential = TRUE) + return + src << browse(F,"window=investigate[selected];size=800x300") diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e9abb7db87..2c4e7b4f6e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -11,7 +11,8 @@ GLOBAL_PROTECT(admin_verbs_default) /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ /client/proc/debug_variables, /*allows us to -see- the variables of any instance in the game. +VAREDIT needed to modify*/ /client/proc/toggleprayers, - /client/proc/toggleadminhelpsound + /client/proc/toggleadminhelpsound, + /client/proc/debugstatpanel, ) GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) GLOBAL_PROTECT(admin_verbs_admin) @@ -260,36 +261,36 @@ GLOBAL_PROTECT(admin_verbs_hideable) control_freak = CONTROL_FREAK_SKIN | CONTROL_FREAK_MACROS var/rights = holder.rank.rights - verbs += GLOB.admin_verbs_default + add_verb(src, GLOB.admin_verbs_default) if(rights & R_BUILDMODE) - verbs += /client/proc/togglebuildmodeself + add_verb(src, /client/proc/togglebuildmodeself) if(rights & R_ADMIN) - verbs += GLOB.admin_verbs_admin + add_verb(src, GLOB.admin_verbs_admin) if(rights & R_BAN) - verbs += GLOB.admin_verbs_ban + add_verb(src, GLOB.admin_verbs_ban) if(rights & R_FUN) - verbs += GLOB.admin_verbs_fun + add_verb(src, GLOB.admin_verbs_fun) if(rights & R_SERVER) - verbs += GLOB.admin_verbs_server + add_verb(src, GLOB.admin_verbs_server) if(rights & R_DEBUG) - verbs += GLOB.admin_verbs_debug + add_verb(src, GLOB.admin_verbs_debug) if(rights & R_POSSESS) - verbs += GLOB.admin_verbs_possess + add_verb(src, GLOB.admin_verbs_possess) if(rights & R_PERMISSIONS) - verbs += GLOB.admin_verbs_permissions + add_verb(src, GLOB.admin_verbs_permissions) if(rights & R_STEALTH) - verbs += /client/proc/stealth + add_verb(src, /client/proc/stealth) if(rights & R_ADMIN) - verbs += GLOB.admin_verbs_poll + add_verb(src, GLOB.admin_verbs_poll) if(rights & R_SOUNDS) - verbs += GLOB.admin_verbs_sounds + add_verb(src, GLOB.admin_verbs_sounds) if(CONFIG_GET(string/invoke_youtubedl)) - verbs += /client/proc/play_web_sound + add_verb(src, /client/proc/play_web_sound) if(rights & R_SPAWN) - verbs += GLOB.admin_verbs_spawn + add_verb(src, GLOB.admin_verbs_spawn) /client/proc/remove_admin_verbs() - verbs.Remove( + remove_verb(src, list( GLOB.admin_verbs_default, /client/proc/togglebuildmodeself, GLOB.admin_verbs_admin, @@ -308,14 +309,15 @@ GLOBAL_PROTECT(admin_verbs_hideable) GLOB.admin_verbs_debug_mapping, /client/proc/disable_debug_verbs, /client/proc/readmin - ) + )) /client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs set name = "Adminverbs - Hide Most" set category = "Admin" - verbs.Remove(/client/proc/hide_most_verbs, GLOB.admin_verbs_hideable) - verbs += /client/proc/show_verbs + remove_verb(src, GLOB.admin_verbs_hideable) + remove_verb(src, /client/proc/hide_most_verbs) + add_verb(src, /client/proc/show_verbs) to_chat(src, "Most of your adminverbs have been hidden.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Hide Most Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -326,7 +328,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) set category = "Admin" remove_admin_verbs() - verbs += /client/proc/show_verbs + add_verb(src, /client/proc/show_verbs) to_chat(src, "Almost all of your adminverbs have been hidden.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Hide All Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -336,7 +338,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) set name = "Adminverbs - Show" set category = "Admin" - verbs -= /client/proc/show_verbs + remove_verb(src, /client/proc/show_verbs) add_admin_verbs() to_chat(src, "All of your adminverbs are now visible.") @@ -724,3 +726,9 @@ GLOBAL_PROTECT(admin_verbs_hideable) log_admin("[key_name(usr)] has [AI_Interact ? "activated" : "deactivated"] Admin AI Interact") message_admins("[key_name_admin(usr)] has [AI_Interact ? "activated" : "deactivated"] their AI interaction") + +/client/proc/debugstatpanel() + set name = "Debug Stat Panel" + set category = "Debug" + + src << output("", "statbrowser:create_debug") diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 59651b17d5..e287d9b1b3 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -24,7 +24,9 @@ H.facial_hair_style = random_facial_hair_style(H.gender) H.hair_color = random_short_color() H.facial_hair_color = H.hair_color - H.eye_color = random_eye_color() + var/random_eye_color = random_eye_color() + H.left_eye_color = random_eye_color + H.right_eye_color = random_eye_color H.dna.blood_type = random_blood_type() H.saved_underwear = H.underwear H.saved_undershirt = H.undershirt diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 1d0b6b2a79..09f9664295 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -91,7 +91,7 @@ GLOBAL_PROTECT(href_token) var/client/C if ((C = owner) || (C = GLOB.directory[target])) disassociate() - C.verbs += /client/proc/readmin + add_verb(C, /client/proc/readmin) /datum/admins/proc/associate(client/C) if(IsAdminAdvancedProcCall()) @@ -111,7 +111,8 @@ GLOBAL_PROTECT(href_token) owner = C owner.holder = src owner.add_admin_verbs() //TODO <--- todo what? the proc clearly exists and works since its the backbone to our entire admin system - owner.verbs -= /client/proc/readmin + remove_verb(owner, /client/proc/readmin) + owner.init_verbs() //re-initialize the verb list GLOB.admins |= C /datum/admins/proc/disassociate() @@ -123,6 +124,7 @@ GLOBAL_PROTECT(href_token) if(owner) GLOB.admins -= owner owner.remove_admin_verbs() + owner.init_verbs() owner.holder = null owner = null diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index b757028ea2..97d912cb9e 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -397,11 +397,13 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null delete_click = new(null, "INITIALIZING", src) if(!action_click) action_click = new(null, "INITIALIZNG", src) - stat("[id] ", delete_click.update("DELETE QUERY | STATE : [text_state()] | ALL/ELIG/FIN \ + var/list/L = list() + L[++L.len] = list("[id] ", "[delete_click.update("DELETE QUERY | STATE : [text_state()] | ALL/ELIG/FIN \ [islist(obj_count_all)? length(obj_count_all) : (isnull(obj_count_all)? "0" : obj_count_all)]/\ [islist(obj_count_eligible)? length(obj_count_eligible) : (isnull(obj_count_eligible)? "0" : obj_count_eligible)]/\ - [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)] - [get_query_text()]")) - stat(" ", action_click.update("[SDQL2_IS_RUNNING? "HALT" : "RUN"]")) + [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)] - [get_query_text()]")]", REF(delete_click)) + L[++L.len] = list(" ", "[action_click.update("[SDQL2_IS_RUNNING? "HALT" : "RUN"]")]", REF(action_click)) + return L /datum/SDQL2_query/proc/delete_click() admin_del(usr) @@ -1189,15 +1191,27 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null return query_list /obj/effect/statclick/SDQL2_delete/Click() + if(!usr.client?.holder) + message_admins("[key_name_admin(usr)] non-holder clicked on a statclick! ([src])") + log_game("[key_name(usr)] non-holder clicked on a statclick! ([src])") + return var/datum/SDQL2_query/Q = target Q.delete_click() /obj/effect/statclick/SDQL2_action/Click() + if(!usr.client?.holder) + message_admins("[key_name_admin(usr)] non-holder clicked on a statclick! ([src])") + log_game("[key_name(usr)] non-holder clicked on a statclick! ([src])") + return var/datum/SDQL2_query/Q = target Q.action_click() /obj/effect/statclick/SDQL2_VV_all name = "VIEW VARIABLES" -/obj/effect/statclick/SDQL2_VV_all/Click() +/obj/effect/statclick/sdql2_vv_all/Click() + if(!usr.client?.holder) + message_admins("[key_name_admin(usr)] non-holder clicked on a statclick! ([src])") + log_game("[key_name(usr)] non-holder clicked on a statclick! ([src])") + return usr.client.debug_variables(GLOB.sdql2_queries) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index edf95dc47e..4348ae7661 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -89,18 +89,23 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //Tickets statpanel /datum/admin_help_tickets/proc/stat_entry() + SHOULD_CALL_PARENT(TRUE) + SHOULD_NOT_SLEEP(TRUE) + var/list/L = list() var/num_disconnected = 0 - stat("Active Tickets:", astatclick.update("[active_tickets.len]")) + L[++L.len] = list("Active Tickets:", "[astatclick.update("[active_tickets.len]")]", null, REF(astatclick)) + astatclick.update("[active_tickets.len]") for(var/I in active_tickets) var/datum/admin_help/AH = I if(AH.initiator) - stat("#[AH.id]. [AH.initiator_key_name]:", AH.statclick.update()) + L[++L.len] = list("#[AH.id]. [AH.initiator_key_name]:", "[AH.statclick.update()]", REF(AH)) else ++num_disconnected if(num_disconnected) - stat("Disconnected:", astatclick.update("[num_disconnected]")) - stat("Closed Tickets:", cstatclick.update("[closed_tickets.len]")) - stat("Resolved Tickets:", rstatclick.update("[resolved_tickets.len]")) + L[++L.len] = list("Disconnected:", "[astatclick.update("[num_disconnected]")]", null, REF(astatclick)) + L[++L.len] = list("Closed Tickets:", "[cstatclick.update("[closed_tickets.len]")]", null, REF(cstatclick)) + L[++L.len] = list("Resolved Tickets:", "[rstatclick.update("[resolved_tickets.len]")]", null, REF(rstatclick)) + return L //Reassociate still open ticket if one exists /datum/admin_help_tickets/proc/ClientLogin(client/C) @@ -137,6 +142,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /obj/effect/statclick/ticket_list/Click() GLOB.ahelp_tickets.BrowseTickets(current_state) +//called by admin topic +/obj/effect/statclick/ticket_list/proc/Action() + Click() + // //TICKET DATUM // @@ -218,7 +227,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //Removes the ahelp verb and returns it after 2 minutes /datum/admin_help/proc/TimeoutVerb() - initiator.verbs -= /client/verb/adminhelp + remove_verb(initiator, /client/verb/adminhelp) initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps //private @@ -490,7 +499,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) // /client/proc/giveadminhelpverb() - src.verbs |= /client/verb/adminhelp + add_verb(src, /client/verb/adminhelp) deltimer(adminhelptimerid) adminhelptimerid = 0 diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 525e4e82c0..257c1d275a 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -3,7 +3,7 @@ set desc = "Area to jump to" set category = "Admin" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return if(!A) @@ -15,20 +15,22 @@ continue turfs.Add(T) - var/turf/T = safepick(turfs) - if(!T) - to_chat(src, "Nowhere to jump to!") + if(length(turfs)) + var/turf/T = pick(turfs) + usr.forceMove(T) + log_admin("[key_name(usr)] jumped to [AREACOORD(T)]") + message_admins("[key_name_admin(usr)] jumped to [AREACOORD(T)]") + SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + else + to_chat(src, "Nowhere to jump to!", confidential = TRUE) return - usr.forceMove(T) - log_admin("[key_name(usr)] jumped to [AREACOORD(A)]") - message_admins("[key_name_admin(usr)] jumped to [AREACOORD(A)]") - SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /client/proc/jumptoturf(turf/T in world) set name = "Jump to Turf" set category = "Admin" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return log_admin("[key_name(usr)] jumped to [AREACOORD(T)]") @@ -42,7 +44,7 @@ set name = "Jump to Mob" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return log_admin("[key_name(usr)] jumped to [key_name(M)]") @@ -54,14 +56,14 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! A.forceMove(M.loc) else - to_chat(A, "This mob is not located in the game world.") + to_chat(A, "This mob is not located in the game world.", confidential = TRUE) /client/proc/jumptocoord(tx as num, ty as num, tz as num) set category = "Admin" set name = "Jump to Coordinate" if (!holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return if(src.mob) @@ -76,7 +78,7 @@ set name = "Jump to Key" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return var/list/keys = list() @@ -84,7 +86,7 @@ keys += M.client var/client/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) if(!selection) - to_chat(src, "No keys found.") + to_chat(src, "No keys found.", confidential = TRUE) return var/mob/M = selection.mob log_admin("[key_name(usr)] jumped to [key_name(M)]") @@ -99,7 +101,7 @@ set name = "Get Mob" set desc = "Mob to teleport" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return var/atom/loc = get_turf(usr) @@ -116,7 +118,7 @@ set desc = "Key to teleport" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return var/list/keys = list() @@ -142,16 +144,17 @@ set category = "Admin" set name = "Send Mob" if(!src.holder) - to_chat(src, "Only administrators may use this command.") + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return var/area/A = input(usr, "Pick an area.", "Pick an area") in GLOB.sortedAreas|null if(A && istype(A)) - if(M.forceMove(safepick(get_area_turfs(A)))) + var/list/turfs = get_area_turfs(A) + if(length(turfs) && M.forceMove(pick(turfs))) - log_admin("[key_name(usr)] teleported [key_name(M)] to [AREACOORD(A)]") - var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)] to [AREACOORD(A)]" + log_admin("[key_name(usr)] teleported [key_name(M)] to [AREACOORD(M)]") + var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)] to [AREACOORD(M)]" message_admins(msg) admin_ticket_log(M, msg) else - to_chat(src, "Failed to move mob to a valid location.") + to_chat(src, "Failed to move mob to a valid location.", confidential = TRUE) SSblackbox.record_feedback("tally", "admin_verb", 1, "Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index b7f05740a3..2931c52a5c 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -1,12 +1,11 @@ -#define IRCREPLYCOUNT 2 - +#define EXTERNALREPLYCOUNT 2 //allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm /client/proc/cmd_admin_pm_context(mob/M in GLOB.mob_list) set category = null set name = "Admin PM Mob" if(!holder) - to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.") + to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.", confidential = TRUE) return if( !ismob(M) || !M.client ) return @@ -18,7 +17,7 @@ set category = "Admin" set name = "Admin PM" if(!holder) - to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.") + to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.", confidential = TRUE) return var/list/client/targets[0] for(var/client/T) @@ -37,7 +36,7 @@ /client/proc/cmd_ahelp_reply(whom) if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).", confidential = TRUE) return var/client/C if(istext(whom)) @@ -48,45 +47,61 @@ C = whom if(!C) if(holder) - to_chat(src, "Error: Admin-PM: Client not found.") + to_chat(src, "Error: Admin-PM: Client not found.", confidential = TRUE) return var/datum/admin_help/AH = C.current_ticket if(AH) - message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.") + message_admins("[key_name_admin(src)] has started replying to [key_name_admin(C, 0, 0)]'s admin help.") var/msg = input(src,"Message:", "Private message to [C.holder?.fakekey ? "an Administrator" : key_name(C, 0, 0)].") as message|null if (!msg) - message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.") + message_admins("[key_name_admin(src)] has cancelled their reply to [key_name_admin(C, 0, 0)]'s admin help.") return + if(!C) //We lost the client during input, disconnected or relogged. + if(GLOB.directory[AH.initiator_ckey]) // Client has reconnected, lets try to recover + whom = GLOB.directory[AH.initiator_ckey] + else + to_chat(src, "Error: Admin-PM: Client not found.", confidential = TRUE) + to_chat(src, "Message not sent:
    [msg]", confidential = TRUE) + AH.AddInteraction("No client found, message not sent:
    [msg]") + return cmd_admin_pm(whom, msg) //takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. //Fetching a message if needed. src is the sender and C is the target client /client/proc/cmd_admin_pm(whom, msg) if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).", confidential = TRUE) return if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo - to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.") - to_chat(src, "Message: [msg]") + to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.", confidential = TRUE) + to_chat(src, "Message: [msg]", confidential = TRUE) return var/client/recipient - var/irc = 0 + var/recipient_ckey // Stored in case client is deleted between this and after the message is input + var/datum/admin_help/recipient_ticket // Stored in case client is deleted between this and after the message is input + var/external = 0 if(istext(whom)) if(whom[1] == "@") whom = findStealthKey(whom) if(whom == "IRCKEY") - irc = 1 + external = 1 else recipient = GLOB.directory[whom] else if(istype(whom, /client)) recipient = whom + if(!recipient) + to_chat(src, "Error: Admin-PM: Client not found.", confidential = TRUE) + return - if(irc) + recipient_ckey = recipient.ckey + recipient_ticket = recipient.current_ticket + + if(external) if(!ircreplyamount) //to prevent people from spamming irc/discord return if(!msg) @@ -95,21 +110,11 @@ if(!msg) return if(holder) - to_chat(src, "Error: Use the admin IRC channel, nerd.") + to_chat(src, "Error: Use the admin IRC/Discord channel, nerd.", confidential = TRUE) return else - if(!recipient) - if(holder) - to_chat(src, "Error: Admin-PM: Client not found.") - if(msg) - to_chat(src, msg) - return - else if(msg) // you want to continue if there's no message instead of returning now - current_ticket.MessageNoRecipient(msg) - return - //get message text, limit it's length.and clean/escape html if(!msg) msg = input(src,"Message:", "Private message to [recipient.holder?.fakekey ? "an Administrator" : key_name(recipient, 0, 0)].") as message|null @@ -117,22 +122,30 @@ if(!msg) return - if(prefs.muted & MUTE_ADMINHELP) - to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") - return - - if(!recipient) + if(!recipient) + if(GLOB.directory[recipient_ckey]) // Client has reconnected, lets try to recover + recipient = GLOB.directory[recipient_ckey] + else if(holder) - to_chat(src, "Error: Admin-PM: Client not found.") + to_chat(src, "Error: Admin-PM: Client not found.", confidential = TRUE) + to_chat(src, "Message not sent:
    [msg]", confidential = TRUE) + if(recipient_ticket) + recipient_ticket.AddInteraction("No client found, message not sent:
    [msg]") + return else current_ticket.MessageNoRecipient(msg) - return + return + + + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).", confidential = TRUE) + return if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) return //clean the message if it's not sent by a high-rank admin - if(!check_rights(R_SERVER|R_DEBUG,0)||irc)//no sending html to the poor bots + if(!check_rights(R_SERVER|R_DEBUG,0)||external)//no sending html to the poor bots msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) if(!msg) return @@ -144,28 +157,33 @@ var/keywordparsedmsg = keywords_lookup(msg) - if(irc) - to_chat(src, "PM to-Admins: [rawmsg]") - var/datum/admin_help/AH = admin_ticket_log(src, "Reply PM from-[key_name(src, TRUE, TRUE)] to IRC: [keywordparsedmsg]") + if(external) + to_chat(src, "PM to-Admins: [rawmsg]", confidential = TRUE) + var/datum/admin_help/AH = admin_ticket_log(src, "Reply PM from-[key_name(src, TRUE, TRUE)] to External: [keywordparsedmsg]") ircreplyamount-- send2irc("[AH ? "#[AH.id] " : ""]Reply: [ckey]", rawmsg) + else - if(recipient.holder) - if(holder) //both are admins - to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]") - to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]") + var/badmin = FALSE //Lets figure out if an admin is getting bwoinked. + if(holder && recipient.holder && !current_ticket) //Both are admins, and this is not a reply to our own ticket. + badmin = TRUE + if(recipient.holder && !badmin) + if(holder) + to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]", confidential = TRUE) + to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]", confidential = TRUE) //omg this is dumb, just fill in both their tickets var/interaction_message = "PM from-[key_name(src, recipient, 1)] to-[key_name(recipient, src, 1)]: [keywordparsedmsg]" admin_ticket_log(src, interaction_message) if(recipient != src) //reeee admin_ticket_log(recipient, interaction_message) - + // SSblackbox.LogAhelp(current_ticket.id, "Reply", msg, recipient.ckey, src.ckey) else //recipient is an admin but sender is not var/replymsg = "Reply PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]" admin_ticket_log(src, "[replymsg]") - to_chat(recipient, "[replymsg]") - to_chat(src, "PM to-Admins: [msg]") + to_chat(recipient, "[replymsg]", confidential = TRUE) + to_chat(src, "PM to-Admins: [msg]", confidential = TRUE) + // SSblackbox.LogAhelp(current_ticket.id, "Reply", msg, recipient.ckey, src.ckey) //play the receiving admin the adminhelp sound (if they have them enabled) if(recipient.prefs.toggles & SOUND_ADMINHELP) @@ -173,78 +191,88 @@ else if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT + //var/already_logged = FALSE if(!recipient.current_ticket) new /datum/admin_help(msg, recipient, TRUE) + //already_logged = TRUE + // SSblackbox.LogAhelp(recipient.current_ticket.id, "Ticket Opened", msg, recipient.ckey, src.ckey) - to_chat(recipient, "-- Administrator private message --") - to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]") - to_chat(recipient, "Click on the administrator's name to reply.") - to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]") + to_chat(recipient, "-- Administrator private message --", confidential = TRUE) + to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]", confidential = TRUE) + to_chat(recipient, "Click on the administrator's name to reply.", confidential = TRUE) + to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]", confidential = TRUE) admin_ticket_log(recipient, "PM From [key_name_admin(src)]: [keywordparsedmsg]") + // if(!already_logged) //Reply to an existing ticket + // SSblackbox.LogAhelp(recipient.current_ticket.id, "Reply", msg, recipient.ckey, src.ckey) + + //always play non-admin recipients the adminhelp sound SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg')) //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn if(CONFIG_GET(flag/popup_admin_pm)) - spawn() //so we don't hold the caller proc up. Please functionalize this - var/sender = src - var/sendername = key - var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as message|null //show message and await a reply - if(recipient && reply) - if(sender) - recipient.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them - else - adminhelp(reply) //sender has left, adminhelp instead - return + INVOKE_ASYNC(src, .proc/popup_admin_pm, recipient, msg) else //neither are admins - to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.") + to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.", confidential = TRUE) return - if(irc) - log_admin_private("PM: [key_name(src)]->IRC: [rawmsg]") + if(external) + log_admin_private("PM: [key_name(src)]->External: [rawmsg]") for(var/client/X in GLOB.admins) - to_chat(X, "PM: [key_name(src, X, 0)]->IRC: [keywordparsedmsg]") + to_chat(X, "PM: [key_name(src, X, 0)]->External: [keywordparsedmsg]", confidential = TRUE) else window_flash(recipient, ignorepref = TRUE) log_admin_private("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]") //we don't use message_admins here because the sender/receiver might get it too for(var/client/X in GLOB.admins) if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient - to_chat(X, "PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]: [keywordparsedmsg]" ) + to_chat(X, "PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]: [keywordparsedmsg]" , confidential = TRUE) + +/client/proc/popup_admin_pm(client/recipient, msg) + var/sender = src + var/sendername = key + var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as message|null //show message and await a reply + if(recipient && reply) + if(sender) + recipient.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them + else + adminhelp(reply) //sender has left, adminhelp instead - -#define IRC_AHELP_USAGE "Usage: ticket " /proc/IrcPm(target,msg,sender) + return TgsPm(target,msg,sender) //compatability moment. + +#define TGS_AHELP_USAGE "Usage: ticket " +/proc/TgsPm(target,msg,sender) target = ckey(target) var/client/C = GLOB.directory[target] var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target) var/compliant_msg = trim(lowertext(msg)) - var/irc_tagged = "[sender](IRC)" + var/tgs_tagged = "[sender](TGS/External)" var/list/splits = splittext(compliant_msg, " ") if(splits.len && splits[1] == "ticket") if(splits.len < 2) - return IRC_AHELP_USAGE + return TGS_AHELP_USAGE switch(splits[2]) if("close") if(ticket) - ticket.Close(irc_tagged) + ticket.Close(tgs_tagged) return "Ticket #[ticket.id] successfully closed" if("resolve") if(ticket) - ticket.Resolve(irc_tagged) + ticket.Resolve(tgs_tagged) return "Ticket #[ticket.id] successfully resolved" if("icissue") if(ticket) - ticket.ICIssue(irc_tagged) + ticket.ICIssue(tgs_tagged) return "Ticket #[ticket.id] successfully marked as IC issue" if("reject") if(ticket) - ticket.Reject(irc_tagged) + ticket.Reject(tgs_tagged) return "Ticket #[ticket.id] successfully rejected" if("reopen") if(ticket) @@ -253,7 +281,7 @@ if(!isnull(fail)) fail = text2num(splits[3]) if(isnull(fail)) - return "Error: No/Invalid ticket id specified. [IRC_AHELP_USAGE]" + return "Error: No/Invalid ticket id specified. [TGS_AHELP_USAGE]" var/datum/admin_help/AH = GLOB.ahelp_tickets.TicketByID(fail) if(!AH) return "Error: Ticket #[fail] not found" @@ -275,41 +303,42 @@ . += "#[AH.id]" return else - return IRC_AHELP_USAGE + return TGS_AHELP_USAGE return "Error: Ticket could not be found" var/static/stealthkey - var/adminname = CONFIG_GET(flag/show_irc_name) ? irc_tagged : "Administrator" + var/adminname = CONFIG_GET(flag/show_irc_name) ? tgs_tagged : "Administrator" if(!C) return "Error: No client" if(!stealthkey) - stealthkey = GenIrcStealthKey() + stealthkey = GenTgsStealthKey() msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) if(!msg) return "Error: No message" - message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]") - log_admin_private("IRC PM: [sender] -> [key_name(C)] : [msg]") + message_admins("External message from [sender] to [key_name_admin(C)] : [msg]") + log_admin_private("External PM: [sender] -> [key_name(C)] : [msg]") msg = emoji_parse(msg) - to_chat(C, "-- Administrator private message --") - to_chat(C, "Admin PM from-[adminname]: [msg]") - to_chat(C, "Click on the administrator's name to reply.") + to_chat(C, "-- Administrator private message --", confidential = TRUE) + to_chat(C, "Admin PM from-[adminname]: [msg]", confidential = TRUE) + to_chat(C, "Click on the administrator's name to reply.", confidential = TRUE) - admin_ticket_log(C, "PM From [irc_tagged]: [msg]") + admin_ticket_log(C, "PM From [tgs_tagged]: [msg]") window_flash(C, ignorepref = TRUE) //always play non-admin recipients the adminhelp sound SEND_SOUND(C, 'sound/effects/adminhelp.ogg') - C.ircreplyamount = IRCREPLYCOUNT + // C.externalreplyamount = EXTERNALREPLYCOUNT + C.ircreplyamount = EXTERNALREPLYCOUNT return "Message Successful" -/proc/GenIrcStealthKey() +/proc/GenTgsStealthKey() var/num = (rand(0,1000)) var/i = 0 while(i == 0) @@ -322,4 +351,4 @@ GLOB.stealthminID["IRCKEY"] = stealth return stealth -#undef IRCREPLYCOUNT +#undef EXTERNALREPLYCOUNT diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 9081357ef6..66653020d4 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -13,7 +13,7 @@ msg = keywords_lookup(msg) msg = "ADMIN: [key_name(usr, 1)] [ADMIN_FLW(mob)]: [msg]" - to_chat(GLOB.admins, msg) + to_chat(GLOB.admins, msg, confidential = TRUE) SSblackbox.record_feedback("tally", "admin_verb", 1, "Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/bluespacearty.dm b/code/modules/admin/verbs/bluespacearty.dm index 2910d6dd85..23fff5ece9 100644 --- a/code/modules/admin/verbs/bluespacearty.dm +++ b/code/modules/admin/verbs/bluespacearty.dm @@ -5,7 +5,7 @@ var/mob/living/target = M if(!isliving(target)) - to_chat(usr, "This can only be used on instances of type /mob/living") + to_chat(usr, "This can only be used on instances of type /mob/living", confidential = TRUE) return explosion(target.loc, 0, 0, 0, 0) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index 35f4ddb3e5..be22c889f0 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -7,9 +7,9 @@ return if (!istype(borgo, /mob/living/silicon/robot)) - borgo = input("Select a borg", "Select a borg", null, null) as null|anything in GLOB.silicon_mobs + borgo = input("Select a borg", "Select a borg", null, null) as null|anything in sortNames(GLOB.silicon_mobs) if (!istype(borgo, /mob/living/silicon/robot)) - to_chat(usr, "Borg is required for borgpanel") + to_chat(usr, "Borg is required for borgpanel", confidential = TRUE) var/datum/borgpanel/borgpanel = new(usr, borgo) @@ -25,18 +25,18 @@ if(!istype(to_borg)) qdel(src) CRASH("Borg panel is only available for borgs") - user = CLIENT_FROM_VAR(to_user) - if (!user) CRASH("Borg panel attempted to open to a mob without a client") - borg = to_borg -/datum/borgpanel/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.admin_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) +/datum/borgpanel/ui_state(mob/user) + return GLOB.admin_state + +/datum/borgpanel/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) if(!ui) - ui = new(user, src, ui_key, "BorgPanel", "Borg Panel", 700, 700, master_ui, state) + ui = new(user, src, "BorgPanel") ui.open() /datum/borgpanel/ui_data(mob/user) @@ -53,13 +53,13 @@ .["upgrades"] = list() for (var/upgradetype in subtypesof(/obj/item/borg/upgrade)-/obj/item/borg/upgrade/hypospray) //hypospray is a dummy parent for hypospray upgrades var/obj/item/borg/upgrade/upgrade = upgradetype - if (initial(upgrade.module_type) && !istype(borg.module, initial(upgrade.module_type))) // Upgrade requires a different module + if (initial(upgrade.module_type) && !is_type_in_list(borg.module, initial(upgrade.module_type))) // Upgrade requires a different module continue var/installed = FALSE if (locate(upgradetype) in borg) installed = TRUE .["upgrades"] += list(list("name" = initial(upgrade.name), "installed" = installed, "type" = upgradetype)) - .["laws"] = borg.laws ? borg.laws.get_law_list(include_zeroth = TRUE) : list() + .["laws"] = borg.laws ? borg.laws.get_law_list(include_zeroth = TRUE, render_html = FALSE) : list() .["channels"] = list() for (var/k in GLOB.radiochannels) if (k == RADIO_CHANNEL_COMMON) @@ -199,7 +199,7 @@ borg.notify_ai(DISCONNECT) if(borg.shell) borg.undeploy() - borg.connected_ai = newai + borg.set_connected_ai(newai) borg.notify_ai(TRUE) message_admins("[key_name_admin(user)] slaved [ADMIN_LOOKUPFLW(borg)] to the AI [ADMIN_LOOKUPFLW(newai)].") log_admin("[key_name(user)] slaved [key_name(borg)] to the AI [key_name(newai)].") @@ -207,7 +207,7 @@ borg.notify_ai(DISCONNECT) if(borg.shell) borg.undeploy() - borg.connected_ai = null + borg.set_connected_ai(null) message_admins("[key_name_admin(user)] freed [ADMIN_LOOKUPFLW(borg)] from being slaved to an AI.") log_admin("[key_name(user)] freed [key_name(borg)] from being slaved to an AI.") if (borg.lawupdate) diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 4df6f22686..66acc0f667 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -2,16 +2,16 @@ set category = "Special Verbs" set name = "Dsay" set hidden = 1 - if(!src.holder) - to_chat(src, "Only administrators may use this command.") + if(!holder) + to_chat(src, "Only administrators may use this command.", confidential = TRUE) return - if(!src.mob) + if(!mob) return if(prefs.muted & MUTE_DEADCHAT) - to_chat(src, "You cannot send DSAY messages (muted).") + to_chat(src, "You cannot send DSAY messages (muted).", confidential = TRUE) return - if (src.handle_spam_prevention(msg,MUTE_DEADCHAT)) + if (handle_spam_prevention(msg,MUTE_DEADCHAT)) return msg = copytext_char(sanitize(msg), 1, MAX_MESSAGE_LEN) @@ -23,14 +23,25 @@ var/rendered = "DEAD: [uppertext(holder.rank)]([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[emoji_parse(msg)]\"" + // var/rank_name = holder.rank + // var/admin_name = key + // if(holder.fakekey) + // rank_name = pick(strings("admin_nicknames.json", "ranks", "config")) please use this soon. + // admin_name = pick(strings("admin_nicknames.json", "names", "config")) + // var/rendered = "DEAD: [rank_name]([admin_name]) says, \"[emoji_parse(msg)]\"" + for (var/mob/M in GLOB.player_list) if(isnewplayer(M)) continue - if (M.stat == DEAD || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above - to_chat(M, rendered) + if (M.stat == DEAD || (M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above + to_chat(M, rendered, confidential = TRUE) SSblackbox.record_feedback("tally", "admin_verb", 1, "Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/get_dead_say() - var/msg = input(src, null, "dsay \"text\"") as text + var/msg = input(src, null, "dsay \"text\"") as text|null + + if (isnull(msg)) + return + dsay(msg) diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index 21a722d32f..4cbb0214f7 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -31,5 +31,5 @@ src << ftp(file(path)) else return - to_chat(src, "Attempting to send [path], this may take a fair few minutes if the file is very large.") - return \ No newline at end of file + to_chat(src, "Attempting to send [path], this may take a fair few minutes if the file is very large.", confidential = TRUE) + return diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 35ab3927d4..0dfee4c38c 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -205,15 +205,15 @@ GLOBAL_LIST_EMPTY(dirty_vars) set name = "Debug verbs - Enable" if(!check_rights(R_DEBUG)) return - verbs -= /client/proc/enable_debug_verbs - verbs.Add(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping) + remove_verb(src, /client/proc/enable_debug_verbs) + add_verb(src, list(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping)) SSblackbox.record_feedback("tally", "admin_verb", 1, "Enable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/disable_debug_verbs() set category = "Debug" set name = "Debug verbs - Disable" - verbs.Remove(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping) - verbs += /client/proc/enable_debug_verbs + remove_verb(src, list(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping)) + add_verb(src, /client/proc/enable_debug_verbs) SSblackbox.record_feedback("tally", "admin_verb", 1, "Disable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/count_objects_on_z_level() diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index e7b9342645..fc2ba55f54 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -34,9 +34,7 @@ for(var/mob/M in GLOB.player_list) if(M.client.prefs.toggles & SOUND_MIDI) - var/user_vol = M.client.chatOutput.adminMusicVolume - if(user_vol) - admin_sound.volume = vol * (user_vol / 100) + admin_sound.volume = vol * M.client.admin_music_volume SEND_SOUND(M, admin_sound) admin_sound.volume = vol @@ -69,7 +67,7 @@ if(istext(web_sound_input)) var/web_sound_url = "" var/stop_web_sounds = FALSE - var/pitch + var/list/music_extra_data = list() if(length(web_sound_input)) web_sound_input = trim(web_sound_input) @@ -97,11 +95,10 @@ var/webpage_url = title if (data["webpage_url"]) webpage_url = "[title]" - - var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num - if(!freq) - freq = 1 - pitch = freq + music_extra_data["start"] = data["start_time"] + music_extra_data["end"] = data["end_time"] + music_extra_data["link"] = data["webpage_url"] + music_extra_data["title"] = data["title"] var/res = alert(usr, "Show the title of and link to this song to the players?\n[title]",, "No", "Yes", "Cancel") switch(res) @@ -130,11 +127,11 @@ for(var/m in GLOB.player_list) var/mob/M = m var/client/C = M.client - if((C.prefs.toggles & SOUND_MIDI) && C.chatOutput && !C.chatOutput.broken && C.chatOutput.loaded) + if(C.prefs.toggles & SOUND_MIDI) if(!stop_web_sounds) - C.chatOutput.sendMusic(web_sound_url, pitch) + C.tgui_panel?.play_music(web_sound_url, music_extra_data) else - C.chatOutput.stopMusic() + C.tgui_panel?.stop_music() SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Internet Sound") @@ -144,7 +141,7 @@ if(!check_rights(R_SOUNDS)) return - var/web_sound_input = input("Enter content stream URL (fetch this from local youtube-dl!)", "Play Internet Sound via direct URL") as text|null + var/web_sound_input = input("Enter content stream URL (must be a direct link)", "Play Internet Sound via direct URL") as text|null if(istext(web_sound_input)) if(!length(web_sound_input)) log_admin("[key_name(src)] stopped web sound") @@ -152,34 +149,37 @@ var/mob/M for(var/i in GLOB.player_list) M = i - M?.client?.chatOutput?.stopMusic() + M?.client?.tgui_panel?.stop_music() return - else - if(web_sound_input && !findtext(web_sound_input, GLOB.is_http_protocol)) - to_chat(src, "BLOCKED: Content URL not using http(s) protocol") - return - var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num - if(isnull(freq)) - return - if(!freq) - freq = 1 - SSblackbox.record_feedback("nested tally", "played_url", 1, list("[ckey]", "[web_sound_input]")) - var/logstr = "[key_name(src)] played web sound at freq [freq]: [web_sound_input]" - log_admin(logstr) - message_admins(logstr) - var/mob/M - var/client/C - var/datum/chatOutput/O - for(var/i in GLOB.player_list) - M = i - C = M.client - if(!(C?.prefs?.toggles & SOUND_MIDI)) - continue - O = C.chatOutput - if(!O || O.broken || !O.loaded) - continue - O.sendMusic(web_sound_input, freq) - SSblackbox.record_feedback("tally", "admin_verb", 1, "Manual Play Internet Sound") + + var/list/music_extra_data = list() + web_sound_input = trim(web_sound_input) + if(web_sound_input && (findtext(web_sound_input, ":") && !findtext(web_sound_input, GLOB.is_http_protocol))) + to_chat(src, "Non-http(s) URIs are not allowed.", confidential = TRUE) + return + + var/list/explode = splittext(web_sound_input, "/") //if url=="https://fixthisshit.com/pogchamp.ogg"then title="pogchamp.ogg" + var/title = "[explode[explode.len]]" + + if(!findtext(title, ".mp3") && !findtext(title, ".mp4")) // IE sucks. + to_chat(src, "The format is not .mp3/.mp4, IE 8 and above can only support the .mp3/.mp4 format, the music might not play.", confidential = TRUE) + + if(length(title) > 50) //kev no. + title = "Unknown.mp3" + + music_extra_data["title"] = title + + SSblackbox.record_feedback("nested tally", "played_url", 1, list("[ckey]", "[web_sound_input]")) + log_admin("[key_name(src)] played web sound: [web_sound_input]") + message_admins("[key_name(src)] played web sound: [web_sound_input]") + + for(var/m in GLOB.player_list) + var/mob/M = m + var/client/C = M.client + if(C.prefs.toggles & SOUND_MIDI) + C.tgui_panel?.play_music(web_sound_input, music_extra_data) + + SSblackbox.record_feedback("tally", "admin_verb", 1, "Manual Play Internet Sound") /client/proc/set_round_end_sound(S as sound) set category = "Fun" @@ -193,42 +193,6 @@ message_admins("[key_name_admin(src)] set the round end sound to [S]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Round End Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/play_web_sound_manual() - set category = "Fun" - set name = "Manual Play Internet Sound" - if(!check_rights(R_SOUNDS)) - return - - var/web_sound_input = input("Enter youtube-dl fetched content URL (supported sites only, leave blank to stop playing)", "Send youtube-dl media link") as text|null - if(!istext(web_sound_input)) - return - web_sound_input = trim(web_sound_input) - if(!length(web_sound_input)) - log_admin("[key_name(src)] stopped web sound") - message_admins("[key_name(src)] stopped web sound") - for(var/m in GLOB.player_list) - var/mob/M = m - var/client/C = M.client - if((C.prefs.toggles & SOUND_MIDI) && C.chatOutput && !C.chatOutput.broken && C.chatOutput.loaded) - C.chatOutput.stopMusic() - return - var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num - if(!freq) - return - if(web_sound_input && !findtext(web_sound_input, GLOB.is_http_protocol)) - to_chat(src, "BLOCKED: Content URL not using http(s) protocol") - to_chat(src, "The media provider returned a content URL that isn't using the HTTP or HTTPS protocol") - return - - SSblackbox.record_feedback("nested tally", "played_url_manual", 1, list("[ckey]", "[web_sound_input]")) - log_admin("[key_name(src)] manually played web sound: [web_sound_input]") - message_admins("[key_name(src)] manually played web sound: HREF") - for(var/m in GLOB.player_list) - var/mob/M = m - var/client/C = M.client - if((C.prefs.toggles & SOUND_MIDI) && C.chatOutput && !C.chatOutput.broken && C.chatOutput.loaded) - C.chatOutput.sendMusic(web_sound_input, freq) - /client/proc/stop_sounds() set category = "Debug" set name = "Stop All Playing Sounds" @@ -238,9 +202,7 @@ log_admin("[key_name(src)] stopped all currently playing sounds.") message_admins("[key_name_admin(src)] stopped all currently playing sounds.") for(var/mob/M in GLOB.player_list) - if(M.client) - SEND_SOUND(M, sound(null)) - var/client/C = M.client - if(C && C.chatOutput && !C.chatOutput.broken && C.chatOutput.loaded) - C.chatOutput.stopMusic() + SEND_SOUND(M, sound(null)) + var/client/C = M.client + C?.tgui_panel?.stop_music() SSblackbox.record_feedback("tally", "admin_verb", 1, "Stop All Playing Sounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm index 445de4c40f..ee4d12656a 100644 --- a/code/modules/admin/verbs/possess.dm +++ b/code/modules/admin/verbs/possess.dm @@ -48,6 +48,6 @@ set desc = "Give this guy possess/release verbs" set category = "Debug" set name = "Give Possessing Verbs" - M.verbs += /proc/possess - M.verbs += /proc/release + add_verb(M, /proc/possess) + add_verb(M, /proc/release) SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Possessing Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 5997558c60..13f91ff79f 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -646,23 +646,14 @@ Traitors and the like can also be revived with the previous role mostly intact. if(!check_rights(R_ADMIN)) return - var/heavy = input("Range of heavy pulse.", text("Input")) as num|null - if(heavy == null) - return - var/light = input("Range of light pulse.", text("Input")) as num|null - if(light == null) + var/range = input("Range.", text("Input")) as num|null + if(!range) return + log_admin("[key_name(usr)] created an EM Pulse - log below") //because we'll just log the empulse itself + message_admins("[key_name_admin(usr)] created an EM Pulse at [AREACOORD(O)] with range [range]") + empulse_using_range(O, range, TRUE) //its details get shown too - if (heavy || light) - - empulse(O, heavy, light) - log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at [AREACOORD(O)]") - message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at [AREACOORD(O)]") - SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - return - else - return + SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_gib(mob/M in GLOB.mob_list) set category = "Special Verbs" diff --git a/code/modules/admin/view_variables/mass_edit_variables.dm b/code/modules/admin/view_variables/mass_edit_variables.dm index 4e78e1aed7..a498868436 100644 --- a/code/modules/admin/view_variables/mass_edit_variables.dm +++ b/code/modules/admin/view_variables/mass_edit_variables.dm @@ -38,7 +38,7 @@ var/var_value = O.vars[variable] if(variable in GLOB.VVckey_edit) - to_chat(src, "It's forbidden to mass-modify ckeys. It'll crash everyone's client you dummy.") + to_chat(src, "It's forbidden to mass-modify ckeys. It'll crash everyone's client you dummy.", confidential = TRUE) return if(variable in GLOB.VVlocked) if(!check_rights(R_DEBUG)) @@ -56,11 +56,11 @@ default = vv_get_class(variable, var_value) if(isnull(default)) - to_chat(src, "Unable to determine variable type.") + to_chat(src, "Unable to determine variable type.", confidential = TRUE) else - to_chat(src, "Variable appears to be [uppertext(default)].") + to_chat(src, "Variable appears to be [uppertext(default)].", confidential = TRUE) - to_chat(src, "Variable contains: [var_value]") + to_chat(src, "Variable contains: [var_value]", confidential = TRUE) if(default == VV_NUM) var/dir_text = "" @@ -75,7 +75,7 @@ dir_text += "WEST" if(dir_text) - to_chat(src, "If a direction, direction is: [dir_text]") + to_chat(src, "If a direction, direction is: [dir_text]", confidential = TRUE) var/value = vv_get_value(default_class = default) var/new_value = value["value"] @@ -97,9 +97,9 @@ switch(class) if(VV_RESTORE_DEFAULT) - to_chat(src, "Finding items...") + to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") + to_chat(src, "Changing [items.len] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -123,9 +123,9 @@ for(var/V in varsvars) new_value = replacetext(new_value,"\[[V]]","[O.vars[V]]") - to_chat(src, "Finding items...") + to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") + to_chat(src, "Changing [items.len] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -151,9 +151,9 @@ many = FALSE var/type = value["type"] - to_chat(src, "Finding items...") + to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") + to_chat(src, "Changing [items.len] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -169,9 +169,9 @@ CHECK_TICK else - to_chat(src, "Finding items...") + to_chat(src, "Finding items...", confidential = TRUE) var/list/items = get_all_of_type(O.type, method) - to_chat(src, "Changing [items.len] items...") + to_chat(src, "Changing [items.len] items...", confidential = TRUE) for(var/thing in items) if (!thing) continue @@ -185,20 +185,20 @@ var/count = rejected+accepted if (!count) - to_chat(src, "No objects found") + to_chat(src, "No objects found", confidential = TRUE) return if (!accepted) - to_chat(src, "Every object rejected your edit") + to_chat(src, "Every object rejected your edit", confidential = TRUE) return if (rejected) - to_chat(src, "[rejected] out of [count] objects rejected your edit") + to_chat(src, "[rejected] out of [count] objects rejected your edit", confidential = TRUE) log_world("### MassVarEdit by [src]: [O.type] (A/R [accepted]/[rejected]) [variable]=[html_encode("[O.vars[variable]]")]([list2params(value)])") log_admin("[key_name(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") //not using global lists as vv is a debug function and debug functions should rely on as less things as possible. -/proc/get_all_of_type(var/T, subtypes = TRUE) +/proc/get_all_of_type(T, subtypes = TRUE) var/list/typecache = list() typecache[T] = 1 if (subtypes) @@ -253,7 +253,7 @@ CHECK_TICK else if (ispath(T, /client)) - for(var/client/thing in world) + for(var/client/thing in GLOB.clients) if (typecache[thing.type]) . += thing CHECK_TICK diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm index 5f80b3a5e4..a8871a6467 100644 --- a/code/modules/admin/view_variables/modify_variables.dm +++ b/code/modules/admin/view_variables/modify_variables.dm @@ -17,7 +17,7 @@ GLOBAL_PROTECT(VVpixelmovement) //FALSE = no subtypes, strict exact type pathing (or the type doesn't have subtypes) //TRUE = Yes subtypes //NULL = User cancelled at the prompt or invalid type given -/client/proc/vv_subtype_prompt(var/type) +/client/proc/vv_subtype_prompt(type) if (!ispath(type)) return var/list/subtypes = subtypesof(type) @@ -102,7 +102,7 @@ GLOBAL_PROTECT(VVpixelmovement) L[var_value] = mod_list_add_ass(O) //hehe if (O) if (O.vv_edit_var(objectvar, L) == FALSE) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: ADDED=[var_value]") log_admin("[key_name(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") @@ -112,7 +112,7 @@ GLOBAL_PROTECT(VVpixelmovement) if(!check_rights(R_VAREDIT)) return if(!istype(L, /list)) - to_chat(src, "Not a List.") + to_chat(src, "Not a List.", confidential = TRUE) return if(L.len > 1000) @@ -121,7 +121,6 @@ GLOBAL_PROTECT(VVpixelmovement) return var/is_normal_list = IS_NORMAL_LIST(L) - var/list/names = list() for (var/i in 1 to L.len) var/key = L[i] @@ -145,7 +144,7 @@ GLOBAL_PROTECT(VVpixelmovement) L = L.Copy() listclearnulls(L) if (!O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR NULLS") log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR NULLS") @@ -155,7 +154,7 @@ GLOBAL_PROTECT(VVpixelmovement) if(variable == "(CLEAR DUPES)") L = uniqueList(L) if (!O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return log_world("### ListVarEdit by [src]: [O.type] [objectvar]: CLEAR DUPES") log_admin("[key_name(src)] modified [original_name]'s [objectvar]: CLEAR DUPES") @@ -165,7 +164,7 @@ GLOBAL_PROTECT(VVpixelmovement) if(variable == "(SHUFFLE)") L = shuffle(L) if (!O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return log_world("### ListVarEdit by [src]: [O.type] [objectvar]: SHUFFLE") log_admin("[key_name(src)] modified [original_name]'s [objectvar]: SHUFFLE") @@ -202,9 +201,9 @@ GLOBAL_PROTECT(VVpixelmovement) default = vv_get_class(objectvar, variable) - to_chat(src, "Variable appears to be [uppertext(default)].") + to_chat(src, "Variable appears to be [uppertext(default)].", confidential = TRUE) - to_chat(src, "Variable contains: [variable]") + to_chat(src, "Variable contains: [variable]", confidential = TRUE) if(default == VV_NUM) var/dir_text = "" @@ -220,7 +219,7 @@ GLOBAL_PROTECT(VVpixelmovement) dir_text += "WEST" if(dir_text) - to_chat(usr, "If a direction, direction is: [dir_text]") + to_chat(usr, "If a direction, direction is: [dir_text]", confidential = TRUE) var/original_var = variable @@ -248,7 +247,7 @@ GLOBAL_PROTECT(VVpixelmovement) L.Cut(index, index+1) if (O) if (O.vv_edit_var(objectvar, L)) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return log_world("### ListVarEdit by [src]: [O.type] [objectvar]: REMOVED=[html_encode("[original_var]")]") log_admin("[key_name(src)] modified [original_name]'s [objectvar]: REMOVED=[original_var]") @@ -260,6 +259,7 @@ GLOBAL_PROTECT(VVpixelmovement) for(var/V in varsvars) new_var = replacetext(new_var,"\[[V]]","[O.vars[V]]") + if(is_normal_list) if(assoc) L[assoc_key] = new_var @@ -269,7 +269,7 @@ GLOBAL_PROTECT(VVpixelmovement) L[new_var] = old_assoc_value if (O) if (O.vv_edit_var(objectvar, L) == FALSE) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return log_world("### ListVarEdit by [src]: [(O ? O.type : "/list")] [objectvar]: [original_var]=[new_var]") log_admin("[key_name(src)] modified [original_name]'s [objectvar]: [original_var]=[new_var]") @@ -297,7 +297,7 @@ GLOBAL_PROTECT(VVpixelmovement) if(param_var_name) if(!(param_var_name in O.vars)) - to_chat(src, "A variable with this name ([param_var_name]) doesn't exist in this datum ([O])") + to_chat(src, "A variable with this name ([param_var_name]) doesn't exist in this datum ([O])", confidential = TRUE) return variable = param_var_name @@ -322,11 +322,11 @@ GLOBAL_PROTECT(VVpixelmovement) var/default = vv_get_class(variable, var_value) if(isnull(default)) - to_chat(src, "Unable to determine variable type.") + to_chat(src, "Unable to determine variable type.", confidential = TRUE) else - to_chat(src, "Variable appears to be [uppertext(default)].") + to_chat(src, "Variable appears to be [uppertext(default)].", confidential = TRUE) - to_chat(src, "Variable contains: [var_value]") + to_chat(src, "Variable contains: [var_value]", confidential = TRUE) if(default == VV_NUM) var/dir_text = "" @@ -341,7 +341,7 @@ GLOBAL_PROTECT(VVpixelmovement) dir_text += "WEST" if(dir_text) - to_chat(src, "If a direction, direction is: [dir_text]") + to_chat(src, "If a direction, direction is: [dir_text]", confidential = TRUE) if(autodetect_class && default != VV_NULL) if (default == VV_TEXT) @@ -378,7 +378,7 @@ GLOBAL_PROTECT(VVpixelmovement) if (O.vv_edit_var(variable, var_new) == FALSE) - to_chat(src, "Your edit was rejected by the object.") + to_chat(src, "Your edit was rejected by the object.", confidential = TRUE) return vv_update_display(O, "varedited", VV_MSG_EDITED) log_world("### VarEdit by [key_name(src)]: [O.type] [variable]=[var_value] => [var_new]") diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm index 626e75fa10..9f61781f01 100644 --- a/code/modules/admin/view_variables/topic.dm +++ b/code/modules/admin/view_variables/topic.dm @@ -25,7 +25,7 @@ var/mob/M = locate(href_list["rename"]) in GLOB.mob_list if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") + to_chat(usr, "This can only be used on instances of type /mob", confidential = TRUE) return var/new_name = stripped_input(usr,"What would you like to name this mob?","Input a name",M.real_name,MAX_NAME_LEN) @@ -43,7 +43,7 @@ var/atom/A = locate(href_list["rotatedatum"]) if(!istype(A)) - to_chat(usr, "This can only be done to instances of type /atom") + to_chat(usr, "This can only be done to instances of type /atom", confidential = TRUE) return switch(href_list["rotatedir"]) @@ -60,13 +60,13 @@ var/mob/living/carbon/monkey/Mo = locate(href_list["makehuman"]) in GLOB.mob_list if(!istype(Mo)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/monkey") + to_chat(usr, "This can only be done to instances of type /mob/living/carbon/monkey", confidential = TRUE) return if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return if(!Mo) - to_chat(usr, "Mob doesn't exist anymore") + to_chat(usr, "Mob doesn't exist anymore", confidential = TRUE) return holder.Topic(href, list("humanone"=href_list["makehuman"])) @@ -80,10 +80,13 @@ var/Text = href_list["adjustDamage"] - var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num + var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num|null + + if (isnull(amount)) + return if(!L) - to_chat(usr, "Mob doesn't exist anymore") + to_chat(usr, "Mob doesn't exist anymore", confidential = TRUE) return var/newamt @@ -110,7 +113,7 @@ L.adjustStaminaLoss(amount) newamt = L.getStaminaLoss() else - to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]") + to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]", confidential = TRUE) return if(amount != 0) @@ -124,5 +127,5 @@ //Finally, refresh if something modified the list. if(href_list["datumrefresh"]) var/datum/DAT = locate(href_list["datumrefresh"]) - if(istype(DAT, /datum) || istype(DAT, /client)) + if(istype(DAT, /datum) || istype(DAT, /client) || islist(DAT)) debug_variables(DAT) diff --git a/code/modules/admin/view_variables/topic_basic.dm b/code/modules/admin/view_variables/topic_basic.dm index 9ee7103562..b5d7632515 100644 --- a/code/modules/admin/view_variables/topic_basic.dm +++ b/code/modules/admin/view_variables/topic_basic.dm @@ -34,11 +34,11 @@ if (!C) return if(!target) - to_chat(usr, "The object you tried to expose to [C] no longer exists (nulled or hard-deled)") + to_chat(usr, "The object you tried to expose to [C] no longer exists (nulled or hard-deled)", confidential = TRUE) return message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a VV window") log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [target]") - to_chat(C, "[holder.fakekey ? "an Administrator" : "[usr.client.key]"] has granted you access to view a View Variables window") + to_chat(C, "[holder.fakekey ? "an Administrator" : "[usr.client.key]"] has granted you access to view a View Variables window", confidential = TRUE) C.debug_variables(target) if(check_rights(R_DEBUG)) if(href_list[VV_HK_DELETE]) @@ -46,31 +46,33 @@ if (isturf(src)) // show the turf that took its place usr.client.debug_variables(src) return - #ifdef REFERENCE_TRACKING - if(href_list[VV_HK_VIEW_REFERENCES]) - var/datum/D = locate(href_list[VV_HK_TARGET]) - if(!D) - to_chat(usr, "Unable to locate item.") + + #ifdef REFERENCE_TRACKING //people with debug can only access this putnam! + if(href_list[VV_HK_VIEW_REFERENCES]) + var/datum/D = locate(href_list[VV_HK_TARGET]) + if(!D) + to_chat(usr, "Unable to locate item.") + return + usr.client.holder.view_refs(target) return - usr.client.holder.view_refs(target) - return - #endif + #endif + if(href_list[VV_HK_MARK]) usr.client.mark_datum(target) if(href_list[VV_HK_ADDCOMPONENT]) if(!check_rights(NONE)) return var/list/names = list() - var/list/componentsubtypes = subtypesof(/datum/component) + var/list/componentsubtypes = sortList(subtypesof(/datum/component), /proc/cmp_typepaths_asc) names += "---Components---" names += componentsubtypes names += "---Elements---" - names += subtypesof(/datum/element) + names += sortList(subtypesof(/datum/element), /proc/cmp_typepaths_asc) var/result = input(usr, "Choose a component/element to add","better know what ur fuckin doin pal") as null|anything in names if(!usr || !result || result == "---Components---" || result == "---Elements---") return if(QDELETED(src)) - to_chat(usr, "That thing doesn't exist anymore!") + to_chat(usr, "That thing doesn't exist anymore!", confidential = TRUE) return var/list/lst = get_callproc_args() if(!lst) @@ -83,7 +85,7 @@ else datumname = "element" target._AddElement(lst) - log_admin("[key_name(usr)] has added [result] [datumname] to [key_name(src)].") - message_admins("[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(src)].") + log_admin("[key_name(usr)] has added [result] [datumname] to [key_name(target)].") + message_admins("[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(target)].") if(href_list[VV_HK_CALLPROC]) usr.client.callproc_datum(target) diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm index a4dff725f7..3851008d86 100644 --- a/code/modules/admin/view_variables/view_variables.dm +++ b/code/modules/admin/view_variables/view_variables.dm @@ -1,4 +1,3 @@ - /client/proc/debug_variables(datum/D in world) set category = "Debug" set name = "View Variables" @@ -6,7 +5,7 @@ var/static/cookieoffset = rand(1, 9999) //to force cookies to reset after the round. if(!usr.client || !usr.client.holder) //This is usr because admins can call the proc on other clients, even if they're not admins, to show them VVs. - to_chat(usr, "You need to be an administrator to access this.") + to_chat(usr, "You need to be an administrator to access this.", confidential = TRUE) return if(!D) @@ -26,7 +25,6 @@ if(istype(D, /atom)) sprite = getFlatIcon(D) - hash = md5(sprite) if(sprite) hash = md5(sprite) src << browse_rsc(sprite, "vv[hash].png") @@ -97,7 +95,7 @@ [title] - + - \ No newline at end of file + diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 2b43319904..0c6ca13e86 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -1,6 +1,6 @@ /turf //used for temperature calculations - var/thermal_conductivity = 0.05 + var/thermal_conductivity = 0.005 var/heat_capacity = 1 var/temperature_archived @@ -270,7 +270,7 @@ /turf/proc/super_conduct() var/conductivity_directions = conductivity_directions() - + archive() if(conductivity_directions) //Conduct with tiles around me for(var/direction in GLOB.cardinals) @@ -331,6 +331,7 @@ var/heat = thermal_conductivity*delta_temperature* \ (heat_capacity*HEAT_CAPACITY_VACUUM/(heat_capacity+HEAT_CAPACITY_VACUUM)) temperature -= heat/heat_capacity + temperature = max(temperature,T0C) //otherwise we just sorta get stuck at super cold temps forever /turf/open/proc/temperature_share_open_to_solid(turf/sharer) sharer.temperature = air.temperature_share(null, sharer.thermal_conductivity, sharer.temperature, sharer.heat_capacity) @@ -344,3 +345,5 @@ temperature -= heat/heat_capacity sharer.temperature += heat/sharer.heat_capacity + temperature = max(temperature,T0C) + sharer.temperature = max(sharer.temperature,T0C) diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index e86b249be6..3cc597ec31 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -188,7 +188,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) //Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length //Returns: amount of gas exchanged (+ if sharer received) -/datum/gas_mixture/proc/temperature_share(datum/gas_mixture/sharer, conduction_coefficient) +/datum/gas_mixture/proc/temperature_share(datum/gas_mixture/sharer, conduction_coefficient,temperature=null,heat_capacity=null) //Performs temperature sharing calculations (via conduction) between two gas_mixtures assuming only 1 boundary length //Returns: new temperature of the sharer @@ -196,7 +196,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) //Compares sample to self to see if within acceptable ranges that group processing may be enabled //Returns: a string indicating what check failed, or "" if check passes -/datum/gas_mixture/proc/react(turf/open/dump_location) +/datum/gas_mixture/proc/react(datum/holder) //Performs various reactions such as combustion or fusion (LOL) //Returns: 1 if any reaction took place; 0 otherwise @@ -243,7 +243,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) set_moles(path, text2num(gas[id])) archive() return 1 - +/* /datum/gas_mixture/react(datum/holder) . = NO_REACTION if(!total_moles()) @@ -291,7 +291,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) . |= reaction.react(src, holder) if (. & STOP_REACTIONS) break - +*/ //Takes the amount of the gas you want to PP as an argument //So I don't have to do some hacky switches/defines/magic strings //eg: diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index c7ffc51458..fa5641254e 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -186,6 +186,20 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g moles_visible = MOLES_GAS_VISIBLE * 60 rarity = 250 +/datum/gas/methane + id = "methane" + specific_heat = 30 + name = "Methane" + rarity = 320 + +/datum/gas/methyl_bromide + id = "methyl_bromide" + specific_heat = 42 + name = "Methyl Bromide" + dangerous = TRUE + rarity = 310 + + /obj/effect/overlay/gas icon = 'icons/effects/atmospherics.dmi' mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index c0f66be7de..7f073567c5 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -40,6 +40,9 @@ /datum/gas_reaction/proc/react(datum/gas_mixture/air, atom/location) return NO_REACTION +/datum/gas_reaction/proc/test() + return list("success" = TRUE) + /datum/gas_reaction/nobliumsupression priority = INFINITY name = "Hyper-Noblium Reaction Suppression" @@ -70,6 +73,8 @@ air.adjust_moles(/datum/gas/water_vapor,-MOLES_GAS_VISIBLE) . = REACTING +// no test cause it's entirely based on location + //tritium combustion: combustion of oxygen and tritium (treated as hydrocarbons). creates hotspots. exothermic /datum/gas_reaction/tritfire priority = -1 //fire should ALWAYS be last, but tritium fires happen before plasma fires @@ -126,6 +131,18 @@ return cached_results["fire"] ? REACTING : NO_REACTION +/datum/gas_reaction/tritfire/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/tritium,50) + G.set_moles(/datum/gas/oxygen,50) + G.set_temperature(500) + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(!G.reaction_results["fire"]) + return list("success" = FALSE, "message" = "Trit fires aren't setting fire results correctly!") + return ..() + //plasma combustion: combustion of oxygen and plasma (treated as hydrocarbons). creates hotspots. exothermic /datum/gas_reaction/plasmafire priority = -2 //fire should ALWAYS be last, but plasma fires happen after tritium fires @@ -198,6 +215,28 @@ return cached_results["fire"] ? REACTING : NO_REACTION +/datum/gas_reaction/plasmafire/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/plasma,50) + G.set_moles(/datum/gas/oxygen,50) + G.set_volume(1000) + G.set_temperature(500) + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(!G.reaction_results["fire"]) + return list("success" = FALSE, "message" = "Plasma fires aren't setting fire results correctly!") + if(!G.get_moles(/datum/gas/carbon_dioxide)) + return list("success" = FALSE, "message" = "Plasma fires aren't making CO2!") + G.clear() + G.set_moles(/datum/gas/plasma,10) + G.set_moles(/datum/gas/oxygen,1000) + G.set_temperature(500) + result = G.react() + if(!G.get_moles(/datum/gas/tritium)) + return list("success" = FALSE, "message" = "Plasma fires aren't making trit!") + return ..() + //fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again (and again, and again). Again! //Fusion Rework Counter: Please increment this if you make a major overhaul to this system again. //6 reworks @@ -236,7 +275,7 @@ for (var/gas_id in air.get_gases()) gas_power += (gas_fusion_powers[gas_id]*air.get_moles(gas_id)) var/instability = MODULUS((gas_power*INSTABILITY_GAS_POWER_FACTOR)**2,toroidal_size) //Instability effects how chaotic the behavior of the reaction is - cached_scan_results[id] = instability//used for analyzer feedback + cached_scan_results["fusion"] = instability//used for analyzer feedback var/plasma = (initial_plasma-FUSION_MOLE_THRESHOLD)/(scale_factor) //We have to scale the amounts of carbon and plasma down a significant amount in order to show the chaotic dynamics we want var/carbon = (initial_carbon-FUSION_MOLE_THRESHOLD)/(scale_factor) //We also subtract out the threshold amount to make it harder for fusion to burn itself out. @@ -282,6 +321,31 @@ air.set_temperature(clamp(((air.return_temperature()*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB,INFINITY)) return REACTING +/datum/gas_reaction/fusion/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/carbon_dioxide,300) + G.set_moles(/datum/gas/plasma,1000) + G.set_moles(/datum/gas/tritium,100.61) + G.set_moles(/datum/gas/nitryl,1) + G.set_temperature(15000) + G.set_volume(1000) + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(abs(G.analyzer_results["fusion"] - 3) > 0.0000001) + var/instability = G.analyzer_results["fusion"] + return list("success" = FALSE, "message" = "Fusion is not calculating analyzer results correctly, should be 3.000000045, is instead [instability]") + if(abs(G.get_moles(/datum/gas/plasma) - 850.616) > 0.5) + var/plas = G.get_moles(/datum/gas/plasma) + return list("success" = FALSE, "message" = "Fusion is not calculating plasma correctly, should be 850.616, is instead [plas]") + if(abs(G.get_moles(/datum/gas/carbon_dioxide) - 1699.384) > 0.5) + var/co2 = G.get_moles(/datum/gas/carbon_dioxide) + return list("success" = FALSE, "message" = "Fusion is not calculating co2 correctly, should be 1699.384, is instead [co2]") + if(abs(G.return_temperature() - 27600) > 200) // calculating this manually sucks dude + var/temp = G.return_temperature() + return list("success" = FALSE, "message" = "Fusion is not calculating temperature correctly, should be around 27600, is instead [temp]") + return ..() + /datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst. priority = 3 name = "Nitryl formation" @@ -313,6 +377,20 @@ air.set_temperature(max(((temperature*old_heat_capacity - energy_used)/new_heat_capacity),TCMB)) return REACTING +/datum/gas_reaction/nitrylformation/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/oxygen,30) + G.set_moles(/datum/gas/nitrogen,30) + G.set_moles(/datum/gas/nitrous_oxide,10) + G.set_volume(1000) + G.set_temperature(150000) + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(!G.get_moles(/datum/gas/nitryl) < 0.8) + return list("success" = FALSE, "message" = "Nitryl isn't being generated correctly!") + return ..() + /datum/gas_reaction/bzformation //Formation of BZ by combining plasma and tritium at low pressures. Exothermic. priority = 4 name = "BZ Gas formation" @@ -348,6 +426,19 @@ air.set_temperature(max(((temperature*old_heat_capacity + energy_released)/new_heat_capacity),TCMB)) return REACTING +/datum/gas_reaction/bzformation/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/plasma,15) + G.set_moles(/datum/gas/nitrous_oxide,15) + G.set_volume(1000) + G.set_temperature(10) + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(!G.get_moles(/datum/gas/bz) < 4) // efficiency is 4.0643 and bz generation == efficiency + return list("success" = FALSE, "message" = "Nitryl isn't being generated correctly!") + return ..() + /datum/gas_reaction/stimformation //Stimulum formation follows a strange pattern of how effective it will be at a given temperature, having some multiple peaks and some large dropoffs. Exo and endo thermic. priority = 5 name = "Stimulum formation" @@ -380,6 +471,23 @@ air.set_temperature(max(((air.return_temperature()*old_heat_capacity + stim_energy_change)/new_heat_capacity),TCMB)) return REACTING +/datum/gas_reaction/stimformation/test() + //above mentioned "strange pattern" is a basic quintic polynomial, it's fine, can calculate it manually + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/bz,30) + G.set_moles(/datum/gas/plasma,1000) + G.set_moles(/datum/gas/tritium,1000) + G.set_moles(/datum/gas/nitryl,1000) + G.set_volume(1000) + G.set_temperature(12998000) // yeah, really + + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(!G.get_moles(/datum/gas/stimulum) < 900) + return list("success" = FALSE, "message" = "Stimulum isn't being generated correctly!") + return ..() + /datum/gas_reaction/nobliumformation //Hyper-Noblium formation is extrememly endothermic, but requires high temperatures to start. Due to its high mass, hyper-nobelium uses large amounts of nitrogen and tritium. BZ can be used as a catalyst to make it less endothermic. priority = 6 name = "Hyper-Noblium condensation" @@ -408,6 +516,19 @@ if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) air.set_temperature(max(((air.return_temperature()*old_heat_capacity - energy_taken)/new_heat_capacity),TCMB)) +/datum/gas_reaction/nobliumformation/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/nitrogen,100) + G.set_moles(/datum/gas/tritium,500) + G.set_volume(1000) + G.set_temperature(5000000) // yeah, really + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + if(abs(G.thermal_energy() - 23000000000) > 1000000) // god i hate floating points + return list("success" = FALSE, "message" = "Hyper-nob formation isn't removing the right amount of heat! Should be 23,000,000,000, is instead [G.thermal_energy()]") + return ..() + /datum/gas_reaction/miaster //dry heat sterilization: clears out pathogens in the air priority = -10 //after all the heating from fires etc. is done @@ -433,3 +554,20 @@ //Possibly burning a bit of organic matter through maillard reaction, so a *tiny* bit more heat would be understandable air.set_temperature(air.return_temperature() + cleaned_air * 0.002) SSresearch.science_tech.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, cleaned_air*MIASMA_RESEARCH_AMOUNT)//Turns out the burning of miasma is kinda interesting to scientists + +/datum/gas_reaction/miaster/test() + var/datum/gas_mixture/G = new + G.set_moles(/datum/gas/miasma,1) + G.set_volume(1000) + G.set_temperature(450) + var/result = G.react() + if(result != REACTING) + return list("success" = FALSE, "message" = "Reaction didn't go at all!") + G.clear() + G.set_moles(/datum/gas/miasma,1) + G.set_temperature(450) + G.set_moles(/datum/gas/water_vapor,0.5) + result = G.react() + if(result != NO_REACTION) + return list("success" = FALSE, "message" = "Miasma sterilization not stopping due to water vapor correctly!") + return ..() diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 8316b29a24..a2a55ee6b1 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -97,7 +97,7 @@ /datum/gas/oxygen = new/datum/tlv(16, 19, 135, 140), // Partial pressure, kpa /datum/gas/nitrogen = new/datum/tlv(-1, -1, 1000, 1000), /datum/gas/carbon_dioxide = new/datum/tlv(-1, -1, 5, 10), - /datum/gas/miasma = new/datum/tlv/(-1, -1, 2, 5), + /datum/gas/miasma = new/datum/tlv(-1, -1, 2, 5), /datum/gas/plasma = new/datum/tlv/dangerous, /datum/gas/nitrous_oxide = new/datum/tlv/dangerous, /datum/gas/bz = new/datum/tlv/dangerous, @@ -106,7 +106,9 @@ /datum/gas/tritium = new/datum/tlv/dangerous, /datum/gas/stimulum = new/datum/tlv(-1, -1, 1000, 1000), // Stimulum has only positive effects /datum/gas/nitryl = new/datum/tlv/dangerous, - /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000) // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/methane = new/datum/tlv(-1, -1, 3, 6), + /datum/gas/methyl_bromide = new/datum/tlv/dangerous ) /obj/machinery/airalarm/server // No checks here. @@ -125,7 +127,9 @@ /datum/gas/tritium = new/datum/tlv/no_checks, /datum/gas/stimulum = new/datum/tlv/no_checks, /datum/gas/nitryl = new/datum/tlv/no_checks, - /datum/gas/pluoxium = new/datum/tlv/no_checks + /datum/gas/pluoxium = new/datum/tlv/no_checks, + /datum/gas/methane = new/datum/tlv/no_checks, + /datum/gas/methyl_bromide = new/datum/tlv/no_checks ) /obj/machinery/airalarm/kitchen_cold_room // Copypasta: to check temperatures. @@ -144,7 +148,9 @@ /datum/gas/tritium = new/datum/tlv/dangerous, /datum/gas/stimulum = new/datum/tlv(-1, -1, 1000, 1000), // Stimulum has only positive effects /datum/gas/nitryl = new/datum/tlv/dangerous, - /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000) // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/methane = new/datum/tlv(-1, -1, 3, 6), + /datum/gas/methyl_bromide = new/datum/tlv/dangerous ) /obj/machinery/airalarm/unlocked @@ -542,7 +548,9 @@ /datum/gas/tritium, /datum/gas/bz, /datum/gas/stimulum, - /datum/gas/pluoxium + /datum/gas/pluoxium, + /datum/gas/methane, + /datum/gas/methyl_bromide ), "scrubbing" = 1, "widenet" = 1, diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 098df67321..6c732e3ee1 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -206,7 +206,7 @@ . = other_airs + air if(null in .) stack_trace("[src]([REF(src)]) has one or more null gas mixtures, which may cause bugs. Null mixtures will not be considered in reconcile_air().") - return removeNullsFromList(.) + return listclearnulls(.) /datum/pipeline/proc/reconcile_air() var/list/datum/gas_mixture/GL = list() diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index c66aabd57f..0eebf22be4 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -50,7 +50,9 @@ "stimulum" = /obj/machinery/portable_atmospherics/canister/stimulum, "pluoxium" = /obj/machinery/portable_atmospherics/canister/pluoxium, "caution" = /obj/machinery/portable_atmospherics/canister, - "miasma" = /obj/machinery/portable_atmospherics/canister/miasma + "miasma" = /obj/machinery/portable_atmospherics/canister/miasma, + "methane" = /obj/machinery/portable_atmospherics/canister/methane, + "methyl bromide" = /obj/machinery/portable_atmospherics/canister/methyl_bromide ) /obj/machinery/portable_atmospherics/canister/interact(mob/user) @@ -62,7 +64,7 @@ /obj/machinery/portable_atmospherics/canister/nitrogen name = "n2 canister" - desc = "Nitrogen gas. Reportedly useful for something." + desc = "Nitrogen. Reportedly useful for something." icon_state = "red" gas_type = /datum/gas/nitrogen @@ -80,19 +82,19 @@ /obj/machinery/portable_atmospherics/canister/toxins name = "plasma canister" - desc = "Plasma gas. The reason YOU are here. Highly toxic." + desc = "Plasma. The reason YOU are here. Highly toxic." icon_state = "orange" gas_type = /datum/gas/plasma /obj/machinery/portable_atmospherics/canister/bz name = "\improper BZ canister" - desc = "BZ, a powerful hallucinogenic nerve agent." + desc = "BZ. A powerful hallucinogenic nerve agent." icon_state = "purple" gas_type = /datum/gas/bz /obj/machinery/portable_atmospherics/canister/nitrous_oxide name = "n2o canister" - desc = "Nitrous oxide gas. Known to cause drowsiness." + desc = "Nitrous oxide. Known to cause drowsiness." icon_state = "redws" gas_type = /datum/gas/nitrous_oxide @@ -115,7 +117,7 @@ /obj/machinery/portable_atmospherics/canister/nitryl name = "nitryl canister" - desc = "Nitryl gas. Feels great 'til the acid eats your lungs." + desc = "Nitryl. Feels great 'til the acid eats your lungs." icon_state = "brown" gas_type = /datum/gas/nitryl @@ -133,7 +135,7 @@ /obj/machinery/portable_atmospherics/canister/water_vapor name = "water vapor canister" - desc = "Water Vapor. We get it, you vape." + desc = "Water vapor. We get it, you vape." icon_state = "water_vapor" gas_type = /datum/gas/water_vapor filled = 1 @@ -145,6 +147,18 @@ gas_type = /datum/gas/miasma filled = 1 +/obj/machinery/portable_atmospherics/canister/methane + name = "methane canister" + desc = "Methane. The simplest of hydrocarbons. Non-toxic but highly flammable." + icon_state = "greyblackred" + gas_type = /datum/gas/methane + +/obj/machinery/portable_atmospherics/canister/methyl_bromide + name = "methyl bromide canister" + desc = "Methyl bromide. A potent toxin to most, essential for the Kharmaan to live." + icon_state = "purplecyan" + gas_type = /datum/gas/methyl_bromide + /obj/machinery/portable_atmospherics/canister/proc/get_time_left() if(timing) . = round(max(0, valve_timer - world.time) / 10, 1) diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index bdde8f0f22..2c9bcdc1a7 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -63,9 +63,9 @@ if(. & EMP_PROTECT_SELF) return if(is_operational()) - if(prob(50 / severity)) + if(prob(severity/2)) on = !on - if(prob(100 / severity)) + if(prob(severity)) direction = PUMP_OUT pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE) update_icon() @@ -80,7 +80,6 @@ else if(on && holding && direction == PUMP_OUT) investigate_log("[key_name(user)] started a transfer into [holding].", INVESTIGATE_ATMOS) - /obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index 7976ba641a..7fd50158ca 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -58,7 +58,7 @@ if(. & EMP_PROTECT_SELF) return if(is_operational()) - if(prob(50 / severity)) + if(prob(severity/3)) on = !on update_icon() diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 8476090f75..5540cd7529 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -11,15 +11,15 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /datum/gateway_destination var/name = "Unknown Destination" var/wait = 0 /// How long after roundstart this destination becomes active - var/enabled = TRUE /// If disabled, the destination won't be availible + var/enabled = TRUE /// If disabled, the destination won't be available var/hidden = FALSE /// Will not show on gateway controls at all. /* Can a gateway link to this destination right now. */ -/datum/gateway_destination/proc/is_availible() +/datum/gateway_destination/proc/is_available() return enabled && (world.time - SSticker.round_start_time >= wait) /* Returns user-friendly description why you can't connect to this destination, displayed in UI */ -/datum/gateway_destination/proc/get_availible_reason() +/datum/gateway_destination/proc/get_available_reason() . = "Unreachable" if(world.time - SSticker.round_start_time < wait) . = "Connection desynchronized. Recalibration in progress." @@ -52,8 +52,8 @@ GLOBAL_LIST_EMPTY(gateway_destinations) . = list() .["ref"] = REF(src) .["name"] = name - .["availible"] = is_availible() - .["reason"] = get_availible_reason() + .["available"] = is_available() + .["reason"] = get_available_reason() if(wait) .["timeout"] = max(1 - (wait - (world.time - SSticker.round_start_time)) / wait, 0) @@ -72,10 +72,10 @@ GLOBAL_LIST_EMPTY(gateway_destinations) if(target_gateway.target == deactivated.destination) target_gateway.deactivate() -/datum/gateway_destination/gateway/is_availible() +/datum/gateway_destination/gateway/is_available() return ..() && target_gateway.calibrated && !target_gateway.target && target_gateway.powered() -/datum/gateway_destination/gateway/get_availible_reason() +/datum/gateway_destination/gateway/get_available_reason() . = ..() if(!target_gateway.calibrated) . = "Exit gateway malfunction. Manual recalibration required." @@ -217,8 +217,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) target = D target.activate(destination) generate_bumper() - if(use_power == IDLE_POWER_USE) - use_power = ACTIVE_POWER_USE + use_power = ACTIVE_POWER_USE update_icon() /obj/machinery/gateway/proc/Transfer(atom/movable/AM) @@ -261,8 +260,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) if(!GLOB.the_gateway) to_chat(user,"Home gateway is not responding!") if(GLOB.the_gateway.target) - to_chat(user,"Home gateway already in use!") - return + GLOB.the_gateway.deactivate() //this will turn the home gateway off so that it's free for us to connect to activate(GLOB.the_gateway.destination) else deactivate() @@ -319,7 +317,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /obj/machinery/computer/gateway_control/proc/try_to_connect(datum/gateway_destination/D) if(!D || !G) return - if(!D.is_availible() || G.target) + if(!D.is_available() || G.target) return G.activate(D) diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 505b9a1edc..f13341faf3 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -105,7 +105,7 @@ if("Immortality") to_chat(user, "Your wish is granted, but at a terrible cost...") to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") - user.verbs += /mob/living/carbon/proc/immortality + add_verb(user, /mob/living/carbon/proc/immortality) user.set_species(/datum/species/shadow) if("To Kill") to_chat(user, "Your wish is granted, but at a terrible cost...") diff --git a/code/modules/cargo/packs/goodies.dm b/code/modules/cargo/packs/goodies.dm index 5d07e85bac..423d2fc743 100644 --- a/code/modules/cargo/packs/goodies.dm +++ b/code/modules/cargo/packs/goodies.dm @@ -52,8 +52,8 @@ cost = 300 contains = list(/obj/item/storage/toolbox/mechanical) -/datum/supply_pack/goody/electrical_toolbox // mostly just to water down coupon probability - name = "Mechanical Toolbox" +/datum/supply_pack/goody/electrical_toolbox + name = "Electrical Toolbox" desc = "A fully stocked electrical toolbox, for when you're too lazy to just print them out." cost = 300 contains = list(/obj/item/storage/toolbox/electrical) diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index c6728831eb..394b86bb81 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -13,6 +13,13 @@ //////////////////// Paperwork and Writing Supplies ////////////////////////// ////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/misc/anvil + name = "Anvil Crate" + desc = "An anvil in a crate, we had to dig this out of the old warehouse. It's got wheels on it so you can move it." + cost = 7500 + contains = list(/obj/structure/anvil/obtainable/basic) + /datum/supply_pack/misc/artsupply name = "Art Supplies" desc = "Make some happy little accidents with six canvasses, two easels, two boxes of crayons, and a rainbow crayon!" diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index fd6fee362d..125bfe2034 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -192,3 +192,49 @@ crate_type = /obj/structure/closet/crate/secure/science dangerous = TRUE +//////// RAW ANOMALY CORES + +/datum/supply_pack/science/raw_flux_anomaly + name = "Raw Flux Anomaly" + desc = "The raw core of a flux anomaly, ready to be implosion-compressed into a powerful artifact." + cost = 5000 + access = ACCESS_TOX + contains = list(/obj/item/raw_anomaly_core/flux) + crate_name = "raw flux anomaly" + crate_type = /obj/structure/closet/crate/secure/science + +/datum/supply_pack/science/raw_grav_anomaly + name = "Raw Gravitational Anomaly" + desc = "The raw core of a gravitational anomaly, ready to be implosion-compressed into a powerful artifact." + cost = 5000 + access = ACCESS_TOX + contains = list(/obj/item/raw_anomaly_core/grav) + crate_name = "raw pyro anomaly" + crate_type = /obj/structure/closet/crate/secure/science + +/datum/supply_pack/science/raw_vortex_anomaly + name = "Raw Vortex Anomaly" + desc = "The raw core of a vortex anomaly, ready to be implosion-compressed into a powerful artifact." + cost = 5000 + access = ACCESS_TOX + contains = list(/obj/item/raw_anomaly_core/vortex) + crate_name = "raw vortex anomaly" + crate_type = /obj/structure/closet/crate/secure/science + +/datum/supply_pack/science/raw_bluespace_anomaly + name = "Raw Bluespace Anomaly" + desc = "The raw core of a bluespace anomaly, ready to be implosion-compressed into a powerful artifact." + cost = 5000 + access = ACCESS_TOX + contains = list(/obj/item/raw_anomaly_core/bluespace) + crate_name = "raw bluespace anomaly" + crate_type = /obj/structure/closet/crate/secure/science + +/datum/supply_pack/science/raw_pyro_anomaly + name = "Raw Pyro Anomaly" + desc = "The raw core of a pyro anomaly, ready to be implosion-compressed into a powerful artifact." + cost = 5000 + access = ACCESS_TOX + contains = list(/obj/item/raw_anomaly_core/pyro) + crate_name = "raw pyro anomaly" + crate_type = /obj/structure/closet/crate/secure/science diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index ae48fddfb4..755665583a 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -7,6 +7,9 @@ //////////////// //ADMIN THINGS// //////////////// + /// hides the byond verb panel as we use our own custom version + show_verb_panel = FALSE + ///Contains admin info. Null if client is not an admin. var/datum/admins/holder = null var/datum/click_intercept = null // Needs to implement InterceptClickOn(user,params,atom) proc var/AI_Interact = 0 @@ -75,11 +78,12 @@ var/inprefs = FALSE var/list/topiclimiter + + ///Used for limiting the rate of clicks sends by the client to avoid abuse var/list/clicklimiter - var/datum/chatOutput/chatOutput - - var/list/credits //lazy list of all credit object bound to this client + ///lazy list of all credit object bound to this client + var/list/credits var/datum/player_details/player_details //these persist between logins/logouts during the same round. @@ -122,6 +126,23 @@ /// Messages currently seen by this client var/list/seen_messages + + /// datum wrapper for client view + var/datum/view_data/view_size + + /// our current tab + var/stat_tab + + /// whether our browser is ready or not yet + var/statbrowser_ready = FALSE + + /// list of all tabs + var/list/panel_tabs = list() + + /// list of tabs containing spells and abilities + var/list/spell_tabs = list() + /// list of tabs containing verbs + var/list/verb_tabs = list() ///A lazy list of atoms we've examined in the last EXAMINE_MORE_TIME (default 1.5) seconds, so that we will call [atom/proc/examine_more()] instead of [atom/proc/examine()] on them when examining var/list/recent_examines ///When was the last time we warned them about not cryoing without an ahelp, set to -5 minutes so that rounstart cryo still warns @@ -151,3 +172,4 @@ //world.time of when the crew manifest can be accessed var/crew_manifest_delay + diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index e7aa447840..45990cd21f 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -20,7 +20,9 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( When somebody clicks a link in game, this Topic is called first. It does the stuff in this proc and then is redirected to the Topic() proc for the src=[0xWhatever] (if specified in the link). ie locate(hsrc).Topic() + Such links can be spoofed. + Because of this certain things MUST be considered whenever adding a Topic() for something: - Can it be fed harmful values which could cause runtimes? - Is the Topic call an admin-only thing? @@ -38,7 +40,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( var/asset_cache_job if(href_list["asset_cache_confirm_arrival"]) asset_cache_job = asset_cache_confirm_arrival(href_list["asset_cache_confirm_arrival"]) - if(!asset_cache_job) + if (!asset_cache_job) return // Rate limiting @@ -100,7 +102,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( return // Tgui Topic middleware - if(!tgui_Topic(href_list)) + if(tgui_Topic(href_list)) return // Admin PM @@ -108,10 +110,9 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( cmd_admin_pm(href_list["priv_msg"],null) return - // CITADEL Start - Mentor PM + // Mentor PM (cit.) if (citadel_client_procs(href_list)) return - // CITADEL End switch(href_list["_src_"]) if("holder") @@ -119,7 +120,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if("usr") hsrc = mob if("mentor") // CITADEL - hsrc = mentor_datum // CITADEL END + hsrc = mentor_datum if("prefs") if (inprefs) return @@ -129,8 +130,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( return if("vars") return view_var_Topic(href,href_list,hsrc) - if("chat") - return chatOutput.Topic(href, href_list) switch(href_list["action"]) if("openLink") @@ -147,7 +146,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( to_chat(src, "Become a BYOND member to access member-perks and features, as well as support the engine that makes this game possible. Only 10 bucks for 3 months! Click Here to find out more.") return 0 return 1 - /* * Call back proc that should be checked in all paths where a client can send messages * @@ -210,14 +208,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( /////////// //CONNECT// /////////// -#if (PRELOAD_RSC == 0) -GLOBAL_LIST_EMPTY(external_rsc_urls) -#endif /client/New(TopicData) - world.SetConfig("APP/admin", ckey, "role=admin") //CITADEL EDIT - Allows admins to reboot in OOM situations + world.SetConfig("APP/admin", ckey, "role=admin") var/tdata = TopicData //save this for later use - chatOutput = new /datum/chatOutput(src) TopicData = null //Prevent calls to client.Topic from connect if(connection != "seeker" && connection != "web")//Invalid connection type. @@ -226,6 +220,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) GLOB.clients += src GLOB.directory[ckey] = src + // Instantiate tgui panel + tgui_panel = new(src) + GLOB.ahelp_tickets.ClientLogin(src) var/connecting_admin = FALSE //because de-admined admins connecting should be treated like admins. //Admin Authorisation @@ -240,7 +237,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) debug_tools_allowed = TRUE //END CITADEL EDIT else if(GLOB.deadmins[ckey]) - verbs += /client/proc/readmin + add_verb(src, /client/proc/readmin) connecting_admin = TRUE if(CONFIG_GET(flag/autoadmin)) if(!GLOB.admin_datums[ckey]) @@ -266,7 +263,6 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) new /datum/admins(localhost_rank, ckey, 1, 1) //preferences datum - also holds some persistent data for the client (because we may as well keep these datums to a minimum) prefs = GLOB.preferences_datums[ckey] - if(prefs) prefs.parent = src else @@ -276,10 +272,10 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) prefs.last_ip = address //these are gonna be used for banning prefs.last_id = computer_id //these are gonna be used for banning - fps = prefs.clientfps + fps = prefs.clientfps //(prefs.clientfps < 0) ? RECOMMENDED_FPS : prefs.clientfps if(fexists(roundend_report_file())) - verbs += /client/proc/show_previous_roundend_report + add_verb(src, /client/proc/show_previous_roundend_report) var/full_version = "[byond_version].[byond_build ? byond_build : "xxx"]" log_access("Login: [key_name(src)] from [address ? address : "localhost"]-[computer_id] || BYOND v[full_version]") @@ -301,22 +297,26 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) alert_mob_dupe_login = TRUE if(matches) if(C) - message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(C)].") - log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)].") + message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(C)].") + log_admin_private("Notice: [key_name(src)] has the same [matches] as [key_name(C)].") else - message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(C)] (no longer logged in). ") - log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)] (no longer logged in).") + message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(C)] (no longer logged in). ") + log_admin_private("Notice: [key_name(src)] has the same [matches] as [key_name(C)] (no longer logged in).") if(GLOB.player_details[ckey]) player_details = GLOB.player_details[ckey] player_details.byond_version = full_version else - player_details = new + player_details = new(ckey) player_details.byond_version = full_version GLOB.player_details[ckey] = player_details . = ..() //calls mob.Login() + // if (length(GLOB.stickybanadminexemptions)) + // GLOB.stickybanadminexemptions -= ckey + // if (!length(GLOB.stickybanadminexemptions)) + // restore_stickybans() if (byond_version >= 512) if (!byond_build || byond_build < 1386) @@ -336,7 +336,14 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) qdel(src) return - chatOutput.start() // Starts the chat + // if(SSinput.initialized) placed here on tg. + // set_macros() + // update_movement_keys() + + // Initialize tgui panel + tgui_panel.initialize() + src << browse(file('html/statbrowser.html'), "window=statbrowser") + if(alert_mob_dupe_login) spawn() @@ -347,12 +354,13 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) connection_timeofday = world.timeofday winset(src, null, "command=\".configure graphics-hwmode on\"") var/cev = CONFIG_GET(number/client_error_version) + var/ceb = CONFIG_GET(number/client_error_build) var/cwv = CONFIG_GET(number/client_warn_version) - if (byond_version < cev) //Out of date client. + if (byond_version < cev || (byond_version == cev && byond_build < ceb)) //Out of date client. to_chat(src, "Your version of BYOND is too old:") to_chat(src, CONFIG_GET(string/client_error_message)) - to_chat(src, "Your version: [byond_version]") - to_chat(src, "Required version: [cev] or later") + to_chat(src, "Your version: [byond_version].[byond_build]") + to_chat(src, "Required version: [cev].[ceb] or later") to_chat(src, "Visit BYOND's website to get the latest version of BYOND.") if (connecting_admin) to_chat(src, "Because you are an admin, you are being allowed to walk past this limitation, But it is still STRONGLY suggested you upgrade") @@ -464,6 +472,10 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) if (menuitem) menuitem.Load_checked(src) + // view_size = new(src, getScreenSize(prefs.widescreenpref)) + // view_size.resetFormat() + // view_size.setZoomMode() + // fit_viewport() Master.UpdateTickRate() /client/proc/ensure_keys_set() @@ -477,13 +489,17 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) /client/Del() if(!gc_destroyed) - Destroy() + Destroy() //Clean up signals and timers. return ..() /client/Destroy() + GLOB.clients -= src + GLOB.directory -= ckey + log_access("Logout: [key_name(src)]") + GLOB.ahelp_tickets.ClientLogout(src) + // SSserver_maint.UpdateHubStatus() if(credits) QDEL_LIST(credits) - log_access("Logout: [key_name(src)]") if(holder) adminGreet(1) holder.owner = null @@ -505,16 +521,13 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) ) send2irc("Server", "[cheesy_message] (No admins online)") - - GLOB.ahelp_tickets.ClientLogout(src) - GLOB.directory -= ckey - GLOB.clients -= src QDEL_LIST_ASSOC_VAL(char_render_holders) if(movingmob != null) movingmob.client_mobs_in_contents -= mob UNSETEMPTY(movingmob.client_mobs_in_contents) + // seen_messages = null Master.UpdateTickRate() - . = ..() + . = ..() //Even though we're going to be hard deleted there are still some things that want to know the destroy is happening return QDEL_HINT_HARDDEL_NOW /client/proc/set_client_age_from_db(connectiontopic) @@ -616,6 +629,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) var/datum/DBQuery/query_log_connection = SSdbcore.NewQuery("INSERT INTO `[format_table_name("connection_log")]` (`id`,`datetime`,`server_ip`,`server_port`,`round_id`,`ckey`,`ip`,`computerid`) VALUES(null,Now(),INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')),'[world.port]','[GLOB.round_id]','[sql_ckey]',INET_ATON('[sql_ip]'),'[sql_computerid]')") query_log_connection.Execute() qdel(query_log_connection) + + // SSserver_maint.UpdateHubStatus() + if(new_player) player_age = -1 . = player_age @@ -843,9 +859,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) /client/proc/add_verbs_from_config() if(CONFIG_GET(flag/see_own_notes)) - verbs += /client/proc/self_notes + add_verb(src, /client/proc/self_notes) if(CONFIG_GET(flag/use_exp_tracking)) - verbs += /client/proc/self_playtime + add_verb(src, /client/proc/self_playtime) #undef UPLOAD_LIMIT @@ -857,40 +873,31 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return inactivity return FALSE -//send resources to the client. It's here in its own proc so we can move it around easiliy if need be +/// Send resources to the client. +/// Sends both game resources and browser assets. /client/proc/send_resources() #if (PRELOAD_RSC == 0) var/static/next_external_rsc = 0 - if(GLOB.external_rsc_urls && GLOB.external_rsc_urls.len) - next_external_rsc = WRAP(next_external_rsc+1, 1, GLOB.external_rsc_urls.len+1) - preload_rsc = GLOB.external_rsc_urls[next_external_rsc] + var/list/external_rsc_urls = CONFIG_GET(keyed_list/external_rsc_urls) + if(length(external_rsc_urls)) + next_external_rsc = WRAP(next_external_rsc+1, 1, external_rsc_urls.len+1) + preload_rsc = external_rsc_urls[next_external_rsc] #endif - //get the common files - getFiles( - 'html/search.js', - 'html/panels.css', - 'html/browser/common.css', - 'html/browser/scannernew.css', - 'html/browser/playeroptions.css', - ) + spawn (10) //removing this spawn causes all clients to not get verbs. //load info on what assets the client has src << browse('code/modules/asset_cache/validate_assets.html', "window=asset_cache_browser") //Precache the client with all other assets slowly, so as to not block other browse() calls - getFilesSlow(src, SSassets.preload, register_asset = FALSE) - addtimer(CALLBACK(GLOBAL_PROC, /proc/getFilesSlow, src, SSassets.preload, FALSE), 5 SECONDS) + if (CONFIG_GET(flag/asset_simple_preload)) + addtimer(CALLBACK(SSassets.transport, /datum/asset_transport.proc/send_assets_slow, src, SSassets.transport.preload), 5 SECONDS) #if (PRELOAD_RSC == 0) for (var/name in GLOB.vox_sounds) var/file = GLOB.vox_sounds[name] Export("##action=load_rsc", file) stoplag() - for (var/name in GLOB.vox_sounds_male) - var/file = GLOB.vox_sounds_male[name] - Export("##action=load_rsc", file) - stoplag() #endif @@ -996,3 +1003,21 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) /client/proc/can_have_part(part_name) return prefs.pref_species.mutant_bodyparts[part_name] || (part_name in GLOB.unlocked_mutant_parts) + +/// compiles a full list of verbs and sends it to the browser +/client/proc/init_verbs() + if(IsAdminAdvancedProcCall()) + return + var/list/verblist = list() + verb_tabs.Cut() + for(var/thing in (verbs + mob?.verbs)) + var/procpath/verb_to_init = thing + if(!verb_to_init) + continue + if(verb_to_init.hidden) + continue + if(!istext(verb_to_init.category)) + continue + verb_tabs |= verb_to_init.category + verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name) + src << output("[url_encode(json_encode(verb_tabs))];[url_encode(json_encode(verblist))]", "statbrowser:init_verbs") diff --git a/code/modules/client/darkmode.dm b/code/modules/client/darkmode.dm deleted file mode 100644 index f806e5c964..0000000000 --- a/code/modules/client/darkmode.dm +++ /dev/null @@ -1,65 +0,0 @@ -//Darkmode preference by Kmc2000// - -/* -This lets you switch chat themes by using winset and CSS loading, you must relog to see this change (or rebuild your browseroutput datum) -Things to note: -If you change ANYTHING in interface/skin.dmf you need to change it here: -Format: -winset(src, "window as appears in skin.dmf after elem", "var to change = desired value") -How this works: -I've added a function to browseroutput.js which registers a cookie for darkmode and swaps the chat accordingly. You can find the button to do this under the "cog" icon next to the ping button (top right of chat) -This then swaps the window theme automatically -Thanks to spacemaniac and mcdonald for help with the JS side of this. -*/ - -/client/proc/force_white_theme() //There's no way round it. We're essentially changing the skin by hand. It's painful but it works, and is the way Lummox suggested. - //Main windows - winset(src, "infowindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "info", "background-color = [COLOR_WHITEMODE_BACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "browseroutput", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "outputwindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "mainwindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND]") - winset(src, "split", "background-color = [COLOR_WHITEMODE_BACKGROUND]") - //Buttons - winset(src, "changelog", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "rules", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "wiki", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "forum", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "github", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "report-issue", "background-color = [COLOR_WHITEMODE_ISSUE_BUTTON_BG];text-color = [COLOR_WHITEMODE_TEXT]") - //Status and verb tabs - winset(src, "output", "background-color = [COLOR_WHITEMODE_BACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "statwindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "stat", "background-color = [COLOR_WHITEMODE_BACKGROUND];tab-background-color = [COLOR_WHITEMODE_DARKBACKGROUND];\ - text-color = [COLOR_WHITEMODE_TEXT];tab-text-color = [COLOR_WHITEMODE_TEXT];\ - prefix-color = [COLOR_WHITEMODE_TEXT];suffix-color = [COLOR_WHITEMODE_TEXT]") - //Etc. - winset(src, "say", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "asset_cache_browser", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - winset(src, "tooltip", "background-color = [COLOR_WHITEMODE_BACKGROUND];text-color = [COLOR_WHITEMODE_TEXT]") - -/client/proc/force_dark_theme() //Inversely, if theyre using white theme and want to swap to the superior dark theme, let's get WINSET() ing - //Main windows - winset(src, "infowindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "info", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "browseroutput", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "outputwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "mainwindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND]") - winset(src, "split", "background-color = [COLOR_DARKMODE_BACKGROUND]") - //Buttons - winset(src, "changelog", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "rules", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "wiki", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "forum", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "github", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "report-issue", "background-color = [COLOR_DARKMODE_ISSUE_BUTTON_BG];text-color = [COLOR_DARKMODE_TEXT]") - //Status and verb tabs - winset(src, "output", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "statwindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "stat", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];tab-background-color = [COLOR_DARKMODE_BACKGROUND];\ - text-color = [COLOR_DARKMODE_TEXT];tab-text-color = [COLOR_DARKMODE_TEXT];\ - prefix-color = [COLOR_DARKMODE_TEXT];suffix-color = [COLOR_DARKMODE_TEXT]") - //Etc. - winset(src, "say", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "asset_cache_browser", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "tooltip", "background-color = [COLOR_DARKMODE_BACKGROUND];text-color = [COLOR_DARKMODE_TEXT]") \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 609733ffa7..0f26c38a91 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -8,6 +8,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/client/parent //doohickeys for savefiles var/path + var/vr_path var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used var/max_save_slots = 16 @@ -95,7 +96,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/facial_hair_color = "000000" //Facial hair color var/skin_tone = "caucasian1" //Skin color var/use_custom_skin_tone = FALSE - var/eye_color = "000000" //Eye color + var/left_eye_color = "000000" //Eye color + var/right_eye_color = "000000" + var/split_eye_colors = FALSE var/datum/species/pref_species = new /datum/species/human() //Mutant race var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", @@ -163,6 +166,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) ) var/custom_speech_verb = "default" //if your say_mod is to be something other than your races var/custom_tongue = "default" //if your tongue is to be something other than your races + var/modified_limbs = list() //prosthetic/amputated limbs + var/chosen_limb_id //body sprite selected to load for the users limbs, null means default, is sanitized when loaded /// Security record note section var/security_records @@ -246,6 +251,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) /// Which of the 5 persistent scar slots we randomly roll to load for this round, if enabled. Actually rolled in [/datum/preferences/proc/load_character(slot)] var/scars_index = 1 + var/hide_ckey = FALSE //pref for hiding if your ckey shows round-end or not + /datum/preferences/New(client/C) parent = C @@ -370,6 +377,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[medical_records]" else dat += "[TextPreview(medical_records)]...
    " + dat += "
    Hide ckey: [hide_ckey ? "Enabled" : "Disabled"]
    " dat += "
    " //Character Appearance @@ -425,12 +433,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Gender:[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
    " if(gender != NEUTER && pref_species.sexes) dat += "Body Model:[features["body_model"] == MALE ? "Masculine" : "Feminine"]
    " + dat += "Limb Modification:
    " + dat += "Modify Limbs
    " + for(var/modification in modified_limbs) + if(modified_limbs[modification][1] == LOADOUT_LIMB_PROSTHETIC) + dat += "[modification]: [modified_limbs[modification][2]]
    " + else + dat += "[modification]: [modified_limbs[modification][1]]
    " + dat += "
    " dat += "Species:[pref_species.name]
    " dat += "Custom Species Name:[custom_species ? custom_species : "None"]
    " dat += "Random Body:Randomize!
    " dat += "Always Random Body:[be_random_body ? "Yes" : "No"]
    " dat += "
    Cycle background:[bgstate]
    " - var/use_skintones = pref_species.use_skintones if(use_skintones) dat += APPEARANCE_CATEGORY_COLUMN @@ -460,15 +475,22 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Sprite Size: [features["body_size"]*100]%
    " if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits)) - if(!use_skintones && !mutant_colors) dat += APPEARANCE_CATEGORY_COLUMN - - dat += "

    Eye Color

    " - - dat += "    Change
    " - - dat += "" + if(left_eye_color != right_eye_color) + split_eye_colors = TRUE + dat += "

    Heterochromia

    " + dat += "
    [split_eye_colors ? "Enabled" : "Disabled"]" + if(!split_eye_colors) + dat += "

    Eye Color

    " + dat += "    Change" + dat += "" + else + dat += "

    Left Eye Color

    " + dat += "    Change" + dat += "

    Right Eye Color

    " + dat += "    Change
    " + dat += "" else if(use_skintones || mutant_colors) dat += "" @@ -521,6 +543,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 + if(length(pref_species.allowed_limb_ids)) + if(!chosen_limb_id || !(chosen_limb_id in pref_species.allowed_limb_ids)) + chosen_limb_id = pref_species.limbs_id || pref_species.id + dat += "

    Body sprite

    " + dat += "[chosen_limb_id]" + if(mutant_category) dat += "" mutant_category = 0 @@ -849,6 +877,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
    " dat += "

    Fetish content prefs

    " dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"]
    " + dat += "Genital examine text:[(cit_toggles & GENITAL_EXAMINE) ? "Enabled" : "Disabled"]
    " + dat += "Vore examine text:[(cit_toggles & VORE_EXAMINE) ? "Enabled" : "Disabled"]
    " dat += "Voracious MediHound sleepers: [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
    " dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
    " dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
    " @@ -1223,6 +1253,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) for(var/V in all_quirks) var/datum/quirk/T = SSquirks.quirks[V] bal -= initial(T.value) + for(var/modification in modified_limbs) + if(modified_limbs[modification][1] == LOADOUT_LIMB_PROSTHETIC) + return bal + 1 //max 1 point regardless of how many prosthetics return bal /datum/preferences/proc/GetPositiveQuirkCount() @@ -1350,7 +1383,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) socks = random_socks() socks_color = random_short_color() if(BODY_ZONE_PRECISE_EYES) - eye_color = random_eye_color() + var/random_eye_color = random_eye_color() + left_eye_color = random_eye_color + right_eye_color = random_eye_color if("s_tone") skin_tone = random_skin_tone() use_custom_skin_tone = null @@ -1438,6 +1473,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(!isnull(msg)) features["ooc_notes"] = msg + if("hide_ckey") + hide_ckey = !hide_ckey + if(user) + user.mind?.hide_ckey = hide_ckey + if("hair") var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null if(new_hair) @@ -1475,6 +1515,29 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("cycle_bg") bgstate = next_list_item(bgstate, bgstate_options) + if("modify_limbs") + var/limb_type = input(user, "Choose the limb to modify:", "Character Preference") as null|anything in LOADOUT_ALLOWED_LIMB_TARGETS + if(limb_type) + var/modification_type = input(user, "Choose the modification to the limb:", "Character Preference") as null|anything in LOADOUT_LIMBS + if(modification_type) + if(modification_type == LOADOUT_LIMB_PROSTHETIC) + var/prosthetic_type = input(user, "Choose the type of prosthetic", "Character Preference") as null|anything in (list("prosthetic") + GLOB.prosthetic_limb_types) + if(prosthetic_type) + var/number_of_prosthetics = 0 + for(var/modification in modified_limbs) + if(modified_limbs[modification][1] == LOADOUT_LIMB_PROSTHETIC) + number_of_prosthetics += 1 + if(number_of_prosthetics >= MAXIMUM_LOADOUT_PROSTHETICS && !(limb_type in modified_limbs && modified_limbs[limb_type][1] == LOADOUT_LIMB_PROSTHETIC)) + to_chat(user, "You can only have up to two prosthetic limbs!") + else + //save the actual prosthetic data + modified_limbs[limb_type] = list(modification_type, prosthetic_type) + else + if(modification_type == LOADOUT_LIMB_NORMAL) + modified_limbs -= limb_type + else + modified_limbs[limb_type] = list(modification_type) + if("underwear") var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_list if(new_underwear) @@ -1506,9 +1569,24 @@ GLOBAL_LIST_EMPTY(preferences_datums) socks_color = sanitize_hexcolor(n_socks_color, 6) if("eyes") - var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null + var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+left_eye_color) as color|null if(new_eyes) - eye_color = sanitize_hexcolor(new_eyes, 6) + left_eye_color = sanitize_hexcolor(new_eyes, 6) + right_eye_color = sanitize_hexcolor(new_eyes, 6) + + if("eye_left") + var/new_eyes = input(user, "Choose your character's left eye colour:", "Character Preference","#"+left_eye_color) as color|null + if(new_eyes) + left_eye_color = sanitize_hexcolor(new_eyes, 6) + + if("eye_right") + var/new_eyes = input(user, "Choose your character's right eye colour:", "Character Preference","#"+right_eye_color) as color|null + if(new_eyes) + right_eye_color = sanitize_hexcolor(new_eyes, 6) + + if("toggle_split_eyes") + split_eye_colors = !split_eye_colors + right_eye_color = left_eye_color if("species") var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_race_names @@ -1552,7 +1630,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") features["mcolor"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) // mutantcolors must be bright, but only if they affect the skin features["mcolor"] = sanitize_hexcolor(new_mutantcolor, 6) else to_chat(user, "Invalid color. Your color is not bright enough.") @@ -1563,7 +1641,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") features["mcolor2"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) // mutantcolors must be bright, but only if they affect the skin features["mcolor2"] = sanitize_hexcolor(new_mutantcolor, 6) else to_chat(user, "Invalid color. Your color is not bright enough.") @@ -1574,7 +1652,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") features["mcolor3"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) // mutantcolors must be bright, but only if they affect the skin features["mcolor3"] = sanitize_hexcolor(new_mutantcolor, 6) else to_chat(user, "Invalid color. Your color is not bright enough.") @@ -1890,7 +1968,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_cockcolor) if(new_cockcolor == "#000000") features["cock_color"] = pref_species.default_color - else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + else if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) features["cock_color"] = sanitize_hexcolor(new_cockcolor, 6) else to_chat(user,"Invalid color. Your color is not bright enough.") @@ -1930,7 +2008,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_ballscolor) if(new_ballscolor == "#000000") features["balls_color"] = pref_species.default_color - else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + else if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) features["balls_color"] = sanitize_hexcolor(new_ballscolor, 6) else to_chat(user,"Invalid color. Your color is not bright enough.") @@ -1957,7 +2035,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_breasts_color) if(new_breasts_color == "#000000") features["breasts_color"] = pref_species.default_color - else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + else if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) features["breasts_color"] = sanitize_hexcolor(new_breasts_color, 6) else to_chat(user,"Invalid color. Your color is not bright enough.") @@ -1979,7 +2057,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/temp_hsv = RGBtoHSV(new_vagcolor) if(new_vagcolor == "#000000") features["vag_color"] = pref_species.default_color - else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + else if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) features["vag_color"] = sanitize_hexcolor(new_vagcolor, 6) else to_chat(user,"Invalid color. Your color is not bright enough.") @@ -2092,8 +2170,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) else features["body_model"] = chosengender gender = chosengender - facial_hair_style = random_facial_hair_style(gender) - hair_style = random_hair_style(gender) if("body_size") var/min = CONFIG_GET(number/body_size_min) @@ -2119,6 +2195,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/selected_custom_speech_verb = input(user, "Choose your desired speech verb (none means your species speech verb)", "Character Preference") as null|anything in GLOB.speech_verbs if(selected_custom_speech_verb) custom_speech_verb = selected_custom_speech_verb + + if("bodysprite") + var/selected_body_sprite = input(user, "Choose your desired body sprite", "Character Preference") as null|anything in pref_species.allowed_limb_ids + if(selected_body_sprite) + chosen_limb_id = selected_body_sprite //this gets sanitized before loading else switch(href_list["preference"]) //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj @@ -2342,6 +2423,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) parent.mob.hud_used.update_parallax_pref(parent.mob) // Citadel edit - Prefs don't work outside of this. :c + + if("genital_examine") + cit_toggles ^= GENITAL_EXAMINE + + if("vore_examine") + cit_toggles ^= VORE_EXAMINE + if("hound_sleeper") cit_toggles ^= MEDIHOUND_SLEEPER @@ -2451,7 +2539,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ShowChoices(user) return 1 -/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1, roundstart_checks = TRUE) +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1, roundstart_checks = TRUE, initial_spawn = FALSE) if(be_random_name) real_name = pref_species.random_name(gender) @@ -2475,12 +2563,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.gender = gender character.age = age - character.eye_color = eye_color + character.left_eye_color = left_eye_color + character.right_eye_color = right_eye_color var/obj/item/organ/eyes/organ_eyes = character.getorgan(/obj/item/organ/eyes) if(organ_eyes) - if(!initial(organ_eyes.eye_color)) - organ_eyes.eye_color = eye_color - organ_eyes.old_eye_color = eye_color + if(!initial(organ_eyes.left_eye_color)) + organ_eyes.left_eye_color = left_eye_color + organ_eyes.right_eye_color = right_eye_color + organ_eyes.old_left_eye_color = left_eye_color + organ_eyes.old_right_eye_color = right_eye_color character.hair_color = hair_color character.facial_hair_color = facial_hair_color character.skin_tone = skin_tone @@ -2510,6 +2601,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.features = features.Copy() character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE) + if(chosen_limb_id && (chosen_limb_id in character.dna.species.allowed_limb_ids)) + character.dna.species.mutant_bodyparts["limbs_id"] = chosen_limb_id character.dna.real_name = character.real_name character.dna.nameless = character.nameless character.dna.custom_species = character.custom_species @@ -2544,6 +2637,35 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(custom_speech_verb != "default") character.dna.species.say_mod = custom_speech_verb + //limb stuff, only done when initially spawning in + if(initial_spawn) + //delete any existing prosthetic limbs to make sure no remnant prosthetics are left over - But DO NOT delete those that are species-related + for(var/obj/item/bodypart/part in character.bodyparts) + if(part.status == BODYPART_ROBOTIC && !part.render_like_organic) + qdel(part) + character.regenerate_limbs() //regenerate limbs so now you only have normal limbs + for(var/modified_limb in modified_limbs) + var/modification = modified_limbs[modified_limb][1] + var/obj/item/bodypart/old_part = character.get_bodypart(modified_limb) + if(modification == LOADOUT_LIMB_PROSTHETIC) + var/obj/item/bodypart/new_limb + switch(modified_limb) + if(BODY_ZONE_L_ARM) + new_limb = new/obj/item/bodypart/l_arm/robot/surplus(character) + if(BODY_ZONE_R_ARM) + new_limb = new/obj/item/bodypart/r_arm/robot/surplus(character) + if(BODY_ZONE_L_LEG) + new_limb = new/obj/item/bodypart/l_leg/robot/surplus(character) + if(BODY_ZONE_R_LEG) + new_limb = new/obj/item/bodypart/r_leg/robot/surplus(character) + var/prosthetic_type = modified_limbs[modified_limb][2] + if(prosthetic_type != "prosthetic") //lets just leave the old sprites as they are + new_limb.icon = file("icons/mob/augmentation/cosmetic_prosthetic/[prosthetic_type].dmi") + new_limb.replace_limb(character) + qdel(old_part) + + character.regenerate_icons() + SEND_SIGNAL(character, COMSIG_HUMAN_PREFS_COPIED_TO, src, icon_updates, roundstart_checks) //let's be sure the character updates @@ -2551,6 +2673,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.update_body() character.update_hair() +/datum/preferences/proc/post_copy_to(mob/living/carbon/human/character) + //if no legs, and not a paraplegic or a slime, give them a free wheelchair + if(modified_limbs[BODY_ZONE_L_LEG] == LOADOUT_LIMB_AMPUTATED && modified_limbs[BODY_ZONE_R_LEG] == LOADOUT_LIMB_AMPUTATED && !character.has_quirk(/datum/quirk/paraplegic) && !isjellyperson(character)) + if(character.buckled) + character.buckled.unbuckle_mob(character) + var/turf/T = get_turf(character) + var/obj/structure/chair/spawn_chair = locate() in T + var/obj/vehicle/ridden/wheelchair/wheels = new(T) + if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking + wheels.setDir(spawn_chair.dir) + wheels.buckle_mob(character) + /datum/preferences/proc/get_default_name(name_id) switch(name_id) if("human") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index a8183e4940..fb1178fd8e 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 35 +#define SAVEFILE_VERSION_MAX 36 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -204,30 +204,39 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(S["species"] == "lizard") features["mam_snouts"] = features["snout"] + if(current_version < 36) + left_eye_color = S["eye_color"] + right_eye_color = S["eye_color"] + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return path = "data/player_saves/[ckey[1]]/[ckey]/[filename]" + vr_path = "data/player_saves/[ckey[1]]/[ckey]/vore" /datum/preferences/proc/load_preferences() if(!path) - return 0 + return FALSE if(world.time < loadprefcooldown) if(istype(parent)) to_chat(parent, "You're attempting to load your preferences a little too fast. Wait half a second, then try again.") - return 0 + return FALSE loadprefcooldown = world.time + PREF_SAVELOAD_COOLDOWN if(!fexists(path)) - return 0 + return FALSE var/savefile/S = new /savefile(path) if(!S) - return 0 + return FALSE S.cd = "/" var/needs_update = savefile_needs_update(S) if(needs_update == -2) //fatal, can't load any data - return 0 + var/bacpath = "[path].updatebac" //todo: if the savefile version is higher then the server, check the backup, and give the player a prompt to load the backup + if (fexists(bacpath)) + fdel(bacpath) //only keep 1 version of backup + fcopy(S, bacpath) //byond helpfully lets you use a savefile for the first arg. + return FALSE . = TRUE @@ -289,8 +298,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //try to fix any outdated data if necessary if(needs_update >= 0) + var/bacpath = "[path].updatebac" //todo: if the savefile version is higher then the server, check the backup, and give the player a prompt to load the backup + if (fexists(bacpath)) + fdel(bacpath) //only keep 1 version of backup + fcopy(S, bacpath) //byond helpfully lets you use a savefile for the first arg. update_preferences(needs_update, S) //needs_update = savefile_version if we need an update (positive integer) + + //Sanitize ooccolor = sanitize_ooccolor(sanitize_hexcolor(ooccolor, 6, 1, initial(ooccolor))) lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) @@ -332,7 +347,25 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car verify_keybindings_valid() // one of these days this will runtime and you'll be glad that i put it in a different proc so no one gets their saves wiped - return 1 + if(needs_update >= 0) //save the updated version + var/old_default_slot = default_slot + var/old_max_save_slots = max_save_slots + + for (var/slot in S.dir) //but first, update all current character slots. + if (copytext(slot, 1, 10) != "character") + continue + var/slotnum = text2num(copytext(slot, 10)) + if (!slotnum) + continue + max_save_slots = max(max_save_slots, slotnum) //so we can still update byond member slots after they lose memeber status + default_slot = slotnum + if (load_character()) // this updtates char slots + save_character() + default_slot = old_default_slot + max_save_slots = old_max_save_slots + save_preferences() + + return TRUE /datum/preferences/proc/verify_keybindings_valid() // Sanitize the actual keybinds to make sure they exist. @@ -422,17 +455,17 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car /datum/preferences/proc/load_character(slot) if(!path) - return 0 + return FALSE if(world.time < loadcharcooldown) //This is before the check to see if the filepath exists to ensure that BYOND can't get hung up on read attempts when the hard drive is a little slow if(istype(parent)) to_chat(parent, "You're attempting to load your character a little too fast. Wait half a second, then try again.") return "SLOW THE FUCK DOWN" //the reason this isn't null is to make sure that people don't have their character slots overridden by random chars if they accidentally double-click a slot loadcharcooldown = world.time + PREF_SAVELOAD_COOLDOWN if(!fexists(path)) - return 0 + return FALSE var/savefile/S = new /savefile(path) if(!S) - return 0 + return FALSE S.cd = "/" if(!slot) slot = default_slot @@ -444,7 +477,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S.cd = "/character[slot]" var/needs_update = savefile_needs_update(S) if(needs_update == -2) //fatal, can't load any data - return 0 + return FALSE . = TRUE @@ -462,7 +495,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car pref_species = new newtype - scars_index = rand(1,5) + scars_index = rand(1,5) // WHY //Character S["real_name"] >> real_name @@ -476,7 +509,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["age"] >> age S["hair_color"] >> hair_color S["facial_hair_color"] >> facial_hair_color - S["eye_color"] >> eye_color + S["left_eye_color"] >> left_eye_color + S["right_eye_color"] >> right_eye_color S["use_custom_skin_tone"] >> use_custom_skin_tone S["skin_tone"] >> skin_tone S["hair_style_name"] >> hair_style @@ -514,7 +548,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["scars3"] >> scars_list["3"] S["scars4"] >> scars_list["4"] S["scars5"] >> scars_list["5"] - + var/limbmodstr + S["modified_limbs"] >> limbmodstr + if(length(limbmodstr)) + modified_limbs = safe_json_decode(limbmodstr) + else + modified_limbs = list() + S["chosen_limb_id"] >> chosen_limb_id + S["hide_ckey"] >> hide_ckey //saved per-character //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) @@ -597,8 +638,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["vore_flags"] >> vore_flags S["vore_taste"] >> vore_taste - S["belly_prefs"] >> belly_prefs - + var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" + if(fexists(char_vr_path)) + var/list/json_from_file = json_decode(file2text(char_vr_path)) + if(json_from_file) + belly_prefs = json_from_file["belly_prefs"] //gear loadout var/text_to_load S["loadout"] >> text_to_load @@ -615,6 +659,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car gear_points -= init_cost //try to fix any outdated data if necessary + //preference updating will handle saving the updated data for us. if(needs_update >= 0) update_character(needs_update, S) //needs_update == savefile_version if we need an update (positive integer) @@ -647,7 +692,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) hair_color = sanitize_hexcolor(hair_color, 6, FALSE) facial_hair_color = sanitize_hexcolor(facial_hair_color, 6, FALSE) - eye_color = sanitize_hexcolor(eye_color, 6, FALSE) + left_eye_color = sanitize_hexcolor(left_eye_color, 6, FALSE) + right_eye_color = sanitize_hexcolor(right_eye_color, 6, FALSE) var/static/allow_custom_skintones if(isnull(allow_custom_skintones)) @@ -776,7 +822,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["age"] , age) WRITE_FILE(S["hair_color"] , hair_color) WRITE_FILE(S["facial_hair_color"] , facial_hair_color) - WRITE_FILE(S["eye_color"] , eye_color) + WRITE_FILE(S["left_eye_color"] , left_eye_color) + WRITE_FILE(S["right_eye_color"] , right_eye_color) WRITE_FILE(S["use_custom_skin_tone"] , use_custom_skin_tone) WRITE_FILE(S["skin_tone"] , skin_tone) WRITE_FILE(S["hair_style_name"] , hair_style) @@ -856,13 +903,18 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["joblessrole"] , joblessrole) //Write prefs WRITE_FILE(S["job_preferences"] , job_preferences) + WRITE_FILE(S["hide_ckey"] , hide_ckey) //Quirks WRITE_FILE(S["all_quirks"] , all_quirks) WRITE_FILE(S["vore_flags"] , vore_flags) WRITE_FILE(S["vore_taste"] , vore_taste) - WRITE_FILE(S["belly_prefs"] , belly_prefs) + var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" + var/belly_prefs_json = safe_json_encode(list("belly_prefs" = belly_prefs)) + if(fexists(char_vr_path)) + fdel(char_vr_path) + text2file(belly_prefs_json,char_vr_path) WRITE_FILE(S["persistent_scars"] , persistent_scars) WRITE_FILE(S["scars1"] , scars_list["1"]) @@ -870,6 +922,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["scars3"] , scars_list["3"]) WRITE_FILE(S["scars4"] , scars_list["4"]) WRITE_FILE(S["scars5"] , scars_list["5"]) + if(islist(modified_limbs)) + WRITE_FILE(S["modified_limbs"] , safe_json_encode(modified_limbs)) + WRITE_FILE(S["chosen_limb_id"], chosen_limb_id) + //gear loadout if(chosen_gear.len) diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 951e36f9a6..e16a491c61 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -145,8 +145,7 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, togglemidis)() to_chat(usr, "You will no longer hear sounds uploaded by admins") usr.stop_sound_channel(CHANNEL_ADMIN) var/client/C = usr.client - if(C && C.chatOutput && !C.chatOutput.broken && C.chatOutput.loaded) - C.chatOutput.stopMusic() + C?.tgui_panel?.stop_music() SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Hearing Midis", "[usr.client.prefs.toggles & SOUND_MIDI ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/verbs/menu/Settings/Sound/togglemidis/Get_checked(client/C) return C.prefs.toggles & SOUND_MIDI @@ -234,8 +233,7 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggleprayersounds)() set desc = "Stop Current Sounds" SEND_SOUND(usr, sound(null)) var/client/C = usr.client - if(C && C.chatOutput && !C.chatOutput.broken && C.chatOutput.loaded) - C.chatOutput.stopMusic() + C?.tgui_panel?.stop_music() SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Stop Self Sounds")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index fa1145ecea..dd1ebd74f9 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -158,88 +158,6 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") else to_chat(src, "There are no admin notices at the moment.") -/client/verb/fix_chat() - set name = "Fix chat" - set category = "OOC" - if (!chatOutput || !istype(chatOutput)) - var/action = alert(src, "Invalid Chat Output data found!\nRecreate data?", "Wot?", "Recreate Chat Output data", "Cancel") - if (action != "Recreate Chat Output data") - return - chatOutput = new /datum/chatOutput(src) - chatOutput.start() - action = alert(src, "Goon chat reloading, wait a bit and tell me if it's fixed", "", "Fixed", "Nope") - if (action == "Fixed") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by re-creating the chatOutput datum") - else - chatOutput.load() - action = alert(src, "How about now? (give it a moment (it may also try to load twice))", "", "Yes", "No") - if (action == "Yes") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by re-creating the chatOutput datum and forcing a load()") - else - action = alert(src, "Welp, I'm all out of ideas. Try closing byond and reconnecting.\nWe could also disable fancy chat and re-enable oldchat", "", "Thanks anyways", "Switch to old chat") - if (action == "Switch to old chat") - winset(src, "output", "is-visible=true;is-disabled=false") - winset(src, "browseroutput", "is-visible=false") - log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window after recreating the chatOutput and forcing a load()") - - else if (chatOutput.loaded) - var/action = alert(src, "ChatOutput seems to be loaded\nDo you want me to force a reload, wiping the chat log or just refresh the chat window because it broke/went away?", "Hmmm", "Force Reload", "Refresh", "Cancel") - switch (action) - if ("Force Reload") - chatOutput.loaded = FALSE - chatOutput.start() //this is likely to fail since it asks , but we should try it anyways so we know. - action = alert(src, "Goon chat reloading, wait a bit and tell me if it's fixed", "", "Fixed", "Nope") - if (action == "Fixed") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by forcing a start()") - else - chatOutput.load() - action = alert(src, "How about now? (give it a moment (it may also try to load twice))", "", "Yes", "No") - if (action == "Yes") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by forcing a load()") - else - action = alert(src, "Welp, I'm all out of ideas. Try closing byond and reconnecting.\nWe could also disable fancy chat and re-enable oldchat", "", "Thanks anyways", "Switch to old chat") - if (action == "Switch to old chat") - winset(src, "output", "is-visible=true;is-disabled=false") - winset(src, "browseroutput", "is-visible=false") - log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window forcing a start() and forcing a load()") - - if ("Refresh") - chatOutput.showChat() - action = alert(src, "Goon chat refreshing, wait a bit and tell me if it's fixed", "", "Fixed", "Nope, force a reload") - if (action == "Fixed") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by forcing a show()") - else - chatOutput.loaded = FALSE - chatOutput.load() - action = alert(src, "How about now? (give it a moment)", "", "Yes", "No") - if (action == "Yes") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by forcing a load()") - else - action = alert(src, "Welp, I'm all out of ideas. Try closing byond and reconnecting.\nWe could also disable fancy chat and re-enable oldchat", "", "Thanks anyways", "Switch to old chat") - if (action == "Switch to old chat") - winset(src, "output", "is-visible=true;is-disabled=false") - winset(src, "browseroutput", "is-visible=false") - log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window forcing a show() and forcing a load()") - return - - else - chatOutput.start() - var/action = alert(src, "Manually loading Chat, wait a bit and tell me if it's fixed", "", "Fixed", "Nope") - if (action == "Fixed") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by manually calling start()") - else - chatOutput.load() - alert(src, "How about now? (give it a moment (it may also try to load twice))", "", "Yes", "No") - if (action == "Yes") - log_game("GOONCHAT: [key_name(src)] Had to fix their goonchat by manually calling start() and forcing a load()") - else - action = alert(src, "Welp, I'm all out of ideas. Try closing byond and reconnecting.\nWe could also disable fancy chat and re-enable oldchat", "", "Thanks anyways", "Switch to old chat") - if (action == "Switch to old chat") - winset(src, "output", list2params(list("on-show" = "", "is-disabled" = "false", "is-visible" = "true"))) - winset(src, "browseroutput", "is-disabled=true;is-visible=false") - log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window after manually calling start() and forcing a load()") - - /client/verb/motd() set name = "MOTD" @@ -362,3 +280,9 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") pct += delta winset(src, "mainwindow.split", "splitter=[pct]") + +/client/verb/fix_stat_panel() + set name = "Fix Stat Panel" + set hidden = TRUE + + init_verbs() diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 3f6d21bcd2..11de0124cb 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -373,7 +373,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold/white/update_icon(mob/living/carbon/human/user) if(ishuman(user) && !colored_before) - add_atom_colour("#[user.eye_color]", FIXED_COLOUR_PRIORITY) + add_atom_colour("#[user.left_eye_color]", FIXED_COLOUR_PRIORITY) colored_before = TRUE /obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) @@ -382,7 +382,7 @@ var/mob/living/carbon/human/H = loc var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite") M.appearance_flags |= RESET_COLOR - M.color = "#[H.eye_color]" + M.color = "#[H.left_eye_color]" . += M /obj/item/clothing/glasses/sunglasses/big diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 11b2afa968..f4b4140a1a 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -72,6 +72,25 @@ siemens_coefficient = 0 permeability_coefficient = 0.05 +/obj/item/clothing/gloves/tackler/combat/insulated/infiltrator + name = "insidious guerrilla gloves" + desc = "Specialized combat gloves for carrying people around. Transfers tactical kidnapping and tackling knowledge to the user via the use of nanochips." + icon_state = "infiltrator" + item_state = "infiltrator" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + resistance_flags = FIRE_PROOF | ACID_PROOF + var/carrytrait = TRAIT_QUICKER_CARRY + +/obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/equipped(mob/user, slot) + . = ..() + if(slot == SLOT_GLOVES) + ADD_TRAIT(user, carrytrait, GLOVE_TRAIT) + +/obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/dropped(mob/user) + . = ..() + REMOVE_TRAIT(user, carrytrait, GLOVE_TRAIT) + /obj/item/clothing/gloves/tackler/rocket name = "rocket gloves" desc = "The ultimate in high risk, high reward, perfect for when you need to stop a criminal from fifty feet away or die trying. Banned in most Spinward gridiron football and rugby leagues." diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 3f77a2befc..57659a70c4 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -62,13 +62,12 @@ if(. & EMP_PROTECT_SELF) return var/mob/living/carbon/human/user = src.loc - switch(severity) - if(1) - if(activated && user && ishuman(user) && (user.wear_suit == src)) - to_chat(user, "E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD") - to_chat(user, "An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!") - user.emote("scream") - deactivate(1, 1) + if(severity >= 70) + if(activated && user && ishuman(user) && (user.wear_suit == src)) + to_chat(user, "E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD") + to_chat(user, "An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!") + user.emote("scream") + deactivate(1, 1) /obj/item/clothing/suit/space/chronos/proc/finish_chronowalk(mob/living/carbon/human/user, turf/to_turf) if(!user) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 5124c5d62e..dd46d7a5bb 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -525,7 +525,7 @@ Contains: icon_state = "hunter" item_state = "swat_suit" allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat) - armor = list("melee" = 60, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100, "wpound" = 25) + armor = list("melee" = 60, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100, "wound" = 25) strip_delay = 130 resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index cf7dbc7462..6732f1c86c 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -80,7 +80,9 @@ item_state = "hostrench" flags_inv = 0 strip_delay = 80 - unique_reskin = list("Coat" = "hostrench", "Cloak" = "trenchcloak") + unique_reskin = list("Coat" = "hostrench", + "Cloak" = "trenchcloak" + ) /obj/item/clothing/suit/armor/vest/warden name = "warden's jacket" diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index d5f65e4fa8..133956e44e 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -102,3 +102,20 @@ /obj/item/clothing/neck/cloak/polychromic/ComponentInitialize() . = ..() AddElement(/datum/element/polychromic, poly_colors, 3) + +/obj/item/clothing/neck/cloak/alt + name = "cloak" + desc = "A ragged up white cloak. It reminds you of a place not far from here." + icon_state = "cloak" + item_state = "cloak" + +/obj/item/clothing/neck/cloak/alt/polychromic + name = "polychromic cloak" + desc = "A ragged up cloak. It reminds you of a place not far from here." + icon_state = "cloak" + item_state = "cloak" + var/list/poly_colors = list("#FFFFFF", "#676767", "#4C4C4C") + +/obj/item/clothing/neck/cloak/alt/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index fa55dcf1c1..54b2c17f36 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -117,6 +117,27 @@ icon_state = "greydet" item_state = "greydet" +/obj/item/clothing/suit/det_suit/forensicsred + name = "red forensics coat" + icon_state = "forensics_red" + item_state = "forensics_red" + +/obj/item/clothing/suit/det_suit/forensicsred/long + name = "long red forensics coat" + icon_state = "forensics_red_long" + item_state = "forensics_red_long" + +/obj/item/clothing/suit/det_suit/forensicsblue + name = "blue forensics coat" + icon_state = "forensics_blue" + item_state = "forensics_blue" + +/obj/item/clothing/suit/det_suit/forensicsblue/long + name = "long blue forensics coat" + icon_state = "forensics_blue_long" + item_state = "forensics_blue_long" + + //Engineering /obj/item/clothing/suit/hazardvest name = "hazard vest" @@ -222,4 +243,16 @@ desc = "A dark blue vest with reflective strips for emergency medical technicians." icon_state = "labcoat_emt" item_state = "labcoat_emt" - mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON \ No newline at end of file + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON + +/obj/item/clothing/suit/toggle/labcoat/emt/red + name = "red emt vest" + desc = "A red vest with reflective strips for emergency medical technicians." + icon_state = "labcoat_emtred" + item_state = "labcoat_emtred" + +/obj/item/clothing/suit/toggle/labcoat/emt/highvis + name = "high visibility emt vest" + desc = "a high visibility vest for emergency medical technicians." + icon_state = "labcoat_highvis" + item_state = "labcoat_highvis" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 195712b814..32a4ab7ad0 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -62,3 +62,48 @@ name = "scientist labcoat" desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder." icon_state = "labcoat_tox" + +// Departmental Jackets + +/obj/item/clothing/suit/toggle/labcoat/depjacket/sci + name = "science jacket" + desc = "A comfortable jacket in science purple." + icon_state = "sci_dep_jacket" + item_state = "sci_dep_jacket" + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + +/obj/item/clothing/suit/toggle/labcoat/depjacket/med + name = "medical jacket" + desc = "A comfortable jacket in medical blue." + icon_state = "med_dep_jacket" + item_state = "med_dep_jacket" + allowed = list(/obj/item/analyzer, /obj/item/sensor_device, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45) + +/obj/item/clothing/suit/toggle/labcoat/depjacket/sec + name = "security jacket" + desc = "A comfortable jacket in security red." + icon_state = "sec_dep_jacket" + item_state = "sec_dep_jacket" + armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) + +/obj/item/clothing/suit/toggle/labcoat/depjacket/sup + name = "supply jacket" + desc = "A comfortable jacket in supply brown." + icon_state = "supply_dep_jacket" + item_state = "supply_dep_jacket" + +/obj/item/clothing/suit/toggle/labcoat/depjacket/sup/qm + name = "quartermaster's jacket" + desc = "A loose covering often warn by station quartermasters." + icon_state = "qmjacket" + item_state = "qmjacket" + +/obj/item/clothing/suit/toggle/labcoat/depjacket/eng + name = "engineering jacket" + desc = "A comfortable jacket in engineering yellow." + icon_state = "engi_dep_jacket" + item_state = "engi_dep_jacket" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 20, "fire" = 30, "acid" = 45) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6364a9a1c1..3b45d2bc14 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -94,6 +94,23 @@ flags_inv = HIDEJUMPSUIT mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON +/obj/item/clothing/suit/tailcoat + name = "tailcoat" + desc = "A rather impractical, long coat." + icon_state = "tailcoat" + item_state = "tailcoat" + +/obj/item/clothing/suit/vickyblack + name = "black victorian coat" + desc = "An overbearing black coat, it looks far older than you are." + icon_state = "vickyblack" + item_state = "vickyblack" + +/obj/item/clothing/suit/vickyred + name = "red victorian coat" + desc = "An overbearing red coat, it looks far older than you are." + icon_state = "vickyred" + item_state = "vickyred" /obj/item/clothing/suit/apron/overalls name = "coveralls" @@ -625,7 +642,7 @@ desc = "An arctic white winter coat with a small blue caduceus instead of a plastic zipper tab. Snazzy." icon_state = "coatmedical" item_state = "coatmedical" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/sensor_device, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45) hoodtype = /obj/item/clothing/head/hooded/winterhood/medical @@ -638,7 +655,7 @@ desc = "An arctic white winter coat with a small blue caduceus instead of a plastic zipper tab. The normal liner is replaced with an exceptionally thick, soft layer of fur." icon_state = "coatcmo" item_state = "coatcmo" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/sensor_device, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/cmo @@ -651,7 +668,7 @@ desc = "A lab-grade winter coat made with acid resistant polymers. For the enterprising chemist who was exiled to a frozen wasteland on the go." icon_state = "coatchemistry" item_state = "coatchemistry" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/sensor_device, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 30, "acid" = 45) hoodtype = /obj/item/clothing/head/hooded/winterhood/chemistry @@ -664,7 +681,7 @@ desc = "A white winter coat with green markings. Warm, but wont fight off the common cold or any other disease. Might make people stand far away from you in the hallway. The zipper tab looks like an oversized bacteriophage." icon_state = "coatviro" item_state = "coatviro" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/sensor_device, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/viro @@ -677,7 +694,7 @@ desc = "A winter coat with blue markings. Warm, but probably won't protect from biological agents. For the cozy doctor on the go." icon_state = "coatparamed" item_state = "coatparamed" - allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/analyzer, /obj/item/sensor_device, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45) hoodtype = /obj/item/clothing/head/hooded/winterhood/paramedic @@ -1064,3 +1081,9 @@ desc = "An outfit used by traditional japanese warriors." icon_state = "samurai" item_state = "samurai" + +/obj/item/clothing/suit/bomber + name = "old bomber jacket" + desc = "It looks like someone dragged this out of a muddy lake." + icon_state = "bomberalt" + item_state = "bomberalt" diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 632d59187f..f496468371 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -5,9 +5,9 @@ var/obj/item/clothing/head/hooded/hood var/hoodtype = /obj/item/clothing/head/hooded/winterhood //so the chaplain hoodie or other hoodies can override this -/obj/item/clothing/suit/hooded/New() +/obj/item/clothing/suit/hooded/Initialize() + . = ..() hood = MakeHelmet() - ..() /obj/item/clothing/suit/hooded/Destroy() . = ..() @@ -48,7 +48,7 @@ /obj/item/clothing/suit/hooded/update_icon_state() icon_state = "[initial(icon_state)]" - if(ishuman(hood.loc)) + if(ishuman(hood?.loc)) var/mob/living/carbon/human/H = hood.loc if(H.head == hood) icon_state += "_t" @@ -131,8 +131,8 @@ //Hardsuit toggle code /obj/item/clothing/suit/space/hardsuit/Initialize() - helmet = MakeHelmet() . = ..() + helmet = MakeHelmet() /obj/item/clothing/suit/space/hardsuit/Destroy() if(helmet) diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index 18cd104ff8..f8292738ee 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -267,7 +267,7 @@ mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON|USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/christmas/croptop/green - name = "green feminine christmas suit" + name = "green croptop christmas suit" desc = "A simple green christmas suit. Smells minty!" icon_state = "christmasfemaleg" item_state = "christmasfemaleg" diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index 8fbc343598..832589a6b7 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -23,6 +23,14 @@ body_parts_covered = CHEST|GROIN|ARMS alt_covers_chest = TRUE +/obj/item/clothing/under/rank/cargo/util + name = "cargo utility uniform" + desc = "a utility uniform for cargo personnel" + icon_state = "utilsupply" + item_state = "utilsupply" + can_adjust = FALSE + + /obj/item/clothing/under/rank/cargo/tech/skirt name = "cargo technician's jumpskirt" desc = "Skiiiiirts! They're comfy and easy to wear" @@ -33,6 +41,13 @@ fitted = FEMALE_UNIFORM_TOP mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON +/obj/item/clothing/under/rank/cargo/tech/long + name = "cargo technician's jumpsuit (trousers)" + desc = "A variant of the cargo technician's uniform with proper trousers, suited for colder climates and modest workers." + icon_state = "cargo_long" + item_state = "lb_suit" + alt_covers_chest = TRUE + /obj/item/clothing/under/rank/cargo/miner name = "shaft miner's jumpsuit" desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index 5dffc8f88d..9bfac2a81c 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -23,6 +23,68 @@ fitted = FEMALE_UNIFORM_TOP mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON +/obj/item/clothing/under/rank/civilian/util + name = "generic utility uniform" + desc = "A utility uniform worn by various crew." + icon_state = "utilgen" + item_state = "utilgen" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/util/greyshirt + name = "grey uniform" + desc = "A bland, grey uniform." + icon_state = "greyshirt" + item_state = "greyshirt" + +/obj/item/clothing/under/rank/civilian/victorian_redsleeves + name = "black vest red victorian suit" + desc = "A stark red victorian suit with a black vest." + icon_state = "victorianblred" + item_state = "victorianblred" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/victorian_redvest + name = "red-vested victorian suit" + desc = "A victorian suit with a red vest." + icon_state = "victorianredvest" + item_state = "victorianredvest" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/victorian_vest + name = "black victorian suit" + desc = "A simple black victorian suit." + icon_state = "victorianvest" + item_state = "victorianvest" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/victorian_purple + name = "purple victorian suit" + desc = "A victorian suit in regal purple." + icon_state = "victorianlightfire" + item_state = "victorianlightfire" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/victorianreddress + name = "red victorian dress" + desc = "A flashy red victorian dress." + icon_state = "victorianreddress" + item_state = "victorianreddress" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/victorianblackdress + name = "black victorian dress" + desc = "A victorian dress in somber black." + icon_state = "victorianblackdress" + item_state = "victorianblackdress" + can_adjust = FALSE + +/obj/item/clothing/under/rank/civilian/dutch + name = "dutch suit" + desc = "A dapper dutch suit." + icon_state = "dutch" + item_state = "dutch" + can_adjust = FALSE + /obj/item/clothing/under/rank/civilian/chaplain desc = "It's a black jumpsuit, often worn by religious folk." name = "chaplain's jumpsuit" @@ -62,6 +124,12 @@ item_state = "b_suit" can_adjust = FALSE +/obj/item/clothing/under/rank/civilian/head_of_personnel/whimsy + name = "casual head of personnel's jumpsuit" + desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\", this one seems to be a bit more casual." + icon_state = "hop_casual" + item_state = "hop_casual" + /obj/item/clothing/under/rank/civilian/head_of_personnel/skirt name = "head of personnel's jumpskirt" desc = "It's a jumpskirt worn by someone who works in the position of \"Head of Personnel\"." diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 8272c36cf3..8a6c372272 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -6,6 +6,13 @@ sensor_mode = SENSOR_COORDS random_sensor = FALSE +/obj/item/clothing/under/rank/captain/util + name = "Command Utiltiy Uniform" + desc = "A utility uniform for command personnel." + icon_state = "utilcom" + item_state = "utilcom" + can_adjust = FALSE + /obj/item/clothing/under/rank/captain/skirt name = "captain's jumpskirt" desc = "It's a blue jumpskirt with some gold markings denoting the rank of \"Captain\"." diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index 5693468b3b..98dee44cb2 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -42,13 +42,35 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 5) resistance_flags = NONE +/obj/item/clothing/under/rank/engineering/engineer/mechanic + name = "mechanic's jumpsuit" + desc = "an old mechanic's jumpsuit" + icon_state = "mechanic" + item_state = "mechanic" + can_adjust = FALSE + +/obj/item/clothing/under/rank/engineering/engineer/util + name = "engineering utility uniform" + desc = "a utility jumpsuit for engineering personnel" + icon_state = "utileng" + item_state = "utileng" + can_adjust = FALSE + /obj/item/clothing/under/rank/engineering/engineer/hazard name = "engineer's hazard jumpsuit" desc = "A high visibility jumpsuit made from heat and radiation resistant materials." - icon_state = "hazard" - item_state = "suit-orange" + icon_state = "hazard_orange" + item_state = "engi_suit" alt_covers_chest = TRUE +/obj/item/clothing/under/rank/engineering/engineer/hazard/green + icon_state = "hazard_green" + item_state = "g_suit" + +/obj/item/clothing/under/rank/engineering/engineer/hazard/white + icon_state = "hazard_white" + item_state = "gy_suit" + /obj/item/clothing/under/rank/engineering/engineer/skirt name = "engineer's jumpskirt" desc = "It's an orange high visibility jumpskirt worn by engineers." diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index c66b972624..de285b0470 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -86,6 +86,12 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) +/obj/item/clothing/under/rank/medical/paramedic/red + name = "red paramedic jumpsuit" + icon_state = "pmedred" + item_state = "pmedred" + can_adjust = FALSE + /obj/item/clothing/under/rank/medical/paramedic/light desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic-light" @@ -124,6 +130,13 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) +/obj/item/clothing/under/rank/medical/doctor/util + name = "Medical Utility Uniform" + desc = "Utility jumpsuit for medical personnel" + icon_state = "utilmed" + item_state = "utilmed" + can_adjust = FALSE + /obj/item/clothing/under/rank/medical/doctor/blue name = "blue medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 03eb910736..7443cd9d39 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -61,6 +61,13 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) +/obj/item/clothing/under/rank/rnd/scientist/util + name = "Science Utility Uniform" + desc = "A utility uniform for science personnel" + icon_state = "utilsci" + item_state = "utilsci" + can_adjust = FALSE + /obj/item/clothing/under/rank/rnd/scientist/skirt name = "scientist's jumpskirt" desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist." @@ -78,6 +85,12 @@ item_state = "robotics" resistance_flags = NONE +/obj/item/clothing/under/rank/rnd/roboticist/sleek + name = "sleek roboticist's jumpsuit" + icon_state = "robosleek" + item_state = "robosleek" + can_adjust = FALSE + /obj/item/clothing/under/rank/rnd/roboticist/skirt name = "roboticist's jumpskirt" desc = "It's a slimming black with reinforced seams; great for industrial work." diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 7747d2e181..4438298dea 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -21,6 +21,13 @@ item_state = "r_suit" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30, "wound" = 10) +/obj/item/clothing/under/rank/security/officer/util + name = "security utility uniform" + desc = "a grey security uniform" + icon_state = "utilsec" + item_state = "utilsec" + can_adjust = FALSE + /obj/item/clothing/under/rank/security/officer/grey name = "grey security jumpsuit" desc = "A tactical relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." @@ -51,6 +58,28 @@ item_state = "blueshift" can_adjust = FALSE +/obj/item/clothing/under/rank/security/officer/blueshirt/seccorp + name = "corporate security uniform" + desc = "How positively stuffy." + icon_state = "seccorp" + item_state = "seccorp" + can_adjust = FALSE + +/obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/wardencorp + name = "corporate warden uniform" + icon_state = "wardencorp" + item_state = "wardencorp" + +/obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/hoscorp + name = "corporate head of security's uniform" + icon_state = "hoscorp" + item_state = "hoscorp" + +/obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/detcorp + name = "corporate detective's uniform" + icon_state = "detcorp" + item_state = "detcorp" + /obj/item/clothing/under/rank/security/officer/spacepol name = "police uniform" desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." @@ -103,6 +132,16 @@ item_state = "det" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30, "wound" = 10) +/obj/item/clothing/under/rank/security/detective/brown + name = "dark boiled suit" + icon_state = "detectivebrown" + item_state = "detectivebrown" + +/obj/item/clothing/under/rank/security/detective/brown/brown2 + name = "padded suit" + icon_state = "detectivebrown2" + item_state = "detectivebrown2" + /obj/item/clothing/under/rank/security/detective/skirt name = "detective's suitskirt" desc = "Someone who wears this means business." @@ -202,4 +241,4 @@ desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." icon_state = "spacepol" item_state = "spacepol" - can_adjust = FALSE \ No newline at end of file + can_adjust = FALSE diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 27fb0cc00d..5d750f3c75 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -118,7 +118,6 @@ icon_state = "plasmaman" item_state = "plasmaman" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) - slowdown = 1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS mutantrace_variation = USE_TAUR_CLIP_MASK can_adjust = FALSE @@ -326,3 +325,22 @@ desc = "A blue bathrobe." icon_state = "bathrobe" item_state = "bathrobe" + +/obj/item/clothing/under/misc/mechsuitred + name = "red mech suit" + desc = "What are you, stupid?" + icon_state = "red_mech_suit" + item_state = "red_mech_suit" + +/obj/item/clothing/under/misc/mechsuitwhite + name = "white mech suit" + desc = "...Mom?" + icon_state = "white_mech_suit" + item_state = "white_mech_suit" + +/obj/item/clothing/under/misc/mechsuitblue + name = "blue mech suit" + desc = "Get in the damn robot already!" + icon_state = "blue_mech_suit" + item_state = "blue_mech_suit" + diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index fe23003b38..87e6e94b6b 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -116,3 +116,19 @@ /obj/item/clothing/under/suit/polychromic/ComponentInitialize() . = ..() AddElement(/datum/element/polychromic, list("#FFFFFF", "#FFFFFF", "#808080"), 3) + +/obj/item/clothing/under/suit/turtle + desc = "a debatably stylish turtleneck." + can_adjust = FALSE + +/obj/item/clothing/under/suit/turtle/teal + name = "teal turtleneck" + icon_state = "tealturtle" + item_state = "tealturtle" + can_adjust = FALSE + +/obj/item/clothing/under/suit/turtle/grey + name = "grey turtleneck" + icon_state = "greyturtle" + item_state = "greyturtle" + can_adjust = FALSE diff --git a/code/modules/emoji/emoji_parse.dm b/code/modules/emoji/emoji_parse.dm index 3fd83899c9..64c07f5a38 100644 --- a/code/modules/emoji/emoji_parse.dm +++ b/code/modules/emoji/emoji_parse.dm @@ -17,7 +17,7 @@ if(search) emoji = lowertext(copytext(text, pos + length(text[pos]), search)) var/isthisapath = (emoji[1] == "/") && text2path(emoji) - var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/goonchat) + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat) var/tag = sheet.icon_tag("emoji-[emoji]") if(tag) parsed += "[tag]" //evil way of enforcing 16x16 diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index 395b3b88a5..7f0dedaab6 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -4,7 +4,6 @@ max_occurrences = 1 weight = 5 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_bluespace startWhen = 3 diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index a9a7ed50b9..8047976330 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -5,7 +5,6 @@ min_players = 10 max_occurrences = 5 weight = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_flux startWhen = 10 diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index cabd7face8..7d2bb33889 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -4,7 +4,6 @@ max_occurrences = 5 weight = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_grav diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 8c8fbd6d36..350c8fc946 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -4,7 +4,6 @@ max_occurrences = 5 weight = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_pyro startWhen = 3 diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 96d084873d..e2a4ceadf3 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -5,7 +5,6 @@ min_players = 20 max_occurrences = 2 weight = 5 - gamemode_blacklist = list("dynamic") /datum/round_event/anomaly/anomaly_vortex startWhen = 10 diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm index 3e8182a827..75c514774c 100644 --- a/code/modules/events/brain_trauma.dm +++ b/code/modules/events/brain_trauma.dm @@ -3,6 +3,13 @@ typepath = /datum/round_event/brain_trauma weight = 25 +/datum/round_event_control/brain_trauma/canSpawnEvent(var/players_amt, var/gamemode) + var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") + for (var/mob/M in GLOB.alive_mob_list) + if(M.stat != DEAD && (M.mind?.assigned_role in enemy_roles)) + return TRUE + return FALSE + /datum/round_event/brain_trauma fakeable = FALSE @@ -14,19 +21,21 @@ continue if(!H.getorgan(/obj/item/organ/brain)) // If only I had a brain continue - + if(HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS)) + continue + if(!is_station_level(H.z)) + continue traumatize(H) break /datum/round_event/brain_trauma/proc/traumatize(mob/living/carbon/human/H) var/resistance = pick( 65;TRAUMA_RESILIENCE_BASIC, - 30;TRAUMA_RESILIENCE_SURGERY, - 5;TRAUMA_RESILIENCE_LOBOTOMY) + 35;TRAUMA_RESILIENCE_SURGERY) var/trauma_type = pickweight(list( - BRAIN_TRAUMA_MILD = 60, - BRAIN_TRAUMA_SEVERE = 30, + BRAIN_TRAUMA_MILD = 80, + BRAIN_TRAUMA_SEVERE = 10, BRAIN_TRAUMA_SPECIAL = 10 )) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 1c88e68377..7c55bbfcd1 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -5,7 +5,6 @@ min_players = 15 max_occurrences = 1 - gamemode_blacklist = list("dynamic") /datum/round_event/brand_intelligence announceWhen = 21 @@ -65,7 +64,7 @@ originMachine.visible_message("[originMachine] beeps and seems lifeless.") kill() return - vendingMachines = removeNullsFromList(vendingMachines) + vendingMachines = listclearnulls(vendingMachines) if(!vendingMachines.len) //if every machine is infected for(var/obj/machinery/vending/upriser in infectedMachines) if(prob(70) && !QDELETED(upriser)) diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 2c553fc8a7..d08e6267a0 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -5,7 +5,6 @@ min_players = 2 earliest_start = 10 MINUTES max_occurrences = 6 - gamemode_blacklist = list("dynamic") /datum/round_event/carp_migration announceWhen = 3 diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm index 45fa1c8a01..0342ca4643 100644 --- a/code/modules/events/communications_blackout.dm +++ b/code/modules/events/communications_blackout.dm @@ -2,7 +2,6 @@ name = "Communications Blackout" typepath = /datum/round_event/communications_blackout weight = 30 - gamemode_blacklist = list("dynamic") /datum/round_event/communications_blackout announceWhen = 1 @@ -24,4 +23,4 @@ /datum/round_event/communications_blackout/start() for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) - T.emp_act(EMP_HEAVY) + T.emp_act(80) diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 860685c787..eb7edcafbf 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -5,7 +5,6 @@ max_occurrences = 1000 earliest_start = 0 MINUTES alert_observers = FALSE - gamemode_blacklist = list("dynamic") /datum/round_event/space_dust startWhen = 1 @@ -29,4 +28,4 @@ fakeable = FALSE /datum/round_event/sandstorm/tick() - spawn_meteors(10, GLOB.meteorsC) \ No newline at end of file + spawn_meteors(10, GLOB.meteorsC) diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 5e5e318e3c..b850b4db62 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -5,7 +5,6 @@ min_players = 5 weight = 40 alert_observers = FALSE - gamemode_blacklist = list("dynamic") /datum/round_event/electrical_storm var/lightsoutAmount = 1 diff --git a/code/modules/events/fake_virus.dm b/code/modules/events/fake_virus.dm index 77520198e8..cebf1ed14b 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -6,7 +6,7 @@ /datum/round_event/fake_virus/start() var/list/fake_virus_victims = list() for(var/mob/living/carbon/human/H in shuffle(GLOB.player_list)) - if(!H.client || H.stat == DEAD || H.InCritical()) + if(!H.client || H.stat == DEAD || H.InCritical() || HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS)) continue fake_virus_victims += H diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index b3bc571a4a..8c33e69107 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -4,7 +4,6 @@ weight = 20 max_occurrences = 2 min_players = 40 // To avoid shafting lowpop - gamemode_blacklist = list("dynamic") /datum/round_event/heart_attack/start() var/list/heart_attack_contestants = list() @@ -20,4 +19,4 @@ var/mob/living/carbon/human/winner = pickweight(heart_attack_contestants) var/datum/disease/D = new /datum/disease/heart_failure() winner.ForceContractDisease(D, FALSE, TRUE) - announce_to_ghosts(winner) \ No newline at end of file + announce_to_ghosts(winner) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index b15e9d1f99..c75aff0c4a 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -3,7 +3,6 @@ /datum/round_event_control/ion_storm name = "Ion Storm" typepath = /datum/round_event/ion_storm - gamemode_blacklist = list("dynamic") weight = 15 min_players = 2 diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm index c594d7b3c0..d7d8f1aec8 100644 --- a/code/modules/events/major_dust.dm +++ b/code/modules/events/major_dust.dm @@ -2,7 +2,6 @@ name = "Major Space Dust" typepath = /datum/round_event/meteor_wave/major_dust weight = 8 - gamemode_blacklist = list("dynamic") /datum/round_event/meteor_wave/major_dust wave_name = "space dust" diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 7763f9950d..e69af1df13 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -10,7 +10,6 @@ min_players = 15 max_occurrences = 3 earliest_start = 25 MINUTES - gamemode_blacklist = list("dynamic") /datum/round_event/meteor_wave startWhen = 6 @@ -23,7 +22,7 @@ /datum/round_event/meteor_wave/setup() announceWhen = 1 - startWhen = rand(90, 180) // Apparently it is by 2 seconds, so 90 is actually 180 seconds, and 180 is 360 seconds. So this is 3-6 minutes + startWhen = 150 // 5 minutes if(GLOB.singularity_counter) startWhen *= 1 - min(GLOB.singularity_counter * SINGULO_BEACON_DISTURBANCE, SINGULO_BEACON_MAX_DISTURBANCE) endWhen = startWhen + 60 diff --git a/code/modules/events/nightmare.dm b/code/modules/events/nightmare.dm index 6e5512a617..698f5130f1 100644 --- a/code/modules/events/nightmare.dm +++ b/code/modules/events/nightmare.dm @@ -2,7 +2,6 @@ name = "Spawn Nightmare" typepath = /datum/round_event/ghost_role/nightmare max_occurrences = 1 - gamemode_blacklist = list("dynamic") min_players = 20 /datum/round_event/ghost_role/nightmare diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 9ab5e8d517..3bcec9f471 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -5,7 +5,7 @@ max_occurrences = 1 min_players = 10 earliest_start = 30 MINUTES - gamemode_blacklist = list("nuclear","dynamic") + gamemode_blacklist = list("nuclear") /datum/round_event_control/pirates/preRunEvent() if (!SSmapping.empty_space) @@ -141,7 +141,7 @@ for(var/obj/machinery/rnd/server/S in GLOB.machines) if(S.stat & (NOPOWER|BROKEN)) continue - S.emp_act(1) + S.emp_act(80) new /obj/effect/temp_visual/emp(get_turf(S)) /obj/machinery/shuttle_scrambler/proc/dump_loot(mob/user) diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 457b5bd4ec..5ef30d0030 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -4,7 +4,6 @@ weight = 2 min_players = 15 earliest_start = 30 MINUTES - gamemode_blacklist = list("dynamic") /datum/round_event/portal_storm/syndicate_shocktroop boss_types = list(/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper = 2) diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index 22e475a8ef..6f20d954ed 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -3,7 +3,6 @@ typepath = /datum/round_event/processor_overload weight = 15 min_players = 20 - gamemode_blacklist = list("dynamic") /datum/round_event/processor_overload announceWhen = 1 @@ -37,4 +36,4 @@ // at all P.ex_act(EXPLODE_DEVASTATE) else - P.emp_act(EMP_HEAVY) + P.emp_act(80) diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 0a5bedb464..36e16bb2c9 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -2,7 +2,6 @@ name = "Radiation Storm" typepath = /datum/round_event/radiation_storm max_occurrences = 1 - gamemode_blacklist = list("dynamic") /datum/round_event/radiation_storm diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index d1c327e0f7..23ce6ce730 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -2,7 +2,6 @@ name = "Spider Infestation" typepath = /datum/round_event/spider_infestation weight = 5 - gamemode_blacklist = list("dynamic") max_occurrences = 1 min_players = 15 diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index dc672cec45..cd7b23a577 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -3,7 +3,6 @@ typepath = /datum/round_event/vent_clog weight = 10 max_occurrences = 3 - gamemode_blacklist = list("dynamic") min_players = 25 /datum/round_event/vent_clog diff --git a/code/modules/events/wizard/ghost.dm b/code/modules/events/wizard/ghost.dm index d5366c5769..c288953efb 100644 --- a/code/modules/events/wizard/ghost.dm +++ b/code/modules/events/wizard/ghost.dm @@ -21,6 +21,6 @@ /datum/round_event/wizard/possession/start() for(var/mob/dead/observer/G in GLOB.player_list) - G.verbs += /mob/dead/observer/verb/boo - G.verbs += /mob/dead/observer/verb/possess + add_verb(G, /mob/dead/observer/verb/boo) + add_verb(G, /mob/dead/observer/verb/possess) to_chat(G, "You suddenly feel a welling of new spooky powers...") diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 1b4716b407..0920c9ccb6 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -4,7 +4,6 @@ max_occurrences = 3 weight = 2 min_players = 2 - gamemode_blacklist = list("dynamic") /datum/round_event/wormholes diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 895699434a..4d5f4e2dd0 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -97,9 +97,12 @@ All foods are distributed among various categories. Use common sense. return -/obj/item/reagent_containers/food/snacks/attack(mob/living/M, mob/living/user, def_zone) +/obj/item/reagent_containers/food/snacks/attack(mob/living/M, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) if(user.a_intent == INTENT_HARM) return ..() + INVOKE_ASYNC(src, .proc/attempt_forcefeed, M, user) + +/obj/item/reagent_containers/food/snacks/proc/attempt_forcefeed(mob/living/M, mob/living/user) if(!eatverb) eatverb = pick("bite","chew","nibble","gnaw","gobble","chomp") if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it. diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index 1117dbc3d3..be07826a7f 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -133,7 +133,7 @@ slices_num = 5 bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR + foodtype = GRAIN | DAIRY | FRUIT | SUGAR | ANTITOXIC /obj/item/reagent_containers/food/snacks/cakeslice/lime name = "lime cake slice" @@ -141,7 +141,7 @@ icon_state = "limecake_slice" filling_color = "#00FF00" tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR + foodtype = GRAIN | DAIRY | FRUIT | SUGAR | ANTITOXIC /obj/item/reagent_containers/food/snacks/store/cake/lemon name = "lemon cake" diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index 39c9c6c04f..32a89dbd58 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -103,7 +103,7 @@ icon_state = "lime_sc" list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/limejuice = 5) tastes = list("ice" = 1, "water" = 1, "limes" = 5) - foodtype = FRUIT + foodtype = FRUIT | ANTITOXIC /obj/item/reagent_containers/food/snacks/snowcones/lemon name = "lemon snowcone" @@ -191,7 +191,7 @@ icon_state = "fruitsalad_sc" list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/lemonjuice = 5, /datum/reagent/consumable/limejuice = 5, /datum/reagent/consumable/orangejuice = 5) tastes = list("ice" = 1, "water" = 1, "oranges" = 5, "limes" = 5, "lemons" = 5, "citrus" = 5, "salad" = 5) - foodtype = FRUIT + foodtype = FRUIT | ANTITOXIC /obj/item/reagent_containers/food/snacks/snowcones/pineapple name = "pineapple snowcone" diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index e0697cecea..b771a90907 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -232,7 +232,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //lollipop, but vitamins = toxins filling_color = "#00800" tastes = list("cobwebs" = 1, "sugar" = 2) - foodtype = JUNKFOOD | SUGAR + foodtype = JUNKFOOD | SUGAR | ANTITOXIC /obj/item/reagent_containers/food/snacks/tobiko name = "tobiko" @@ -451,7 +451,7 @@ var/mutable_appearance/head var/headcolor = rgb(0, 0, 0) tastes = list("candy" = 1) - foodtype = JUNKFOOD | SUGAR + foodtype = JUNKFOOD | SUGAR | ANTITOXIC /obj/item/reagent_containers/food/snacks/lollipop/Initialize() . = ..() @@ -756,4 +756,4 @@ bitesize = 2 name = "hot-cross bun" desc = "The Cross represents the Assistants that died for your sins." - icon_state = "hotcrossbun" \ No newline at end of file + icon_state = "hotcrossbun" diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index d65907daea..13a46395ea 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -509,7 +509,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 3) cooked_type = null tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) - foodtype = GRAIN + foodtype = GRAIN | ANTITOXIC /obj/item/reagent_containers/food/snacks/dankpocket name = "\improper Dank-pocket" @@ -556,9 +556,11 @@ name = "exceptional plump helmet biscuit" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" bonus_reagents = list(/datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + foodtype += ANTITOXIC . = ..() if(fey) reagents.add_reagent(/datum/reagent/medicine/omnizine, 5) + foodtype += ANTITOXIC /obj/item/reagent_containers/food/snacks/cracker name = "cracker" diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 81805f5529..24522503c1 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -171,8 +171,10 @@ name = "exceptional plump pie" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 4) + foodtype += ANTITOXIC if(fey) reagents.add_reagent(/datum/reagent/medicine/omnizine, 5) + foodtype += ANTITOXIC /obj/item/reagent_containers/food/snacks/pie/xemeatpie diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index f30c182963..75cf8ffb82 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -109,7 +109,7 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/medicine/omnizine = 10, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "laziness" = 1) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD + foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD | ANTITOXIC /obj/item/reagent_containers/food/snacks/pizzaslice/donkpocket name = "donkpocket pizza slice" @@ -117,7 +117,7 @@ icon_state = "donkpocketpizzaslice" filling_color = "#FFA500" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "laziness" = 1) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD + foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD | ANTITOXIC /obj/item/reagent_containers/food/snacks/pizza/dank name = "dank pizza" @@ -127,7 +127,7 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6) list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) - foodtype = GRAIN | VEGETABLES | FRUIT | DAIRY + foodtype = GRAIN | VEGETABLES | FRUIT | DAIRY | ANTITOXIC /obj/item/reagent_containers/food/snacks/pizzaslice/dank name = "dank pizza slice" @@ -135,7 +135,7 @@ icon_state = "dankpizzaslice" filling_color = "#2E8B57" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) - foodtype = GRAIN | VEGETABLES | FRUIT | DAIRY + foodtype = GRAIN | VEGETABLES | FRUIT | DAIRY | ANTITOXIC /obj/item/reagent_containers/food/snacks/pizza/sassysage name = "sassysage pizza" @@ -187,6 +187,7 @@ slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/arnold bonus_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/iron = 10, /datum/reagent/medicine/omnizine = 30) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2) + /obj/item/reagent_containers/food/snacks/proc/try_break_off(mob/living/M, mob/living/user) //maybe i give you a pizza maybe i break off your arm var/obj/item/bodypart/l_arm = user.get_bodypart(BODY_ZONE_L_ARM) @@ -244,4 +245,4 @@ icon_state = "meatpizzaslice" filling_color = "#A52A2A" tastes = list("cardboard" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT \ No newline at end of file + foodtype = GRAIN | VEGETABLES | DAIRY | MEAT diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index be7c3d25da..8c6eecb829 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -20,7 +20,7 @@ bonus_reagents = list(/datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/nutriment/vitamin = 6) list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/medicine/omnizine = 8, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("leaves" = 1) - foodtype = VEGETABLES + foodtype = VEGETABLES | ANTITOXIC /obj/item/reagent_containers/food/snacks/salad/herbsalad name = "herb salad" @@ -38,7 +38,7 @@ bonus_reagents = list(/datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/nutriment/vitamin = 4) list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("leaves" = 1, "potato" = 1, "meat" = 1, "valids" = 1) - foodtype = VEGETABLES | MEAT | FRIED | JUNKFOOD | FRUIT + foodtype = VEGETABLES | MEAT | FRIED | JUNKFOOD | FRUIT | ANTITOXIC /obj/item/reagent_containers/food/snacks/salad/oatmeal name = "oatmeal" @@ -133,7 +133,7 @@ trash = /obj/item/reagent_containers/glass/bowl list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/medicine/earthsblood = 3, /datum/reagent/medicine/omnizine = 5, /datum/reagent/drug/happiness = 2) tastes = list("hope" = 1) - foodtype = VEGETABLES + foodtype = VEGETABLES | ANTITOXIC /obj/item/reagent_containers/food/snacks/salad/gumbo name = "black eyed gumbo" diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index ffafcc6b1e..eea7cdb87d 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -89,7 +89,7 @@ icon_state = "nettlesoup" bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("nettles" = 1) - foodtype = VEGETABLES + foodtype = VEGETABLES | ANTITOXIC /obj/item/reagent_containers/food/snacks/soup/mystery name = "mystery soup" diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index b4c7c89b74..4e8687fc23 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -89,7 +89,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/doctor_delight = 5) filling_color = "#F5F5DC" tastes = list("sweetness" = 3, "cake" = 1) - foodtype = GRAIN | FRUIT | VEGETABLES + foodtype = GRAIN | FRUIT | VEGETABLES | ANTITOXIC custom_price = PRICE_CHEAP /obj/item/reagent_containers/food/snacks/energybar diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm deleted file mode 100644 index ce27dccb74..0000000000 --- a/code/modules/goonchat/browserOutput.dm +++ /dev/null @@ -1,341 +0,0 @@ -/********************************* -For the main html chat area -*********************************/ - -/// Should match the value set in the browser js -#define MAX_COOKIE_LENGTH 5 - -//Precaching a bunch of shit. Someone ship this out of here -GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of icons for the browser output - -//lazy renaming to chat_output, instead renamed to old chatOutput -/** - * The chatOutput datum exists to handle the goonchat browser. - * On client, created on Client/New() - */ -/datum/chatOutput - /// The client that owns us. - var/client/owner - /// How many times client data has been checked - var/total_checks = 0 - /// When to next clear the client data checks counter - var/next_time_to_clear = 0 - /// Has the client loaded the browser output area? - var/loaded = FALSE - /// If they haven't loaded chat, this is where messages will go until they do - var/list/messageQueue - var/cookieSent = FALSE // Has the client sent a cookie for analysis - var/broken = FALSE - var/list/connectionHistory //Contains the connection history passed from chat cookie - var/adminMusicVolume = 25 //This is for the Play Global Sound verb - -/datum/chatOutput/New(client/C) - owner = C - messageQueue = list() - connectionHistory = list() - -/** - * start: Tries to load the chat browser - * Aborts if a problem is encountered. - * Async because this is called from Client/New. - */ -/datum/chatOutput/proc/start() - set waitfor = FALSE - //Check for existing chat - if(!owner) - return FALSE - - if(!winexists(owner, "browseroutput")) // Oh goddamnit. - broken = TRUE - message_admins("Couldn't start chat for [key_name_admin(owner)]!") - . = FALSE - alert(owner.mob, "Updated chat window does not exist. If you are using a custom skin file please allow the game to update.") - return - - if(winget(owner, "browseroutput", "is-visible") == "true") //Already setup - doneLoading() - - else //Not setup - load() - - return TRUE - -/// Loads goonchat and sends assets. -/datum/chatOutput/proc/load() - set waitfor = FALSE - if(!owner) - return - - var/datum/asset/stuff = get_asset_datum(/datum/asset/group/goonchat) - stuff.send(owner) - - owner << browse(file('code/modules/goonchat/browserassets/html/browserOutput.html'), "window=browseroutput") - -/// Interprets input from the client. Will send data back if required. -/datum/chatOutput/Topic(href, list/href_list) - if(usr.client != owner) - return TRUE - - // Build arguments. - // Arguments are in the form "param[paramname]=thing" - var/list/params = list() - for(var/key in href_list) - if(length_char(key) > 7 && findtext(key, "param")) // 7 is the amount of characters in the basic param key template. - var/param_name = copytext_char(key, 7, -1) - var/item = href_list[key] - - params[param_name] = item - - var/data // Data to be sent back to the chat. - switch(href_list["proc"]) - if("doneLoading") - data = doneLoading(arglist(params)) - - if("debug") - data = debug(arglist(params)) - - if("ping") - data = ping(arglist(params)) - - if("analyzeClientData") - data = analyzeClientData(arglist(params)) - - if("setMusicVolume") - data = setMusicVolume(arglist(params)) - if("colorPresetPost") //User just swapped color presets in their goonchat preferences. Do we do anything else? - switch(href_list["preset"]) - if("light") - owner.force_white_theme() - if("dark" || "normal") - owner.force_dark_theme() - // if("swaptodarkmode") - // swaptodarkmode() - // if("swaptolightmode") - // swaptolightmode() - - if(data) - ehjax_send(data = data) - - -/// Called on chat output done-loading by JS. -/datum/chatOutput/proc/doneLoading() - if(loaded) - return - - testing("Chat loaded for [owner.ckey]") - loaded = TRUE - showChat() - - - for(var/message in messageQueue) - // whitespace has already been handled by the original to_chat - to_chat(owner, message, handle_whitespace=FALSE) - - messageQueue = null - sendClientData() - - syncRegex() - - //do not convert to to_chat() - SEND_TEXT(owner, "Failed to load fancy chat, reverting to old chat. Certain features won't work.") - -/// Hides the standard output and makes the browser visible. -/datum/chatOutput/proc/showChat() - winset(owner, "output", "is-visible=false") - winset(owner, "browseroutput", "is-disabled=false;is-visible=true") - -/// Calls syncRegex on all currently owned chatOutput datums -/proc/syncChatRegexes() - for (var/user in GLOB.clients) - var/client/C = user - var/datum/chatOutput/Cchat = C.chatOutput - if (Cchat && !Cchat.broken && Cchat.loaded) - Cchat.syncRegex() - -/// Used to dynamically add regexes to the browser output. Currently only used by the IC filter. -/datum/chatOutput/proc/syncRegex() - var/list/regexes = list() - /* - if (config.ic_filter_regex) - regexes["show_filtered_ic_chat"] = list( - config.ic_filter_regex.name, - "ig", - "$1" - ) - */ - if (regexes.len) - ehjax_send(data = list("syncRegex" = regexes)) - -/// Sends json encoded data to the browser. -/datum/chatOutput/proc/ehjax_send(client/C = owner, window = "browseroutput", data) - if(islist(data)) - data = json_encode(data) - C << output("[data]", "[window]:ehjaxCallback") - -/** - * Sends music data to the browser. If enabled by the browser, it will start playing. - * Arguments: - * music must be a https adress. - * extra_data is a list. The keys "pitch", "start" and "end" are used. - ** "pitch" determines the playback rate - ** "start" determines the start time of the sound - ** "end" determines when the musics stops playing - */ -/datum/chatOutput/proc/sendMusic(music, pitch, list/extra_data) //someone remove pitch - if(!findtext(music, GLOB.is_http_protocol)) - return - var/list/music_data = list("adminMusic" = url_encode(url_encode(music))) - - if(extra_data?.len) - music_data["musicRate"] = extra_data["pitch"] || pitch - music_data["musicSeek"] = extra_data["start"] - music_data["musicHalt"] = extra_data["end"] - - ehjax_send(data = music_data) - -/// Stops music playing throw the browser. -/datum/chatOutput/proc/stopMusic() - ehjax_send(data = "stopMusic") - -/// Setter for adminMusicVolume. Sanitizes the value to between 0 and 100. -/datum/chatOutput/proc/setMusicVolume(volume = "") - if(volume) - adminMusicVolume = clamp(text2num(volume), 0, 100) - -/// Sends client connection details to the chat to handle and save -/datum/chatOutput/proc/sendClientData() - //Get dem deets - var/list/deets = list("clientData" = list()) - deets["clientData"]["ckey"] = owner.ckey - deets["clientData"]["ip"] = owner.address - deets["clientData"]["compid"] = owner.computer_id - var/data = json_encode(deets) - ehjax_send(data = data) - -/// Called by client, sent data to investigate (cookie history so far) -/datum/chatOutput/proc/analyzeClientData(cookie = "") - //Spam check - if(world.time > next_time_to_clear) - next_time_to_clear = world.time + (3 SECONDS) - total_checks = 0 - - total_checks += 1 - - if(total_checks > SPAM_TRIGGER_AUTOMUTE) - message_admins("[key_name(owner)] kicked for goonchat topic spam") - qdel(owner) - return - - if(!cookie) - return - - if(cookie != "none") - var/list/connData = json_decode(cookie) - if (connData && islist(connData) && connData.len > 0 && connData["connData"]) - connectionHistory = connData["connData"] //lol fuck - var/list/found = new() - - if(connectionHistory.len > MAX_COOKIE_LENGTH) - message_admins("[key_name(src.owner)] was kicked for an invalid ban cookie)") - qdel(owner) - return - - for(var/i in connectionHistory.len to 1 step -1) - if(QDELETED(owner)) - //he got cleaned up before we were done - return - var/list/row = src.connectionHistory[i] - if (!row || row.len < 3 || (!row["ckey"] || !row["compid"] || !row["ip"])) //Passed malformed history object - return - if (world.IsBanned(row["ckey"], row["ip"], row["compid"], real_bans_only=TRUE)) - found = row - break - CHECK_TICK - - //Uh oh this fucker has a history of playing on a banned account!! - if (found.len > 0) - message_admins("[key_name(src.owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])") - log_admin_private("[key_name(owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])") - - cookieSent = TRUE - -/// Called by js client every 60 seconds -/datum/chatOutput/proc/ping() - return "pong" - -/// Called by js client on js error -/datum/chatOutput/proc/debug(error) - log_world("\[[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]\] Client: [(src.owner.key ? src.owner.key : src.owner)] triggered JS error: [error]") - -/// Global chat proc. to_chat_immediate will circumvent SSchat and send data as soon as possible. -/proc/to_chat_immediate(target, message, handle_whitespace = TRUE, trailing_newline = TRUE, confidential = FALSE) - if(!target || !message) - return - - if(target == world) - target = GLOB.clients - - var/original_message = message - if(handle_whitespace) - message = replacetext(message, "\n", "
    ") - message = replacetext(message, "\t", "[FOURSPACES][FOURSPACES]") //EIGHT SPACES IN TOTAL!! - if(trailing_newline) - message += "
    " - - if(islist(target)) - // Do the double-encoding outside the loop to save nanoseconds - var/twiceEncoded = url_encode(url_encode(message)) - for(var/I in target) - var/client/C = CLIENT_FROM_VAR(I) //Grab us a client if possible - - if (!C) - continue - - //Send it to the old style output window. - SEND_TEXT(C, original_message) - - if(!C.chatOutput || C.chatOutput.broken) // A player who hasn't updated his skin file. - continue - - if(!C.chatOutput.loaded) - //Client still loading, put their messages in a queue - C.chatOutput.messageQueue += message - continue - - C << output(twiceEncoded, "browseroutput:output") - else - var/client/C = CLIENT_FROM_VAR(target) //Grab us a client if possible - - if (!C) - return - - //Send it to the old style output window. - SEND_TEXT(C, original_message) - - if(!C.chatOutput || C.chatOutput.broken) // A player who hasn't updated his skin file. - return - - if(!C.chatOutput.loaded) - //Client still loading, put their messages in a queue - C.chatOutput.messageQueue += message - return - - // url_encode it TWICE, this way any UTF-8 characters are able to be decoded by the Javascript. - C << output(url_encode(url_encode(message)), "browseroutput:output") - -/// Sends a text message to the target. -/proc/to_chat(target, message, handle_whitespace = TRUE, trailing_newline = TRUE, confidential = FALSE) - if(Master.current_runlevel == RUNLEVEL_INIT || !SSchat?.initialized) - to_chat_immediate(target, message, handle_whitespace, trailing_newline, confidential) - return - SSchat.queue(target, message, handle_whitespace, trailing_newline, confidential) - -/// Dark mode light mode stuff. Yell at KMC if this breaks! (See darkmode.dm for documentation) -/datum/chatOutput/proc/swaptolightmode() - owner.force_white_theme() - -/// Light mode stuff. (See darkmode.dm for documentation) -/datum/chatOutput/proc/swaptodarkmode() - owner.force_dark_theme() - -#undef MAX_COOKIE_LENGTH diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css deleted file mode 100644 index 2669a3634a..0000000000 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ /dev/null @@ -1,464 +0,0 @@ -/***************************************** -* -* GLOBAL STYLES -* -******************************************/ -html, body { - padding: 0; - margin: 0; - height: 100%; - color: #000000; -} -body { - background: #E0E0E0; /*CIT CHANGE - darkens chatbox a lil*/ - font-family: Verdana, sans-serif; - font-size: 13px; - line-height: 1.2; - overflow-x: hidden; - overflow-y: scroll; - word-wrap: break-word; -} - -em { - font-style: normal; - font-weight: bold; -} - -img { - margin: 0; - padding: 0; - line-height: 1; - -ms-interpolation-mode: nearest-neighbor; - image-rendering: pixelated; -} -img.icon { - height: 1em; - min-height: 16px; - width: auto; - vertical-align: bottom; -} - - -.r:before { /* "repeated" badge class for combined messages */ - content: 'x'; -} -.r { - display: inline-block; - min-width: 0.5em; - font-size: 0.7em; - padding: 0.2em 0.3em; - line-height: 1; - color: white; - text-align: center; - white-space: nowrap; - vertical-align: middle; - background-color: crimson; - border-radius: 10px; -} - -a {color: #0000ff;} -a.visited {color: #ff00ff;} -a:visited {color: #ff00ff;} -a.popt {text-decoration: none;} - -/***************************************** -* -* OUTPUT NOT RELATED TO ACTUAL MESSAGES -* -******************************************/ -#loading { - position: fixed; - width: 300px; - height: 150px; - text-align: center; - left: 50%; - top: 50%; - margin: -75px 0 0 -150px; -} -#loading i {display: block; padding-bottom: 3px;} - -#messages { - font-size: 13px; - padding: 3px; - margin: 0; - word-wrap: break-word; -} -#newMessages { - position: fixed; - display: block; - bottom: 0; - right: 0; - padding: 8px; - background: #d0d0d0; - text-decoration: none; - font-variant: small-caps; - font-size: 1.1em; - font-weight: bold; - color: #333; -} -#newMessages:hover {background: #ccc;} -#newMessages i {vertical-align: middle; padding-left: 3px;} -#ping { - position: fixed; - top: 0; - right: 135px; - width: 45px; - background: #d0d0d0; - height: 30px; - padding: 8px 0 2px 0; -} -#ping i {display: block; text-align: center;} -#ping .ms { - display: block; - text-align: center; - font-size: 8pt; - padding-top: 2px; -} -#userBar { - position: fixed; - top: 0; - right: 0; -} -#userBar .subCell { - background: #d0d0d0; - height: 30px; - padding: 5px 0; - display: block; - color: #333; - text-decoration: none; - line-height: 28px; - border-top: 1px solid #b4b4b4; -} -#userBar .subCell:hover {background: #ccc;} -#userBar .toggle { - width: 45px; - background: #ccc; - border-top: 0; - float: right; - text-align: center; -} -#userBar .sub {clear: both; display: none; width: 180px;} -#userBar .sub.scroll {overflow-y: scroll;} -#userBar .sub.subCell {padding: 3px 0 3px 8px; line-height: 30px; font-size: 0.9em; clear: both;} -#userBar .sub span { - display: block; - line-height: 30px; - float: left; -} -#userBar .sub i { - display: block; - padding: 0 5px; - font-size: 1.1em; - width: 22px; - text-align: center; - line-height: 30px; - float: right; -} -#userBar .sub input { - position: absolute; - padding: 7px 5px; - width: 121px; - line-height: 30px; - float: left; -} -#userBar .topCell {border-top: 0;} - -/* POPUPS */ -.popup { - position: fixed; - top: 50%; - left: 50%; - background: #d0d0d0; -} -.popup .close { - position: absolute; - background: #aaa; - top: 0; - right: 0; - color: #333; - text-decoration: none; - z-index: 2; - padding: 0 10px; - height: 30px; - line-height: 30px; -} -.popup .close:hover {background: #999;} -.popup .head { - background: #999; - color: #d0d0d0; - padding: 0 10px; - height: 30px; - line-height: 30px; - text-transform: uppercase; - font-size: 0.9em; - font-weight: bold; - border-bottom: 2px solid green; -} -.popup input {border: 1px solid #999; background: #fff; margin: 0; padding: 5px; outline: none; color: #333;} -.popup input[type=text]:hover, .popup input[type=text]:active, .popup input[type=text]:focus {border-color: green;} -.popup input[type=submit] {padding: 5px 10px; background: #999; color: #d0d0d0; text-transform: uppercase; font-size: 0.9em; font-weight: bold;} -.popup input[type=submit]:hover, .popup input[type=submit]:focus, .popup input[type=submit]:active {background: #aaa; cursor: pointer;} - -.changeFont {padding: 10px;} -.changeFont a {display: block; text-decoration: none; padding: 3px; color: #333;} -.changeFont a:hover {background: #ccc;} - -.highlightPopup {padding: 10px; text-align: center;} -.highlightPopup input[type=text] {display: block; width: 215px; text-align: left; margin-top: 5px;} -.highlightPopup input.highlightColor {background-color: #FFFF00;} -.highlightPopup input.highlightTermSubmit {margin-top: 5px;} - -/* ADMIN CONTEXT MENU */ -.contextMenu { - background-color: #d0d0d0; - position: fixed; - margin: 2px; - width: 150px; -} -.contextMenu a { - display: block; - padding: 2px 5px; - text-decoration: none; - color: #333; -} - -.contextMenu a:hover { - background-color: #ccc; -} - -/* ADMIN FILTER MESSAGES MENU */ -.filterMessages {padding: 5px;} -.filterMessages div {padding: 2px 0;} -.filterMessages input {} -.filterMessages label {} - -.icon-stack {height: 1em; line-height: 1em; width: 1em; vertical-align: middle; margin-top: -2px;} - - -/***************************************** -* -* OUTPUT ACTUALLY RELATED TO MESSAGES -* -******************************************/ - -/* MOTD */ -.motd {color: #638500; font-family: Verdana, sans-serif;} -.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #638500; text-decoration: underline;} -.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;} - -/* ADD HERE FOR BOLD */ -.bold, .name, .prefix, .ooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;} - -/* ADD HERE FOR ITALIC */ -.italic, .italics, .emote {font-style: italic;} - -/* OUTPUT COLORS */ -.highlight {background: yellow;} - -h1, h2, h3, h4, h5, h6 {color: #0000ff;font-family: Georgia, Verdana, sans-serif;} -h1.alert, h2.alert {color: #000000;} - -em {font-style: normal; font-weight: bold;} - -.ooc {color: #002eb8; font-weight: bold;} -.looc {color: #6699CC; font-weight: bold;} -.antagooc {color: #b8002e; font-weight: bold;} -.adminobserverooc {color: #0099cc; font-weight: bold;} -.adminooc {color: #700038; font-weight: bold;} - -.adminsay {color: #FF4500} -.admin {color: #386aff; font-weight: bold;} - -.name { font-weight: bold;} - -.say {} -.deadsay {color: #5c00e6;} -.binarysay {color: #20c20e; background-color: #000000; display: block;} -.binarysay a {color: #00ff00;} -.binarysay a:active, .binarysay a:visited {color: #88ff88;} -.radio {color: #008000;} -.sciradio {color: #993399;} -.comradio {color: #948f02;} -.secradio {color: #a30000;} -.medradio {color: #337296;} -.engradio {color: #fb5613;} -.suppradio {color: #a8732b;} -.servradio {color: #6eaa2c;} -.syndradio {color: #6d3f40;} -.centcomradio {color: #686868;} -.aiprivradio {color: #ff00ff;} -.redteamradio {color: #ff0000;} -.blueteamradio {color: #0000ff;} - -.yell { font-weight: bold;} - -.alert {color: #ff0000;} -h1.alert, h2.alert {color: #000000;} - -.emote { font-style: italic;} -.selecteddna {color: #ffffff; background-color: #001B1B} - -.attack {color: #ff0000;} -.disarm {color: #990000;} -.passive {color: #660000;} - -.userdanger {color: #ff0000; font-weight: bold; font-size: 185%;} -.bolddanger {color: #c51e1e;font-weight: bold;} -.danger {color: #ff0000;} -.tinydanger {color: #c51e1e; font-size: 85%;} -.smalldanger {color: #c51e1e; font-size: 90%;} -.warning {color: #ff0000; font-style: italic;} -.alertwarning {color: #FF0000; font-weight: bold} -.boldwarning {color: #ff0000; font-style: italic; font-weight: bold} -.announce {color: #228b22; font-weight: bold;} -.boldannounce {color: #ff0000; font-weight: bold;} -.greenannounce {color: #00ff00; font-weight: bold;} -.rose {color: #ff5050;} -.info {color: #0000CC;} -.notice {color: #000099;} -.tinynotice {color: #6685f5; font-style: italic; font-size: 85%;} -.smallnotice {color: #6685f5; font-size: 90%;} -.smallnoticeital {color: #6685f5; font-style: italic; font-size: 90%;} -.boldnotice {color: #000099; font-weight: bold;} -.adminnotice {color: #0000ff;} -.adminhelp {color: #ff0000; font-weight: bold;} -.unconscious {color: #0000ff; font-weight: bold;} -.suicide {color: #ff5050; font-style: italic;} -.green {color: #03ff39;} -.red {color: #FF0000;} -.pink {color: #FF69Bf;} -.blue {color: #0000FF;} -.nicegreen {color: #14a833;} -.userlove {color: #FF1493; font-style: italic; font-weight: bold; text-shadow: 0 0 6px #ff6dbc;} -.love {color: #ff006a; font-style: italic; text-shadow: 0 0 6px #ff6d6d;} -.shadowling {color: #3b2769;} -.cult {color: #960000;} - -.cultitalic {color: #960000; font-style: italic;} -.cultbold {color: #960000; font-style: italic; font-weight: bold;} -.cultboldtalic {color: #960000; font-weight: bold; font-size: 185%;} - -.cultlarge {color: #960000; font-weight: bold; font-size: 185%;} -.narsie {color: #960000; font-weight: bold; font-size: 925%;} -.narsiesmall {color: #960000; font-weight: bold; font-size: 370%;} -.colossus {color: #7F282A; font-size: 310%;} -.hierophant {color: #660099; font-weight: bold; font-style: italic;} -.hierophant_warning {color: #660099; font-style: italic;} -.purple {color: #5e2d79;} -.holoparasite {color: #35333a;} - -.revennotice {color: #1d2953;} -.revenboldnotice {color: #1d2953; font-weight: bold;} -.revenbignotice {color: #1d2953; font-weight: bold; font-size: 185%;} -.revenminor {color: #823abb} -.revenwarning {color: #760fbb; font-style: italic;} -.revendanger {color: #760fbb; font-weight: bold; font-size: 185%;} -.umbra {color: #5000A0;} -.umbra_emphasis {color: #5000A0; font-weight: bold; font-style: italic;} -.umbra_large {color: #5000A0; font-size: 185%; font-weight: bold; font-style: italic;} - -.deconversion_message {color: #5000A0; font-size: 185%; font-style: italic;} - -.brass {color: #BE8700;} -.heavy_brass {color: #BE8700; font-weight: bold; font-style: italic;} -.large_brass {color: #BE8700; font-size: 185%;} -.big_brass {color: #BE8700; font-size: 185%; font-weight: bold; font-style: italic;} -.ratvar {color: #BE8700; font-size: 370%; font-weight: bold; font-style: italic;} -.alloy {color: #42474D;} -.heavy_alloy {color: #42474D; font-weight: bold; font-style: italic;} -.nezbere_large {color: #42474D; font-size: 185%; font-weight: bold; font-style: italic;} -.nezbere {color: #42474D; font-weight: bold; font-style: italic;} -.nezbere_small {color: #42474D;} -.sevtug_large {color: #AF0AAF; font-size: 185%; font-weight: bold; font-style: italic;} -.sevtug {color: #AF0AAF; font-weight: bold; font-style: italic;} -.sevtug_small {color: #AF0AAF;} -.inathneq_large {color: #1E8CE1; font-size: 185%; font-weight: bold; font-style: italic;} -.inathneq {color: #1E8CE1; font-weight: bold; font-style: italic;} -.inathneq_small {color: #1E8CE1;} -.nzcrentr_large {color: #DAAA18; font-size: 185%; font-weight: bold; font-style: italic;} -.nzcrentr {color: #DAAA18; font-weight: bold; font-style: italic;} -.nzcrentr_small {color: #DAAA18;} -.neovgre_large {color: #6E001A; font-size: 185%; font-weight: bold; font-style: italic;} -.neovgre {color: #6E001A; font-weight: bold; font-style: italic;} -.neovgre_small {color: #6E001A;} - -.newscaster {color: #800000;} -.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;} - -.alien {color: #543354;} -.noticealien {color: #00c000;} -.alertalien {color: #00c000; font-weight: bold;} -.changeling {color: #800080; font-style: italic;} - -.spider {color: #4d004d; font-weight: bold; font-size: 185%;} - -.interface {color: #330033;} - -.sans {font-family: "Comic Sans MS", cursive, sans-serif;} -.papyrus {font-family: "Papyrus", cursive, sans-serif;} -.robot {font-family: "Courier New", cursive, sans-serif;} - -.command_headset {font-weight: bold; font-size: 160%;} -.small {font-size: 60%;} -.big {font-size: 185%;} -.reallybig {font-size: 245%;} -.extremelybig {font-size: 310%;} -.greentext {color: #00FF00; font-size: 185%;} -.redtext {color: #FF0000; font-size: 185%;} -.clown {color: #FF69Bf; font-size: 160%; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} -.his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} -.spooky {color: #FF6100;} -.velvet {color: #660015; font-weight: bold; animation: velvet 5000ms infinite;} - -.lethal {color: #bf3d3d; font-weight: bold;} -.stun {color: #0f81bc; font-weight: bold;} -.ion {color: #d084d6; font-weight: bold;} -.xray {color: #32c025; font-weight: bold;} - -@keyframes velvet { - 0% { color: #400020; } - 40% { color: #FF0000; } - 50% { color: #FF8888; } - 60% { color: #FF0000; } - 100% { color: #400020; } -} - -.hypnophrase {color: #202020; font-weight: bold; animation: hypnocolor 1500ms infinite;} -@keyframes hypnocolor { - 0% { color: #202020; } - 25% { color: #4b02ac; } - 50% { color: #9f41f1; } - 75% { color: #541c9c; } - 100% { color: #7adbf3; } -} - -.phobia {color: #dd0000; font-weight: bold; animation: phobia 750ms infinite;} -@keyframes phobia { - 0% { color: #f75a5a; } - 50% { color: #dd0000; } - 100% { color: #f75a5a; } -} - - -.icon {height: 1em; width: auto;} - -.memo {color: #638500; text-align: center;} -.memoedit {text-align: center; font-size: 125%;} -.abductor {color: #800080; font-style: italic;} -.mind_control {color: #A00D6F; font-size: 100%; font-weight: bold; font-style: italic;} -.slime {color: #00CED1;} -.drone {color: #848482;} -.monkey {color: #975032;} -.swarmer {color: #2C75FF;} -.resonate {color: #298F85;} - -.monkeyhive {color: #774704;} -.monkeylead {color: #774704; font-size: 125%;} - -.connectionClosed, .fatalError {background: red; color: white; padding: 5px;} -.connectionClosed.restored {background: green;} -.internal.boldnshit {color: #000099; font-weight: bold;} - -/* HELPER CLASSES */ -.text-normal {font-weight: normal; font-style: normal;} -.hidden {display: none; visibility: hidden;} diff --git a/code/modules/goonchat/browserassets/css/browserOutput_dark.css b/code/modules/goonchat/browserassets/css/browserOutput_dark.css deleted file mode 100644 index 3377bcf72c..0000000000 --- a/code/modules/goonchat/browserassets/css/browserOutput_dark.css +++ /dev/null @@ -1,159 +0,0 @@ -html, body {color: #E0E0E0;} -body { - background: #171717; - font-color: #E0E0E0; - scrollbar-face-color:#1A1A1A; - scrollbar-track-color:#171717; - scrollbar-highlight-color:#171717; -} - -a {color: #397ea5;} -a.visited {color: #7c00e6;} -a:visited {color: #7c00e6;} - -#newMessages { - background: #242424; - color: #E0E0E0; -} -#newMessages:hover {background: #272727;} - -#ping {background: #272727;} - -#userBar .subCell { - background: #272727; - color: #E0E0E0; - border-top: 1px solid #171717; -} -#userBar .subCell:hover {background: #272727;} -#userBar .toggle {background: #272727;} - -/* MOTD */ -.motd {color: #E0E0E0;} -.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #E0E0E0;} -.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #E0E0E0;} - -h1, h2, h3, h4, h5, h6 {color: #E0E0E0;} -h1.alert, h2.alert {color: #E0E0E0;} - -.ooc {color: #cca300;} -.looc {color: #d8b555;} -.antagooc {color: #ce254f;} -.adminobserverooc {color: #0099cc;} -.adminooc {color: #3d5bc3;} - -.admin {color: #5975da;} - -.deadsay {color: #e2c1ff;} -.radio {color: #1ecc43;} -.sciradio {color: #c68cfa;} -.comradio {color: #5177ff;} -.secradio {color: #dd3535;} -.medradio {color: #57b8f0;} -.engradio {color: #f37746;} -.suppradio {color: #b88646;} -.servradio {color: #6ca729;} -.syndradio {color: #8f4a4b;} -.centcomradio {color: #2681a5;} -.aiprivradio {color: #d65d95;} -.redteamradio {color: #ff4444;} -.blueteamradio {color: #3434fd;} - -.alert {color: #d82020;} -h1.alert, h2.alert {color: #99aab5;} - -.attack {color: #e01c1c;} -.disarm {color: #b42525;} -.passive {color: #a00f0f;} - -.userdanger {color: #c51e1e;} -.danger {color: #c51e1e;} -.warning {color: #c51e1e;} -.alertwarning {color: #c51e1e;} -.boldwarning {color: #c51e1e;} -.announce {color: #c51e1e;} -.boldannounce {color: #c51e1e;} -.greenannounce {color: #059223;} -.info {color: #6685f5;} -.notice {color: #6685f5;} -.boldnotice {color: #6685f5;} -.adminnotice {color: #6685f5;} -.adminhelp {color: #ff0000;} -.unconscious {color: #E0E0E0;} -.red {color: #FF0000;} -.pink {color: #ff70c1;} -.blue {color: #215cff;} -.green {color: #059223;} -.nicegreen {color: #059223;} -.userlove {color: #ff42a6; text-shadow: 0 0 6px #82365e;} -.love {color: #ff4591; text-shadow: 0 0 6px #994449;} -.shadowling {color: #8e8a99;} -.cult {color: #aa1c1c;} - -.cultitalic {color: #aa1c1c;} -.cultbold {color: #aa1c1c;} -.cultboldtalic {color: #aa1c1c;} - -.cultlarge {color: #aa1c1c;} -.narsie {color: #aa1c1c;} -.narsiesmall {color: #aa1c1c;} -.hierophant {color: #b441ee;} -.hierophant_warning {color: #c56bf1;} -.purple {color: #9956d3;} -.holoparasite {color: #88809c;} - -.revennotice {color: #3645aa;} -.revenboldnotice {color: #3645aa;} -.revenbignotice {color: #3645aa;} -.revenminor {color: #823ddd;} -.revenwarning {color: #8911d9;} -.revendanger {color: #8911d9;} -.umbra {color: #7c00e6;} -.umbra_emphasis {color: #7c00e6;} -.umbra_large {color: #7c00e6;} - -.deconversion_message {color: #a947ff;} - -.alloy {color: #545b64;} -.heavy_alloy {color: #545b64;} -.nezbere_large {color: #545b64;} -.nezbere {color: #545b64;} -.nezbere_small {color: #545b64;} -.inathneq_large {color: #1d7dc7;} -.inathneq {color: #1d7dc7;} -.inathneq_small {color: #1d7dc7;} -.neovgre_large {color: #7c0622;} -.neovgre {color: #7c0622;} -.neovgre_small {color: #7c0622;} - -.newscaster {color: #c05d5d;} -.ghostalert {color: #6600ff;} - -.alien {color: #855d85;} -.noticealien {color: #059223;} -.alertalien {color: #059223;} -.changeling {color: #059223;} - -.spider {color: #8800ff;} - -.interface {color: #750e75;} - -.greentext {color: #059223;} -.redtext {color: #c51e1e;} -.clown {color: #ff70c1;} -.velvet {color: #660015;} -@keyframes velvet { - 0% { color: #890020; } - 40% { color: #c51e1e; } - 50% { color: #FF8888; } - 60% { color: #c51e1e; } - 100% { color: #890020; } -} - -.abductor {color: #c204c2;} -.mind_control {color: #df3da9;} -.drone {color: #979795;} - -.monkeyhive {color: #a56408;} -.monkeylead {color: #af6805;} - -.internal.boldnshit {color: #3d5bc3;} diff --git a/code/modules/goonchat/browserassets/css/browserOutput_light.css b/code/modules/goonchat/browserassets/css/browserOutput_light.css deleted file mode 100644 index b7036c74d8..0000000000 --- a/code/modules/goonchat/browserassets/css/browserOutput_light.css +++ /dev/null @@ -1,14 +0,0 @@ -body {background: #F1F1F1;} - -#newMessages {background: #ddd;} -#ping {background: #ddd;} - -#userBar .subCell {background: #ddd;} - -/* POPUPS */ -.popup {background: #ddd;} -.popup .head {color: #ddd;} -.popup input[type=submit] {color: #ddd;} - -/* ADMIN CONTEXT MENU */ -.contextMenu {background-color: #ddd;} diff --git a/code/modules/goonchat/browserassets/html/browserOutput.html b/code/modules/goonchat/browserassets/html/browserOutput.html deleted file mode 100644 index ce51cd8de8..0000000000 --- a/code/modules/goonchat/browserassets/html/browserOutput.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - Chat - - - - - - - - - - -
    - -
    - Loading...

    - If this takes longer than 30 seconds, it will automatically reload a maximum of 5 times.
    - If it still doesn't work, use the bug report button at the top right of the window. -
    -
    -
    - -
    - - - - - diff --git a/code/modules/goonchat/browserassets/js/browserOutput.js b/code/modules/goonchat/browserassets/js/browserOutput.js deleted file mode 100644 index ac30076de4..0000000000 --- a/code/modules/goonchat/browserassets/js/browserOutput.js +++ /dev/null @@ -1,1104 +0,0 @@ - -/***************************************** -* -* FUNCTION AND VAR DECLARATIONS -* -******************************************/ - -//DEBUG STUFF -var escaper = encodeURIComponent || escape; -var decoder = decodeURIComponent || unescape; -window.onerror = function(msg, url, line, col, error) { - if (document.location.href.indexOf("proc=debug") <= 0) { - var extra = !col ? '' : ' | column: ' + col; - extra += !error ? '' : ' | error: ' + error; - extra += !navigator.userAgent ? '' : ' | user agent: ' + navigator.userAgent; - var debugLine = 'Error: ' + msg + ' | url: ' + url + ' | line: ' + line + extra; - window.location = '?_src_=chat&proc=debug¶m[error]='+escaper(debugLine); - } - return true; -}; - -//Globals -window.status = 'Output'; -var $messages, $subOptions, $subAudio, $selectedSub, $contextMenu, $filterMessages, $last_message; -var opts = { - //General - 'messageCount': 0, //A count...of messages... - 'messageLimit': 2053, //A limit...for the messages... - 'scrollSnapTolerance': 10, //If within x pixels of bottom - 'clickTolerance': 10, //Keep focus if outside x pixels of mousedown position on mouseup - 'imageRetryDelay': 50, //how long between attempts to reload images (in ms) - 'imageRetryLimit': 50, //how many attempts should we make? - 'popups': 0, //Amount of popups opened ever - 'wasd': false, //Is the user in wasd mode? - 'priorChatHeight': 0, //Thing for height-resizing detection - 'restarting': false, //Is the round restarting? - 'colorPreset': 0, // index in the color presets list. - //'darkmode':false, //Are we using darkmode? If not WHY ARE YOU LIVING IN 2009??? <- /tg/ take on darktheme - - //Options menu - 'selectedSubLoop': null, //Contains the interval loop for closing the selected sub menu - 'suppressSubClose': false, //Whether or not we should be hiding the selected sub menu - 'highlightTerms': [], - 'highlightLimit': 5, - 'highlightColor': '#FFFF00', //The color of the highlighted message - 'pingDisabled': false, //Has the user disabled the ping counter - - //Ping display - 'lastPang': 0, //Timestamp of the last response from the server. - 'pangLimit': 35000, - 'pingTime': 0, //Timestamp of when ping sent - 'pongTime': 0, //Timestamp of when ping received - 'noResponse': false, //Tracks the state of the previous ping request - 'noResponseCount': 0, //How many failed pings? - - //Clicks - 'mouseDownX': null, - 'mouseDownY': null, - 'preventFocus': false, //Prevents switching focus to the game window - - //Client Connection Data - 'clientDataLimit': 5, - 'clientData': [], - - //Admin music volume update - 'volumeUpdateDelay': 5000, //Time from when the volume updates to data being sent to the server - 'volumeUpdating': false, //True if volume update function set to fire - 'updatedVolume': 0, //The volume level that is sent to the server - 'musicStartAt': 0, //The position the music starts playing - 'musicEndAt': 0, //The position the music... stops playing... if null, doesn't apply (so the music runs through) - - 'defaultMusicVolume': 25, - - 'messageCombining': true, - -}; -var replaceRegexes = {}; - -// Array of names for chat display color presets. CIT SPECIFIC. -// If not set to normal, a CSS file `browserOutput_${name}.css` will be added to the head. -var colorPresets = [ - 'normal', - 'light', - 'dark' -] - -function clamp(val, min, max) { - return Math.max(min, Math.min(val, max)) -} - -//Polyfill for fucking date now because of course IE8 and below don't support it -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -//Polyfill for trim() (IE8 and below) -if (typeof String.prototype.trim !== 'function') { - String.prototype.trim = function () { - return this.replace(/^\s+|\s+$/g, ''); - }; -} - -// CIT SPECIFIC. -function updateColorPreset() { - var el = $("#colorPresetLink")[0]; - el.href = "browserOutput_"+colorPresets[opts.colorPreset]+".css"; - runByond('?_src_=chat&proc=colorPresetPost&preset='+colorPresets[opts.colorPreset]); -} - -// Linkify the contents of a node, within its parent. -function linkify(parent, insertBefore, text) { - var start = 0; - var match; - var regex = /(?:(?:https?:\/\/)|(?:www\.))(?:[^ ]*?\.[^ ]*?)+[-A-Za-z0-9+&@#\/%?=~_|$!:,.;()]+/ig; - while ((match = regex.exec(text)) !== null) { - // add the unmatched text - parent.insertBefore(document.createTextNode(text.substring(start, match.index)), insertBefore); - - var href = match[0]; - if (!/^https?:\/\//i.test(match[0])) { - href = "http://" + match[0]; - } - - // add the link - var link = document.createElement("a"); - link.href = href; - link.textContent = match[0]; - parent.insertBefore(link, insertBefore); - - start = regex.lastIndex; - } - if (start !== 0) { - // add the remaining text and remove the original text node - parent.insertBefore(document.createTextNode(text.substring(start)), insertBefore); - parent.removeChild(insertBefore); - } -} - -// Recursively linkify the children of a given node. -function linkify_node(node) { - var children = node.childNodes; - // work backwards to avoid the risk of looping forever on our own output - for (var i = children.length - 1; i >= 0; --i) { - var child = children[i]; - if (child.nodeType == Node.TEXT_NODE) { - // text is to be linkified - linkify(node, child, child.textContent); - } else if (child.nodeName != "A" && child.nodeName != "a") { - // do not linkify existing links - linkify_node(child); - } - } -} - -//Shit fucking piece of crap that doesn't work god fuckin damn it -function linkify_fallback(text) { - var rex = /((?:'+$0+''; - } - else { - return $1 ? $0: ''+$0+''; - } - }); -} - -function byondDecode(message) { - // Basically we url_encode twice server side so we can manually read the encoded version and actually do UTF-8. - // The replace for + is because FOR SOME REASON, BYOND replaces spaces with a + instead of %20, and a plus with %2b. - // Marvelous. - message = message.replace(/\+/g, "%20"); - try { - // This is a workaround for the above not always working when BYOND's shitty url encoding breaks. (byond bug id:2399401) - if (decodeURIComponent) { - message = decodeURIComponent(message); - } else { - throw new Error("Easiest way to trigger the fallback") - } - } catch (err) { - message = unescape(message); - } - return message; -} - -function replaceRegex() { - var selectedRegex = replaceRegexes[$(this).attr('replaceRegex')]; - if (selectedRegex) { - var replacedText = $(this).html().replace(selectedRegex[0], selectedRegex[1]); - $(this).html(replacedText); - } - $(this).removeAttr('replaceRegex'); -} - -// Get a highlight markup span -function createHighlightMarkup() { - var extra = ''; - if (opts.highlightColor) { - extra += ' style="background-color: ' + opts.highlightColor + '"'; - } - return ''; -} - -// Get all child text nodes that match a regex pattern -function getTextNodes(elem, pattern) { - var result = $([]); - $(elem).contents().each(function(idx, child) { - if (child.nodeType === 3 && /\S/.test(child.nodeValue) && pattern.test(child.nodeValue)) { - result = result.add(child); - } - else { - result = result.add(getTextNodes(child, pattern)); - } - }); - return result; -} - -// Highlight all text terms matching the registered regex patterns -function highlightTerms(el) { - var pattern = new RegExp("(" + opts.highlightTerms.join('|') + ")", 'gi'); - var nodes = getTextNodes(el, pattern); - - nodes.each(function (idx, node) { - var content = $(node).text(); - var parent = $(node).parent(); - var pre = $(node.previousSibling); - $(node).remove(); - content.split(pattern).forEach(function (chunk) { - // Get our highlighted span/text node - var toInsert = null; - if (pattern.test(chunk)) { - var tmpElem = $(createHighlightMarkup()); - tmpElem.text(chunk); - toInsert = tmpElem; - } - else { - toInsert = document.createTextNode(chunk); - } - - // Insert back into our element - if (pre.length == 0) { - var result = parent.prepend(toInsert); - pre = $(result[0].firstChild); - } - else { - pre.after(toInsert); - pre = $(pre[0].nextSibling); - } - }); - }); -} - -function iconError(E) { - var that = this; - setTimeout(function() { - var attempts = $(that).data('reload_attempts'); - if (typeof attempts === 'undefined' || !attempts) { - attempts = 1; - } - if (attempts > opts.imageRetryLimit) - return; - var src = that.src; - that.src = null; - that.src = src+'#'+attempts; - $(that).data('reload_attempts', ++attempts); - }, opts.imageRetryDelay); -} - -//Send a message to the client -function output(message, flag) { - if (typeof message === 'undefined') { - return; - } - if (typeof flag === 'undefined') { - flag = ''; - } - - if (flag !== 'internal') - opts.lastPang = Date.now(); - - message = byondDecode(message).trim(); - - //The behemoth of filter-code (for Admin message filters) - //Note: This is proooobably hella inefficient - var filteredOut = false; - if (opts.hasOwnProperty('showMessagesFilters') && !opts.showMessagesFilters['All'].show) { - //Get this filter type (defined by class on message) - var messageHtml = $.parseHTML(message), - messageClasses; - if (opts.hasOwnProperty('filterHideAll') && opts.filterHideAll) { - var internal = false; - messageClasses = (!!$(messageHtml).attr('class') ? $(messageHtml).attr('class').split(/\s+/) : false); - if (messageClasses) { - for (var i = 0; i < messageClasses.length; i++) { //Every class - if (messageClasses[i] == 'internal') { - internal = true; - break; - } - } - } - if (!internal) { - filteredOut = 'All'; - } - } else { - //If the element or it's child have any classes - if (!!$(messageHtml).attr('class') || !!$(messageHtml).children().attr('class')) { - messageClasses = $(messageHtml).attr('class').split(/\s+/); - if (!!$(messageHtml).children().attr('class')) { - messageClasses = messageClasses.concat($(messageHtml).children().attr('class').split(/\s+/)); - } - var tempCount = 0; - for (var i = 0; i < messageClasses.length; i++) { //Every class - var thisClass = messageClasses[i]; - $.each(opts.showMessagesFilters, function(key, val) { //Every filter - if (key !== 'All' && val.show === false && typeof val.match != 'undefined') { - for (var i = 0; i < val.match.length; i++) { - var matchClass = val.match[i]; - if (matchClass == thisClass) { - filteredOut = key; - break; - } - } - } - if (filteredOut) return false; - }); - if (filteredOut) break; - tempCount++; - } - } else { - if (!opts.showMessagesFilters['Misc'].show) { - filteredOut = 'Misc'; - } - } - } - } - - //Stuff we do along with appending a message - var atBottom = false; - if (!filteredOut) { - var bodyHeight = $('body').height(); - var messagesHeight = $messages.outerHeight(); - var scrollPos = $('body,html').scrollTop(); - - //Should we snap the output to the bottom? - if (bodyHeight + scrollPos >= messagesHeight - opts.scrollSnapTolerance) { - atBottom = true; - if ($('#newMessages').length) { - $('#newMessages').remove(); - } - //If not, put the new messages box in - } else { - if ($('#newMessages').length) { - var messages = $('#newMessages .number').text(); - messages = parseInt(messages); - messages++; - $('#newMessages .number').text(messages); - if (messages == 2) { - $('#newMessages .messageWord').append('s'); - } - } else { - $messages.after('1 new message '); - } - } - } - - opts.messageCount++; - - //Pop the top message off if history limit reached - if (opts.messageCount >= opts.messageLimit) { - $messages.children('div.entry:first-child').remove(); - opts.messageCount--; //I guess the count should only ever equal the limit - } - - // Create the element - if combining is off, we use it, and if it's on, we - // might discard it bug need to check its text content. Some messages vary - // only in HTML markup, have the same text content, and should combine. - var entry = document.createElement('div'); - entry.innerHTML = message; - var trimmed_message = entry.textContent || entry.innerText || ""; - - var handled = false; - if (opts.messageCombining) { - var lastmessages = $messages.children('div.entry:last-child').last(); - if (lastmessages.length && $last_message && $last_message == trimmed_message) { - var badge = lastmessages.children('.r').last(); - if (badge.length) { - badge = badge.detach(); - badge.text(parseInt(badge.text()) + 1); - } else { - badge = $('', {'class': 'r', 'text': 2}); - } - lastmessages.html(message); - lastmessages.find('[replaceRegex]').each(replaceRegex); - lastmessages.append(badge); - badge.animate({ - "font-size": "0.9em" - }, 100, function() { - badge.animate({ - "font-size": "0.7em" - }, 100); - }); - opts.messageCount--; - handled = true; - } - } - - if (!handled) { - //Actually append the message - entry.className = 'entry'; - - if (filteredOut) { - entry.className += ' hidden'; - entry.setAttribute('data-filter', filteredOut); - } - - $(entry).find('[replaceRegex]').each(replaceRegex); - - $last_message = trimmed_message; - $messages[0].appendChild(entry); - $(entry).find("img.icon").error(iconError); - - var to_linkify = $(entry).find(".linkify"); - if (typeof Node === 'undefined') { - // Linkify fallback for old IE - for(var i = 0; i < to_linkify.length; ++i) { - to_linkify[i].innerHTML = linkify_fallback(to_linkify[i].innerHTML); - } - } else { - // Linkify for modern IE versions - for(var i = 0; i < to_linkify.length; ++i) { - linkify_node(to_linkify[i]); - } - } - - //Actually do the snap - //Stuff we can do after the message shows can go here, in the interests of responsiveness - if (opts.highlightTerms && opts.highlightTerms.length > 0) { - highlightTerms($(entry)); - } - } - - if (!filteredOut && atBottom) { - $('body,html').scrollTop($messages.outerHeight()); - } -} - -function internalOutput(message, flag) -{ - output(escaper(message), flag) -} - -//Runs a route within byond, client or server side. Consider this "ehjax" for byond. -function runByond(uri) { - window.location = uri; -} - -function setCookie(cname, cvalue, exdays) { - cvalue = escaper(cvalue); - var d = new Date(); - d.setTime(d.getTime() + (exdays*24*60*60*1000)); - var expires = 'expires='+d.toUTCString(); - document.cookie = cname + '=' + cvalue + '; ' + expires + "; path=/"; -} - -function getCookie(cname) { - var name = cname + '='; - var ca = document.cookie.split(';'); - for(var i=0; i < ca.length; i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1); - if (c.indexOf(name) === 0) { - return decoder(c.substring(name.length,c.length)); - } - } - return ''; -} - -function rgbToHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B);} -function toHex(n) { - n = parseInt(n,10); - if (isNaN(n)) return "00"; - n = Math.max(0,Math.min(n,255)); - return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); -} - -/* -function swap() { //Swap to darkmode - if (opts.darkmode){ - document.getElementById("sheetofstyles").href = "browserOutput_white.css"; - opts.darkmode = false; - runByond('?_src_=chat&proc=swaptolightmode'); - } else { - document.getElementById("sheetofstyles").href = "browserOutput.css"; - opts.darkmode = true; - runByond('?_src_=chat&proc=swaptodarkmode'); - } - setCookie('darkmode', (opts.darkmode ? 'true' : 'false'), 365); -} -*/ -function handleClientData(ckey, ip, compid) { - //byond sends player info to here - var currentData = {'ckey': ckey, 'ip': ip, 'compid': compid}; - if (opts.clientData && !$.isEmptyObject(opts.clientData)) { - runByond('?_src_=chat&proc=analyzeClientData¶m[cookie]='+JSON.stringify({'connData': opts.clientData})); - - for (var i = 0; i < opts.clientData.length; i++) { - var saved = opts.clientData[i]; - if (currentData.ckey == saved.ckey && currentData.ip == saved.ip && currentData.compid == saved.compid) { - return; //Record already exists - } - } - //Lets make sure we obey our limit (can connect from server with higher limit) - while (opts.clientData.length >= opts.clientDataLimit) { - opts.clientData.shift(); - } - } else { - runByond('?_src_=chat&proc=analyzeClientData¶m[cookie]=none'); - } - - //Update the cookie with current details - opts.clientData.push(currentData); - setCookie('connData', JSON.stringify(opts.clientData), 365); -} - -//Server calls this on ehjax response -//Or, y'know, whenever really -function ehjaxCallback(data) { - opts.lastPang = Date.now(); - if (data == 'softPang') { - return; - } else if (data == 'pang') { - opts.pingCounter = 0; //reset - opts.pingTime = Date.now(); - runByond('?_src_=chat&proc=ping'); - - } else if (data == 'pong') { - if (opts.pingDisabled) {return;} - opts.pongTime = Date.now(); - var pingDuration = Math.ceil((opts.pongTime - opts.pingTime) / 2); - $('#pingMs').text(pingDuration+'ms'); - pingDuration = Math.min(pingDuration, 255); - var red = pingDuration; - var green = 255 - pingDuration; - var blue = 0; - var hex = rgbToHex(red, green, blue); - $('#pingDot').css('color', '#'+hex); - - } else if (data == 'roundrestart') { - opts.restarting = true; - internalOutput('
    The connection has been closed because the server is restarting. Please wait while you automatically reconnect.
    ', 'internal'); - } else if (data == 'stopMusic') { - $('#adminMusic').prop('src', ''); - } else { - //Oh we're actually being sent data instead of an instruction - var dataJ; - try { - dataJ = $.parseJSON(data); - } catch (e) { - //But...incorrect :sadtrombone: - window.onerror('JSON: '+e+'. '+data, 'browserOutput.html', 327); - return; - } - data = dataJ; - - if (data.clientData) { - if (opts.restarting) { - opts.restarting = false; - $('.connectionClosed.restarting:not(.restored)').addClass('restored').text('The round restarted and you successfully reconnected!'); - } - if (!data.clientData.ckey && !data.clientData.ip && !data.clientData.compid) { - //TODO: Call shutdown perhaps - return; - } else { - handleClientData(data.clientData.ckey, data.clientData.ip, data.clientData.compid); - } - sendVolumeUpdate(); - } else if (data.adminMusic) { - if (typeof data.adminMusic === 'string') { - var adminMusic = byondDecode(data.adminMusic); - var bindLoadedData = false; - adminMusic = adminMusic.match(/https?:\/\/\S+/) || ''; - if (data.musicRate) { - var newRate = Number(data.musicRate); - if(newRate) { - $('#adminMusic').prop('defaultPlaybackRate', newRate); - } - } else { - $('#adminMusic').prop('defaultPlaybackRate', 1.0); - } - if (data.musicSeek) { - opts.musicStartAt = Number(data.musicSeek) || 0; - bindLoadedData = true; - } else { - opts.musicStartAt = 0; - } - if (data.musicHalt) { - opts.musicEndAt = Number(data.musicHalt) || null; - bindLoadedData = true; - } - if (bindLoadedData) { - $('#adminMusic').one('loadeddata', adminMusicLoadedData); - } - $('#adminMusic').prop('src', adminMusic); - $('#adminMusic').trigger("play"); - } - } else if (data.syncRegex) { - for (var i in data.syncRegex) { - - var regexData = data.syncRegex[i]; - var regexName = regexData[0]; - var regexFlags = regexData[1]; - var regexReplaced = regexData[2]; - - replaceRegexes[i] = [new RegExp(regexName, regexFlags), regexReplaced]; - } - } - } -} - -function createPopup(contents, width) { - opts.popups++; - $('body').append(''); - - //Attach close popup event - var $popup = $('#popup'+opts.popups); - var height = $popup.outerHeight(); - $popup.css({'height': height+'px', 'margin': '-'+(height/2)+'px 0 0 -'+(width/2)+'px'}); - - $popup.on('click', '.close', function(e) { - e.preventDefault(); - $popup.remove(); - }); -} - -function toggleWasd(state) { - opts.wasd = (state == 'on' ? true : false); -} - -function sendVolumeUpdate() { - opts.volumeUpdating = false; - if(opts.updatedVolume) { - runByond('?_src_=chat&proc=setMusicVolume¶m[volume]='+opts.updatedVolume); - } -} - -function adminMusicEndCheck(event) { - if (opts.musicEndAt) { - if ($('#adminMusic').prop('currentTime') >= opts.musicEndAt) { - $('#adminMusic').off(event); - $('#adminMusic').trigger('pause'); - $('#adminMusic').prop('src', ''); - } - } else { - $('#adminMusic').off(event); - } -} - -function adminMusicLoadedData(event) { - if (opts.musicStartAt && ($('#adminMusic').prop('duration') === Infinity || (opts.musicStartAt <= $('#adminMusic').prop('duration'))) ) { - $('#adminMusic').prop('currentTime', opts.musicStartAt); - } - if (opts.musicEndAt) { - $('#adminMusic').on('timeupdate', adminMusicEndCheck); - } -} - -function subSlideUp() { - $(this).removeClass('scroll'); - $(this).css('height', ''); -} - -function startSubLoop() { - if (opts.selectedSubLoop) { - clearInterval(opts.selectedSubLoop); - } - return setInterval(function() { - if (!opts.suppressSubClose && $selectedSub.is(':visible')) { - $selectedSub.slideUp('fast', subSlideUp); - clearInterval(opts.selectedSubLoop); - } - }, 5000); //every 5 seconds -} - -function handleToggleClick($sub, $toggle) { - if ($selectedSub !== $sub && $selectedSub.is(':visible')) { - $selectedSub.slideUp('fast', subSlideUp); - } - $selectedSub = $sub - if ($selectedSub.is(':visible')) { - $selectedSub.slideUp('fast', subSlideUp); - clearInterval(opts.selectedSubLoop); - } else { - $selectedSub.slideDown('fast', function() { - var windowHeight = $(window).height(); - var toggleHeight = $toggle.outerHeight(); - var priorSubHeight = $selectedSub.outerHeight(); - var newSubHeight = windowHeight - toggleHeight; - $(this).height(newSubHeight); - if (priorSubHeight > (windowHeight - toggleHeight)) { - $(this).addClass('scroll'); - } - }); - opts.selectedSubLoop = startSubLoop(); - } -} - -/***************************************** -* -* DOM READY -* -******************************************/ - -if (typeof $ === 'undefined') { - var div = document.getElementById('loading').childNodes[1]; - div += '

    ERROR: Jquery did not load.'; -} - -$(function() { - $messages = $('#messages'); - $subOptions = $('#subOptions'); - $subAudio = $('#subAudio'); - $selectedSub = $subOptions; - - //Hey look it's a controller loop! - setInterval(function() { - if (opts.lastPang + opts.pangLimit < Date.now() && !opts.restarting) { //Every pingLimit - if (!opts.noResponse) { //Only actually append a message if the previous ping didn't also fail (to prevent spam) - opts.noResponse = true; - opts.noResponseCount++; - internalOutput('
    You are either AFK, experiencing lag or the connection has closed.
    ', 'internal'); - } - } else if (opts.noResponse) { //Previous ping attempt failed ohno - $('.connectionClosed[data-count="'+opts.noResponseCount+'"]:not(.restored)').addClass('restored').text('Your connection has been restored (probably)!'); - opts.noResponse = false; - } - }, 2000); //2 seconds - - - /***************************************** - * - * LOAD SAVED CONFIG - * - ******************************************/ - var savedConfig = { - fontsize: getCookie('fontsize'), //no need for compatabiliy, cookie name is the same - lineheight: getCookie('lineheight'), - 'spingDisabled': getCookie('pingdisabled'), - 'shighlightTerms': getCookie('highlightterms'), - 'shighlightColor': getCookie('highlightcolor'), - 'smusicVolume': getCookie('musicVolume'), - 'smessagecombining': getCookie('messagecombining'), - 'sdarkmode': getCookie('darkmode'), - 'scolorPreset': getCookie('colorpreset'), - }; - - if (savedConfig.fontsize) { - $messages.css('font-size', savedConfig.fontsize); - internalOutput('Loaded font size setting of: '+savedConfig.fontsize+'', 'internal'); - } - if (savedConfig.lineheight) { - $("body").css('line-height', savedConfig.lineheight); - internalOutput('Loaded line height setting of: '+savedConfig.lineheight+'', 'internal'); - } - // if(savedConfig.sdarkmode == 'true'){ - // swap(); - // } - if (savedConfig.scolorPreset) { - opts.colorPreset = Number(savedConfig.scolorPreset); - updateColorPreset(); - internalOutput('Loaded color preset of: '+colorPresets[opts.colorPreset]+'', 'internal'); - } - if (savedConfig.spingDisabled) { - if (savedConfig.spingDisabled == 'true') { - opts.pingDisabled = true; - $('#ping').hide(); - } - internalOutput('Loaded ping display of: '+(opts.pingDisabled ? 'hidden' : 'visible')+'', 'internal'); - } - if (savedConfig.shighlightTerms) { - var savedTerms = $.parseJSON(savedConfig.shighlightTerms).filter(function (entry) { - return entry !== null && /\S/.test(entry); - }); - var actualTerms = savedTerms.length != 0 ? savedTerms.join(', ') : null; - if (actualTerms) { - internalOutput('Loaded highlight strings of: ' + actualTerms+'', 'internal'); - opts.highlightTerms = savedTerms; - } - } - if (savedConfig.shighlightColor) { - opts.highlightColor = savedConfig.shighlightColor; - internalOutput('Loaded highlight color of: '+savedConfig.shighlightColor+'', 'internal'); - } - if (savedConfig.smusicVolume) { - var newVolume = clamp(savedConfig.smusicVolume, 0, 100); - $('#adminMusic').prop('volume', newVolume / 100); - $('#musicVolume').val(newVolume); - opts.updatedVolume = newVolume; - sendVolumeUpdate(); - internalOutput('Loaded music volume of: '+savedConfig.smusicVolume+'', 'internal'); - } - else{ - $('#adminMusic').prop('volume', opts.defaultMusicVolume / 100); - } - - if (savedConfig.smessagecombining) { - if (savedConfig.smessagecombining == 'false') { - opts.messageCombining = false; - } else { - opts.messageCombining = true; - } - } - (function() { - var dataCookie = getCookie('connData'); - if (dataCookie) { - var dataJ; - try { - dataJ = $.parseJSON(dataCookie); - } catch (e) { - window.onerror('JSON '+e+'. '+dataCookie, 'browserOutput.html', 434); - return; - } - opts.clientData = dataJ; - } - })(); - - - /***************************************** - * - * BASE CHAT OUTPUT EVENTS - * - ******************************************/ - - $('body').on('click', 'a', function(e) { - e.preventDefault(); - }); - - $('body').on('mousedown', function(e) { - var $target = $(e.target); - - if ($contextMenu && opts.hasOwnProperty('contextMenuTarget') && opts.contextMenuTarget) { - hideContextMenu(); - return false; - } - - if ($target.is('a') || $target.parent('a').length || $target.is('input') || $target.is('textarea')) { - opts.preventFocus = true; - } else { - opts.preventFocus = false; - opts.mouseDownX = e.pageX; - opts.mouseDownY = e.pageY; - } - }); - - $messages.on('mousedown', function(e) { - if ($selectedSub && $selectedSub.is(':visible')) { - $selectedSub.slideUp('fast', subSlideUp); - clearInterval(opts.selectedSubLoop); - } - }); - - $('body').on('mouseup', function(e) { - if (!opts.preventFocus && - (e.pageX >= opts.mouseDownX - opts.clickTolerance && e.pageX <= opts.mouseDownX + opts.clickTolerance) && - (e.pageY >= opts.mouseDownY - opts.clickTolerance && e.pageY <= opts.mouseDownY + opts.clickTolerance) - ) { - opts.mouseDownX = null; - opts.mouseDownY = null; - runByond('byond://winset?mapwindow.map.focus=true'); - } - }); - - $messages.on('click', 'a', function(e) { - var href = $(this).attr('href'); - $(this).addClass('visited'); - if (href[0] == '?' || (href.length >= 8 && href.substring(0,8) == 'byond://')) { - runByond(href); - } else { - href = escaper(href); - runByond('?action=openLink&link='+href); - } - runByond('byond://winset?mapwindow.map.focus=true'); - }); - - $('body').on('keydown', function(e) { - if (e.target.nodeName == 'INPUT' || e.target.nodeName == 'TEXTAREA') { - return; - } - if (e.ctrlKey || e.altKey || e.shiftKey) { //Band-aid "fix" for allowing ctrl+c copy paste etc. Needs a proper fix. - return; - } - runByond('byond://winset?mapwindow.map.focus=true'); - }); - - //Mildly hacky fix for scroll issues on mob change (interface gets resized sometimes, messing up snap-scroll) - $(window).on('resize', function(e) { - if ($(this).height() !== opts.priorChatHeight) { - $('body,html').scrollTop($messages.outerHeight()); - opts.priorChatHeight = $(this).height(); - } - }); - - - /***************************************** - * - * OPTIONS INTERFACE EVENTS - * - ******************************************/ - - $('body').on('click', '#newMessages', function(e) { - var messagesHeight = $messages.outerHeight(); - $('body,html').scrollTop(messagesHeight); - $('#newMessages').remove(); - runByond('byond://winset?mapwindow.map.focus=true'); - }); - - $('#toggleOptions').click(function(e) { - handleToggleClick($subOptions, $(this)); - }); - // $('#darkmodetoggle').click(function(e) { - // swap(); - // }); - $('#toggleAudio').click(function(e) { - handleToggleClick($subAudio, $(this)); - }); - - $('.sub, .toggle').mouseenter(function() { - opts.suppressSubClose = true; - }); - - $('.sub, .toggle').mouseleave(function() { - opts.suppressSubClose = false; - }); - - $('#decreaseFont').click(function(e) { - savedConfig.fontsize = Math.max(parseInt(savedConfig.fontsize || 13) - 1, 1) + 'px'; - $messages.css({'font-size': savedConfig.fontsize}); - setCookie('fontsize', savedConfig.fontsize, 365); - internalOutput('Font size set to '+savedConfig.fontsize+'', 'internal'); - }); - - $('#increaseFont').click(function(e) { - savedConfig.fontsize = (parseInt(savedConfig.fontsize || 13) + 1) + 'px'; - $messages.css({'font-size': savedConfig.fontsize}); - setCookie('fontsize', savedConfig.fontsize, 365); - internalOutput('Font size set to '+savedConfig.fontsize+'', 'internal'); - }); - - $('#decreaseLineHeight').click(function(e) { - savedConfig.lineheight = Math.max(parseFloat(savedConfig.lineheight || 1.2) - 0.1, 0.1).toFixed(1); - $("body").css({'line-height': savedConfig.lineheight}); - setCookie('lineheight', savedConfig.lineheight, 365); - internalOutput('Line height set to '+savedConfig.lineheight+'', 'internal'); - }); - - $('#increaseLineHeight').click(function(e) { - savedConfig.lineheight = (parseFloat(savedConfig.lineheight || 1.2) + 0.1).toFixed(1); - $("body").css({'line-height': savedConfig.lineheight}); - setCookie('lineheight', savedConfig.lineheight, 365); - internalOutput('Line height set to '+savedConfig.lineheight+'', 'internal'); - }); - - $('#togglePing').click(function(e) { - if (opts.pingDisabled) { - $('#ping').slideDown('fast'); - opts.pingDisabled = false; - } else { - $('#ping').slideUp('fast'); - opts.pingDisabled = true; - } - setCookie('pingdisabled', (opts.pingDisabled ? 'true' : 'false'), 365); - }); - - $('#saveLog').click(function(e) { - // Requires IE 10+ to issue download commands. Just opening a popup - // window will cause Ctrl+S to save a blank page, ignoring innerHTML. - if (!window.Blob) { - output('This function is only supported on IE 10 and up. Upgrade if possible.', 'internal'); - return; - } - - $.ajax({ - type: 'GET', - url: 'browserOutput.css', // browserOutput_white.css - success: function(styleData) { - var blob = new Blob(['Chat Log', $messages.html(), '']); - - var fname = 'SS13 Chat Log'; - var date = new Date(), month = date.getMonth(), day = date.getDay(), hours = date.getHours(), mins = date.getMinutes(), secs = date.getSeconds(); - fname += ' ' + date.getFullYear() + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day; - fname += ' ' + (hours < 10 ? '0' : '') + hours + (mins < 10 ? '0' : '') + mins + (secs < 10 ? '0' : '') + secs; - fname += '.html'; - - window.navigator.msSaveBlob(blob, fname); - } - }); - }); - - $('#highlightTerm').click(function(e) { - if ($('.popup .highlightTerm').is(':visible')) {return;} - var termInputs = ''; - for (var i = 0; i < opts.highlightLimit; i++) { - termInputs += '
    '; - } - var popupContent = '
    String Highlighting
    ' + - '
    ' + - '
    Choose up to '+opts.highlightLimit+' strings that will highlight the line when they appear in chat.
    ' + - '
    ' + - termInputs + - '
    ' + - '
    ' + - '
    ' + - '
    '; - createPopup(popupContent, 250); - }); - - $('body').on('keyup', '#highlightColor', function() { - var color = $('#highlightColor').val(); - color = color.trim(); - if (!color || color.charAt(0) != '#') return; - $('#highlightColor').css('background-color', color); - }); - - $('body').on('submit', '#highlightTermForm', function(e) { - e.preventDefault(); - - opts.highlightTerms = []; - for (var count = 0; count < opts.highlightLimit; count++) { - var term = $('#highlightTermInput'+count).val(); - if (term !== null && /\S/.test(term)) { - opts.highlightTerms.push(term.trim().toLowerCase()); - } - } - - var color = $('#highlightColor').val(); - color = color.trim(); - if (color == '' || color.charAt(0) != '#') { - opts.highlightColor = '#FFFF00'; - } else { - opts.highlightColor = color; - } - var $popup = $('#highlightPopup').closest('.popup'); - $popup.remove(); - - setCookie('highlightterms', JSON.stringify(opts.highlightTerms), 365); - setCookie('highlightcolor', opts.highlightColor, 365); - }); - - $('#clearMessages').click(function() { - $messages.empty(); - opts.messageCount = 0; - }); - - $('#changeColorPreset').click(function() { //CIT SPECIFIC - opts.colorPreset = (opts.colorPreset+1) % colorPresets.length; - updateColorPreset(); - setCookie('colorpreset', opts.colorPreset, 365); - internalOutput('Changed color preset to: '+colorPresets[opts.colorPreset]); - }); - - $('#musicVolumeSpan').hover(function() { - $('#musicVolumeText').addClass('hidden'); - $('#musicVolume').removeClass('hidden'); - }, function() { - $('#musicVolume').addClass('hidden'); - $('#musicVolumeText').removeClass('hidden'); - }); - - $('#musicVolume').change(function() { - var newVolume = $('#musicVolume').val(); - newVolume = clamp(newVolume, 0, 100); - $('#adminMusic').prop('volume', newVolume / 100); - setCookie('musicVolume', newVolume, 365); - opts.updatedVolume = newVolume; - if(!opts.volumeUpdating) { - setTimeout(sendVolumeUpdate, opts.volumeUpdateDelay); - opts.volumeUpdating = true; - } - }); - - $('#toggleCombine').click(function(e) { - opts.messageCombining = !opts.messageCombining; - setCookie('messagecombining', (opts.messageCombining ? 'true' : 'false'), 365); - }); - - $('img.icon').error(iconError); - - - - - /***************************************** - * - * KICK EVERYTHING OFF - * - ******************************************/ - - runByond('?_src_=chat&proc=doneLoading'); - if ($('#loading').is(':visible')) { - $('#loading').remove(); - } - $('#userBar').show(); - opts.priorChatHeight = $(window).height(); -}); diff --git a/code/modules/goonchat/browserassets/js/json2.min.js b/code/modules/goonchat/browserassets/js/json2.min.js deleted file mode 100644 index d867407f26..0000000000 --- a/code/modules/goonchat/browserassets/js/json2.min.js +++ /dev/null @@ -1 +0,0 @@ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return 10>t?"0"+t:t}function this_value(){return this.valueOf()}function quote(t){return rx_escapable.lastIndex=0,rx_escapable.test(t)?'"'+t.replace(rx_escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var r,n,o,u,f,a=gap,i=e[t];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(t)),"function"==typeof rep&&(i=rep.call(e,t,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,f=[],"[object Array]"===Object.prototype.toString.apply(i)){for(u=i.length,r=0;u>r;r+=1)f[r]=str(r,i)||"null";return o=0===f.length?"[]":gap?"[\n"+gap+f.join(",\n"+gap)+"\n"+a+"]":"["+f.join(",")+"]",gap=a,o}if(rep&&"object"==typeof rep)for(u=rep.length,r=0;u>r;r+=1)"string"==typeof rep[r]&&(n=rep[r],o=str(n,i),o&&f.push(quote(n)+(gap?": ":":")+o));else for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(o=str(n,i),o&&f.push(quote(n)+(gap?": ":":")+o));return o=0===f.length?"{}":gap?"{\n"+gap+f.join(",\n"+gap)+"\n"+a+"}":"{"+f.join(",")+"}",gap=a,o}}var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value);var gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(t,e,r){var n;if(gap="",indent="","number"==typeof r)for(n=0;r>n;n+=1)indent+=" ";else"string"==typeof r&&(indent=r);if(rep=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return str("",{"":t})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(t,e){var r,n,o=t[e];if(o&&"object"==typeof o)for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n=walk(o,r),void 0!==n?o[r]=n:delete o[r]);return reviver.call(t,e,o)}var j;if(text=String(text),rx_dangerous.lastIndex=0,rx_dangerous.test(text)&&(text=text.replace(rx_dangerous,function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})),rx_one.test(text.replace(rx_two,"@").replace(rx_three,"]").replace(rx_four,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(); \ No newline at end of file diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 4561e0ae3e..573b04a296 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -334,8 +334,7 @@ to_chat(C, " You feel an overwhelming desire to [message]") if(2) visible_message("[src] waves their arms around, \"If only you had a better upbringing, your ears are now full of my singing!\"") - var/client/C2 = C.client - C2.chatOutput.sendMusic("https://puu.sh/ExBbv.mp4", 1)//I hope this works! + C.client.tgui_panel?.play_music("https://puu.sh/ExBbv.mp4") if(3) visible_message("[src] waves their arms around, \"You're cute little bumpkin, On your head is a pumpkin!\"") if(C.head) diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index e84025208a..a38a9237ca 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -22,6 +22,7 @@ endurance = 25 yield = 6 potency = 5 + instability = 30 icon_dead = "ambrosia-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/ambrosia/deus) @@ -49,6 +50,7 @@ seed = /obj/item/seeds/ambrosia/deus name = "ambrosia deus branch" desc = "Eating this makes you feel immortal!" + foodtype = VEGETABLES | ANTITOXIC icon_state = "ambrosiadeus" filling_color = "#008B8B" wine_power = 50 diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 81318f8fe1..e825c88524 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -8,6 +8,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/banana lifespan = 50 endurance = 30 + instability = 10 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_dead = "banana-dead" genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index eba7a3d3c4..ca9e1f8a0e 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -10,6 +10,7 @@ maturation = 5 production = 5 yield = 2 + instability = 30 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "berry-grow" // Uses one growth icons set for all the subtypes icon_dead = "berry-dead" // Same for the dead icon diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm index 6525ac42d4..1882d5fe97 100644 --- a/code/modules/hydroponics/grown/cannabis.dm +++ b/code/modules/hydroponics/grown/cannabis.dm @@ -9,6 +9,7 @@ maturation = 8 potency = 20 growthstages = 1 + instability = 40 growing_icon = 'goon/icons/obj/hydroponics.dmi' icon_grow = "cannabis-grow" // Uses one growth icons set for all the subtypes icon_dead = "cannabis-dead" // Same for the dead icon @@ -104,6 +105,7 @@ seed = /obj/item/seeds/cannabis/death name = "death cannabis leaf" desc = "Looks a bit dark. Oh well." + foodtype = VEGETABLES | TOXIC icon_state = "blackcannabis" wine_power = 40 @@ -111,6 +113,7 @@ seed = /obj/item/seeds/cannabis/white name = "white cannabis leaf" desc = "It feels smooth and nice to the touch." + foodtype = VEGETABLES | ANTITOXIC icon_state = "whitecannabis" wine_power = 10 diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index 1d1309acb8..9bfdb2979c 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -9,6 +9,7 @@ production = 1 yield = 4 potency = 15 + instability = 20 icon_dead = "wheat-dead" mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat) reagents_add = list(/datum/reagent/consumable/nutriment = 0.04) diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 001a90b441..2f8fb12724 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -11,6 +11,7 @@ production = 5 yield = 4 potency = 20 + instability = 30 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "chili-grow" // Uses one growth icons set for all the subtypes icon_dead = "chili-dead" // Same for the dead icon diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index d130d50aa5..e199c2c6b1 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -29,6 +29,7 @@ seed = /obj/item/seeds/lime name = "lime" desc = "It's so sour, your face will twist." + foodtype = FRUIT | ANTITOXIC icon_state = "lime" filling_color = "#00FF00" juice_results = list(/datum/reagent/consumable/limejuice = 0) diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index 9ac705aa83..5de0740b87 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -10,6 +10,7 @@ maturation = 5 production = 5 yield = 2 + instability = 20 growthstages = 5 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "cocoapod-grow" diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index ad09751e44..ae046c9ff3 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -8,6 +8,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/corn maturation = 8 potency = 20 + instability = 50 // Corn used to be wheatgrass, but through generations of selective cultivation... growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "corn-grow" // Uses one growth icons set for all the subtypes diff --git a/code/modules/hydroponics/grown/cotton.dm b/code/modules/hydroponics/grown/cotton.dm index a898b76ee8..beff751479 100644 --- a/code/modules/hydroponics/grown/cotton.dm +++ b/code/modules/hydroponics/grown/cotton.dm @@ -12,6 +12,7 @@ production = 1 yield = 2 potency = 50 + instability = 15 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing.dmi' icon_dead = "cotton-dead" diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm index a74850f3be..e6fd991169 100644 --- a/code/modules/hydroponics/grown/grass_carpet.dm +++ b/code/modules/hydroponics/grown/grass_carpet.dm @@ -11,6 +11,7 @@ maturation = 2 production = 5 yield = 5 + instability = 10 growthstages = 2 icon_grow = "grass-grow" icon_dead = "grass-dead" diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 5f1fdcdaa9..73026e546a 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -11,6 +11,7 @@ lifespan = 20 endurance = 10 yield = 4 + instability = 55 growthstages = 4 rarity = 30 var/list/mutations = list() diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 940508f66b..b988261770 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -8,6 +8,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/watermelon lifespan = 50 endurance = 40 + instability = 20 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_dead = "watermelon-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) @@ -75,4 +76,4 @@ to_chat(user, "[src] rapidly turns into ash!") qdel(src) new /obj/effect/decal/cleanable/ash(drop_location()) -*/ \ No newline at end of file +*/ diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index fe60e9f397..59301732c6 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -11,6 +11,7 @@ production = 1 yield = 6 potency = 10 + instability = 35 growthstages = 3 grind_results = list(/datum/reagent/mustardgrind = 1) growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' @@ -111,6 +112,7 @@ maturation = 3 production = 5 yield = 4 + instability = 10 growthstages = 1 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' genes = list(/datum/plant_gene/trait/repeated_harvest) @@ -140,6 +142,7 @@ endurance = 50 maturation = 3 yield = 4 + instability = 15 growthstages = 2 reagents_add = list(/datum/reagent/consumable/sugar = 0.25) mutatelist = list(/obj/item/seeds/bamboo) @@ -534,4 +537,4 @@ /obj/item/reagent_containers/food/snacks/grown/aloe/microwave_act(obj/machinery/microwave/M) new /obj/item/stack/medical/aloe(drop_location(), 2) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 699a1c798d..80ba6b7375 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -18,6 +18,7 @@ production = 5 yield = 4 potency = 15 + instability = 30 growthstages = 4 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' @@ -43,6 +44,7 @@ maturation = 10 production = 5 yield = 4 + instability = 30 growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' @@ -187,6 +189,7 @@ production = 1 yield = 5 potency = 15 + instability = 20 growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' @@ -244,6 +247,7 @@ production = 1 yield = 3 //-> spread potency = 30 //-> brightness + instability = 20 growthstages = 4 rarity = 20 genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/plant_type/fungal_metabolism) @@ -334,4 +338,4 @@ /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom/attack_self(mob/user) . = ..() if(.) - investigate_log("was planted by [key_name(user)] at [AREACOORD(user)]", INVESTIGATE_BOTANY) \ No newline at end of file + investigate_log("was planted by [key_name(user)] at [AREACOORD(user)]", INVESTIGATE_BOTANY) diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index cee7748c59..e4aedfd4b0 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -8,6 +8,7 @@ lifespan = 30 endurance = 40 // tuff like a toiger yield = 4 + instability = 25 growthstages = 5 genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy) mutatelist = list(/obj/item/seeds/nettle/death) diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm index a75b9caf5f..f6fcd3ae1b 100644 --- a/code/modules/hydroponics/grown/onion.dm +++ b/code/modules/hydroponics/grown/onion.dm @@ -10,6 +10,7 @@ production = 4 yield = 6 endurance = 25 + instability = 10 growthstages = 3 weed_chance = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' diff --git a/code/modules/hydroponics/grown/peas.dm b/code/modules/hydroponics/grown/peas.dm index 79d506cf56..0775f7c45d 100644 --- a/code/modules/hydroponics/grown/peas.dm +++ b/code/modules/hydroponics/grown/peas.dm @@ -8,6 +8,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/peas maturation = 3 potency = 25 + instability = 15 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "peas-grow" @@ -79,6 +80,7 @@ potency = 75 yield = 1 production = 10 + instability = 45 //The world is a very unstable place. Constantly changing. growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "worldpeas-grow" diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index ac171b4e45..5f9b55b881 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -9,6 +9,7 @@ maturation = 10 production = 1 yield = 5 + instability = 15 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' mutatelist = list(/obj/item/seeds/carrot/parsnip) @@ -69,6 +70,7 @@ lifespan = 60 endurance = 50 yield = 6 + instability = 10 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" mutatelist = list(/obj/item/seeds/redbeet) diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm index 223b2c7bce..1c8055f821 100644 --- a/code/modules/hydroponics/grown/tea_coffee.dm +++ b/code/modules/hydroponics/grown/tea_coffee.dm @@ -79,6 +79,7 @@ maturation = 5 production = 5 yield = 5 + instability = 20 growthstages = 5 icon_dead = "coffee-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index d3525c951d..af7d192e00 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -6,6 +6,7 @@ species = "tomato" plantname = "Tomato Plants" product = /obj/item/reagent_containers/food/snacks/grown/tomato + instability = 25 maturation = 8 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "tomato-grow" diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index abf6632939..b032b84a77 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -1,7 +1,7 @@ // Plant analyzer /obj/item/plant_analyzer name = "plant analyzer" - desc = "A scanner used to evaluate a plant's various areas of growth." + desc = "A scanner used to evaluate a plant's various areas of growth, and genetic traits." icon = 'icons/obj/device.dmi' icon_state = "hydro" item_state = "analyzer" @@ -10,6 +10,25 @@ w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT custom_materials = list(/datum/material/iron=30, /datum/material/glass=20) + var/scan_mode = PLANT_SCANMODE_STATS + +/obj/item/plant_analyzer/attack_self(mob/user) + . = ..() + scan_mode = !scan_mode + to_chat(user, "You switch [src] to [scan_mode == PLANT_SCANMODE_CHEMICALS ? "scan for chemical reagents and traits" : "scan for plant growth statistics"].") + +/obj/item/plant_analyzer/attack(mob/living/M, mob/living/carbon/human/user) + //Checks if target is a podman + if(ispodperson(M)) + user.visible_message("[user] analyzes [M]'s vitals.", \ + "You analyze [M]'s vitals.") + if(scan_mode== PLANT_SCANMODE_STATS) + healthscan(user, M, advanced = TRUE) + else + chemscan(user, M) + add_fingerprint(user) + return + return ..() // ************************************* // Hydroponics Tools @@ -103,6 +122,7 @@ throwforce = 5 throw_speed = 2 throw_range = 3 + attack_speed = CLICK_CD_MELEE w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 armour_penetration = 20 @@ -125,9 +145,12 @@ playsound(src,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) -/obj/item/scythe/pre_attack(atom/A, mob/living/user, params) +/obj/item/scythe/pre_attack(atom/A, mob/living/user, params, attackchain_flags, damage_multiplier) + . = ..() + if(. & STOP_ATTACK_PROC_CHAIN) + return if(swiping || !istype(A, /obj/structure/spacevine) || get_turf(A) == get_turf(user)) - return ..() + return else var/turf/user_turf = get_turf(user) var/dir_to_target = get_dir(user_turf, get_turf(A)) @@ -138,11 +161,12 @@ var/turf/T = get_step(user_turf, turn(dir_to_target, i)) for(var/obj/structure/spacevine/V in T) if(user.Adjacent(V)) - melee_attack_chain(user, V) + melee_attack_chain(user, V, attackchain_flags = ATTACK_IGNORE_CLICKDELAY) stam_gain += 5 //should be hitcost swiping = FALSE stam_gain += 2 //Initial hitcost user.adjustStaminaLoss(-stam_gain) + user.DelayNextAction() // ************************************* // Nutrient defines for hydroponics @@ -192,4 +216,4 @@ /obj/item/reagent_containers/glass/bottle/killer/pestkiller name = "bottle of pest spray" desc = "Contains a pesticide." - list_reagents = list(/datum/reagent/toxin/pestkiller = 50) \ No newline at end of file + list_reagents = list(/datum/reagent/toxin/pestkiller = 50) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a208f2de3c..d6022c1345 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -6,9 +6,10 @@ pixel_z = 8 obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/hydroponics + idle_power_usage = 0 var/waterlevel = 100 //The amount of water in the tray (max 100) var/maxwater = 100 //The maximum amount of water in the tray - var/nutrilevel = 10 //The amount of nutrient in the tray (max 10) + var/nutridrain = 1 // How many units of nutrient will be drained in the tray var/maxnutri = 10 //The maximum nutrient of water in the tray var/pestlevel = 0 //The amount of pests in the tray (max 10) var/weedlevel = 0 //The amount of weeds in the tray (max 10) @@ -16,21 +17,25 @@ var/mutmod = 1 //Nutriment's effect on mutations var/toxic = 0 //Toxicity in the tray? var/age = 0 //Current age - var/dead = 0 //Is it dead? + var/dead = FALSE //Is it dead? var/plant_health //Its health var/lastproduce = 0 //Last time it was harvested var/lastcycle = 0 //Used for timing of cycles. var/cycledelay = 200 //About 10 seconds / cycle - var/harvest = 0 //Ready to harvest? + var/harvest = FALSE //Ready to harvest? var/obj/item/seeds/myseed = null //The currently planted seed var/rating = 1 - var/unwrenchable = 1 + var/unwrenchable = TRUE var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant - var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses - var/self_sufficiency_req = 20 //Required total dose to make a self-sufficient hydro tray. 1:1 with earthsblood. - var/self_sufficiency_progress = 0 + var/mob/lastuser //Last user to add reagents to a tray. Mostly for logging. var/self_sustaining = FALSE //If the tray generates nutrients and water on its own - var/canirrigate = TRUE //tin + // Here lies irrigation. You won't be missed, because you were never used. + +/obj/machinery/hydroponics/Initialize() + //Here lies "nutrilevel", killed by ArcaneMusic 20??-2019. Finally, we strive for a better future. Please use "reagents" instead + create_reagents(20) + reagents.add_reagent(/datum/reagent/plantnutriment/eznutriment, 10) //Half filled nutrient trays for dirt trays to have more to grow with in prison/lavaland. + . = ..() /obj/machinery/hydroponics/constructable name = "hydroponics tray" @@ -43,14 +48,18 @@ tmp_capacity += M.rating for (var/obj/item/stock_parts/manipulator/M in component_parts) rating = M.rating - maxwater = tmp_capacity * 50 // Up to 300 - maxnutri = tmp_capacity * 5 // Up to 30 + maxwater = tmp_capacity * 50 // Up to 400 + maxnutri = (tmp_capacity * 5) + STATIC_NUTRIENT_CAPACITY // Up to 50 Maximum + reagents.maximum_volume = maxnutri + nutridrain = 1/rating /obj/machinery/hydroponics/constructable/examine(mob/user) . = ..() + . += "Use Ctrl-Click to activate autogrow. Alt-Click to empty the tray's nutrients." if(in_range(user, src) || isobserver(user)) . += "The status display reads: Tray efficiency at [rating*100]%." + /obj/machinery/hydroponics/Destroy() if(myseed) qdel(myseed) @@ -62,34 +71,11 @@ // handle opening the panel if(default_deconstruction_screwdriver(user, icon_state, icon_state, I)) return - - // handle deconstructing the machine, if permissible - if (I.tool_behaviour == TOOL_CROWBAR && using_irrigation) - to_chat(user, "Disconnect the hoses first!") - return - else if(default_deconstruction_crowbar(I)) + if(default_deconstruction_crowbar(I)) return return ..() -/obj/machinery/hydroponics/proc/FindConnected() - var/list/connected = list() - var/list/processing_atoms = list(src) - - while(processing_atoms.len) - var/atom/a = processing_atoms[1] - for(var/step_dir in GLOB.cardinals) - var/obj/machinery/hydroponics/h = locate() in get_step(a, step_dir) - // Soil plots aren't dense - if(h && h.using_irrigation && h.density && !(h in connected) && !(h in processing_atoms)) - processing_atoms += h - - processing_atoms -= a - connected += a - - return connected - - /obj/machinery/hydroponics/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. if(!myseed) return ..() @@ -107,12 +93,16 @@ if(myseed && (myseed.loc != src)) myseed.forceMove(src) - if(self_sustaining) - adjustNutri(1) - adjustWater(rand(3,5)) - adjustWeeds(-2) - adjustPests(-2) - adjustToxic(-2) + if(!powered() && self_sustaining) + visible_message("[name]'s auto-grow functionality shuts off!") + idle_power_usage = 0 + self_sustaining = FALSE + update_icon() + + else if(self_sustaining) + adjustWater(rand(1,2)) + adjustWeeds(-1) + adjustPests(-1) if(world.time > (lastcycle + cycledelay)) lastcycle = world.time @@ -124,13 +114,17 @@ needs_update = 1 -//Nutrients////////////////////////////////////////////////////////////// - // Nutrients deplete slowly - if(prob(50)) - adjustNutri(-1 / rating) +//Nutrients////////////////////////////////////////////////////////////// + // Nutrients deplete at a constant rate, since new nutrients can boost stats far easier. + apply_chemicals(lastuser) + if(self_sustaining) + reagents.remove_any(min(0.5, nutridrain)) + else + reagents.remove_any(nutridrain) + // Lack of nutrients hurts non-weeds - if(nutrilevel <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) + if(reagents.total_volume <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) adjustHealth(-rand(1,3)) //Photosynthesis///////////////////////////////////////////////////////// @@ -156,7 +150,7 @@ adjustHealth(-rand(0,2) / rating) // Sufficient water level and nutrient level = plant healthy but also spawns weeds - else if(waterlevel > 10 && nutrilevel > 0) + else if(waterlevel > 10 && reagents.total_volume > 0) adjustHealth(rand(1,2) / rating) if(myseed && prob(myseed.weed_chance)) adjustWeeds(myseed.weed_rate) @@ -201,6 +195,21 @@ if(weedlevel >= 5 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) adjustHealth(-1 / rating) +//This is where stability mutations exist now. + if(myseed.instability >= 80) + var/mutation_chance = myseed.instability - 75 + mutate(0, 0, 0, 0, 0, 0, 0, mutation_chance, 0) //Scaling odds of a random trait or chemical + if(myseed.instability >= 60) + if(prob((myseed.instability)/2) && !self_sustaining && length(myseed.mutatelist)) //Minimum 30%, Maximum 50% chance of mutating every age tick when not on autogrow. + mutatespecie() + myseed.instability = myseed.instability/2 + if(myseed.instability >= 40) + if(prob(myseed.instability)) + hardmutate() + if(myseed.instability >= 20 ) + if(prob(myseed.instability)) + mutate() + //Health & Age/////////////////////////////////////////////////////////// // Plant dies if plant_health <= 0 @@ -214,15 +223,14 @@ // Harvest code if(age > myseed.production && (age - lastproduce) > myseed.production && (!harvest && !dead)) - nutrimentMutation() if(myseed && myseed.yield != -1) // Unharvestable shouldn't be harvested - harvest = 1 + harvest = TRUE else lastproduce = age if(prob(5)) // On each tick, there's a 5 percent chance the pest population will increase adjustPests(1 / rating) else - if(waterlevel > 10 && nutrilevel > 0 && prob(10)) // If there's no plant, the percentage chance is 10% + if(waterlevel > 10 && reagents.total_volume > 0 && prob(10)) // If there's no plant, the percentage chance is 10% adjustWeeds(1 / rating) // Weeeeeeeeeeeeeeedddssss @@ -243,25 +251,6 @@ selectedtrait.on_grow(src) return -/obj/machinery/hydroponics/proc/nutrimentMutation() - if (mutmod == 0) - return - if (mutmod == 1) - if(prob(80)) //80% - mutate() - else if(prob(75)) //15% - hardmutate() - return - if (mutmod == 2) - if(prob(50)) //50% - mutate() - else if(prob(50)) //25% - hardmutate() - else if(prob(50)) //12.5% - mutatespecie() - return - return - /obj/machinery/hydroponics/update_icon() //Refreshes the icon and sets the luminosity cut_overlays() @@ -273,8 +262,6 @@ add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "gaia_blessing")) set_light(3) - update_icon_hoses() - if(myseed) update_icon_plant() update_icon_lights() @@ -288,15 +275,6 @@ return -/obj/machinery/hydroponics/proc/update_icon_hoses() - var/n = 0 - for(var/Dir in GLOB.cardinals) - var/obj/machinery/hydroponics/t = locate() in get_step(src,Dir) - if(t && t.using_irrigation && using_irrigation) - n += Dir - - icon_state = "hoses-[n]" - /obj/machinery/hydroponics/proc/update_icon_plant() var/mutable_appearance/plant_overlay = mutable_appearance(myseed.growing_icon, layer = OBJ_LAYER + 0.01) if(dead) @@ -314,7 +292,7 @@ /obj/machinery/hydroponics/proc/update_icon_lights() if(waterlevel <= 10) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lowwater3")) - if(nutrilevel <= 2) + if(reagents.total_volume <= 2) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lownutri3")) if(plant_health <= (myseed.endurance / 2)) add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lowhealth3")) @@ -337,19 +315,17 @@ else . += "It's empty." - if(!self_sustaining) - . += "Water: [waterlevel]/[maxwater]." - . += "Nutrient: [nutrilevel]/[maxnutri]." - if(self_sufficiency_progress > 0) - var/percent_progress = round(self_sufficiency_progress * 100 / self_sufficiency_req) - . += "Treatment for self-sustenance are [percent_progress]% complete." - else - . += "It doesn't require any water or nutrients." + . += "Water: [waterlevel]/[maxwater].\n"+\ + "Nutrient: [reagents.total_volume]/[maxnutri]." + if(self_sustaining) + . += "The tray's autogrow is active, halving active reagent drain, and actively maintaning the plant." if(weedlevel >= 5) - . += "It's filled with weeds!" + to_chat(user, "It's filled with weeds!") if(pestlevel >= 5) - . += "It's filled with tiny worms!" + to_chat(user, "It's filled with tiny worms!") + to_chat(user, "" ) + /obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, this happens. @@ -424,11 +400,7 @@ sleep(5) // Wait a while update_icon() visible_message("[oldPlantName] suddenly mutates into [myseed.plantname]!") - name = "hydroponics tray ([myseed.plantname])" - if(myseed.product) - desc = initial(myseed.product.desc) - else - desc = initial(desc) + TRAY_NAME_UPDATE /obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent instead. Mind you, this pretty much destroys the old plant if( weedlevel > 5 ) @@ -448,18 +420,23 @@ sleep(5) // Wait a while update_icon() visible_message("The mutated weeds in [src] spawn some [myseed.plantname]!") + TRAY_NAME_UPDATE else to_chat(usr, "The few weeds in [src] seem to react, but only for a moment...") -/obj/machinery/hydroponics/proc/plantdies() // OH NOES!!!!! I put this all in one function to make things easier +/** + * Plant Death Proc. + * Cleans up various stats for the plant upon death, including pests, harvestability, and plant health. + */ +/obj/machinery/hydroponics/proc/plantdies() plant_health = 0 - harvest = 0 + harvest = FALSE pestlevel = 0 // Pests die + lastproduce = 0 if(!dead) update_icon() - dead = 1 - + dead = TRUE /obj/machinery/hydroponics/proc/mutatepest(mob/user) @@ -471,250 +448,6 @@ else to_chat(user, "The pests seem to behave oddly, but quickly settle down...") -/obj/machinery/hydroponics/proc/applyChemicals(datum/reagents/S, mob/user) - if(myseed) - myseed.on_chem_reaction(S) //In case seeds have some special interactions with special chems, currently only used by vines - - // Requires 5 mutagen to possibly change species.// Poor man's mutagen. - if(S.has_reagent(/datum/reagent/toxin/mutagen, 5) || S.has_reagent(/datum/reagent/radium, 10) || S.has_reagent(/datum/reagent/uranium, 10)) - switch(rand(100)) - if(91 to 100) - adjustHealth(-10) - to_chat(user, "The plant shrivels and burns.") - if(81 to 90) - mutatespecie() - if(66 to 80) - hardmutate() - if(41 to 65) - mutate() - if(21 to 41) - to_chat(user, "The plants don't seem to react...") - if(11 to 20) - mutateweed() - if(1 to 10) - mutatepest(user) - else - to_chat(user, "Nothing happens...") - - // 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen - else if(S.has_reagent(/datum/reagent/toxin/mutagen, 2) || S.has_reagent(/datum/reagent/radium, 5) || S.has_reagent(/datum/reagent/uranium, 5)) - hardmutate() - else if(S.has_reagent(/datum/reagent/toxin/mutagen, 1) || S.has_reagent(/datum/reagent/radium, 2) || S.has_reagent(/datum/reagent/uranium, 2)) - mutate() - - // After handling the mutating, we now handle the damage from adding crude radioactives... - if(S.has_reagent(/datum/reagent/uranium, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/uranium) * 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/uranium) * 2)) - if(S.has_reagent(/datum/reagent/radium, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/radium) * 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/radium) * 3)) // Radium is harsher (OOC: also easier to produce) - - // Nutriments - if(S.has_reagent(/datum/reagent/plantnutriment/eznutriment, 1)) - yieldmod = 1 - mutmod = 1 - adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/eznutriment) * 1)) - - if(S.has_reagent(/datum/reagent/plantnutriment/left4zednutriment, 1)) - yieldmod = 0 - mutmod = 2 - adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/left4zednutriment) * 1)) - - if(S.has_reagent(/datum/reagent/plantnutriment/robustharvestnutriment, 1)) - yieldmod = 1.3 - mutmod = 0 - adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/robustharvestnutriment) *1 )) - - // Ambrosia Gaia produces earthsblood. - if(S.has_reagent(/datum/reagent/medicine/earthsblood)) - self_sufficiency_progress += S.get_reagent_amount(/datum/reagent/medicine/earthsblood) - if(self_sufficiency_progress >= self_sufficiency_req) - become_self_sufficient() - else if(!self_sustaining) - to_chat(user, "[src] warms as it might on a spring day under a genuine Sun.") - - // Antitoxin binds shit pretty well. So the tox goes significantly down - if(S.has_reagent(/datum/reagent/medicine/charcoal, 1)) - adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/charcoal) * 2)) - - // Toxins, not good for anything - if(S.has_reagent(/datum/reagent/toxin, 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin) * 2)) - - // Milk is good for humans, but bad for plants. The sugars canot be used by plants, and the milk fat fucks up growth. Not shrooms though. I can't deal with this now... - if(S.has_reagent(/datum/reagent/consumable/milk, 1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/milk) * 0.1)) - adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/milk) * 0.9)) - - // Beer is a chemical composition of alcohol and various other things. It's a shitty nutrient but hey, it's still one. Also alcohol is bad, mmmkay? - if(S.has_reagent(/datum/reagent/consumable/ethanol/beer, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.05)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.25)) - adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.7)) - - // Fluorine one of the most corrosive and deadly gasses - if(S.has_reagent(/datum/reagent/fluorine, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/fluorine) * 2)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/fluorine) * 2.5)) - adjustWater(-round(S.get_reagent_amount(/datum/reagent/fluorine) * 0.5)) - adjustWeeds(-rand(1,4)) - - // Chlorine one of the most corrosive and deadly gasses - if(S.has_reagent(/datum/reagent/chlorine, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/chlorine) * 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/chlorine) * 1.5)) - adjustWater(-round(S.get_reagent_amount(/datum/reagent/chlorine) * 0.5)) - adjustWeeds(-rand(1,3)) - - // White Phosphorous + water -> phosphoric acid. That's not a good thing really. - // Phosphoric salts are beneficial though. And even if the plant suffers, in the long run the tray gets some nutrients. The benefit isn't worth that much. - if(S.has_reagent(/datum/reagent/phosphorus, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.75)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.1)) - adjustWater(-round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.5)) - adjustWeeds(-rand(1,2)) - - // Plants should not have sugar, they can't use it and it prevents them getting water/nutients, it is good for mold though... - if(S.has_reagent(/datum/reagent/consumable/sugar, 1)) - adjustWeeds(rand(1,2)) - adjustPests(rand(1,2)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/sugar) * 0.1)) - - // It is water! - if(S.has_reagent(/datum/reagent/water, 1)) - adjustWater(round(S.get_reagent_amount(/datum/reagent/water) * 1)) - - // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits~ - if(S.has_reagent(/datum/reagent/water/holywater, 1)) - adjustWater(round(S.get_reagent_amount(/datum/reagent/water/holywater) * 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/water/holywater) * 0.1)) - - // A variety of nutrients are dissolved in club soda, without sugar. - // These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. - if(S.has_reagent(/datum/reagent/consumable/sodawater, 1)) - adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 0.1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 0.1)) - - // Sulphuric Acid - if(S.has_reagent(/datum/reagent/toxin/acid, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/acid) * 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/acid) * 1.5)) - adjustWeeds(-rand(1,2)) - - // Acid - if(S.has_reagent(/datum/reagent/toxin/acid/fluacid, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/acid/fluacid) * 2)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/acid/fluacid) * 3)) - adjustWeeds(-rand(1,4)) - - // Plant-B-Gone is just as bad - if(S.has_reagent(/datum/reagent/toxin/plantbgone, 1)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone) * 5)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone) * 6)) - adjustWeeds(-rand(4,8)) - - // Napalm, not known for being good for anything organic - if(S.has_reagent(/datum/reagent/napalm, 1)) - if(!(myseed.resistance_flags & FIRE_PROOF)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/napalm) * 6)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/napalm) * 7)) - adjustWeeds(-rand(5,9)) - - //Weed Spray - if(S.has_reagent(/datum/reagent/toxin/plantbgone/weedkiller, 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone/weedkiller) * 0.5)) - //old toxicity was 4, each spray is default 10 (minimal of 5) so 5 and 2.5 are the new ammounts - adjustWeeds(-rand(1,2)) - - //Pest Spray - if(S.has_reagent(/datum/reagent/toxin/pestkiller, 1)) - adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/pestkiller) * 0.5)) - adjustPests(-rand(1,2)) - - // Healing - if(S.has_reagent(/datum/reagent/medicine/cryoxadone, 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/medicine/cryoxadone) * 3)) - adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/cryoxadone) * 3)) - - // Ammonia is bad ass. - if(S.has_reagent(/datum/reagent/ammonia, 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/ammonia) * 0.5)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/ammonia) * 1)) - if(myseed) - myseed.adjust_yield(round(S.get_reagent_amount(/datum/reagent/ammonia) * 0.01)) - - // Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants - if(S.has_reagent(/datum/reagent/saltpetre, 1)) - var/salt = S.get_reagent_amount(/datum/reagent/saltpetre) - adjustHealth(round(salt * 0.25)) - if (myseed) - myseed.adjust_production(-round(salt/100)-prob(salt%100)) - myseed.adjust_potency(round(salt*0.5)) - - // Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer - if(S.has_reagent(/datum/reagent/ash, 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/ash) * 0.25)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/ash) * 0.5)) - adjustWeeds(-1) - - // Diethylamine is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. - if(S.has_reagent(/datum/reagent/diethylamine, 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 2)) - if(myseed) - myseed.adjust_yield(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 0.02)) - adjustPests(-rand(1,2)) - - // Nutriment Compost, effectively - if(S.has_reagent(/datum/reagent/consumable/nutriment, 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/nutriment) * 0.5)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/nutriment) * 1)) - - // Virusfood Compost for EVERYTHING - if(S.has_reagent(/datum/reagent/toxin/mutagen/mutagenvirusfood, 1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/toxin/mutagen/mutagenvirusfood) * 0.5)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/mutagen/mutagenvirusfood) * 0.5)) - - // Blood - if(S.has_reagent(/datum/reagent/blood, 1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/blood) * 1)) - adjustPests(rand(2,4)) - - // Strange reagent - if(S.has_reagent(/datum/reagent/medicine/strange_reagent, 1)) - spawnplant() - - // Honey, Pests are dieing of sugar, so is the plant - if(S.has_reagent(/datum/reagent/consumable/honey, 1)) - adjustPests(-rand(2,5)) - adjustHealth(-round(S.get_reagent_amount(/datum/reagent/consumable/honey) * 1)) - - // Buzz Fuzz, a drink seemingly made for plants... - if(S.has_reagent(/datum/reagent/consumable/buzz_fuzz, 1)) - adjustPests(-rand(2,5)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/buzz_fuzz) * 0.1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/buzz_fuzz) * 0.5)) - - // Adminordrazine the best stuff there is. For testing/debugging. - if(S.has_reagent(/datum/reagent/medicine/adminordrazine, 1)) - adjustWater(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1)) - adjustHealth(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1)) - adjustNutri(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1)) - adjustPests(-rand(1,5)) - adjustWeeds(-rand(1,5)) - if(S.has_reagent(/datum/reagent/medicine/adminordrazine, 5)) - switch(rand(100)) - if(66 to 100) - mutatespecie() - if(33 to 65) - mutateweed() - if(1 to 32) - mutatepest(user) - else - to_chat(user, "Nothing happens...") - /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) //Called when mob user "attacks" it with object O if(istype(O, /obj/item/reagent_containers) ) // Syringe stuff (and other reagent containers now too) @@ -730,13 +463,20 @@ to_chat(user, "[reagent_source] is empty.") return 1 + if(reagents.total_volume >= reagents.maximum_volume && !reagent_source.reagents.has_reagent(/datum/reagent/water, 1)) + to_chat(user, "[src] is full.") + return + var/list/trays = list(src)//makes the list just this in cases of syringes and compost etc var/target = myseed ? myseed.plantname : src var/visi_msg = "" - var/irrigate = 0 //How am I supposed to irrigate pill contents? var/transfer_amount if(istype(reagent_source, /obj/item/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/reagent_containers/pill)) + if(istype(reagent_source, /obj/item/reagent_containers/food/snacks)) + var/obj/item/reagent_containers/food/snacks/R = reagent_source + if (R.trash) + R.generate_trash(get_turf(user)) visi_msg="[user] composts [reagent_source], spreading it through [target]" transfer_amount = reagent_source.reagents.total_volume else @@ -746,41 +486,27 @@ visi_msg="[user] injects [target] with [syr]" if(syr.reagents.total_volume <= syr.amount_per_transfer_from_this) syr.mode = 0 - else if(istype(reagent_source, /obj/item/reagent_containers/spray/)) - visi_msg="[user] sprays [target] with [reagent_source]" - playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) - irrigate = 1 - else if(transfer_amount) // Droppers, cans, beakers, what have you. - visi_msg="[user] uses [reagent_source] on [target]" - irrigate = 1 // Beakers, bottles, buckets, etc. if(reagent_source.is_drainable()) - playsound(loc, 'sound/effects/slosh.ogg', 25, 1) - - if(irrigate && transfer_amount > 30 && reagent_source.reagents.total_volume >= 30 && using_irrigation) - trays = FindConnected() - if (trays.len > 1) - visi_msg += ", setting off the irrigation system" + playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) if(visi_msg) visible_message("[visi_msg].") - var/split = round(transfer_amount/trays.len) - + for(var/obj/machinery/hydroponics/H in trays) //cause I don't want to feel like im juggling 15 tamagotchis and I can get to my real work of ripping flooring apart in hopes of validating my life choices of becoming a space-gardener - - var/datum/reagents/S = new /datum/reagents() //This is a strange way, but I don't know of a better one so I can't fix it at the moment... - S.my_atom = H - - reagent_source.reagents.trans_to(S,split) + //This was originally in apply_chemicals, but due to apply_chemicals only holding nutrients, we handle it here now. + if(reagent_source.reagents.has_reagent(/datum/reagent/water, 1)) + var/water_amt = reagent_source.reagents.get_reagent_amount(/datum/reagent/water) * transfer_amount / reagent_source.reagents.total_volume + H.adjustWater(round(water_amt)) + reagent_source.reagents.remove_reagent(/datum/reagent/water, water_amt) + reagent_source.reagents.trans_to(H.reagents, transfer_amount) if(istype(reagent_source, /obj/item/reagent_containers/food/snacks) || istype(reagent_source, /obj/item/reagent_containers/pill)) qdel(reagent_source) - - H.applyChemicals(S, user) - - S.clear_reagents() - qdel(S) + lastuser = user + H.update_icon() + return 1 H.update_icon() if(reagent_source) // If the source wasn't composted and destroyed reagent_source.update_icon() @@ -793,39 +519,43 @@ if(!user.transferItemToLoc(O, src)) return to_chat(user, "You plant [O].") - dead = 0 + dead = FALSE myseed = O - name = "hydroponics tray ([myseed.plantname])" - if(!myseed.productdesc) //we haven't changed our produce's description - if(myseed.product) - myseed.productdesc = initial(myseed.product.desc) - else if(myseed.desc) - myseed.productdesc = myseed.desc - else - myseed.productdesc = "A fascinating specimen." - desc = myseed.productdesc + TRAY_NAME_UPDATE age = 1 plant_health = myseed.endurance lastcycle = world.time update_icon() + return else to_chat(user, "[src] already has seeds in it!") + return else if(istype(O, /obj/item/plant_analyzer)) + var/obj/item/plant_analyzer/P_analyzer = O if(myseed) - to_chat(user, "*** [myseed.plantname] ***" ) - to_chat(user, "- Plant Age: [age]") - var/list/text_string = myseed.get_analyzer_text() - if(text_string) - to_chat(user, text_string) + if(P_analyzer.scan_mode == PLANT_SCANMODE_STATS) + to_chat(user, "*** [myseed.plantname] ***" ) + to_chat(user, "- Plant Age: [age]") + var/list/text_string = myseed.get_analyzer_text() + if(text_string) + to_chat(user, text_string) + to_chat(user, "*---------*") + if(myseed.reagents_add && P_analyzer.scan_mode == PLANT_SCANMODE_CHEMICALS) + to_chat(user, "- Plant Reagents -") + to_chat(user, "*---------*") + for(var/datum/plant_gene/reagent/G in myseed.genes) + to_chat(user, "- [G.get_name()] -") + to_chat(user, "*---------*") else to_chat(user, "No plant found.") to_chat(user, "- Weed level: [weedlevel] / 10") to_chat(user, "- Pest level: [pestlevel] / 10") to_chat(user, "- Toxicity level: [toxic] / 100") to_chat(user, "- Water level: [waterlevel] / [maxwater]") - to_chat(user, "- Nutrition level: [nutrilevel] / [maxnutri]") + to_chat(user, "- Nutrition level: [reagents.total_volume] / [maxnutri]") to_chat(user, "") + return else if(istype(O, /obj/item/cultivator)) if(weedlevel > 0) @@ -843,18 +573,6 @@ else if(default_unfasten_wrench(user, O)) return - else if(istype(O, /obj/item/wirecutters) && unwrenchable) - if (!anchored) - to_chat(user, "Anchor the tray first!") - return - if(canirrigate) - using_irrigation = !using_irrigation - O.play_tool_sound(src) - user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses.", \ - "You [using_irrigation ? "" : "dis"]connect [src]'s irrigation hoses.") - for(var/obj/machinery/hydroponics/h in range(1,src)) - h.update_icon() - else if(istype(O, /obj/item/shovel/spade)) if(!myseed && !weedlevel) to_chat(user, "[src] doesn't have any plants or weeds!") @@ -882,55 +600,75 @@ if (!unwrenchable) // case also covered by NODECONSTRUCT checks in default_unfasten_wrench return CANT_UNFASTEN - if (using_irrigation) - if (!silent) - to_chat(user, "Disconnect the hoses first!") - return FAILED_UNFASTEN - return ..() -/obj/machinery/hydroponics/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) +/obj/machinery/hydroponics/attack_hand(mob/user) + . = ..() + if(.) + return if(issilicon(user)) //How does AI know what plant is? return if(harvest) - return myseed.harvest(user) + myseed.harvest(user) + return else if(dead) - dead = 0 + dead = FALSE to_chat(user, "You remove the dead plant from [src].") qdel(myseed) myseed = null update_icon() - name = initial(name) - desc = initial(desc) + TRAY_NAME_UPDATE else if(user) examine(user) +/obj/machinery/hydroponics/CtrlClick(mob/user) + . = ..() + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + if(!powered()) + to_chat(user, "[name] has no power.") + return + if(!anchored) + return + self_sustaining = !self_sustaining + idle_power_usage = self_sustaining ? 2500 : 0 + to_chat(user, "You [self_sustaining ? "activate" : "deactivated"] [src]'s autogrow function[self_sustaining ? ", maintaining the tray's health while using high amounts of power" : ""].") + update_icon() + +/obj/machinery/hydroponics/AltClick(mob/user) + . = ..() + if(!anchored) + update_icon() + return FALSE + var/warning = alert(user, "Are you sure you wish to empty the tray's nutrient beaker?","Empty Tray Nutrients?", "Yes", "No") + if(warning == "Yes" && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + reagents.clear_reagents() + to_chat(user, "You empty [src]'s nutrient tank.") + /obj/machinery/hydroponics/proc/update_tray(mob/user) - harvest = 0 + harvest = FALSE lastproduce = age if(istype(myseed, /obj/item/seeds/replicapod)) - if(user)//runtimes - to_chat(user, "You harvest from the [myseed.plantname].") + to_chat(user, "You harvest from the [myseed.plantname].") else if(myseed.getYield() <= 0) - if(user) - to_chat(user, "You fail to harvest anything useful!") + to_chat(user, "You fail to harvest anything useful!") else - if(user) - to_chat(user, "You harvest [myseed.getYield()] items from the [myseed.plantname].") + to_chat(user, "You harvest [myseed.getYield()] items from the [myseed.plantname].") if(!myseed.get_gene(/datum/plant_gene/trait/repeated_harvest)) qdel(myseed) myseed = null - dead = 0 + dead = FALSE name = initial(name) desc = initial(desc) + TRAY_NAME_UPDATE + if(self_sustaining) //No reason to pay for an empty tray. + idle_power_usage = 0 + self_sustaining = FALSE update_icon() - + /// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds./// -/obj/machinery/hydroponics/proc/adjustNutri(adjustamt) - nutrilevel = clamp(nutrilevel + adjustamt, 0, maxnutri) - /obj/machinery/hydroponics/proc/adjustWater(adjustamt) waterlevel = clamp(waterlevel + adjustamt, 0, maxwater) @@ -956,11 +694,6 @@ var/mob/living/simple_animal/hostile/C = new chosen C.faction = list("plants") -/obj/machinery/hydroponics/proc/become_self_sufficient() // Ambrosia Gaia effect - visible_message("[src] begins to glow with a beautiful light!") - self_sustaining = TRUE - update_icon() - /////////////////////////////////////////////////////////////////////////////// /obj/machinery/hydroponics/soil //Not actually hydroponics at all! Honk! name = "soil" @@ -973,9 +706,6 @@ flags_1 = NODECONSTRUCT_1 unwrenchable = FALSE -/obj/machinery/hydroponics/soil/update_icon_hoses() - return // Has no hoses - /obj/machinery/hydroponics/soil/update_icon_lights() return // Has no lights @@ -985,3 +715,6 @@ qdel(src) else return ..() + +/obj/machinery/hydroponics/soil/CtrlClick(mob/user) + return //Dirt doesn't have electricity, last I checked. diff --git a/code/modules/hydroponics/hydroponics_chemreact.dm b/code/modules/hydroponics/hydroponics_chemreact.dm new file mode 100644 index 0000000000..a4ef78a21f --- /dev/null +++ b/code/modules/hydroponics/hydroponics_chemreact.dm @@ -0,0 +1,32 @@ +/** + *This is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane + * stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up. + */ +/obj/machinery/hydroponics/proc/apply_chemicals(mob/user) + ///Contains the reagents within the tray. + if(myseed) + myseed.on_chem_reaction(reagents) //In case seeds have some special interactions with special chems, currently only used by vines + for(var/c in reagents.reagent_list) + var/datum/reagent/chem = c + chem.on_hydroponics_apply(myseed, reagents, src, user) + + +/obj/machinery/hydroponics/proc/mutation_roll(mob/user) + switch(rand(100)) + if(91 to 100) + adjustHealth(-10) + visible_message("\The [myseed.plantname] starts to wilt and burn!") + return + if(41 to 90) + if(myseed && !self_sustaining) //Stability + myseed.adjust_instability(5) + return + if(21 to 40) + visible_message("\The [myseed.plantname] appears unusually reactive...") + return + if(11 to 20) + mutateweed() + return + if(1 to 10) + mutatepest(user) + return diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 887ea0417c..da19fa11f8 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -89,6 +89,12 @@ /datum/plant_gene/core/potency/apply_stat(obj/item/seeds/S) S.potency = value +/datum/plant_gene/core/instability + name = "Stability" + value = 10 + +/datum/plant_gene/core/instability/apply_stat(obj/item/seeds/S) + S.instability = value /datum/plant_gene/core/weed_rate name = "Weed Growth Rate" diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index c7314bf180..2dc80cd8fc 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -24,6 +24,7 @@ var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. var/growthstages = 6 // Amount of growth sprites the plant has. + var/instability = 5 //Chance that a plant will mutate in each stage of it's life. var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to CentCom. var/list/mutatelist = list() // The type of plants that this plant can mutate into. var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. @@ -36,6 +37,7 @@ var/weed_rate = 1 //If the chance below passes, then this many weeds sprout during growth var/weed_chance = 5 //Percentage chance per tray update to grow weeds + var/seed_flags = MUTATE_EARLY //Determines if a plant is allowed to mutate early at 30+ instability /obj/item/seeds/Initialize(mapload, nogenes = 0) . = ..() @@ -61,6 +63,7 @@ genes += new /datum/plant_gene/core/production(production) if(potency != -1) genes += new /datum/plant_gene/core/potency(potency) + genes += new /datum/plant_gene/core/instability(instability) for(var/p in genes) if(ispath(p)) @@ -74,6 +77,10 @@ /obj/item/seeds/examine(mob/user) . = ..() . += "Use a pen on it to rename it or change its description." + if(reagents_add && user.can_see_reagents()) + . += "- Plant Reagents -" + for(var/datum/plant_gene/reagent/G in genes) + . += "- [G.get_name()] -" /obj/item/seeds/proc/Copy() var/obj/item/seeds/S = new type(null, 1) @@ -85,6 +92,7 @@ S.yield = yield S.potency = potency S.weed_rate = weed_rate + S.instability = instability S.weed_chance = weed_chance S.name = name S.plantname = plantname @@ -121,18 +129,20 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) if(g) g.mutability_flags &= ~mutability -/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0) +/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0, stabmut = 3) adjust_lifespan(rand(-lifemut,lifemut)) adjust_endurance(rand(-endmut,endmut)) adjust_production(rand(-productmut,productmut)) adjust_yield(rand(-yieldmut,yieldmut)) adjust_potency(rand(-potmut,potmut)) + adjust_instability(rand(-stabmut,stabmut)) adjust_weed_rate(rand(-wrmut, wrmut)) adjust_weed_chance(rand(-wcmut, wcmut)) if(prob(traitmut)) - add_random_traits(1, 1) - - + if(prob(50)) + add_random_traits(1, 1) + else + add_random_reagents(1, 1) /obj/item/seeds/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. if(istype(Proj, /obj/item/projectile/energy/florayield)) @@ -165,13 +175,40 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) /obj/item/seeds/proc/harvest(mob/user) + ///Reference to the tray/soil the seeds are planted in. var/obj/machinery/hydroponics/parent = loc //for ease of access + ///Count used for creating the correct amount of results to the harvest. var/t_amount = 0 + ///List of plants all harvested from the same batch. var/list/result = list() + ///Tile of the harvester to deposit the growables. var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc //needed for TK + ///Name of the grown products. var/product_name - while(t_amount < getYield()) - var/obj/item/reagent_containers/food/snacks/grown/t_prod = new product(output_loc, src) + ///The Number of products produced by the plant, typically the yield. + var/product_count = getYield() + + while(t_amount < product_count) + var/obj/item/reagent_containers/food/snacks/grown/t_prod + if(instability >= 30 && (seed_flags & MUTATE_EARLY) && LAZYLEN(mutatelist) && prob(instability/3)) + var/obj/item/seeds/new_prod = pick(mutatelist) + t_prod = initial(new_prod.product) + if(!t_prod) + continue + t_prod = new t_prod(output_loc, src) + t_prod.seed = new new_prod + t_prod.seed.name = initial(new_prod.name) + t_prod.seed.desc = initial(new_prod.desc) + t_prod.seed.plantname = initial(new_prod.plantname) + t_prod.transform = initial(t_prod.transform) + t_prod.transform *= TRANSFORM_USING_VARIABLE(t_prod.seed.potency, 100) + 0.5 + t_amount++ + if(t_prod.seed) + //t_prod.seed = new new_prod + t_prod.seed.instability = round(instability * 0.5) + continue + else + t_prod = new product(output_loc, src) if(parent.myseed.plantname != initial(parent.myseed.plantname)) t_prod.name = lowertext(parent.myseed.plantname) if(productdesc) @@ -186,8 +223,8 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) product_name = parent.myseed.plantname if(getYield() >= 1) SSblackbox.record_feedback("tally", "food_harvested", getYield(), product_name) - parent.investigate_log("[user] harvested [getYield()] of [src], with seed traits [english_list(genes)] and reagents_add [english_list(reagents_add)] and potency [potency].", INVESTIGATE_BOTANY) parent.update_tray(user) + return result /obj/item/seeds/proc/harvest_userless() @@ -263,6 +300,14 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) if(C) C.value = production +/obj/item/seeds/proc/adjust_instability(adjustamt) + if(instability == -1) + return + instability = clamp(instability + adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/instability) + if(C) + C.value = instability + /obj/item/seeds/proc/adjust_potency(adjustamt) if(potency != -1) potency = clamp(potency + adjustamt, 0, 100) @@ -320,6 +365,14 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) if(C) C.value = potency +/obj/item/seeds/proc/set_instability(adjustamt) + if(instability == -1) + return + instability = clamp(adjustamt, 0, 100) + var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/instability) + if(C) + C.value = instability + /obj/item/seeds/proc/set_weed_rate(adjustamt) weed_rate = clamp(adjustamt, 0, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) @@ -352,6 +405,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) text += "- Production speed: [production]\n" text += "- Endurance: [endurance]\n" text += "- Lifespan: [lifespan]\n" + text += "- Instability: [instability]\n" text += "- Weed Growth Rate: [weed_rate]\n" text += "- Weed Vulnerability: [weed_chance]\n" if(rarity) @@ -362,9 +416,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) continue all_traits += " [traits.get_name()]" text += "- Plant Traits:[all_traits]\n" - text += "*---------*" - return text /obj/item/seeds/proc/on_chem_reaction(datum/reagents/S) //in case seeds have some special interaction with special chems @@ -373,9 +425,19 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) /obj/item/seeds/attackby(obj/item/O, mob/user, params) if (istype(O, /obj/item/plant_analyzer)) to_chat(user, "*---------*\n This is \a [src].") - var/text = get_analyzer_text() - if(text) - to_chat(user, "[text]") + var/text + var/obj/item/plant_analyzer/P_analyzer = O + if(P_analyzer.scan_mode == PLANT_SCANMODE_STATS) + text = get_analyzer_text() + if(text) + to_chat(user, "[text]") + if(reagents_add && P_analyzer.scan_mode == PLANT_SCANMODE_CHEMICALS) + to_chat(user, "- Plant Reagents -") + to_chat(user, "*---------*") + for(var/datum/plant_gene/reagent/G in genes) + to_chat(user, "- [G.get_name()] -") + to_chat(user, "*---------*") + return diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index d842dbc003..a0d96658e6 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -2,6 +2,12 @@ #define MUSIC_MAXLINES 1000 #define MUSIC_MAXLINECHARS 300 +/** + * # Song datum + * + * These are the actual backend behind instruments. + * They attach to an atom and provide the editor + playback functionality. + */ /datum/song /// Name of the song var/name = "Untitled" @@ -15,6 +21,9 @@ /// delay between notes in deciseconds var/tempo = 5 + /// How far we can be heard + var/instrument_range = 15 + /// Are we currently playing? var/playing = FALSE @@ -53,17 +62,24 @@ /////////////////// Playing variables //////////////// /** - * Only used in synthesized playback - The chords we compiled. Non assoc list of lists: - * list(list(key1, key2, key3..., tempo_divisor), list(key1, key2..., tempo_divisor), ...) - * tempo_divisor always exists - * if key1 (and so if there's no keys) doesn't exist it's a rest + * Build by compile_chords() + * Must be rebuilt on instrument switch. * Compilation happens when we start playing and is cleared after we finish playing. + * Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv) */ var/list/compiled_chords + /// Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag. + var/elapsed_delay + /// Amount of delay to wait before playing the next chord + var/delay_by + /// Current chord we're on. + var/current_chord /// Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1. var/list/channels_playing = list() /// List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments. var/list/channels_idle = list() + /// Person playing us + var/mob/user_playing ////////////////////////////////////////////////////// /// Last world.time we checked for who can hear us @@ -72,8 +88,6 @@ var/list/hearing_mobs /// If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop) var/debug_mode = FALSE - /// Last time we processed decay - var/last_process_decay /// Max sound channels to occupy var/max_sound_channels = CHANNELS_PER_INSTRUMENT /// Current channels, so we can save a length() call. @@ -113,7 +127,7 @@ var/cached_exponential_dropoff = 1.045 ///////////////////////////////////////////////////////////////////////// -/datum/song/New(atom/parent, list/instrument_ids) +/datum/song/New(atom/parent, list/instrument_ids, new_range) SSinstruments.on_song_new(src) lines = list() tempo = sanitize_tempo(tempo) @@ -125,6 +139,8 @@ hearing_mobs = list() volume = clamp(volume, min_volume, max_volume) update_sustain() + if(new_range) + instrument_range = new_range /datum/song/Destroy() stop_playing() @@ -135,12 +151,15 @@ parent = null return ..() +/** + * Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range. + */ /datum/song/proc/do_hearcheck() last_hearcheck = world.time var/list/old = hearing_mobs.Copy() hearing_mobs.len = 0 var/turf/source = get_turf(parent) - for(var/mob/M in get_hearers_in_view(15, source)) + for(var/mob/M in get_hearers_in_view(instrument_range, source)) if(!(M?.client?.prefs?.toggles & SOUND_INSTRUMENTS)) continue hearing_mobs[M] = get_dist(M, source) @@ -148,10 +167,15 @@ for(var/i in exited) terminate_sound_mob(i) -/// I can either be a datum, id, or path (if the instrument has no id). +/** + * Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum. + */ /datum/song/proc/set_instrument(datum/instrument/I) + terminate_all_sounds() + var/old_legacy if(using_instrument) using_instrument.songs_using -= src + old_legacy = (using_instrument.instrument_flags & INSTRUMENT_LEGACY) using_instrument = null cached_samples = null cached_legacy_ext = null @@ -162,7 +186,7 @@ if(istype(I)) using_instrument = I I.songs_using += src - var/instrument_legacy = CHECK_BITFIELD(I.instrument_flags, INSTRUMENT_LEGACY) + var/instrument_legacy = (I.instrument_flags & INSTRUMENT_LEGACY) if(instrument_legacy) cached_legacy_ext = I.legacy_instrument_ext cached_legacy_dir = I.legacy_instrument_path @@ -170,23 +194,37 @@ else cached_samples = I.samples legacy = FALSE + if(isnull(old_legacy) || (old_legacy != instrument_legacy)) + if(playing) + compile_chords() -/// THIS IS A BLOCKING CALL. +/** + * Attempts to start playing our song. + */ /datum/song/proc/start_playing(mob/user) if(playing) return if(!using_instrument?.ready()) to_chat(user, "An error has occured with [src]. Please reset the instrument.") return + compile_chords() + if(!length(compiled_chords)) + to_chat(user, "Song is empty.") + return playing = TRUE - updateDialog() + updateDialog(user_playing) //we can not afford to runtime, since we are going to be doing sound channel reservations and if we runtime it means we have a channel allocation leak. //wrap the rest of the stuff to ensure stop_playing() is called. - last_process_decay = world.time + do_hearcheck() + elapsed_delay = 0 + delay_by = 0 + current_chord = 1 + user_playing = user START_PROCESSING(SSinstruments, src) - . = do_play_lines(user) - stop_playing() +/** + * Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs. + */ /datum/song/proc/stop_playing() if(!playing) return @@ -196,42 +234,93 @@ STOP_PROCESSING(SSinstruments, src) terminate_all_sounds(TRUE) hearing_mobs.len = 0 - updateDialog() + user_playing = null -/// THIS IS A BLOCKING CALL. -/datum/song/proc/do_play_lines(user) - if(!playing) +/** + * Processes our song. + */ +/datum/song/proc/process_song(wait) + if(!length(compiled_chords) || should_stop_playing(user_playing)) + stop_playing() return - do_hearcheck() - if(legacy) - do_play_lines_legacy(user) - else - do_play_lines_synthesized(user) + var/list/chord = compiled_chords[current_chord] + if(++elapsed_delay >= delay_by) + play_chord(chord) + elapsed_delay = 0 + delay_by = tempodiv_to_delay(chord[length(chord)]) + current_chord++ + if(current_chord > length(compiled_chords)) + if(repeat) + repeat-- + current_chord = 1 + return + else + stop_playing() + return +/** + * Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo. + */ +/datum/song/proc/tempodiv_to_delay(tempodiv) + if(!tempodiv) + tempodiv = 1 // no division by 0. some song converters tend to use 0 for when it wants to have no div, for whatever reason. + return max(1, round((tempo/tempodiv) / world.tick_lag, 1)) + +/** + * Compiles chords. + */ +/datum/song/proc/compile_chords() + legacy? compile_legacy() : compile_synthesized() + +/** + * Plays a chord. + */ +/datum/song/proc/play_chord(list/chord) + // last value is timing information + for(var/i in 1 to (length(chord) - 1)) + legacy? playkey_legacy(chord[i][1], chord[i][2], chord[i][3], user_playing) : playkey_synth(chord[i], user_playing) + +/** + * Checks if we should halt playback. + */ /datum/song/proc/should_stop_playing(mob/user) return QDELETED(parent) || !using_instrument || !playing +/** + * Sanitizes tempo to a value that makes sense and fits the current world.tick_lag. + */ /datum/song/proc/sanitize_tempo(new_tempo) new_tempo = abs(new_tempo) return clamp(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS) +/** + * Gets our beats per minute based on our tempo. + */ /datum/song/proc/get_bpm() return 600 / tempo +/** + * Sets our tempo from a beats-per-minute, sanitizing it to a valid number first. + */ /datum/song/proc/set_bpm(bpm) tempo = sanitize_tempo(600 / bpm) -/// Updates the window for our user. Override in subtypes. -/datum/song/proc/updateDialog(mob/user = usr) +/** + * Updates the window for our users. Override down the line. + */ +/datum/song/proc/updateDialog(mob/user) ui_interact(user) /datum/song/process(wait) if(!playing) return PROCESS_KILL - var/delay = world.time - last_process_decay - process_decay(delay) - last_process_decay = world.time + // it's expected this ticks at every world.tick_lag. if it lags, do not attempt to catch up. + process_song(world.tick_lag) + process_decay(world.tick_lag) +/** + * Updates our cached linear/exponential falloff stuff, saving calculations down the line. + */ /datum/song/proc/update_sustain() // Exponential is easy cached_exponential_dropoff = sustain_exponential_dropoff @@ -241,21 +330,33 @@ var/volume_decrease_per_decisecond = volume_diff / target_duration cached_linear_dropoff = volume_decrease_per_decisecond +/** + * Setter for setting output volume. + */ /datum/song/proc/set_volume(volume) src.volume = clamp(volume, max(0, min_volume), min(100, max_volume)) update_sustain() updateDialog() +/** + * Setter for setting how low the volume has to get before a note is considered "dead" and dropped + */ /datum/song/proc/set_dropoff_volume(volume) sustain_dropoff_volume = clamp(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) update_sustain() updateDialog() +/** + * Setter for setting exponential falloff factor. + */ /datum/song/proc/set_exponential_drop_rate(drop) sustain_exponential_dropoff = clamp(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) update_sustain() updateDialog() +/** + * Setter for setting linear falloff duration. + */ /datum/song/proc/set_linear_falloff_duration(duration) sustain_linear_duration = clamp(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN) update_sustain() @@ -277,10 +378,8 @@ // subtype for handheld instruments, like violin /datum/song/handheld -/datum/song/handheld/updateDialog(mob/user = usr) - if(user.machine != src) - return - parent.ui_interact(user) +/datum/song/handheld/updateDialog(mob/user) + parent.ui_interact(user || usr) /datum/song/handheld/should_stop_playing(mob/user) . = ..() @@ -292,10 +391,8 @@ // subtype for stationary structures, like pianos /datum/song/stationary -/datum/song/stationary/updateDialog(mob/user = usr) - if(user.machine != src) - return - parent.ui_interact(user) +/datum/song/stationary/updateDialog(mob/user) + parent.ui_interact(user || usr) /datum/song/stationary/should_stop_playing(mob/user) . = ..() diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index 8c5171667a..e385eed142 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -82,7 +82,6 @@ var/datum/browser/popup = new(user, "instrument", parent?.name || "instrument", 700, 500) popup.set_content(dat.Join("")) - popup.set_title_image(user.browse_rsc_icon(parent.icon, parent.icon_state)) popup.open() /datum/song/proc/ParseSong(text) diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index fa64656ebc..eee9be3cc7 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -1,48 +1,52 @@ -/// Playing legacy instruments - None of the "advanced" like sound reservations and decay are invoked. -/datum/song/proc/do_play_lines_legacy(mob/user) - while(repeat >= 0) - var/cur_oct[7] - var/cur_acc[7] - for(var/i = 1 to 7) - cur_oct[i] = 3 - cur_acc[i] = "n" +/** + * Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag. + */ +/datum/song/proc/compile_legacy() + if(!length(src.lines)) + return + var/list/lines = src.lines //cache for hyepr speed! + compiled_chords = list() + var/list/octaves = list(3, 3, 3, 3, 3, 3, 3) + var/list/accents = list("n", "n", "n", "n", "n", "n", "n") + for(var/line in lines) + var/list/chords = splittext(lowertext(line), ",") + for(var/chord in chords) + var/list/compiled_chord = list() + var/tempodiv = 1 + var/list/notes_tempodiv = splittext(chord, "/") + var/len = length(notes_tempodiv) + if(len >= 2) + tempodiv = text2num(notes_tempodiv[2]) + if(len) //some dunkass is going to do ,,,, to make 3 rests instead of ,/1 because there's no standardization so let's be prepared for that. + var/list/notes = splittext(notes_tempodiv[1], "-") + for(var/note in notes) + if(length(note) == 0) + continue + // 1-7, A-G + var/key = text2ascii(note) - 96 + if((key < 1) || (key > 7)) + continue + for(var/i in 2 to length(note)) + var/oct_acc = copytext(note, i, i + 1) + var/num = text2num(oct_acc) + if(!num) //it's an accidental + accents[key] = oct_acc //if they misspelled it/fucked up that's on them lmao, no safety checks. + else //octave + octaves[key] = clamp(num, octave_min, octave_max) + compiled_chord[++compiled_chord.len] = list(key, accents[key], octaves[key]) + compiled_chord += tempodiv //this goes last + if(length(compiled_chord)) + compiled_chords[++compiled_chords.len] = compiled_chord - for(var/line in lines) - for(var/beat in splittext(lowertext(line), ",")) - if(should_stop_playing(user)) - return - var/list/notes = splittext(beat, "/") - if(length(notes)) //because some jack-butts are going to do ,,,, to symbolize 3 rests instead of something reasonable like ,/1. - for(var/note in splittext(notes[1], "-")) - if(length(note) == 0) - continue - var/cur_note = text2ascii(note) - 96 - if(cur_note < 1 || cur_note > 7) - continue - for(var/i=2 to length(note)) - var/ni = copytext(note,i,i+1) - if(!text2num(ni)) - if(ni == "#" || ni == "b" || ni == "n") - cur_acc[cur_note] = ni - else if(ni == "s") - cur_acc[cur_note] = "#" // so shift is never required - else - cur_oct[cur_note] = text2num(ni) - playnote_legacy(cur_note, cur_acc[cur_note], cur_oct[cur_note]) - if(notes.len >= 2 && text2num(notes[2])) - sleep(sanitize_tempo(tempo / text2num(notes[2]))) - else - sleep(tempo) - if(should_stop_playing(user)) - return - repeat-- - updateDialog() - repeat = 0 - -// note is a number from 1-7 for A-G -// acc is either "b", "n", or "#" -// oct is 1-8 (or 9 for C) -/datum/song/proc/playnote_legacy(note, acc as text, oct) +/** + * Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management. + * + * Arguments: + * * note is a number from 1-7 for A-G + * * acc is either "b", "n", or "#" + * * oct is 1-8 (or 9 for C) + */ +/datum/song/proc/playkey_legacy(note, acc as text, oct, mob/user) // handle accidental -> B<>C of E<>F if(acc == "b" && (note == 3 || note == 6)) // C or F if(note == 3) diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index 5e7c5652a0..4df54f5e6b 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -1,27 +1,7 @@ -/datum/song/proc/do_play_lines_synthesized(mob/user) - compile_lines() - while(repeat >= 0) - if(should_stop_playing(user)) - return - var/warned = FALSE - for(var/_chord in compiled_chords) - if(should_stop_playing(user)) - return - var/list/chord = _chord - var/tempodiv = chord[chord.len] - for(var/i in 1 to chord.len - 1) - var/key = chord[i] - if(!playkey_synth(key)) - if(!warned) - warned = TRUE - to_chat(user, "Your instrument has ran out of channels. You might be playing your song too fast or be setting sustain to too high of a value. This warning will be suppressed for the rest of this cycle.") - sleep(sanitize_tempo(tempo / (tempodiv || 1))) - repeat-- - updateDialog() - repeat = 0 - -/// C-Db2-A-A4/2,A-B#4-C/3,/4,A,A-B-C as an example -/datum/song/proc/compile_lines() +/** + * Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag. + */ +/datum/song/proc/compile_synthesized() if(!length(src.lines)) return var/list/lines = src.lines //cache for hyepr speed! @@ -57,10 +37,12 @@ compiled_chord += tempodiv //this goes last if(length(compiled_chord)) compiled_chords[++compiled_chords.len] = compiled_chord - CHECK_TICK - return compiled_chords -/datum/song/proc/playkey_synth(key) +/** + * Plays a specific numerical key from our instrument to anyone who can hear us. + * Does a hearing check if enough time has passed. + */ +/datum/song/proc/playkey_synth(key, mob/user) if(can_noteshift) key = clamp(key + note_shift, key_min, key_max) if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) @@ -83,6 +65,9 @@ M.playsound_local(get_turf(parent), null, volume, FALSE, K.frequency, INSTRUMENT_DISTANCE_NO_FALLOFF, channel, null, copy, distance_multiplier = INSTRUMENT_DISTANCE_FALLOFF_BUFF) // Could do environment and echo later but not for now +/** + * Stops all sounds we are "responsible" for. Only works in synthesized mode. + */ /datum/song/proc/terminate_all_sounds(clear_channels = TRUE) for(var/i in hearing_mobs) terminate_sound_mob(i) @@ -93,10 +78,16 @@ using_sound_channels = 0 SSsounds.free_datum_channels(src) +/** + * Stops all sounds we are responsible for in a given person. Only works in synthesized mode. + */ /datum/song/proc/terminate_sound_mob(mob/M) for(var/channel in channels_playing) M.stop_sound_channel(text2num(channel)) +/** + * Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster. + */ /datum/song/proc/pop_channel() if(length(channels_idle)) //just pop one off of here if we have one available . = text2num(channels_idle[1]) @@ -108,6 +99,12 @@ if(!isnull(.)) using_sound_channels++ +/** + * Decays our channels and updates their volumes to mobs who can hear us. + * + * Arguments: + * * wait_ds - the deciseconds we should decay by. This is to compensate for any lag, as otherwise songs would get pretty nasty during high time dilation. + */ /datum/song/proc/process_decay(wait_ds) var/linear_dropoff = cached_linear_dropoff * wait_ds var/exponential_dropoff = cached_exponential_dropoff ** wait_ds diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index e8981ed685..9abf5d86a0 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -261,13 +261,11 @@ set_pin_data(IC_OUTPUT, 12, H.pestlevel) set_pin_data(IC_OUTPUT, 13, H.toxic) set_pin_data(IC_OUTPUT, 14, H.waterlevel) - set_pin_data(IC_OUTPUT, 15, H.nutrilevel) + set_pin_data(IC_OUTPUT, 15, H.reagents.total_volume) set_pin_data(IC_OUTPUT, 16, H.harvest) set_pin_data(IC_OUTPUT, 17, H.dead) set_pin_data(IC_OUTPUT, 18, H.plant_health) set_pin_data(IC_OUTPUT, 19, H.self_sustaining) - set_pin_data(IC_OUTPUT, 20, H.using_irrigation) - set_pin_data(IC_OUTPUT, 21, H.FindConnected()) push_data() activate_pin(2) diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm index 991c806f43..f69fa08aaf 100644 --- a/code/modules/integrated_electronics/subtypes/reagents.dm +++ b/code/modules/integrated_electronics/subtypes/reagents.dm @@ -19,30 +19,26 @@ // Hydroponics trays have no reagents holder and handle reagents in their own snowflakey way. // This is a dirty hack to make injecting reagents into them work. // TODO: refactor that. -/obj/item/integrated_circuit/reagent/proc/inject_tray(obj/machinery/hydroponics/tray, atom/movable/source, amount) - var/atom/movable/acting_object = get_object() - var/list/trays = list(tray) - var/visi_msg = "[acting_object] transfers fluid into [tray]" +//Time for someone to refactor this. Trays can now hold reagents. +//obj/item/integrated_circuit/reagent/proc/inject_tray(obj/machinery/hydroponics/tray, atom/movable/source, amount) + //var/atom/movable/acting_object = get_object() + //var/list/trays = list(tray) + //var/visi_msg = "[acting_object] transfers fluid into [tray]" - if(amount > 30 && source.reagents.total_volume >= 30 && tray.using_irrigation) - trays = tray.FindConnected() - if (trays.len > 1) - visi_msg += ", setting off the irrigation system" + //acting_object.visible_message("[visi_msg].") + //playsound(loc, 'sound/effects/slosh.ogg', 25, 1) - acting_object.visible_message("[visi_msg].") - playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + //var/split = round(amount/trays.len) - var/split = round(amount/trays.len) + //for(var/obj/machinery/hydroponics/H in trays) + //var/datum/reagents/temp_reagents = new /datum/reagents() + //temp_reagents.my_atom = H - for(var/obj/machinery/hydroponics/H in trays) - var/datum/reagents/temp_reagents = new /datum/reagents() - temp_reagents.my_atom = H + //source.reagents.trans_to(temp_reagents, split) + //H.on_hydroponics_apply(temp_reagents) - source.reagents.trans_to(temp_reagents, split) - H.applyChemicals(temp_reagents) - - temp_reagents.clear_reagents() - qdel(temp_reagents) + //temp_reagents.clear_reagents() + //qdel(temp_reagents) /obj/item/integrated_circuit/reagent/injector name = "integrated hypo-injector" @@ -116,10 +112,10 @@ return if(!AM.reagents) - if(istype(AM, /obj/machinery/hydroponics) && direction_mode == SYRINGE_INJECT && reagents.total_volume && transfer_amount)//injection into tray. - inject_tray(AM, src, transfer_amount) - activate_pin(2) - return + //if(istype(AM, /obj/machinery/hydroponics) && direction_mode == SYRINGE_INJECT && reagents.total_volume && transfer_amount)//injection into tray. + //inject_tray(AM, src, transfer_amount) + //activate_pin(2) + //return activate_pin(3) return @@ -242,13 +238,14 @@ if(!source.reagents) return - if(!target.reagents) + //if(!target.reagents) // Hydroponics trays have no reagents holder and handle reagents in their own snowflakey way. // This is a dirty hack to make injecting reagents into them work. - if(istype(target, /obj/machinery/hydroponics) && source.reagents.total_volume) - inject_tray(target, source, transfer_amount) - activate_pin(2) - return + //Someone should redo this. Trays should hold reagents now. + //if(istype(target, /obj/machinery/hydroponics) && source.reagents.total_volume) + //inject_tray(target, source, transfer_amount) + //activate_pin(2) + //return if(!source.is_drainable() || !target.is_refillable()) return diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 1238b37919..0feceaf1a8 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -80,6 +80,9 @@ if(mind_traits) for(var/t in mind_traits) ADD_TRAIT(H.mind, t, JOB_TRAIT) + if(/datum/quirk/paraplegic in blacklisted_quirks) + H.regenerate_limbs() //if you can't be a paraplegic, attempt to regenerate limbs to stop amputated limb selection + H.set_resting(FALSE, TRUE) //they probably shouldn't be on the floor because they had no legs then suddenly had legs /datum/job/proc/announce(mob/living/carbon/human/H) if(head_announce) diff --git a/code/modules/keybindings/keybind/robot.dm b/code/modules/keybindings/keybind/robot.dm index b9f6ce83eb..4f249cf243 100644 --- a/code/modules/keybindings/keybind/robot.dm +++ b/code/modules/keybindings/keybind/robot.dm @@ -59,3 +59,17 @@ var/mob/living/silicon/robot/R = user.mob R.uneq_active() return TRUE + +/datum/keybinding/robot/drone/can_use(client/user) + return isdrone(user.mob) + +/datum/keybinding/robot/drone/quick_equip_drone // QOL: Drone quickequip + hotkey_keys = list("E") + name = "quick_equip_drone" + full_name = "Quick Equip (Drone)" + description = "Quickly puts an item in the best slot available" + +/datum/keybinding/robot/drone/quick_equip_drone/down(client/user) + var/mob/living/simple_animal/drone/D = user.mob + D.quick_equip() + return TRUE \ No newline at end of file diff --git a/code/modules/language/language.dm b/code/modules/language/language.dm index 536bf06e8d..42b439ba03 100644 --- a/code/modules/language/language.dm +++ b/code/modules/language/language.dm @@ -35,7 +35,7 @@ return TRUE /datum/language/proc/get_icon() - var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/goonchat) + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat) return sheet.icon_tag("language-[icon_state]") /datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4, syllable_divisor=2) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 80ce2522ff..a4d88158e2 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -22,7 +22,7 @@ max_integrity = 200 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) var/state = 0 - var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase + var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book, /obj/item/gun/magic/wand/book) //Things allowed in the bookcase /obj/structure/bookcase/examine(mob/user) . = ..() @@ -192,7 +192,7 @@ desc = "Crack it open, inhale the musk of its pages, and learn something new." throw_speed = 1 throw_range = 5 - w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) + w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) attack_verb = list("bashed", "whacked", "educated") resistance_flags = FLAMMABLE var/dat //Actual page content diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index f777246453..3953f5e28c 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -66,7 +66,6 @@ dat += "\[Go Back\]
    " var/datum/browser/popup = new(user, "publiclibrary", name, 600, 400) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/libraryconsole/Topic(href, href_list) @@ -314,7 +313,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums var/datum/browser/popup = new(user, "library", name, 600, 400) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/libraryconsole/bookmanagement/proc/findscanner(viewrange) @@ -537,7 +535,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums dat += "
    " var/datum/browser/popup = new(user, "scanner", name, 600, 400) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/libraryscanner/Topic(href, href_list) diff --git a/code/modules/mapping/minimaps.dm b/code/modules/mapping/minimaps.dm index 7a62e9ab44..e0eb174cb3 100644 --- a/code/modules/mapping/minimaps.dm +++ b/code/modules/mapping/minimaps.dm @@ -4,7 +4,7 @@ // The map icons var/icon/map_icon var/icon/meta_icon - + var/list/color_area_names = list() var/minx @@ -33,7 +33,7 @@ meta_icon = new('html/blank.png') map_icon.Scale(x2 - x1 + 1, y2 - y1 + 1) // arrays start at 1 meta_icon.Scale(x2 - x1 + 1, y2 - y1 + 1) - + var/list/area_to_color = list() for(var/turf/T in block(locate(x1, y1, z_level), locate(x2, y2, z_level))) var/area/A = T.loc @@ -44,7 +44,7 @@ crop_x2 = max(crop_x2, T.x) crop_y1 = min(crop_y1, T.y) crop_y2 = max(crop_y2, T.y) - + var/meta_color = area_to_color[A] if(!meta_color) meta_color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) // technically conflicts could happen but it's like very unlikely and it's not that big of a deal if one happens @@ -73,13 +73,15 @@ overlay_icon = new(map_icon) overlay_icon.Scale(16, 16) //we're done baking, now we ship it. - register_asset("minimap-[id].png", map_icon) - register_asset("minimap-[id]-meta.png", meta_icon) + if (!SSassets.cache["minimap-[id].png"]) + SSassets.transport.register_asset("minimap-[id].png", map_icon) + if (!SSassets.cache["minimap-[id]-meta.png"]) + SSassets.transport.register_asset("minimap-[id]-meta.png", meta_icon) /datum/minimap/proc/send(mob/user) if(!id) CRASH("ERROR: send called, but the minimap id is null/missing. ID: [id]") - send_asset_list(user, list("minimap-[id].png" = map_icon, "minimap-[id]-meta.png" = meta_icon)) + SSassets.transport.send_assets(user, list("minimap-[id].png" = map_icon, "minimap-[id]-meta.png" = meta_icon)) /datum/minimap_group var/list/minimaps = list() @@ -100,15 +102,17 @@ var/list/datas = list() var/list/info = list() - + for(var/i in 1 to length(minimaps))// OLD: for(var/i in 1 to length(minimaps)) var/datum/minimap/M = minimaps[i] + var/map_name = "minimap-[M.id].png" + var/meta_name = "minimap-[M.id]-meta.png" M.send(user) info += {"
    - - + +
    @@ -183,6 +187,4 @@ var/datum/browser/popup = new(user, "minimap_[id]", name, 500, 700) popup.add_head_content(headerJS) //set the head popup.set_content(info) - var/datum/minimap/MICO = minimaps[1] - popup.set_title_image(MICO.overlay_icon) popup.open(FALSE) diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 006065d048..b10177ebaf 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -70,7 +70,6 @@ interface with the mining shuttle at the landing site if a mobile beacon is also var/datum/browser/popup = new(user, "computer", "base management", 550, 300) //width, height popup.set_content("
    [dat]
    ") - popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) popup.open() diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index 9ccb7c0efc..b2cd840468 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -12,13 +12,14 @@ slot_flags = ITEM_SLOT_BELT var/cooldown = 35 var/current_cooldown = 0 + var/range = 7 /obj/item/mining_scanner/attack_self(mob/user) if(!user.client) return if(current_cooldown <= world.time) current_cooldown = world.time + cooldown - mineral_scan_pulse(get_turf(user)) + mineral_scan_pulse(get_turf(user), range) //Debug item to identify all ore spread quickly /obj/item/mining_scanner/admin diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index 27259ce812..31ee37c3b0 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -66,6 +66,16 @@ force = 19 custom_materials = list(/datum/material/diamond=4000) +/obj/item/pickaxe/rosegold + name = "rose gold pickaxe" + icon_state = "rgpickaxe" + item_state = "rgpickaxe" + toolspeed = 0.1 + desc = "A pickaxe with a light rose gold head and some red glowing runes. Extremely robust at cracking rock walls and digging up dirt." + force = 19 + custom_materials = list(/datum/material/gold=4000) + digrange = 3 + /obj/item/pickaxe/plasteel name = "plasteel-tipped pickaxe" icon_state = "titaxe" diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index c31008fa62..9c503279d4 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -18,6 +18,15 @@ SSblackbox.record_feedback("tally", "jaunter", 1, "User") // user activated activate(user, TRUE) +/obj/item/wormhole_jaunter/equipped(mob/user, slot) + . = ..() + if(slot == SLOT_BELT) + RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROP, .proc/chasm_react) + +/obj/item/wormhole_jaunter/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_CHASM_DROP) + /obj/item/wormhole_jaunter/proc/turf_check(mob/user) var/turf/device_turf = get_turf(user) if(!device_turf || is_centcom_level(device_turf.z) || is_reserved_level(device_turf.z)) @@ -35,47 +44,44 @@ return destinations -/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent) +/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent, force_entry = FALSE) if(!turf_check(user)) return var/list/L = get_destinations(user) if(!L.len) - to_chat(user, "The [src.name] found no beacons in the world to anchor a wormhole to.") + to_chat(user, "The [name] found no beacons in the world to anchor a wormhole to.") return var/chosen_beacon = pick(L) - var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), src, 100, null, FALSE, get_turf(chosen_beacon)) + var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), 100, null, FALSE, get_turf(chosen_beacon)) if(adjacent) try_move_adjacent(J) + if(force_entry) + J.teleport(user, force = TRUE) playsound(src,'sound/effects/sparks4.ogg',50,1) qdel(src) -/obj/item/wormhole_jaunter/emp_act(power) +/obj/item/wormhole_jaunter/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) return var/mob/M = loc if(istype(M)) - var/triggered = FALSE if(M.get_item_by_slot(SLOT_BELT) == src) - if(power == 1) - triggered = TRUE - else if(power == 2 && prob(50)) - triggered = TRUE + if(prob(severity)) + M.visible_message("[src] overloads and activates!") + SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation + activate(M) - if(triggered) - M.visible_message("[src] overloads and activates!") - SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation - activate(M) - -/obj/item/wormhole_jaunter/proc/chasm_react(mob/user) - if(user.get_item_by_slot(SLOT_BELT) == src) - to_chat(user, "Your [name] activates, saving you from the chasm!
    ") - SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation - activate(user, FALSE) - else - to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.
    ") +/obj/item/wormhole_jaunter/proc/chasm_react(mob/source, datum/component/chasm/C) + to_chat(source, "Your [name] activates, saving you from the chasm!
    ") + SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation + activate(source, FALSE, TRUE) + if(C) + var/atom/A = C.parent + A.visible_message("[source] falls into [A]!") + return TRUE //jaunter tunnel /obj/effect/portal/jaunt_tunnel @@ -84,9 +90,10 @@ icon_state = "bhole3" desc = "A stable hole in the universe made by a wormhole jaunter. Turbulent doesn't even begin to describe how rough passage through one of these is, but at least it will always get you somewhere near a beacon." mech_sized = TRUE //save your ripley + teleport_channel = TELEPORT_CHANNEL_WORMHOLE innate_accuracy_penalty = 6 -/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M) +/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M, force = FALSE) . = ..() if(.) // KERPLUNK diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm index dbe607f42f..2923e8447e 100644 --- a/code/modules/mining/laborcamp/laborshuttle.dm +++ b/code/modules/mining/laborcamp/laborshuttle.dm @@ -6,7 +6,6 @@ possible_destinations = "laborcamp_home;laborcamp_away" req_access = list(ACCESS_BRIG) - /obj/machinery/computer/shuttle/labor/one_way name = "prisoner shuttle console" desc = "A one-way shuttle console, used to summon the shuttle to the labor camp." @@ -14,14 +13,19 @@ circuit = /obj/item/circuitboard/computer/labor_shuttle/one_way req_access = list( ) -/obj/machinery/computer/shuttle/labor/one_way/Topic(href, href_list) - if(href_list["move"]) - var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp") - if(!M) - to_chat(usr, "Cannot locate shuttle!") - return 0 - var/obj/docking_port/stationary/S = M.get_docked() - if(S && S.name == "laborcamp_away") - to_chat(usr, "Shuttle is already at the outpost!") - return 0 - ..() \ No newline at end of file +/obj/machinery/computer/shuttle/labor/one_way/ui_act(action, params) + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return + + switch(action) + if("move") + var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp") + if(!M) + to_chat(usr, "Cannot locate shuttle!") + return + var/obj/docking_port/stationary/S = M.get_docked() + if(S?.name == "laborcamp_away") + to_chat(usr, "Shuttle is already at the outpost!") + return + return ..() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index e03de83e02..a967fea75a 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -7,81 +7,199 @@ icon_state = "necrocrate" resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF +/obj/structure/closet/crate/necropolis/tendril/random + name = "necropolis crate" + desc = "A chest for a chest, a head for a head." + +/obj/structure/closet/crate/necropolis/tendril/random/PopulateContents() + var/loot = rand(1,3) + switch(loot) + if(1) + new /obj/structure/closet/crate/necropolis/tendril/magic(src) + if(2) + new /obj/structure/closet/crate/necropolis/tendril/weapon_armor(src) + if(3) + new /obj/structure/closet/crate/necropolis/tendril/misc(src) + /obj/structure/closet/crate/necropolis/tendril desc = "It's watching you suspiciously." -/obj/structure/closet/crate/necropolis/tendril/PopulateContents() +/obj/structure/closet/crate/necropolis/tendril/magic + name = "relic necropolis chest" + +/obj/structure/closet/crate/necropolis/tendril/weapon_armor + name = "armament necropolis chest" + +/obj/structure/closet/crate/necropolis/tendril/misc + +/obj/structure/closet/crate/necropolis/tendril/all + desc = "It's watching you suspiciously." + +/obj/structure/closet/crate/necropolis/tendril/magic/PopulateContents() + var/loot = rand(1,10) + switch(loot) + if(1) + new /obj/item/soulstone/anybody(src) + if(2) + new /obj/item/rod_of_asclepius(src) + if(3) + new /obj/item/organ/heart/cursed/wizard(src) + if(4) + new /obj/item/book/granter/spell/summonitem(src) + if(5) + new /obj/item/borg/upgrade/modkit/lifesteal(src) + new /obj/item/bedsheet/cult(src) + if(6) + new /obj/item/clothing/neck/necklace/memento_mori(src) + if(7) + new /obj/item/warp_cube/red(src) + if(8) + new /obj/item/immortality_talisman(src) + if(9) + new /obj/item/gun/magic/wand/book/healing(src) + if(10) + new /obj/item/reagent_containers/glass/bottle/ichor/red(src) + new /obj/item/reagent_containers/glass/bottle/ichor/blue(src) + new /obj/item/reagent_containers/glass/bottle/ichor/green(src) + +/obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents() + var/loot = rand(1,11) + switch(loot) + if(1) + new /obj/item/clothing/suit/space/hardsuit/cult(src) + if(2) + new /obj/item/katana/lavaland(src) + if(3) + if(prob(50)) + new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src) + else + new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src) + if(4) + new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src) + if(5) + new /obj/item/nullrod/scythe/talking(src) + if(6) + new /obj/item/nullrod/armblade(src) + if(7) + new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) + new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) + if(8) + new /obj/item/grenade/clusterbuster/inferno(src) + if(9) + new /obj/item/gun/magic/wand/book/shock(src) + if(10) + new /obj/item/gun/magic/wand/book/page(src) + if(11) + new /obj/item/gun/magic/wand/book/spark(src) + +/obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents() + var/loot = rand(1,14) + switch(loot) + if(1) + new /obj/item/shared_storage/red(src) + if(2) + new /obj/item/reagent_containers/glass/bottle/potion/flight(src) + if(3) + new /obj/item/ship_in_a_bottle(src) + if(4) + new /obj/item/voodoo(src) + if(5) + new /obj/item/book_of_babel(src) + if(6) + new /obj/item/jacobs_ladder(src) + if(7) + if(prob(50)) + new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src) + else + new /obj/item/disk/design_disk/modkit_disc/bounty(src) + if(8) + new /obj/item/wisp_lantern(src) + if(9) + new /obj/item/pickaxe/rosegold(src) + if(10) + new /obj/item/bedsheet/cosmos(src) + new /obj/item/melee/skateboard/hoverboard(src) + if(11) + new /obj/item/disk/tech_disk/illegal(src) + if(12) + new /obj/item/clothing/suit/space/hardsuit/cult(src) + if(13) + new /obj/item/katana/lavaland(src) + if(14) + if(prob(50)) + new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src) + else + new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src) + +/obj/structure/closet/crate/necropolis/tendril/all/PopulateContents() var/loot = rand(1,29) switch(loot) if(1) new /obj/item/shared_storage/red(src) if(2) - new /obj/item/clothing/suit/space/hardsuit/cult(src) - if(3) - new /obj/item/soulstone/anybody(src) - if(4) - new /obj/item/katana/cursed(src) - if(5) - new /obj/item/clothing/glasses/godeye(src) - if(6) new /obj/item/reagent_containers/glass/bottle/potion/flight(src) - if(7) - new /obj/item/pickaxe/diamond(src) - if(8) - if(prob(50)) - new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src) - else - new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src) - if(9) - new /obj/item/rod_of_asclepius(src) - if(10) - new /obj/item/organ/heart/cursed/wizard(src) - if(11) + if(3) new /obj/item/ship_in_a_bottle(src) - if(12) - new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src) - if(13) + if(4) + new /obj/item/voodoo(src) + if(5) + new /obj/item/book_of_babel(src) + if(6) new /obj/item/jacobs_ladder(src) - if(14) - new /obj/item/nullrod/scythe/talking(src) - if(15) - new /obj/item/nullrod/armblade(src) - if(16) - new /obj/item/guardiancreator(src) - if(17) + if(7) if(prob(50)) new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src) else new /obj/item/disk/design_disk/modkit_disc/bounty(src) - if(18) - new /obj/item/warp_cube/red(src) - if(19) + if(8) new /obj/item/wisp_lantern(src) - if(20) - new /obj/item/immortality_talisman(src) - if(21) - new /obj/item/gun/magic/hook(src) - if(22) - new /obj/item/voodoo(src) - if(23) - new /obj/item/grenade/clusterbuster/inferno(src) - if(24) + if(9) + new /obj/item/pickaxe/rosegold(src) + if(10) + new /obj/item/bedsheet/cosmos(src) + new /obj/item/melee/skateboard/hoverboard(src) + if(11) + new /obj/item/disk/tech_disk/illegal(src) + if(12) + new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src) + if(13) + new /obj/item/nullrod/scythe/talking(src) + if(14) + new /obj/item/nullrod/armblade(src) + if(15) new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) - if(25) + if(16) + new /obj/item/grenade/clusterbuster/inferno(src) + if(17) + new /obj/item/gun/magic/wand/book/shock(src) + if(18) + new /obj/item/gun/magic/wand/book/page(src) + if(19) + new /obj/item/gun/magic/wand/book/spark(src) + if(20) + new /obj/item/soulstone/anybody(src) + if(21) + new /obj/item/rod_of_asclepius(src) + if(22) + new /obj/item/organ/heart/cursed/wizard(src) + if(23) new /obj/item/book/granter/spell/summonitem(src) - if(26) - new /obj/item/book_of_babel(src) - if(27) + if(24) new /obj/item/borg/upgrade/modkit/lifesteal(src) new /obj/item/bedsheet/cult(src) - if(28) + if(25) new /obj/item/clothing/neck/necklace/memento_mori(src) + if(26) + new /obj/item/warp_cube/red(src) + if(27) + new /obj/item/immortality_talisman(src) + if(28) + new /obj/item/gun/magic/wand/book/healing(src) if(29) - if(prob(50)) - new /obj/item/malf_upgrade(src) - else - new /obj/item/disk/tech_disk/illegal(src) + new /obj/item/reagent_containers/glass/bottle/ichor/red(src) + new /obj/item/reagent_containers/glass/bottle/ichor/blue(src) + new /obj/item/reagent_containers/glass/bottle/ichor/green(src) //KA modkit design discs /obj/item/disk/design_disk/modkit_disc @@ -747,7 +865,7 @@ new /obj/item/lava_staff(src) if(3) new /obj/item/book/granter/spell/sacredflame(src) - new /obj/item/gun/magic/wand/fireball(src) + new /obj/item/gun/magic/hook(src) if(4) new /obj/item/dragons_blood(src) @@ -868,7 +986,8 @@ if(1) to_chat(user, "Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.") H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade") - H.eye_color = "fee5a3" + H.left_eye_color = "fee5a3" + H.right_eye_color = "fee5a3" H.set_species(/datum/species/lizard) if(2) to_chat(user, "Your flesh begins to melt! Miraculously, you seem fine otherwise.") @@ -986,7 +1105,7 @@ if(2) new /obj/item/gun/ballistic/revolver/doublebarrel/super(src) if(3) - new /obj/item/gun/magic/staff/spellblade(src) + new /obj/item/guardiancreator(src) /obj/structure/closet/crate/necropolis/bubblegum/crusher name = "bloody bubblegum chest" @@ -1075,6 +1194,7 @@ var/random_crystal = pick(choices) new random_crystal(src) new /obj/item/organ/vocal_cords/colossus(src) + new /obj/item/clothing/glasses/godeye(src) /obj/structure/closet/crate/necropolis/colossus/crusher name = "angelic colossus chest" diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 143aba3fe4..cae9f5b742 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -76,7 +76,7 @@ circuit = /obj/item/circuitboard/computer/mining_shuttle shuttleId = "mining" possible_destinations = "mining_home;mining_away;landing_zone_dock;mining_public" - no_destination_swap = 1 + no_destination_swap = TRUE var/static/list/dumb_rev_heads = list() /obj/machinery/computer/shuttle/mining/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index bd3a3d304a..87f9d716bd 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -17,7 +17,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) prepare_huds() if(length(CONFIG_GET(keyed_list/cross_server))) - verbs += /mob/dead/proc/server_hop + add_verb(src, /mob/dead/proc/server_hop) set_focus(src) return INITIALIZE_HINT_NORMAL @@ -42,27 +42,25 @@ INITIALIZE_IMMEDIATE(/mob/dead) loc = destination Moved(oldloc, NONE, TRUE) -/mob/dead/Stat() - ..() - - if(!statpanel("Status")) - return - //stat(null, "Game Mode: [SSticker.hide_mode ? "Secret" : "[GLOB.master_mode]"]") +/mob/dead/get_status_tab_items() + . = ..() + . += "" + //. += "Game Mode: [SSticker.hide_mode ? "Secret" : "[GLOB.master_mode]"]" if(SSticker.HasRoundStarted()) return var/time_remaining = SSticker.GetTimeLeft() if(time_remaining > 0) - stat(null, "Time To Start: [round(time_remaining/10)]s") + . += "Time To Start: [round(time_remaining/10)]s" else if(time_remaining == -10) - stat(null, "Time To Start: DELAYED") + . += "Time To Start: DELAYED" else - stat(null, "Time To Start: SOON") + . += "Time To Start: SOON" - stat(null, "Players: [SSticker.totalPlayers]") + . += "Players: [SSticker.totalPlayers]" if(client.holder) - stat(null, "Players Ready: [SSticker.totalPlayersReady]") + . += "Players Ready: [SSticker.totalPlayersReady]" /mob/dead/proc/server_hop() set category = "OOC" @@ -74,7 +72,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) var/pick switch(csa.len) if(0) - verbs -= /mob/dead/proc/server_hop + remove_verb(src, /mob/dead/proc/server_hop) to_chat(src, "Server Hop has been disabled.") if(1) pick = csa[0] diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 768c4c943e..1fdf3102a9 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -295,6 +295,7 @@ if(observer.client && observer.client.prefs) observer.real_name = observer.client.prefs.real_name observer.name = observer.real_name + observer.client.init_verbs() observer.update_icon() observer.stop_sound_channel(CHANNEL_LOBBYMUSIC) QDEL_NULL(mind) @@ -392,7 +393,7 @@ job.standard_assign_skills(character.mind) SSticker.minds += character.mind - + character.client.init_verbs() // init verbs for the late join var/mob/living/carbon/human/humanc if(ishuman(character)) humanc = character //Let's retypecast the var to be human, @@ -414,6 +415,8 @@ give_magic(humanc) if(GLOB.curse_of_madness_triggered) give_madness(humanc, GLOB.curse_of_madness_triggered) + if(humanc.client) + humanc.client.prefs.post_copy_to(humanc) GLOB.joined_player_list += character.ckey GLOB.latejoiners += character @@ -567,7 +570,7 @@ client.prefs.scars_list["[cur_scar_index]"] = valid_scars client.prefs.save_character() - client.prefs.copy_to(H) + client.prefs.copy_to(H, initial_spawn = TRUE) H.dna.update_dna_identity() if(mind) if(transfer_after) @@ -577,7 +580,7 @@ mind.original_character = H H.name = real_name - + client.init_verbs() . = H new_character = . if(transfer_after) diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm index b6d9a3d476..84f5e97a3b 100644 --- a/code/modules/mob/dead/new_player/poll.dm +++ b/code/modules/mob/dead/new_player/poll.dm @@ -229,7 +229,7 @@ src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x250") if(POLLTYPE_IRV) - var/datum/asset/irv_assets = get_asset_datum(/datum/asset/group/IRV) + var/datum/asset/irv_assets = get_asset_datum(/datum/asset/group/irv) irv_assets.send(src) var/datum/DBQuery/query_irv_get_votes = SSdbcore.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index abce0954a4..2e1ffe718f 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -17,7 +17,9 @@ facial_hair_style = random_facial_hair_style(gender) hair_color = random_short_color() facial_hair_color = hair_color - eye_color = random_eye_color() + var/random_eye_color = random_eye_color() + left_eye_color = random_eye_color + right_eye_color = random_eye_color if(!pref_species) var/rando_race = pick(GLOB.roundstart_races) pref_species = new rando_race() @@ -42,7 +44,7 @@ var/mob/living/carbon/human/dummy/mannequin = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES) // Apply the Dummy's preview background first so we properly layer everything else on top of it. mannequin.add_overlay(mutable_appearance('modular_citadel/icons/ui/backgrounds.dmi', bgstate, layer = SPACE_LAYER)) - copy_to(mannequin) + copy_to(mannequin, initial_spawn = TRUE) if(current_tab == 3) //give it its loadout if not on the appearance tab diff --git a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm index 899bf91081..4faef230df 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm @@ -14,14 +14,14 @@ name = "Standard" icon_state = "standard" -/datum/sprite_accessory/xeno_dorsal/royal - name = "Royal" - icon_state = "royal" - /datum/sprite_accessory/xeno_dorsal/down name = "Dorsal Down" icon_state = "down" +/datum/sprite_accessory/xeno_dorsal/royal + name = "Royal" + icon_state = "royal" + /****************************************** ************* Xeno Tails ****************** *******************************************/ @@ -51,20 +51,20 @@ /datum/sprite_accessory/xeno_head/is_not_visible(var/mob/living/carbon/human/H, var/tauric) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - return (!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) + return (!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)) /datum/sprite_accessory/xeno_head/standard name = "Standard" icon_state = "standard" -/datum/sprite_accessory/xeno_head/royal - name = "royal" - icon_state = "royal" - /datum/sprite_accessory/xeno_head/hollywood name = "hollywood" icon_state = "hollywood" +/datum/sprite_accessory/xeno_head/royal + name = "royal" + icon_state = "royal" + /datum/sprite_accessory/xeno_head/warrior name = "warrior" icon_state = "warrior" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm index a04838a360..5286acb33a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm @@ -16,6 +16,12 @@ icon_state = "dtiger" gender_specific = 1 +/datum/sprite_accessory/body_markings/guilmon + name = "Guilmon" + icon_state = "guilmon" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' + /datum/sprite_accessory/body_markings/ltiger name = "Light Tiger Body" icon_state = "ltiger" @@ -49,11 +55,6 @@ icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' relevant_layers = null -/datum/sprite_accessory/mam_body_markings/plain - name = "Plain" - icon_state = "plain" - icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' - /datum/sprite_accessory/mam_body_markings/redpanda name = "Redpanda" icon_state = "redpanda" @@ -77,14 +78,14 @@ icon_state = "bellyslim" icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' -/datum/sprite_accessory/mam_body_markings/corgi - name = "Corgi" - icon_state = "corgi" - /datum/sprite_accessory/mam_body_markings/cow name = "Bovine" icon_state = "bovine" +/datum/sprite_accessory/mam_body_markings/corgi + name = "Corgi" + icon_state = "corgi" + /datum/sprite_accessory/mam_body_markings/corvid name = "Corvid" icon_state = "corvid" @@ -139,15 +140,19 @@ name = "Hyena" icon_state = "hyena" -/datum/sprite_accessory/mam_body_markings/lab - name = "Lab" - icon_state = "lab" - /datum/sprite_accessory/mam_body_markings/insect name = "Insect" icon_state = "insect" icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' +/datum/sprite_accessory/mam_body_markings/lab + name = "Lab" + icon_state = "lab" + +/datum/sprite_accessory/mam_body_markings/orca + name = "Orca" + icon_state = "orca" + /datum/sprite_accessory/mam_body_markings/otie name = "Otie" icon_state = "otie" @@ -156,14 +161,15 @@ name = "Otter" icon_state = "otter" -/datum/sprite_accessory/mam_body_markings/orca - name = "Orca" - icon_state = "orca" - /datum/sprite_accessory/mam_body_markings/panther name = "Panther" icon_state = "panther" +/datum/sprite_accessory/mam_body_markings/plain + name = "Plain" + icon_state = "plain" + icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' + /datum/sprite_accessory/mam_body_markings/possum name = "Possum" icon_state = "possum" @@ -172,6 +178,10 @@ name = "Raccoon" icon_state = "raccoon" +/datum/sprite_accessory/mam_body_markings/sergal + name = "Sergal" + icon_state = "sergal" + /datum/sprite_accessory/mam_body_markings/pede name = "Scolipede" icon_state = "scolipede" @@ -181,18 +191,14 @@ name = "Shark" icon_state = "shark" -/datum/sprite_accessory/mam_body_markings/skunk - name = "Skunk" - icon_state = "skunk" - -/datum/sprite_accessory/mam_body_markings/sergal - name = "Sergal" - icon_state = "sergal" - /datum/sprite_accessory/mam_body_markings/shepherd name = "Shepherd" icon_state = "shepherd" +/datum/sprite_accessory/mam_body_markings/skunk + name = "Skunk" + icon_state = "skunk" + /datum/sprite_accessory/mam_body_markings/tajaran name = "Tajaran" icon_state = "tajaran" @@ -232,75 +238,10 @@ icon_state = "none" relevant_layers = null -/datum/sprite_accessory/insect_fluff/plain - name = "Plain" - icon_state = "plain" - -/datum/sprite_accessory/insect_fluff/reddish - name = "Reddish" - icon_state = "redish" - -/datum/sprite_accessory/insect_fluff/royal - name = "Royal" - icon_state = "royal" - -/datum/sprite_accessory/insect_fluff/gothic - name = "Gothic" - icon_state = "gothic" - -/datum/sprite_accessory/insect_fluff/lovers - name = "Lovers" - icon_state = "lovers" - -/datum/sprite_accessory/insect_fluff/whitefly - name = "White Fly" - icon_state = "whitefly" - /datum/sprite_accessory/insect_fluff/punished name = "Burnt Off" icon_state = "punished" -/datum/sprite_accessory/insect_fluff/firewatch - name = "Firewatch" - icon_state = "firewatch" - -/datum/sprite_accessory/insect_fluff/deathhead - name = "Deathshead" - icon_state = "deathhead" - -/datum/sprite_accessory/insect_fluff/poison - name = "Poison" - icon_state = "poison" - -/datum/sprite_accessory/insect_fluff/ragged - name = "Ragged" - icon_state = "ragged" - -/datum/sprite_accessory/insect_fluff/moonfly - name = "Moon Fly" - icon_state = "moonfly" - -/datum/sprite_accessory/insect_fluff/snow - name = "Snow" - icon_state = "snow" - -/datum/sprite_accessory/insect_fluff/oakworm - name = "Oak Worm" - icon_state = "oakworm" - -/datum/sprite_accessory/insect_fluff/jungle - name = "Jungle" - icon_state = "jungle" - -/datum/sprite_accessory/insect_fluff/witchwing - name = "Witch Wing" - icon_state = "witchwing" - -/datum/sprite_accessory/insect_fluff/colored - name = "Colored (Hair)" - icon_state = "snow" - color_src = HAIR - /datum/sprite_accessory/insect_fluff/colored1 name = "Colored (Primary)" icon_state = "snow" @@ -314,4 +255,69 @@ /datum/sprite_accessory/insect_fluff/colored3 name = "Colored (Tertiary)" icon_state = "snow" - color_src = MUTCOLORS3 \ No newline at end of file + color_src = MUTCOLORS3 + +/datum/sprite_accessory/insect_fluff/colored + name = "Colored (Hair)" + icon_state = "snow" + color_src = HAIR + +/datum/sprite_accessory/insect_fluff/deathhead + name = "Deathshead" + icon_state = "deathhead" + +/datum/sprite_accessory/insect_fluff/firewatch + name = "Firewatch" + icon_state = "firewatch" + +/datum/sprite_accessory/insect_fluff/gothic + name = "Gothic" + icon_state = "gothic" + +/datum/sprite_accessory/insect_fluff/jungle + name = "Jungle" + icon_state = "jungle" + +/datum/sprite_accessory/insect_fluff/lovers + name = "Lovers" + icon_state = "lovers" + +/datum/sprite_accessory/insect_fluff/moonfly + name = "Moon Fly" + icon_state = "moonfly" + +/datum/sprite_accessory/insect_fluff/oakworm + name = "Oak Worm" + icon_state = "oakworm" + +/datum/sprite_accessory/insect_fluff/plain + name = "Plain" + icon_state = "plain" + +/datum/sprite_accessory/insect_fluff/poison + name = "Poison" + icon_state = "poison" + +/datum/sprite_accessory/insect_fluff/ragged + name = "Ragged" + icon_state = "ragged" + +/datum/sprite_accessory/insect_fluff/reddish + name = "Reddish" + icon_state = "redish" + +/datum/sprite_accessory/insect_fluff/royal + name = "Royal" + icon_state = "royal" + +/datum/sprite_accessory/insect_fluff/snow + name = "Snow" + icon_state = "snow" + +/datum/sprite_accessory/insect_fluff/whitefly + name = "White Fly" + icon_state = "whitefly" + +/datum/sprite_accessory/insect_fluff/witchwing + name = "Witch Wing" + icon_state = "witchwing" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index 1e6c797364..1d9138465f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -5,7 +5,7 @@ /datum/sprite_accessory/ears/is_not_visible(var/mob/living/carbon/human/H, var/tauric) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - return (!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC) + return (!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)) /datum/sprite_accessory/ears/none name = "None" @@ -41,7 +41,7 @@ extra = TRUE extra_color_src = NONE -/datum/sprite_accessory/ears/human/bigwolfdark +/datum/sprite_accessory/ears/human/bigwolfdark //ignore alphabetical sort here for ease-of-use name = "Dark Big Wolf" icon_state = "bigwolfdark" icon = 'modular_citadel/icons/mob/mam_ears.dmi' @@ -55,6 +55,12 @@ extra = TRUE extra_color_src = NONE +/datum/sprite_accessory/ears/bunny + name = "Bunny" + icon_state = "bunny" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + /datum/sprite_accessory/ears/cat name = "Cat" icon_state = "cat" @@ -74,6 +80,12 @@ icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MUTCOLORS3 +/datum/sprite_accessory/ears/lab + name = "Dog, Floppy" + icon_state = "lab" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + /datum/sprite_accessory/ears/human/eevee name = "Eevee" icon_state = "eevee" @@ -115,12 +127,6 @@ icon_state = "jellyfish" color_src = HAIR -/datum/sprite_accessory/ears/lab - name = "Dog, Floppy" - icon_state = "lab" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_ears.dmi' - /datum/sprite_accessory/ears/murid name = "Murid" icon_state = "murid" @@ -133,18 +139,18 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_ears.dmi' -/datum/sprite_accessory/ears/human/pede - name = "Scolipede" - icon_state = "pede" - icon = 'modular_citadel/icons/mob/mam_ears.dmi' - color_src = MATRIXED - /datum/sprite_accessory/ears/human/rabbit name = "Rabbit" icon_state = "rabbit" color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_ears.dmi' +/datum/sprite_accessory/ears/human/pede + name = "Scolipede" + icon_state = "pede" + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + color_src = MATRIXED + /datum/sprite_accessory/ears/human/sergal name = "Sergal" icon_state = "sergal" @@ -169,12 +175,6 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_ears.dmi' -/datum/sprite_accessory/ears/bunny - name = "Bunny" - icon_state = "bunny" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_ears.dmi' - /****************************************** *************** Furry Ears **************** *******************************************/ @@ -187,7 +187,7 @@ /datum/sprite_accessory/ears/mam_ears/is_not_visible(var/mob/living/carbon/human/H, var/tauric) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - return (!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC) + return (!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)) /datum/sprite_accessory/ears/mam_ears/none name = "None" @@ -216,7 +216,7 @@ extra = TRUE extra_color_src = NONE -/datum/sprite_accessory/ears/mam_ears/bigwolfdark +/datum/sprite_accessory/ears/mam_ears/bigwolfdark //alphabetical sort ignored here for ease-of-use name = "Dark Big Wolf" icon_state = "bigwolfdark" @@ -226,6 +226,10 @@ extra = TRUE extra_color_src = NONE +/datum/sprite_accessory/ears/mam_ears/bunny + name = "Bunny" + icon_state = "bunny" + /datum/sprite_accessory/ears/mam_ears/cat name = "Cat" icon_state = "cat" @@ -256,13 +260,11 @@ name = "Eevee" icon_state = "eevee" - /datum/sprite_accessory/ears/mam_ears/elf name = "Elf" icon_state = "elf" color_src = MUTCOLORS3 - /datum/sprite_accessory/ears/mam_ears/elephant name = "Elephant" icon_state = "elephant" @@ -283,15 +285,15 @@ name = "Husky" icon_state = "wolf" -/datum/sprite_accessory/ears/mam_ears/kangaroo - name = "kangaroo" - icon_state = "kangaroo" - /datum/sprite_accessory/ears/mam_ears/jellyfish name = "Jellyfish" icon_state = "jellyfish" color_src = HAIR +/datum/sprite_accessory/ears/mam_ears/kangaroo + name = "kangaroo" + icon_state = "kangaroo" + /datum/sprite_accessory/ears/mam_ears/lab name = "Dog, Long" icon_state = "lab" @@ -304,18 +306,14 @@ name = "Otusian" icon_state = "otie" -/datum/sprite_accessory/ears/mam_ears/squirrel - name = "Squirrel" - icon_state = "squirrel" +/datum/sprite_accessory/ears/mam_ears/rabbit + name = "Rabbit" + icon_state = "rabbit" /datum/sprite_accessory/ears/mam_ears/pede name = "Scolipede" icon_state = "pede" -/datum/sprite_accessory/ears/mam_ears/rabbit - name = "Rabbit" - icon_state = "rabbit" - /datum/sprite_accessory/ears/mam_ears/sergal name = "Sergal" icon_state = "sergal" @@ -324,10 +322,10 @@ name = "skunk" icon_state = "skunk" +/datum/sprite_accessory/ears/mam_ears/squirrel + name = "Squirrel" + icon_state = "squirrel" + /datum/sprite_accessory/ears/mam_ears/wolf name = "Wolf" icon_state = "wolf" - -/datum/sprite_accessory/ears/mam_ears/bunny - name = "Bunny" - icon_state = "bunny" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm index 18a76df116..49013161a9 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm @@ -11,6 +11,10 @@ icon_state = "none" relevant_layers = null +/datum/sprite_accessory/frills/aquatic + name = "Aquatic" + icon_state = "aqua" + /datum/sprite_accessory/frills/simple name = "Simple" icon_state = "simple" @@ -18,7 +22,3 @@ /datum/sprite_accessory/frills/short name = "Short" icon_state = "short" - -/datum/sprite_accessory/frills/aquatic - name = "Aquatic" - icon_state = "aqua" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm index 34988f5656..a07fdaa5d3 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm @@ -6,6 +6,10 @@ gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P) // please make sure they're sorted alphabetically and categorized +/datum/sprite_accessory/facial_hair/shaved //this is exempt from the alphabetical sort + name = "Shaved" + icon_state = null + gender = NEUTER /datum/sprite_accessory/facial_hair/threeoclock name = "Beard (3 o\'Clock)" @@ -135,11 +139,6 @@ name = "Mutton Chops with Moustache" icon_state = "facial_muttonmus" -/datum/sprite_accessory/facial_hair/shaved - name = "Shaved" - icon_state = null - gender = NEUTER - /datum/sprite_accessory/facial_hair/sideburn name = "Sideburns" icon_state = "facial_sideburns" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index 138704067d..8e4e6ad617 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -9,6 +9,10 @@ // try to spell // you do not need to define _s or _l sub-states, game automatically does this for you +/datum/sprite_accessory/hair/bald //this is exempt from the alphabetical sort + name = "Bald" + icon_state = "bald" + /datum/sprite_accessory/hair/afro name = "Afro" icon_state = "hair_afro" @@ -25,10 +29,6 @@ name = "Ahoge" icon_state = "hair_antenna" -/datum/sprite_accessory/hair/bald - name = "Bald" - icon_state = "bald" - /datum/sprite_accessory/hair/balding name = "Balding Hair" icon_state = "hair_e" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm index 3a65eaebfa..accbc4ee36 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm @@ -5,29 +5,17 @@ /datum/sprite_accessory/horns/is_not_visible(var/mob/living/carbon/human/H, var/tauric) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - return (!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) + return (!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)) /datum/sprite_accessory/horns/none name = "None" icon_state = "none" relevant_layers = null -/datum/sprite_accessory/horns/simple - name = "Simple" - icon_state = "simple" - -/datum/sprite_accessory/horns/short - name = "Short" - icon_state = "short" - /datum/sprite_accessory/horns/curled name = "Curled" icon_state = "curled" -/datum/sprite_accessory/horns/ram - name = "Ram" - icon_state = "ram" - /datum/sprite_accessory/horns/angler name = "Angeler" icon_state = "angler" @@ -40,3 +28,15 @@ /datum/sprite_accessory/horns/guilmon name = "Guilmon" icon_state = "guilmon" + +/datum/sprite_accessory/horns/ram + name = "Ram" + icon_state = "ram" + +/datum/sprite_accessory/horns/simple + name = "Simple" + icon_state = "simple" + +/datum/sprite_accessory/horns/short + name = "Short" + icon_state = "short" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm index 110ac69201..6019245b80 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm @@ -11,96 +11,90 @@ name = "Blank" icon_state = "blank" -/datum/sprite_accessory/screen/pink - name = "Pink" - icon_state = "pink" - -/datum/sprite_accessory/screen/green - name = "Green" - icon_state = "green" - -/datum/sprite_accessory/screen/red - name = "Red" - icon_state = "red" - /datum/sprite_accessory/screen/blue name = "Blue" icon_state = "blue" -/datum/sprite_accessory/screen/yellow - name = "Yellow" - icon_state = "yellow" - -/datum/sprite_accessory/screen/shower - name = "Shower" - icon_state = "shower" - -/datum/sprite_accessory/screen/nature - name = "Nature" - icon_state = "nature" - -/datum/sprite_accessory/screen/eight - name = "Eight" - icon_state = "eight" - -/datum/sprite_accessory/screen/goggles - name = "Goggles" - icon_state = "goggles" - -/datum/sprite_accessory/screen/heart - name = "Heart" - icon_state = "heart" - -/datum/sprite_accessory/screen/monoeye - name = "Mono eye" - icon_state = "monoeye" - /datum/sprite_accessory/screen/breakout name = "Breakout" icon_state = "breakout" -/datum/sprite_accessory/screen/purple - name = "Purple" - icon_state = "purple" - -/datum/sprite_accessory/screen/scroll - name = "Scroll" - icon_state = "scroll" +/datum/sprite_accessory/screen/bsod + name = "BSOD" + icon_state = "bsod" /datum/sprite_accessory/screen/console name = "Console" icon_state = "console" -/datum/sprite_accessory/screen/rgb - name = "RGB" - icon_state = "rgb" +/datum/sprite_accessory/screen/eight + name = "Eight" + icon_state = "eight" + +/datum/sprite_accessory/screen/eyes + name = "Eyes" + icon_state = "eyes" + +/datum/sprite_accessory/screen/ecgwave + name = "ECG wave" + icon_state = "ecgwave" + +/datum/sprite_accessory/screen/green + name = "Green" + icon_state = "green" + +/datum/sprite_accessory/screen/goggles + name = "Goggles" + icon_state = "goggles" /datum/sprite_accessory/screen/golglider name = "Gol Glider" icon_state = "golglider" +/datum/sprite_accessory/screen/heart + name = "Heart" + icon_state = "heart" + +/datum/sprite_accessory/screen/pink + name = "Pink" + icon_state = "pink" + +/datum/sprite_accessory/screen/red + name = "Red" + icon_state = "red" + +/datum/sprite_accessory/screen/monoeye + name = "Mono eye" + icon_state = "monoeye" + +/datum/sprite_accessory/screen/nature + name = "Nature" + icon_state = "nature" + +/datum/sprite_accessory/screen/purple + name = "Purple" + icon_state = "purple" + /datum/sprite_accessory/screen/rainbow name = "Rainbow" icon_state = "rainbow" -/datum/sprite_accessory/screen/sunburst - name = "Sunburst" - icon_state = "sunburst" - -/datum/sprite_accessory/screen/static - name = "Static" - icon_state = "static" - -//Oracle Station sprites - -/datum/sprite_accessory/screen/bsod - name = "BSOD" - icon_state = "bsod" - /datum/sprite_accessory/screen/redtext name = "Red Text" icon_state = "retext" +/datum/sprite_accessory/screen/rgb + name = "RGB" + icon_state = "rgb" + +/datum/sprite_accessory/screen/scroll + name = "Scroll" + icon_state = "scroll" + +/datum/sprite_accessory/screen/shower + name = "Shower" + icon_state = "shower" + /datum/sprite_accessory/screen/sinewave name = "Sine wave" icon_state = "sinewave" @@ -109,22 +103,25 @@ name = "Square wave" icon_state = "squarwave" -/datum/sprite_accessory/screen/ecgwave - name = "ECG wave" - icon_state = "ecgwave" +/datum/sprite_accessory/screen/stars + name = "Stars" + icon_state = "stars" -/datum/sprite_accessory/screen/eyes - name = "Eyes" - icon_state = "eyes" +/datum/sprite_accessory/screen/static + name = "Static" + icon_state = "static" + +/datum/sprite_accessory/screen/sunburst + name = "Sunburst" + icon_state = "sunburst" /datum/sprite_accessory/screen/textdrop name = "Text drop" icon_state = "textdrop" -/datum/sprite_accessory/screen/stars - name = "Stars" - icon_state = "stars" - +/datum/sprite_accessory/screen/yellow + name = "Yellow" + icon_state = "yellow" /****************************************** ************** IPC Antennas *************** @@ -145,14 +142,6 @@ name = "Angled Antennae" icon_state = "antennae" -/datum/sprite_accessory/antenna/tvantennae - name = "TV Antennae" - icon_state = "tvantennae" - -/datum/sprite_accessory/antenna/cyberhead - name = "Cyberhead" - icon_state = "cyberhead" - /datum/sprite_accessory/antenna/antlers name = "Antlers" icon_state = "antlers" @@ -160,3 +149,11 @@ /datum/sprite_accessory/antenna/crowned name = "Crowned" icon_state = "crowned" + +/datum/sprite_accessory/antenna/cyberhead + name = "Cyberhead" + icon_state = "cyberhead" + +/datum/sprite_accessory/antenna/tvantennae + name = "TV Antennae" + icon_state = "tvantennae" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index d41f5ace22..6f7b955d8f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -49,6 +49,13 @@ relevant_layers = null hide_legs = FALSE +/datum/sprite_accessory/taur/canine + name = "Canine" + icon_state = "canine" + taur_mode = STYLE_PAW_TAURIC + color_src = MUTCOLORS + extra = TRUE + /datum/sprite_accessory/taur/cow name = "Cow" icon_state = "cow" @@ -95,6 +102,13 @@ color_src = MUTCOLORS extra = TRUE +/datum/sprite_accessory/taur/feline + name = "Feline" + icon_state = "feline" + taur_mode = STYLE_PAW_TAURIC + color_src = MUTCOLORS + extra = TRUE + /datum/sprite_accessory/taur/horse name = "Horse" icon_state = "horse" @@ -126,17 +140,3 @@ taur_mode = STYLE_SNEK_TAURIC color_src = MUTCOLORS hide_legs = USE_SNEK_CLIP_MASK - -/datum/sprite_accessory/taur/canine - name = "Canine" - icon_state = "canine" - taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE - -/datum/sprite_accessory/taur/feline - name = "Feline" - icon_state = "feline" - taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm index f514ef54db..0cd7d301db 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm @@ -5,16 +5,21 @@ /datum/sprite_accessory/snouts/is_not_visible(var/mob/living/carbon/human/H, var/tauric) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC) + return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)) -/datum/sprite_accessory/snouts/sharp - name = "Sharp" - icon_state = "sharp" +/datum/sprite_accessory/snout/guilmon + name = "Guilmon" + icon_state = "guilmon" + color_src = MATRIXED /datum/sprite_accessory/snouts/round name = "Round" icon_state = "round" +/datum/sprite_accessory/snouts/sharp + name = "Sharp" + icon_state = "sharp" + /datum/sprite_accessory/snouts/sharplight name = "Sharp + Light" icon_state = "sharplight" @@ -23,11 +28,6 @@ name = "Round + Light" icon_state = "roundlight" -/datum/sprite_accessory/snout/guilmon - name = "Guilmon" - icon_state = "guilmon" - color_src = MATRIXED - //christ this was a mistake, but it's here just in case someone wants to selectively fix -- Pooj /************* Lizard compatable snoots *********** /datum/sprite_accessory/snouts/bird @@ -163,7 +163,7 @@ /datum/sprite_accessory/snouts/mam_snouts/is_not_visible(var/mob/living/carbon/human/H, var/tauric) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC) + return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)) /datum/sprite_accessory/snouts/mam_snouts/none name = "None" @@ -192,11 +192,19 @@ extra = TRUE extra_color_src = MUTCOLORS3 -/datum/sprite_accessory/snouts/mam_snouts/skulldog - name = "Skulldog" - icon_state = "skulldog" +/datum/sprite_accessory/snouts/mam_snouts/husky + name = "Husky" + icon_state = "husky" + +/datum/sprite_accessory/snouts/mam_snouts/rhino + name = "Horn" + icon_state = "rhino" extra = TRUE - extra_color_src = MATRIXED + extra = MUTCOLORS3 + +/datum/sprite_accessory/snouts/mam_snouts/rodent + name = "Rodent" + icon_state = "rodent" /datum/sprite_accessory/snouts/mam_snouts/lcanid name = "Mammal, Long" @@ -226,32 +234,20 @@ name = "Mammal, Thick ALT" icon_state = "wolfalt" -/datum/sprite_accessory/snouts/mam_snouts/redpanda - name = "WahCoon" - icon_state = "wah" - -/datum/sprite_accessory/snouts/mam_snouts/redpandaalt - name = "WahCoon ALT" - icon_state = "wahalt" - -/datum/sprite_accessory/snouts/mam_snouts/rhino - name = "Horn" - icon_state = "rhino" - extra = TRUE - extra = MUTCOLORS3 - -/datum/sprite_accessory/snouts/mam_snouts/rodent - name = "Rodent" - icon_state = "rodent" - -/datum/sprite_accessory/snouts/mam_snouts/husky - name = "Husky" - icon_state = "husky" - /datum/sprite_accessory/snouts/mam_snouts/otie name = "Otie" icon_state = "otie" +/datum/sprite_accessory/snouts/mam_snouts/round + name = "Round" + icon_state = "round" + color_src = MUTCOLORS + +/datum/sprite_accessory/snouts/mam_snouts/roundlight + name = "Round + Light" + icon_state = "roundlight" + color_src = MUTCOLORS + /datum/sprite_accessory/snouts/mam_snouts/pede name = "Scolipede" icon_state = "pede" @@ -268,30 +264,33 @@ name = "hShark" icon_state = "hshark" -/datum/sprite_accessory/snouts/mam_snouts/toucan - name = "Toucan" - icon_state = "toucan" - /datum/sprite_accessory/snouts/mam_snouts/sharp name = "Sharp" icon_state = "sharp" color_src = MUTCOLORS -/datum/sprite_accessory/snouts/mam_snouts/round - name = "Round" - icon_state = "round" - color_src = MUTCOLORS - /datum/sprite_accessory/snouts/mam_snouts/sharplight name = "Sharp + Light" icon_state = "sharplight" color_src = MUTCOLORS -/datum/sprite_accessory/snouts/mam_snouts/roundlight - name = "Round + Light" - icon_state = "roundlight" - color_src = MUTCOLORS +/datum/sprite_accessory/snouts/mam_snouts/skulldog + name = "Skulldog" + icon_state = "skulldog" + extra = TRUE + extra_color_src = MATRIXED +/datum/sprite_accessory/snouts/mam_snouts/toucan + name = "Toucan" + icon_state = "toucan" + +/datum/sprite_accessory/snouts/mam_snouts/redpanda + name = "WahCoon" + icon_state = "wah" + +/datum/sprite_accessory/snouts/mam_snouts/redpandaalt + name = "WahCoon ALT" + icon_state = "wahalt" /****************************************** **************** Snouts ******************* @@ -318,6 +317,16 @@ extra = TRUE extra_color_src = MUTCOLORS3 +/datum/sprite_accessory/snouts/mam_snouts/frhino + name = "Horn (Top)" + icon_state = "frhino" + extra = TRUE + extra = MUTCOLORS3 + +/datum/sprite_accessory/snouts/mam_snouts/fhusky + name = "Husky (Top)" + icon_state = "fhusky" + /datum/sprite_accessory/snouts/mam_snouts/flcanid name = "Mammal, Long (Top)" icon_state = "flcanid" @@ -346,27 +355,23 @@ name = "Mammal, Thick ALT (Top)" icon_state = "fwolfalt" -/datum/sprite_accessory/snouts/mam_snouts/fredpanda - name = "WahCoon (Top)" - icon_state = "fwah" - -/datum/sprite_accessory/snouts/mam_snouts/frhino - name = "Horn (Top)" - icon_state = "frhino" - extra = TRUE - extra = MUTCOLORS3 +/datum/sprite_accessory/snouts/mam_snouts/fotie + name = "Otie (Top)" + icon_state = "fotie" /datum/sprite_accessory/snouts/mam_snouts/frodent name = "Rodent (Top)" icon_state = "frodent" -/datum/sprite_accessory/snouts/mam_snouts/fhusky - name = "Husky (Top)" - icon_state = "fhusky" +/datum/sprite_accessory/snouts/mam_snouts/fround + name = "Round (Top)" + icon_state = "fround" + color_src = MUTCOLORS -/datum/sprite_accessory/snouts/mam_snouts/fotie - name = "Otie (Top)" - icon_state = "fotie" +/datum/sprite_accessory/snouts/mam_snouts/froundlight + name = "Round + Light (Top)" + icon_state = "froundlight" + color_src = MUTCOLORS /datum/sprite_accessory/snouts/mam_snouts/fpede name = "Scolipede (Top)" @@ -380,26 +385,20 @@ name = "Shark (Top)" icon_state = "fshark" -/datum/sprite_accessory/snouts/mam_snouts/ftoucan - name = "Toucan (Top)" - icon_state = "ftoucan" - /datum/sprite_accessory/snouts/mam_snouts/fsharp name = "Sharp (Top)" icon_state = "fsharp" color_src = MUTCOLORS -/datum/sprite_accessory/snouts/mam_snouts/fround - name = "Round (Top)" - icon_state = "fround" - color_src = MUTCOLORS - /datum/sprite_accessory/snouts/mam_snouts/fsharplight name = "Sharp + Light (Top)" icon_state = "fsharplight" color_src = MUTCOLORS -/datum/sprite_accessory/snouts/mam_snouts/froundlight - name = "Round + Light (Top)" - icon_state = "froundlight" - color_src = MUTCOLORS +/datum/sprite_accessory/snouts/mam_snouts/ftoucan + name = "Toucan (Top)" + icon_state = "ftoucan" + +/datum/sprite_accessory/snouts/mam_snouts/fredpanda + name = "WahCoon (Top)" + icon_state = "fwah" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm index 19ec677a72..ffb808eede 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm @@ -20,6 +20,10 @@ name = "Knee-high - Bee" icon_state = "bee_knee" +/datum/sprite_accessory/underwear/socks/christmas_knee + name = "Knee-High - Christmas" + icon_state = "christmas_knee" + /datum/sprite_accessory/underwear/socks/commie_knee name = "Knee-High - Commie" icon_state = "commie_knee" @@ -32,6 +36,14 @@ name = "Knee-high - Rainbow" icon_state = "rainbow_knee" +/datum/sprite_accessory/underwear/socks/candycaner_knee + name = "Knee-High - Red Candy Cane" + icon_state = "candycaner_knee" + +/datum/sprite_accessory/underwear/socks/candycaneg_knee //ignore alphabetisation for ease of use in scenarios like this + name = "Knee-High - Green Candy Cane" + icon_state = "candycaneg_knee" + /datum/sprite_accessory/underwear/socks/striped_knee name = "Knee-high - Striped" icon_state = "striped_knee" @@ -46,18 +58,6 @@ name = "Knee-High - UK" icon_state = "uk_knee" -/datum/sprite_accessory/underwear/socks/christmas_knee - name = "Knee-High - Christmas" - icon_state = "christmas_knee" - -/datum/sprite_accessory/underwear/socks/candycaner_knee - name = "Knee-High - Red Candy Cane" - icon_state = "candycaner_knee" - -/datum/sprite_accessory/underwear/socks/candycaneg_knee - name = "Knee-High - Green Candy Cane" - icon_state = "candycaneg_knee" - /datum/sprite_accessory/underwear/socks/socks_norm name = "Normal" icon_state = "socks_norm" @@ -129,22 +129,34 @@ name = "Thigh-high - Bee" icon_state = "bee_thigh" +/datum/sprite_accessory/underwear/socks/christmas_thigh + name = "Thigh-high - Christmas" + icon_state = "christmas_thigh" + /datum/sprite_accessory/underwear/socks/commie_thigh name = "Thigh-high - Commie" icon_state = "commie_thigh" -/datum/sprite_accessory/underwear/socks/usa_thigh - name = "Thigh-high - Freedom" - icon_state = "assblastusa_thigh" - /datum/sprite_accessory/underwear/socks/fishnet name = "Thigh-high - Fishnet" icon_state = "fishnet" +/datum/sprite_accessory/underwear/socks/usa_thigh + name = "Thigh-high - Freedom" + icon_state = "assblastusa_thigh" + /datum/sprite_accessory/underwear/socks/rainbow_thigh name = "Thigh-high - Rainbow" icon_state = "rainbow_thigh" +/datum/sprite_accessory/underwear/socks/candycaner_thigh + name = "Thigh-high - Red Candy Cane" + icon_state = "candycaner_thigh" + +/datum/sprite_accessory/underwear/socks/candycaneg_thigh + name = "Thigh-high - Green Candy Cane" + icon_state = "candycaneg_thigh" + /datum/sprite_accessory/underwear/socks/striped_thigh name = "Thigh-high - Striped" icon_state = "striped_thigh" @@ -157,16 +169,4 @@ /datum/sprite_accessory/underwear/socks/uk_thigh name = "Thigh-high - UK" - icon_state = "uk_thigh" - -/datum/sprite_accessory/underwear/socks/christmas_thigh - name = "Thigh-high - Christmas" - icon_state = "christmas_thigh" - -/datum/sprite_accessory/underwear/socks/candycaner_thigh - name = "Thigh-high - Red Candy Cane" - icon_state = "candycaner_thigh" - -/datum/sprite_accessory/underwear/socks/candycaneg_thigh - name = "Thigh-high - Green Candy Cane" - icon_state = "candycaneg_thigh" \ No newline at end of file + icon_state = "uk_thigh" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/spines.dm b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm index 83415ed375..5d7207c934 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/spines.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm @@ -21,21 +21,13 @@ name = "None" icon_state = "none" -/datum/sprite_accessory/spines/short - name = "Short" - icon_state = "short" +/datum/sprite_accessory/spines/aqautic + name = "Aquatic" + icon_state = "aqua" -/datum/sprite_accessory/spines_animated/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/spines/shortmeme - name = "Short + Membrane" - icon_state = "shortmeme" - -/datum/sprite_accessory/spines_animated/shortmeme - name = "Short + Membrane" - icon_state = "shortmeme" +/datum/sprite_accessory/spines_animated/aqautic + name = "Aquatic" + icon_state = "aqua" /datum/sprite_accessory/spines/long name = "Long" @@ -53,10 +45,18 @@ name = "Long + Membrane" icon_state = "longmeme" -/datum/sprite_accessory/spines/aqautic - name = "Aquatic" - icon_state = "aqua" +/datum/sprite_accessory/spines/short + name = "Short" + icon_state = "short" -/datum/sprite_accessory/spines_animated/aqautic - name = "Aquatic" - icon_state = "aqua" +/datum/sprite_accessory/spines_animated/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/spines/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + +/datum/sprite_accessory/spines_animated/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm index 16531d8f06..9addd15dca 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm @@ -25,12 +25,6 @@ icon_state = "synthliz_tertunder" //Synth body markings -/datum/sprite_accessory/mam_body_markings/synthliz - recommended_species = list("synthliz") - icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' - name = "Synthetic Lizard - Plates" - icon_state = "synthlizscutes" - /datum/sprite_accessory/mam_body_markings/synthliz/synthliz_pecs icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' name = "Synthetic Lizard - Pecs" @@ -41,6 +35,12 @@ name = "Synthetic Lizard - Pecs Light" icon_state = "synthlizpecslight" +/datum/sprite_accessory/mam_body_markings/synthliz + recommended_species = list("synthliz") + icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' + name = "Synthetic Lizard - Plates" + icon_state = "synthlizscutes" + //Synth tails /datum/sprite_accessory/tails/mam_tails/synthliz recommended_species = list("synthliz") @@ -70,17 +70,17 @@ name = "Synthetic Lizard - Curled" icon_state = "synth_curled" -/datum/sprite_accessory/antenna/synthliz/synthliz_thick +/datum/sprite_accessory/antenna/synthliz/synth_horns icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' color_src = MUTCOLORS - name = "Synthetic Lizard - Thick" - icon_state = "synth_thick" + name = "Synthetic Lizard - Horns" + icon_state = "synth_horns" -/datum/sprite_accessory/antenna/synthliz/synth_thicklight +/datum/sprite_accessory/antenna/synthliz/synth_hornslight icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' color_src = MATRIXED - name = "Synthetic Lizard - Thick Light" - icon_state = "synth_thicklight" + name = "Synthetic Lizard - Horns Light" + icon_state = "synth_hornslight" /datum/sprite_accessory/antenna/synthliz/synth_short icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' @@ -100,17 +100,17 @@ name = "Synthetic Lizard - Sharp Light" icon_state = "synth_sharplight" -/datum/sprite_accessory/antenna/synthliz/synth_horns +/datum/sprite_accessory/antenna/synthliz/synthliz_thick icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' color_src = MUTCOLORS - name = "Synthetic Lizard - Horns" - icon_state = "synth_horns" + name = "Synthetic Lizard - Thick" + icon_state = "synth_thick" -/datum/sprite_accessory/antenna/synthliz/synth_hornslight +/datum/sprite_accessory/antenna/synthliz/synth_thicklight icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' color_src = MATRIXED - name = "Synthetic Lizard - Horns Light" - icon_state = "synth_hornslight" + name = "Synthetic Lizard - Thick Light" + icon_state = "synth_thicklight" //Synth Taurs (Ported from Virgo) /datum/sprite_accessory/taur/synthliz diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 812e0c052c..d9e2de1525 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -18,38 +18,7 @@ /datum/sprite_accessory/tails_animated/lizard/is_not_visible(var/mob/living/carbon/human/H, var/tauric) return (((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) || H.dna.species.mutant_bodyparts["tail_lizard"]) -/datum/sprite_accessory/tails/lizard/smooth - name = "Smooth" - icon_state = "smooth" - -/datum/sprite_accessory/tails_animated/lizard/smooth - name = "Smooth" - icon_state = "smooth" - -/datum/sprite_accessory/tails/lizard/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails_animated/lizard/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails/lizard/ltiger - name = "Light Tiger" - icon_state = "ltiger" - -/datum/sprite_accessory/tails_animated/lizard/ltiger - name = "Light Tiger" - icon_state = "ltiger" - -/datum/sprite_accessory/tails/lizard/spikes - name = "Spikes" - icon_state = "spikes" - -/datum/sprite_accessory/tails_animated/lizard/spikes - name = "Spikes" - icon_state = "spikes" - +//this goes first regardless of alphabetical order /datum/sprite_accessory/tails/lizard/none name = "None" icon_state = "None" @@ -72,11 +41,13 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' -/datum/sprite_accessory/body_markings/guilmon - name = "Guilmon" - icon_state = "guilmon" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' +/datum/sprite_accessory/tails/lizard/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + +/datum/sprite_accessory/tails_animated/lizard/dtiger + name = "Dark Tiger" + icon_state = "dtiger" /datum/sprite_accessory/tails/lizard/guilmon name = "Guilmon" @@ -90,6 +61,30 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' +/datum/sprite_accessory/tails/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" + +/datum/sprite_accessory/tails_animated/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" + +/datum/sprite_accessory/tails/lizard/smooth + name = "Smooth" + icon_state = "smooth" + +/datum/sprite_accessory/tails_animated/lizard/smooth + name = "Smooth" + icon_state = "smooth" + +/datum/sprite_accessory/tails/lizard/spikes + name = "Spikes" + icon_state = "spikes" + +/datum/sprite_accessory/tails_animated/lizard/spikes + name = "Spikes" + icon_state = "spikes" + /****************************************** ************** Human Tails **************** *******************************************/ @@ -107,18 +102,6 @@ /datum/sprite_accessory/tails_animated/human/is_not_visible(var/mob/living/carbon/human/H, var/tauric) return (((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)|| H.dna.species.mutant_bodyparts["tail_human"]) -/datum/sprite_accessory/tails/human/ailurus - name = "Red Panda" - icon_state = "wah" - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - color_src = MATRIXED - -/datum/sprite_accessory/tails_animated/human/ailurus - name = "Red Panda" - icon_state = "wah" - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - color_src = MATRIXED - /datum/sprite_accessory/tails/human/axolotl name = "Axolotl" icon_state = "axolotl" @@ -199,6 +182,14 @@ icon = 'modular_citadel/icons/mob/mam_tails.dmi' color_src = MATRIXED +/datum/sprite_accessory/tails/human/corvid + name = "Corvid" + icon_state = "crow" + +/datum/sprite_accessory/tails_animated/human/corvid + name = "Corvid" + icon_state = "crow" + /datum/sprite_accessory/tails/human/cow name = "Cow" icon_state = "cow" @@ -211,13 +202,25 @@ icon = 'modular_citadel/icons/mob/mam_tails.dmi' color_src = MATRIXED -/datum/sprite_accessory/tails/human/corvid - name = "Corvid" - icon_state = "crow" +/datum/sprite_accessory/tails/human/dtiger + name = "Dark Tiger" + icon_state = "dtiger" -/datum/sprite_accessory/tails_animated/human/corvid - name = "Corvid" - icon_state = "crow" +/datum/sprite_accessory/tails_animated/human/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + +/datum/sprite_accessory/tails/human/datashark + name = "datashark" + icon_state = "datashark" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/human/datashark + name = "datashark" + icon_state = "datashark" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' /datum/sprite_accessory/tails/human/eevee name = "Eevee" @@ -298,7 +301,7 @@ color_src = MATRIXED /datum/sprite_accessory/tails_animated/human/insect - name = "insect" + name = "Insect" icon_state = "insect" icon = 'modular_citadel/icons/mob/mam_tails.dmi' color_src = MATRIXED @@ -315,6 +318,14 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' +/datum/sprite_accessory/tails/human/ltiger + name = "Light Tiger" + icon_state = "ltiger" + +/datum/sprite_accessory/tails_animated/human/ltiger + name = "Light Tiger" + icon_state = "ltiger" + /datum/sprite_accessory/tails/human/murid name = "Murid" icon_state = "murid" @@ -327,18 +338,6 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' -/datum/sprite_accessory/tails/human/otie - name = "Otusian" - icon_state = "otie" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - -/datum/sprite_accessory/tails_animated/human/otie - name = "Otusian" - icon_state = "otie" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - /datum/sprite_accessory/tails/orca name = "Orca" icon_state = "orca" @@ -351,15 +350,15 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' -/datum/sprite_accessory/tails/human/pede - name = "Scolipede" - icon_state = "pede" +/datum/sprite_accessory/tails/human/otie + name = "Otusian" + icon_state = "otie" color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' -/datum/sprite_accessory/tails_animated/human/pede - name = "Scolipede" - icon_state = "pede" +/datum/sprite_accessory/tails_animated/human/otie + name = "Otusian" + icon_state = "otie" color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' @@ -375,6 +374,30 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' +/datum/sprite_accessory/tails/human/ailurus + name = "Red Panda" + icon_state = "wah" + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + color_src = MATRIXED + +/datum/sprite_accessory/tails_animated/human/ailurus + name = "Red Panda" + icon_state = "wah" + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + color_src = MATRIXED + +/datum/sprite_accessory/tails/human/pede + name = "Scolipede" + icon_state = "pede" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/human/pede + name = "Scolipede" + icon_state = "pede" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + /datum/sprite_accessory/tails/human/sergal name = "Sergal" icon_state = "sergal" @@ -387,6 +410,18 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' +/datum/sprite_accessory/tails/human/shark + name = "Shark" + icon_state = "shark" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/human/shark + name = "Shark" + icon_state = "shark" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + /datum/sprite_accessory/tails/human/skunk name = "skunk" icon_state = "skunk" @@ -415,30 +450,6 @@ name = "Spikes" icon_state = "spikes" -/datum/sprite_accessory/tails/human/shark - name = "Shark" - icon_state = "shark" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - -/datum/sprite_accessory/tails_animated/human/shark - name = "Shark" - icon_state = "shark" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - -/datum/sprite_accessory/tails/human/datashark - name = "datashark" - icon_state = "datashark" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - -/datum/sprite_accessory/tails_animated/human/datashark - name = "datashark" - icon_state = "datashark" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_tails.dmi' - /datum/sprite_accessory/tails/human/straighttail name = "Straight Tail" icon_state = "straighttail" @@ -495,22 +506,6 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' -/datum/sprite_accessory/tails/human/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails_animated/human/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails/human/ltiger - name = "Light Tiger" - icon_state = "ltiger" - -/datum/sprite_accessory/tails_animated/human/ltiger - name = "Light Tiger" - icon_state = "ltiger" - /datum/sprite_accessory/tails/human/wolf name = "Wolf" icon_state = "wolf" @@ -554,16 +549,6 @@ icon_state = "none" relevant_layers = null -/datum/sprite_accessory/tails/mam_tails/ailurus - name = "Red Panda" - icon_state = "wah" - extra = TRUE - -/datum/sprite_accessory/tails_animated/mam_tails_animated/ailurus - name = "Red Panda" - icon_state = "wah" - extra = TRUE - /datum/sprite_accessory/tails/mam_tails/axolotl name = "Axolotl" icon_state = "axolotl" @@ -638,6 +623,18 @@ name = "Cow" icon_state = "cow" +/datum/sprite_accessory/tails/mam_tails/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + color_src = MUTCOLORS + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/tails_animated/mam_tails_animated/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + color_src = MUTCOLORS + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/tails/mam_tails/eevee name = "Eevee" icon_state = "eevee" @@ -728,6 +725,18 @@ datum/sprite_accessory/tails/mam_tails/insect name = "Lab" icon_state = "lab" +/datum/sprite_accessory/tails/mam_tails/ltiger + name = "Light Tiger" + icon_state = "ltiger" + color_src = MUTCOLORS + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/tails_animated/mam_tails_animated/ltiger + name = "Light Tiger" + icon_state = "ltiger" + color_src = MUTCOLORS + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/tails/mam_tails/murid name = "Murid" icon_state = "murid" @@ -736,14 +745,6 @@ datum/sprite_accessory/tails/mam_tails/insect name = "Murid" icon_state = "murid" -/datum/sprite_accessory/tails/mam_tails/otie - name = "Otusian" - icon_state = "otie" - -/datum/sprite_accessory/tails_animated/mam_tails_animated/otie - name = "Otusian" - icon_state = "otie" - /datum/sprite_accessory/tails/mam_tails/orca name = "Orca" icon_state = "orca" @@ -752,13 +753,13 @@ datum/sprite_accessory/tails/mam_tails/insect name = "Orca" icon_state = "orca" -/datum/sprite_accessory/tails/mam_tails/pede - name = "Scolipede" - icon_state = "pede" +/datum/sprite_accessory/tails/mam_tails/otie + name = "Otusian" + icon_state = "otie" -/datum/sprite_accessory/tails_animated/mam_tails_animated/pede - name = "Scolipede" - icon_state = "pede" +/datum/sprite_accessory/tails_animated/mam_tails_animated/otie + name = "Otusian" + icon_state = "otie" /datum/sprite_accessory/tails/mam_tails/rabbit name = "Rabbit" @@ -768,6 +769,24 @@ datum/sprite_accessory/tails/mam_tails/insect name = "Rabbit" icon_state = "rabbit" +/datum/sprite_accessory/tails/mam_tails/ailurus + name = "Red Panda" + icon_state = "wah" + extra = TRUE + +/datum/sprite_accessory/tails_animated/mam_tails_animated/ailurus + name = "Red Panda" + icon_state = "wah" + extra = TRUE + +/datum/sprite_accessory/tails/mam_tails/pede + name = "Scolipede" + icon_state = "pede" + +/datum/sprite_accessory/tails_animated/mam_tails_animated/pede + name = "Scolipede" + icon_state = "pede" + /datum/sprite_accessory/tails/mam_tails/sergal name = "Sergal" icon_state = "sergal" @@ -776,6 +795,22 @@ datum/sprite_accessory/tails/mam_tails/insect name = "Sergal" icon_state = "sergal" +/datum/sprite_accessory/tails/mam_tails/shark + name = "Shark" + icon_state = "shark" + +/datum/sprite_accessory/tails_animated/mam_tails_animated/shark + name = "Shark" + icon_state = "shark" + +/datum/sprite_accessory/tails/mam_tails/shepherd + name = "Shepherd" + icon_state = "shepherd" + +/datum/sprite_accessory/tails_animated/mam_tails_animated/shepherd + name = "Shepherd" + icon_state = "shepherd" + /datum/sprite_accessory/tails/mam_tails/skunk name = "Skunk" icon_state = "skunk" @@ -808,22 +843,6 @@ datum/sprite_accessory/tails/mam_tails/insect color_src = MUTCOLORS icon = 'icons/mob/mutant_bodyparts.dmi' -/datum/sprite_accessory/tails/mam_tails/shark - name = "Shark" - icon_state = "shark" - -/datum/sprite_accessory/tails_animated/mam_tails_animated/shark - name = "Shark" - icon_state = "shark" - -/datum/sprite_accessory/tails/mam_tails/shepherd - name = "Shepherd" - icon_state = "shepherd" - -/datum/sprite_accessory/tails_animated/mam_tails_animated/shepherd - name = "Shepherd" - icon_state = "shepherd" - /datum/sprite_accessory/tails/mam_tails/straighttail name = "Straight Tail" icon_state = "straighttail" @@ -864,30 +883,6 @@ datum/sprite_accessory/tails/mam_tails/insect name = "Tiger" icon_state = "tiger" -/datum/sprite_accessory/tails/mam_tails/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - color_src = MUTCOLORS - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated/mam_tails_animated/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - color_src = MUTCOLORS - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/tails/mam_tails/ltiger - name = "Light Tiger" - icon_state = "ltiger" - color_src = MUTCOLORS - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated/mam_tails_animated/ltiger - name = "Light Tiger" - icon_state = "ltiger" - color_src = MUTCOLORS - icon = 'icons/mob/mutant_bodyparts.dmi' - /datum/sprite_accessory/tails/mam_tails/wolf name = "Wolf" icon_state = "wolf" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm index b8282931d2..1be02c207e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -12,6 +12,38 @@ // please make sure they're sorted alphabetically and categorized +/datum/sprite_accessory/underwear/top/cowboyshirt + name = "Cowboy Shirt Black" + icon_state = "cowboyshirt" + +/datum/sprite_accessory/underwear/top/cowboyshirt/red + name = "Cowboy Shirt Red" + icon_state = "cowboyshirt_red" + +/datum/sprite_accessory/underwear/top/cowboyshirt/navy + name = "Cowboy Shirt Navy" + icon_state = "cowboyshirt_navy" + +/datum/sprite_accessory/underwear/top/cowboyshirt/white + name = "Cowboy Shirt White" + icon_state = "cowboyshirt_white" + +/datum/sprite_accessory/underwear/top/cowboyshirt/s + name = "Cowboy Shirt Shortsleeved Black" + icon_state = "cowboyshirt_s" + +/datum/sprite_accessory/underwear/top/cowboyshirt/red/s + name = "Cowboy Shirt Shortsleeved Red" + icon_state = "cowboyshirt_reds" + +/datum/sprite_accessory/underwear/top/cowboyshirt/navy/s + name = "Cowboy Shirt Shortsleeved Navy" + icon_state = "cowboyshirt_navys" + +/datum/sprite_accessory/underwear/top/cowboyshirt/white/s + name = "Cowboy Shirt Shortsleeved White" + icon_state = "cowboyshirt_whites" + /datum/sprite_accessory/underwear/top/longjon name = "Long John Shirt" icon_state = "ljont" @@ -30,36 +62,6 @@ icon_state = "undershirt" has_color = TRUE -/datum/sprite_accessory/underwear/top/bowlingw - name = "Shirt - Bowling" - icon_state = "bowlingw" - has_color = TRUE - -/datum/sprite_accessory/underwear/top/bowling - name = "Shirt, Bowling - Red" - icon_state = "bowling" - -/datum/sprite_accessory/underwear/top/bowlingp - name = "Shirt, Bowling - Pink" - icon_state = "bowlingp" - -/datum/sprite_accessory/underwear/top/bowlinga - name = "Shirt, Bowling - Aqua" - icon_state = "bowlinga" - -/datum/sprite_accessory/underwear/top/bluejersey - name = "Shirt, Jersey - Blue" - icon_state = "shirt_bluejersey" - -/datum/sprite_accessory/underwear/top/redjersey - name = "Shirt, Jersey - Red" - icon_state = "shirt_redjersey" - -/datum/sprite_accessory/underwear/top/polo - name = "Shirt - Polo" - icon_state = "polo" - has_color = TRUE - /datum/sprite_accessory/underwear/top/alienshirt name = "Shirt - Alien" icon_state = "shirt_alien" @@ -72,6 +74,23 @@ name = "Shirt - Bee" icon_state = "bee_shirt" +/datum/sprite_accessory/underwear/top/bowlingw + name = "Shirt - Bowling" + icon_state = "bowlingw" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/bowlinga + name = "Shirt, Bowling - Aqua" + icon_state = "bowlinga" + +/datum/sprite_accessory/underwear/top/bowling + name = "Shirt, Bowling - Red" + icon_state = "bowling" + +/datum/sprite_accessory/underwear/top/bowlingp + name = "Shirt, Bowling - Pink" + icon_state = "bowlingp" + /datum/sprite_accessory/underwear/top/clownshirt name = "Shirt - Clown" icon_state = "shirt_clown" @@ -88,6 +107,14 @@ name = "Shirt - I Love NT" icon_state = "ilovent" +/datum/sprite_accessory/underwear/top/bluejersey + name = "Shirt, Jersey - Blue" + icon_state = "shirt_bluejersey" + +/datum/sprite_accessory/underwear/top/redjersey + name = "Shirt, Jersey - Red" + icon_state = "shirt_redjersey" + /datum/sprite_accessory/underwear/top/lover name = "Shirt - Lover" icon_state = "lover" @@ -112,6 +139,11 @@ name = "Shirt - Pogoman" icon_state = "pogoman" +/datum/sprite_accessory/underwear/top/polo + name = "Shirt - Polo" + icon_state = "polo" + has_color = TRUE + /datum/sprite_accessory/underwear/top/question name = "Shirt - Question" icon_state = "shirt_question" @@ -120,6 +152,23 @@ name = "Shirt - Skull" icon_state = "shirt_skull" +/datum/sprite_accessory/underwear/top/shortsleeve + name = "Shirt - Short Sleeved" + icon_state = "shortsleeve" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/blueshirtsport + name = "Shirt, Sports - Blue" + icon_state = "blueshirtsport" + +/datum/sprite_accessory/underwear/top/greenshirtsport + name = "Shirt, Sports - Green" + icon_state = "greenshirtsport" + +/datum/sprite_accessory/underwear/top/redshirtsport + name = "Shirt, Sports - Red" + icon_state = "redshirtsport" + /datum/sprite_accessory/underwear/top/ss13 name = "Shirt - SS13" icon_state = "shirt_ss13" @@ -141,27 +190,6 @@ name = "Shirt - USA" icon_state = "shirt_assblastusa" -/datum/sprite_accessory/underwear/top/shortsleeve - name = "Shirt - Short Sleeved" - icon_state = "shortsleeve" - has_color = TRUE - -/datum/sprite_accessory/underwear/top/blueshirtsport - name = "Shirt, Sports - Blue" - icon_state = "blueshirtsport" - -/datum/sprite_accessory/underwear/top/greenshirtsport - name = "Shirt, Sports - Green" - icon_state = "greenshirtsport" - -/datum/sprite_accessory/underwear/top/redshirtsport - name = "Shirt, Sports - Red" - icon_state = "redshirtsport" - -/datum/sprite_accessory/underwear/top/tankfire - name = "Tank Top - Fire" - icon_state = "tank_fire" - /datum/sprite_accessory/underwear/top/tanktop name = "Tank Top" icon_state = "tanktop" @@ -172,6 +200,10 @@ icon_state = "tanktop_alt" has_color = TRUE +/datum/sprite_accessory/underwear/top/tankfire + name = "Tank Top - Fire" + icon_state = "tank_fire" + /datum/sprite_accessory/underwear/top/tanktop_midriff name = "Tank Top - Midriff" icon_state = "tank_midriff" @@ -192,6 +224,8 @@ name = "Tank top - Sun" icon_state = "tank_sun" +//feminine accessories from here on + /datum/sprite_accessory/underwear/top/babydoll name = "Baby-Doll" icon_state = "babydoll" @@ -210,15 +244,25 @@ has_color = TRUE gender = FEMALE -/datum/sprite_accessory/underwear/top/bra_thin - name = "Bra - Thin" - icon_state = "bra_thin" - has_color = TRUE +/datum/sprite_accessory/underwear/top/bra_beekini + name = "Bra - Bee-kini" + icon_state = "bra_bee-kini" gender = FEMALE -/datum/sprite_accessory/underwear/top/bra_kinky - name = "Bra - Kinky Black" - icon_state = "bra_kinky" +/datum/sprite_accessory/underwear/top/bra_binder + name = "Bra (binder)" + icon_state = "bra_binder" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/bra_binder_strapless + name = "Bra (binder, strapless)" + icon_state = "bra_binder_strapless" + has_color = TRUE + + +/datum/sprite_accessory/underwear/top/bra_commie + name = "Bra - Commie" + icon_state = "bra_commie" gender = FEMALE /datum/sprite_accessory/underwear/top/bra_freedom @@ -226,33 +270,17 @@ icon_state = "bra_assblastusa" gender = FEMALE -/datum/sprite_accessory/underwear/top/bra_commie - name = "Bra - Commie" - icon_state = "bra_commie" - gender = FEMALE - -/datum/sprite_accessory/underwear/top/bra_beekini - name = "Bra - Bee-kini" - icon_state = "bra_bee-kini" - gender = FEMALE - -/datum/sprite_accessory/underwear/top/bra_uk - name = "Bra - UK" - icon_state = "bra_uk" - gender = FEMALE - -/datum/sprite_accessory/underwear/top/bra_neko - name = "Bra - Neko" - icon_state = "bra_neko" - has_color = TRUE - gender = FEMALE - /datum/sprite_accessory/underwear/top/halterneck_bra name = "Bra - Halterneck" icon_state = "halterneck_bra" has_color = TRUE gender = FEMALE +/datum/sprite_accessory/underwear/top/bra_kinky + name = "Bra - Kinky Black" + icon_state = "bra_kinky" + gender = FEMALE + /datum/sprite_accessory/underwear/top/sports_bra name = "Bra, Sports" icon_state = "sports_bra" @@ -283,9 +311,21 @@ has_color = TRUE gender = FEMALE -/datum/sprite_accessory/underwear/top/fishnet_sleeves - name = "Fishnet - sleeves" - icon_state = "fishnet_sleeves" +/datum/sprite_accessory/underwear/top/bra_thin + name = "Bra - Thin" + icon_state = "bra_thin" + has_color = TRUE + gender = FEMALE + +/datum/sprite_accessory/underwear/top/bra_neko + name = "Bra - Neko" + icon_state = "bra_neko" + has_color = TRUE + gender = FEMALE + +/datum/sprite_accessory/underwear/top/bra_uk + name = "Bra - UK" + icon_state = "bra_uk" gender = FEMALE /datum/sprite_accessory/underwear/top/fishnet_gloves @@ -293,6 +333,11 @@ icon_state = "fishnet_gloves" gender = FEMALE +/datum/sprite_accessory/underwear/top/fishnet_sleeves + name = "Fishnet - sleeves" + icon_state = "fishnet_sleeves" + gender = FEMALE + /datum/sprite_accessory/underwear/top/fishnet_base name = "Fishnet - top" icon_state = "fishnet_body" @@ -315,45 +360,3 @@ icon_state = "tubetop" has_color = TRUE gender = FEMALE - -/datum/sprite_accessory/underwear/top/cowboyshirt - name = "Cowboy Shirt Black" - icon_state = "cowboyshirt" - -/datum/sprite_accessory/underwear/top/cowboyshirt/s - name = "Cowboy Shirt Shortsleeved Black" - icon_state = "cowboyshirt_s" - -/datum/sprite_accessory/underwear/top/cowboyshirt/white - name = "Cowboy Shirt White" - icon_state = "cowboyshirt_white" - -/datum/sprite_accessory/underwear/top/cowboyshirt/white/s - name = "Cowboy Shirt Shortsleeved White" - icon_state = "cowboyshirt_whites" - -/datum/sprite_accessory/underwear/top/cowboyshirt/navy - name = "Cowboy Shirt Navy" - icon_state = "cowboyshirt_navy" - -/datum/sprite_accessory/underwear/top/cowboyshirt/navy/s - name = "Cowboy Shirt Shortsleeved Navy" - icon_state = "cowboyshirt_navys" - -/datum/sprite_accessory/underwear/top/cowboyshirt/red - name = "Cowboy Shirt Red" - icon_state = "cowboyshirt_red" - -/datum/sprite_accessory/underwear/top/cowboyshirt/red/s - name = "Cowboy Shirt Shortsleeved Red" - icon_state = "cowboyshirt_reds" - -/datum/sprite_accessory/underwear/top/bra_binder - name = "Bra (binder)" - icon_state = "bra_binder" - has_color = TRUE - -/datum/sprite_accessory/underwear/top/bra_binder_strapless - name = "Bra (binder, strapless)" - icon_state = "bra_binder_strapless" - has_color = TRUE diff --git a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm index 58d5e1ba88..edfeba79f1 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm @@ -10,18 +10,6 @@ icon_state = null covers_groin = FALSE -/datum/sprite_accessory/underwear/bottom/mankini - name = "Mankini" - icon_state = "mankini" - has_color = TRUE - gender = MALE - -/datum/sprite_accessory/underwear/bottom/male_kinky - name = "Jockstrap" - icon_state = "jockstrap" - has_color = TRUE - gender = MALE - /datum/sprite_accessory/underwear/bottom/briefs name = "Briefs" icon_state = "briefs" @@ -77,6 +65,26 @@ has_digitigrade = TRUE has_color = TRUE +/datum/sprite_accessory/underwear/bottom/male_kinky + name = "Jockstrap" + icon_state = "jockstrap" + has_color = TRUE + gender = MALE + +/datum/sprite_accessory/underwear/bottom/longjon + name = "Long John Bottoms" + icon_state = "ljonb" + has_digitigrade = TRUE + has_color = TRUE + +/datum/sprite_accessory/underwear/bottom/mankini + name = "Mankini" + icon_state = "mankini" + has_color = TRUE + gender = MALE + +//feminine underwear from here on + /datum/sprite_accessory/underwear/bottom/panties name = "Panties" icon_state = "panties" @@ -89,11 +97,6 @@ has_color = TRUE gender = FEMALE -/datum/sprite_accessory/underwear/bottom/fishnet_lower - name = "Panties - Fishnet" - icon_state = "fishnet_lower" - gender = FEMALE - /datum/sprite_accessory/underwear/bottom/female_beekini name = "Panties - Bee-kini" icon_state = "panties_bee-kini" @@ -104,6 +107,11 @@ icon_state = "panties_commie" gender = FEMALE +/datum/sprite_accessory/underwear/bottom/fishnet_lower + name = "Panties - Fishnet" + icon_state = "fishnet_lower" + gender = FEMALE + /datum/sprite_accessory/underwear/bottom/female_usastripe name = "Panties - Freedom" icon_state = "panties_assblastusa" @@ -114,11 +122,6 @@ icon_state = "panties_kinky" gender = FEMALE -/datum/sprite_accessory/underwear/bottom/panties_uk - name = "Panties - UK" - icon_state = "panties_uk" - gender = FEMALE - /datum/sprite_accessory/underwear/bottom/panties_neko name = "Panties - Neko" icon_state = "panties_neko" @@ -149,17 +152,10 @@ has_color = TRUE gender = FEMALE -/datum/sprite_accessory/underwear/bottom/longjon - name = "Long John Bottoms" - icon_state = "ljonb" - has_digitigrade = TRUE - has_color = TRUE - -/datum/sprite_accessory/underwear/bottom/swimsuit_red - name = "Swimsuit, One Piece - Red" - icon_state = "swimming_red" +/datum/sprite_accessory/underwear/bottom/panties_uk + name = "Panties - UK" + icon_state = "panties_uk" gender = FEMALE - covers_chest = TRUE /datum/sprite_accessory/underwear/bottom/swimsuit name = "Swimsuit, One Piece - Black" @@ -173,6 +169,12 @@ gender = FEMALE covers_chest = TRUE +/datum/sprite_accessory/underwear/bottom/swimsuit_red + name = "Swimsuit, One Piece - Red" + icon_state = "swimming_red" + gender = FEMALE + covers_chest = TRUE + /datum/sprite_accessory/underwear/bottom/thong name = "Thong" icon_state = "thong" @@ -184,5 +186,3 @@ icon_state = "thong_babydoll" has_color = TRUE gender = FEMALE - - diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm index fb03df88a1..fb71bb483d 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm @@ -58,6 +58,10 @@ dimension_y = 34 relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) +/datum/sprite_accessory/deco_wings/atlas + name = "Atlas" + icon_state = "atlas" + /datum/sprite_accessory/deco_wings/bat name = "Bat" icon_state = "bat" @@ -66,6 +70,10 @@ name = "Bee" icon_state = "bee" +/datum/sprite_accessory/deco_wings/deathhead + name = "Deathshead" + icon_state = "deathhead" + /datum/sprite_accessory/deco_wings/fairy name = "Fairy" icon_state = "fairy" @@ -74,14 +82,6 @@ name = "Feathery" icon_state = "feathery" -/datum/sprite_accessory/deco_wings/atlas - name = "Atlas" - icon_state = "atlas" - -/datum/sprite_accessory/deco_wings/deathhead - name = "Deathshead" - icon_state = "deathhead" - /datum/sprite_accessory/deco_wings/firewatch name = "Firewatch" icon_state = "firewatch" @@ -150,6 +150,10 @@ icon_state = "none" relevant_layers = null +/datum/sprite_accessory/insect_wings/atlas + name = "Atlas" + icon_state = "atlas" + /datum/sprite_accessory/insect_wings/bat name = "Bat" icon_state = "bat" @@ -158,6 +162,10 @@ name = "Bee" icon_state = "bee" +/datum/sprite_accessory/insect_wings/deathhead + name = "Deathshead" + icon_state = "deathhead" + /datum/sprite_accessory/insect_wings/fairy name = "Fairy" icon_state = "fairy" @@ -166,14 +174,6 @@ name = "Feathery" icon_state = "feathery" -/datum/sprite_accessory/insect_wings/atlas - name = "Atlas" - icon_state = "atlas" - -/datum/sprite_accessory/insect_wings/deathhead - name = "Deathshead" - icon_state = "deathhead" - /datum/sprite_accessory/insect_wings/firewatch name = "Firewatch" icon_state = "firewatch" @@ -182,6 +182,10 @@ name = "Gothic" icon_state = "gothic" +/datum/sprite_accessory/insect_wings/jungle + name = "Jungle" + icon_state = "jungle" + /datum/sprite_accessory/insect_wings/lovers name = "Lovers" icon_state = "lovers" @@ -198,6 +202,10 @@ name = "Moon Fly" icon_state = "moonfly" +/datum/sprite_accessory/insect_wings/oakworm + name = "Oak Worm" + icon_state = "oakworm" + /datum/sprite_accessory/insect_wings/plain name = "Plain" icon_state = "plain" @@ -230,14 +238,6 @@ name = "White Fly" icon_state = "whitefly" -/datum/sprite_accessory/insect_wings/oakworm - name = "Oak Worm" - icon_state = "oakworm" - -/datum/sprite_accessory/insect_wings/jungle - name = "Jungle" - icon_state = "jungle" - /datum/sprite_accessory/insect_wings/witchwing name = "Witch Wing" icon_state = "witchwing" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index a0df1ee938..e1d078c632 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -1,6 +1,9 @@ GLOBAL_LIST_EMPTY(ghost_images_default) //this is a list of the default (non-accessorized, non-dir) images of the ghosts themselves GLOBAL_LIST_EMPTY(ghost_images_simple) //this is a list of all ghost images as the simple white ghost - +GLOBAL_LIST_INIT(ghost_verbs, list( + /mob/dead/observer/proc/dead_tele, + /mob/dead/observer/proc/open_spawners_menu, + /mob/dead/observer/proc/view_gas)) GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) /mob/dead/observer @@ -60,10 +63,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) /mob/dead/observer/Initialize(mapload, mob/body) set_invisibility(GLOB.observer_default_invisibility) - verbs += list( - /mob/dead/observer/proc/dead_tele, - /mob/dead/observer/proc/open_spawners_menu, - /mob/dead/observer/proc/view_gas) + add_verb(src, GLOB.ghost_verbs) if(icon_state in GLOB.ghost_forms_with_directions_list) ghostimage_default = image(src.icon,src,src.icon_state + "_nodir") @@ -118,8 +118,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) real_name = name if(!fun_verbs) - verbs -= /mob/dead/observer/verb/boo - verbs -= /mob/dead/observer/verb/possess + remove_verb(src, /mob/dead/observer/verb/boo) + remove_verb(src, /mob/dead/observer/verb/possess) animate(src, pixel_y = 2, time = 10, loop = -1) @@ -278,6 +278,7 @@ Works together with spawning an observer, noted above. if (!(client.prefs.chat_toggles & CHAT_OOC)) client.prefs.chat_toggles ^= CHAT_OOC transfer_ckey(ghost, FALSE) + ghost.client.init_verbs() if(penalize) var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES @@ -408,9 +409,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(usr, "Another consciousness is in your body...It is resisting you.") return client.change_view(CONFIG_GET(string/default_view)) - SStgui.on_transfer(src, mind.current) // Transfer NanoUIs. transfer_ckey(mind.current, FALSE) - return 1 + SStgui.on_transfer(src, mind.current) // Transfer NanoUIs. + mind.current.client.init_verbs() + return TRUE /mob/dead/observer/verb/stay_dead() set category = "Ghost" @@ -847,11 +849,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ghostimage_simple.icon_state = icon_state if(NAMEOF(src, fun_verbs)) if(fun_verbs) - verbs += /mob/dead/observer/verb/boo - verbs += /mob/dead/observer/verb/possess + add_verb(src, /mob/dead/observer/verb/boo) + add_verb(src, /mob/dead/observer/verb/possess) else - verbs -= /mob/dead/observer/verb/boo - verbs -= /mob/dead/observer/verb/possess + remove_verb(src, /mob/dead/observer/verb/boo) + remove_verb(src, /mob/dead/observer/verb/possess) /mob/dead/observer/reset_perspective(atom/A) if(client) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index b81172afad..3aa5f8e302 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -80,3 +80,8 @@ data["npcs"] = npcs return data + +/datum/orbit_menu/ui_assets() + . = ..() || list() + . += get_asset_datum(/datum/asset/simple/orbit) + diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 891243496a..85c256f5b0 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -169,13 +169,7 @@ if(!brainmob || iscyborg(loc)) return else - switch(severity) - if(1) - brainmob.emp_damage = min(brainmob.emp_damage + rand(20,30), 30) - if(2) - brainmob.emp_damage = min(brainmob.emp_damage + rand(10,20), 30) - if(3) - brainmob.emp_damage = min(brainmob.emp_damage + rand(0,10), 30) + brainmob.emp_damage = min(brainmob.emp_damage + rand(-5,5) + severity/3, 30) brainmob.emote("alarm") /obj/item/mmi/Destroy() diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index a853416e6f..59a119a89a 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -284,11 +284,19 @@ QDEL_LIST(traumas) return ..() +//other types of brains + /obj/item/organ/brain/alien name = "alien brain" desc = "We barely understand the brains of terrestial animals. Who knows what we may find in the brain of such an advanced species?" icon_state = "brain-x" +/obj/item/organ/brain/ipc + name = "positronic brain" + desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. It has an IPC serial number engraved on the top. It is usually slotted into the head of synthetic crewmembers." + icon = 'icons/obj/surgery.dmi' + icon_state = "posibrain-ipc" + ////////////////////////////////////TRAUMAS//////////////////////////////////////// diff --git a/code/modules/mob/living/brain/emote.dm b/code/modules/mob/living/brain/emote.dm index 540c7b3949..e1cb1a29cc 100644 --- a/code/modules/mob/living/brain/emote.dm +++ b/code/modules/mob/living/brain/emote.dm @@ -1,13 +1,3 @@ -/datum/emote/brain - mob_type_allowed_typecache = list(/mob/living/brain) - mob_type_blacklist_typecache = list() - -/datum/emote/brain/can_run_emote(mob/user, status_check = TRUE) - . = ..() - var/mob/living/brain/B = user - if(!istype(B) || (!(B.container && istype(B.container, /obj/item/mmi)))) - return FALSE - /datum/emote/brain/alarm key = "alarm" message = "sounds an alarm." diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 951185ee92..e7ad67d240 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -33,8 +33,8 @@ var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|queen)( \\(\\d+\\))?") /mob/living/carbon/alien/Initialize() - verbs += /mob/living/proc/mob_sleep - verbs += /mob/living/proc/lay_down + add_verb(src, /mob/living/proc/mob_sleep) + add_verb(src, /mob/living/proc/lay_down) create_bodyparts() //initialize bodyparts @@ -93,11 +93,9 @@ /mob/living/carbon/alien/IsAdvancedToolUser() return has_fine_manipulation -/mob/living/carbon/alien/Stat() - ..() - - if(statpanel("Status")) - stat(null, "Intent: [a_intent]") +/mob/living/carbon/alien/get_status_tab_items() + . = ..() + . += "Intent: [a_intent]" /mob/living/carbon/alien/getTrail() if(getBruteLoss() < 200) diff --git a/code/modules/mob/living/carbon/alien/emote.dm b/code/modules/mob/living/carbon/alien/emote.dm index 0ab448d2c5..963981b51e 100644 --- a/code/modules/mob/living/carbon/alien/emote.dm +++ b/code/modules/mob/living/carbon/alien/emote.dm @@ -1,6 +1,3 @@ -/datum/emote/living/alien - mob_type_allowed_typecache = list(/mob/living/carbon/alien) - /datum/emote/living/alien/gnarl key = "gnarl" key_third_person = "gnarls" diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 3827aef8c1..399efc4b29 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -148,10 +148,10 @@ Doesn't work on other aliens/AI.*/ action_icon_state = "alien_acid" /obj/effect/proc_holder/alien/acid/on_gain(mob/living/carbon/user) - user.verbs.Add(/mob/living/carbon/proc/corrosive_acid) + add_verb(user, /mob/living/carbon/proc/corrosive_acid) /obj/effect/proc_holder/alien/acid/on_lose(mob/living/carbon/user) - user.verbs.Remove(/mob/living/carbon/proc/corrosive_acid) + remove_verb(user, /mob/living/carbon/proc/corrosive_acid) /obj/effect/proc_holder/alien/acid/proc/corrode(atom/target,mob/living/carbon/user = usr) if(target in oview(1,user)) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 93050a4f9d..8f0ef2b384 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -30,10 +30,9 @@ ..() //This needs to be fixed -/mob/living/carbon/alien/larva/Stat() - ..() - if(statpanel("Status")) - stat(null, "Progress: [amount_grown]/[max_grown]") +/mob/living/carbon/alien/larva/get_status_tab_items() + . = ..() + . += "Progress: [amount_grown]/[max_grown]" /mob/living/carbon/alien/larva/adjustPlasma(amount) if(stat != DEAD && amount > 0) diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm index d63686691d..0a2434055f 100644 --- a/code/modules/mob/living/carbon/alien/life.dm +++ b/code/modules/mob/living/carbon/alien/life.dm @@ -40,9 +40,6 @@ if(move_delay_add > 0) move_delay_add = max(0, move_delay_add - rand(1, 2)) -/mob/living/carbon/alien/handle_changeling() - return - /mob/living/carbon/alien/handle_fire()//Aliens on fire code if(..()) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index edb681e60f..1706763f6b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -87,7 +87,7 @@ if(user != src && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)) for(var/datum/surgery/S in surgeries) if(S.next_step(user,user.a_intent)) - return 1 + return STOP_ATTACK_PROC_CHAIN if(!all_wounds || !(user.a_intent == INTENT_HELP || user == src)) return ..() @@ -95,7 +95,7 @@ for(var/i in shuffle(all_wounds)) var/datum/wound/W = i if(W.try_treating(I, user)) - return 1 + return STOP_ATTACK_PROC_CHAIN return ..() @@ -481,16 +481,17 @@ var/turf/target = get_turf(loc) I.safe_throw_at(target,I.throw_range,I.throw_speed,src, force = move_force) -/mob/living/carbon/Stat() - ..() - if(statpanel("Status")) - var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) - if(vessel) - stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") - if(locate(/obj/item/assembly/health) in src) - stat(null, "Health: [health]") +/mob/living/carbon/get_status_tab_items() + . = ..() + var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) + if(vessel) + . += "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]" + if(locate(/obj/item/assembly/health) in src) + . += "Health: [health]" - add_abilities_to_panel() +/mob/living/carbon/get_proc_holders() + . = ..() + . += add_abilities_to_panel() /mob/living/carbon/attack_ui(slot) if(!has_hand_for_held_index(active_hand_index)) diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index e3512e3929..49501e0315 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -1,6 +1,3 @@ -/datum/emote/living/carbon - mob_type_allowed_typecache = list(/mob/living/carbon) - /datum/emote/living/carbon/airguitar key = "airguitar" message = "is strumming the air and headbanging like a safari chimp." @@ -22,7 +19,6 @@ muzzle_ignore = TRUE restraint_check = TRUE emote_type = EMOTE_AUDIBLE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/carbon/clap/run_emote(mob/living/user, params) . = ..() @@ -41,7 +37,6 @@ key = "gnarl" key_third_person = "gnarls" message = "gnarls and shows its teeth..." - mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien) /datum/emote/living/carbon/moan key = "moan" @@ -55,27 +50,23 @@ key = "roll" key_third_person = "rolls" message = "rolls." - mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien) restraint_check = TRUE /datum/emote/living/carbon/scratch key = "scratch" key_third_person = "scratches" message = "scratches." - mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien) restraint_check = TRUE /datum/emote/living/carbon/screech key = "screech" key_third_person = "screeches" message = "screeches." - mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien) /datum/emote/living/carbon/sign key = "sign" key_third_person = "signs" message_param = "signs the number %t." - mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien) restraint_check = TRUE /datum/emote/living/carbon/sign/select_param(mob/user, params) @@ -87,13 +78,11 @@ key = "signal" key_third_person = "signals" message_param = "raises %t fingers." - mob_type_allowed_typecache = list(/mob/living/carbon/human) restraint_check = TRUE /datum/emote/living/carbon/tail key = "tail" message = "waves their tail." - mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien) /datum/emote/living/carbon/wink key = "wink" diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 2f5c94b784..ed1ba3852f 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -18,6 +18,9 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) /mob/living/carbon/human/dummy/Life() return +/mob/living/carbon/human/dummy/update_mobility() + return + /mob/living/carbon/human/dummy/proc/wipe_state() delete_equipment() icon_render_key = null diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index cb0dbef332..837b4f73cf 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -1,12 +1,14 @@ -/datum/emote/living/carbon/human - mob_type_allowed_typecache = list(/mob/living/carbon/human) - /datum/emote/living/carbon/human/cry key = "cry" key_third_person = "cries" message = "cries." emote_type = EMOTE_AUDIBLE +/datum/emote/living/carbon/human/cry/run_emote(mob/user, params) + . = ..() + if(. && isipcperson(user)) + do_fake_sparks(5,FALSE,user) + /datum/emote/living/carbon/human/dap key = "dap" key_third_person = "daps" @@ -187,3 +189,71 @@ key_third_person = "chimes" message = "chimes." sound = 'sound/machines/chime.ogg' + +//rock paper scissors emote handling +/mob/living/carbon/human/proc/beginRockPaperScissors(var/chosen_move) + GLOB.rockpaperscissors_players[src] = list(chosen_move, ROCKPAPERSCISSORS_NOT_DECIDED) + do_after_advanced(src, ROCKPAPERSCISSORS_TIME_LIMIT, src, DO_AFTER_REQUIRES_USER_ON_TURF|DO_AFTER_NO_COEFFICIENT|DO_AFTER_NO_PROGRESSBAR|DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER, CALLBACK(src, .proc/rockpaperscissors_tick)) + var/new_entry = GLOB.rockpaperscissors_players[src] + if(new_entry[2] == ROCKPAPERSCISSORS_NOT_DECIDED) + to_chat(src, "You put your hand back down.") + GLOB.rockpaperscissors_players -= src + +/mob/living/carbon/human/proc/rockpaperscissors_tick() //called every cycle of the progress bar for rock paper scissors while waiting for an opponent + var/mob/living/carbon/human/opponent + for(var/mob/living/carbon/human/potential_opponent in (GLOB.rockpaperscissors_players - src)) //dont play against yourself + if(get_dist(src, potential_opponent) <= ROCKPAPERSCISSORS_RANGE) + opponent = potential_opponent + break + if(opponent) + //we found an opponent before they found us + var/move_to_number = list("rock" = 0, "paper" = 1, "scissors" = 2) + var/our_move = move_to_number[GLOB.rockpaperscissors_players[src][1]] + var/their_move = move_to_number[GLOB.rockpaperscissors_players[opponent][1]] + var/result_us = ROCKPAPERSCISSORS_WIN + var/result_them = ROCKPAPERSCISSORS_LOSE + if(our_move == their_move) + result_us = ROCKPAPERSCISSORS_TIE + result_them = ROCKPAPERSCISSORS_TIE + else + if(((our_move + 1) % 3) == their_move) + result_us = ROCKPAPERSCISSORS_LOSE + result_them = ROCKPAPERSCISSORS_WIN + //we decided our results so set them in the list + GLOB.rockpaperscissors_players[src][2] = result_us + GLOB.rockpaperscissors_players[opponent][2] = result_them + + //show what happened + src.visible_message("[src] makes [GLOB.rockpaperscissors_players[src][1]] with their hand!") + opponent.visible_message("[opponent] makes [GLOB.rockpaperscissors_players[opponent][1]] with their hands!") + switch(result_us) + if(ROCKPAPERSCISSORS_TIE) + src.visible_message("It was a tie!") + if(ROCKPAPERSCISSORS_WIN) + src.visible_message("[src] wins!") + if(ROCKPAPERSCISSORS_LOSE) + src.visible_message("[opponent] wins!") + + //make the progress bar end so that each player can handle the result + return DO_AFTER_STOP + + //no opponent was found, so keep searching + return DO_AFTER_PROCEED + +//the actual emotes +/datum/emote/living/carbon/human/rockpaperscissors + message = "is attempting to play rock paper scissors!" + +/datum/emote/living/carbon/human/rockpaperscissors/rock + key = "rock" + +/datum/emote/living/carbon/human/rockpaperscissors/paper + key = "paper" + +/datum/emote/living/carbon/human/rockpaperscissors/scissors + key = "scissors" + +/datum/emote/living/carbon/human/rockpaperscissors/run_emote(mob/living/carbon/human/user, params) + if(!(user in GLOB.rockpaperscissors_players)) //no using the emote again while already playing! + . = ..() + user.beginRockPaperScissors(key) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 65b2931e08..6af171568b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -92,7 +92,7 @@ if(!(SLOT_GLASSES in obscured)) if(glasses) . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." - else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES)) + else if((left_eye_color == BLOODCULT_EYE || right_eye_color == BLOODCULT_EYE) && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES)) . += "[t_His] eyes are glowing an unnatural red!" else if(HAS_TRAIT(src, TRAIT_HIJACKER)) var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack) @@ -113,14 +113,14 @@ . += effects_exam //CIT CHANGES START HERE - adds genital details to examine text - if(LAZYLEN(internal_organs)) + if(LAZYLEN(internal_organs) && CHECK_BITFIELD(user.client?.prefs.cit_toggles, GENITAL_EXAMINE)) for(var/obj/item/organ/genital/dicc in internal_organs) if(istype(dicc) && dicc.is_exposed()) . += "[dicc.desc]" - - var/cursed_stuff = attempt_vr(src,"examine_bellies",args) //vore Code - if(cursed_stuff) - . += cursed_stuff + if(CHECK_BITFIELD(user.client?.prefs.cit_toggles, VORE_EXAMINE)) + var/cursed_stuff = attempt_vr(src,"examine_bellies",args) //vore Code + if(cursed_stuff) + . += cursed_stuff //END OF CIT CHANGES //Jitters diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 38b420aaba..389787df67 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -6,10 +6,11 @@ appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE /mob/living/carbon/human/Initialize() - verbs += /mob/living/proc/mob_sleep - verbs += /mob/living/proc/lay_down - verbs += /mob/living/carbon/human/proc/underwear_toggle //fwee - + add_verb(src, /mob/living/proc/mob_sleep) + add_verb(src, /mob/living/proc/lay_down) + add_verb(src, /mob/living/carbon/human/verb/underwear_toggle) + add_verb(src, /mob/living/verb/subtle) + add_verb(src, /mob/living/verb/subtler) //initialize limbs first create_bodyparts() @@ -61,55 +62,51 @@ //...and display them. add_to_all_human_data_huds() -/mob/living/carbon/human/Stat() - ..() - - if(statpanel("Status")) - stat(null, "Intent: [a_intent]") - stat(null, "Move Mode: [m_intent]") - if (internal) - if (!internal.air_contents) - qdel(internal) - else - stat("Internal Atmosphere Info", internal.name) - stat("Tank Pressure", internal.air_contents.return_pressure()) - stat("Distribution Pressure", internal.distribute_pressure) - - if(mind) - var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling) - stat("Chemical Storage", "[changeling.chem_charges]/[changeling.chem_storage]") - stat("Absorbed DNA", changeling.absorbedcount) - - +/mob/living/carbon/human/get_status_tab_items() + . = ..() + . += "Intent: [a_intent]" + . += "Move Mode: [m_intent]" + if(internal) + if(!internal.air_contents) + qdel(internal) + else + . += "" + . += "Internal Atmosphere Info: [internal.name]" + . += "Tank Pressure: [internal.air_contents.return_pressure()]" + . += "Distribution Pressure: [internal.distribute_pressure]" + if(mind) + var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) + if(changeling) + . += "" + . += "Chemical Storage: [changeling.chem_charges]/[changeling.chem_storage]" + . += "Absorbed DNA: [changeling.absorbedcount]" //NINJACODE if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)) //Only display if actually a ninja. var/obj/item/clothing/suit/space/space_ninja/SN = wear_suit - if(statpanel("SpiderOS")) - stat("SpiderOS Status:","[SN.s_initialized ? "Initialized" : "Disabled"]") - stat("Current Time:", "[STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)]") - if(SN.s_initialized) - //Suit gear - stat("Energy Charge:", "[round(SN.cell.charge/100)]%") - stat("Smoke Bombs:", "\Roman [SN.s_bombs]") - //Ninja status - stat("Fingerprints:", "[md5(dna.uni_identity)]") - stat("Unique Identity:", "[dna.unique_enzymes]") - stat("Overall Status:", "[stat > 1 ? "dead" : "[health]% healthy"]") - stat("Nutrition Status:", "[nutrition]") - stat("Oxygen Loss:", "[getOxyLoss()]") - stat("Toxin Levels:", "[getToxLoss()]") - stat("Burn Severity:", "[getFireLoss()]") - stat("Brute Trauma:", "[getBruteLoss()]") - stat("Radiation Levels:","[radiation] rad") - stat("Body Temperature:","[bodytemperature-T0C] degrees C ([bodytemperature*1.8-459.67] degrees F)") + . += "SpiderOS Status: [SN.s_initialized ? "Initialized" : "Disabled"]" + . += "Current Time: [STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)]" + if(SN.s_initialized) + //Suit gear + . += "Energy Charge: [round(SN.cell.charge/100)]%" + . += "Smoke Bombs: \Roman [SN.s_bombs]" + //Ninja status + . += "Fingerprints: [md5(dna.uni_identity)]" + . += "Unique Identity: [dna.unique_enzymes]" + . += "Overall Status: [stat > 1 ? "dead" : "[health]% healthy"]" + . += "Nutrition Status: [nutrition]" + . += "Oxygen Loss: [getOxyLoss()]" + . += "Toxin Levels: [getToxLoss()]" + . += "Burn Severity: [getFireLoss()]" + . += "Brute Trauma: [getBruteLoss()]" + . += "Radiation Levels: [radiation] rad" + . += "Body Temperature: [bodytemperature-T0C] degrees C ([bodytemperature*1.8-459.67] degrees F)" - //Diseases - if(diseases.len) - stat("Viruses:", null) - for(var/thing in diseases) - var/datum/disease/D = thing - stat("*", "[D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]") + //Diseases + if(length(diseases)) + . += "Viruses:" + for(var/thing in diseases) + var/datum/disease/D = thing + . += "* [D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]" /mob/living/carbon/human/show_inv(mob/user) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 18501b4ca2..96fda36370 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -407,18 +407,16 @@ if(. & EMP_PROTECT_CONTENTS) return var/informed = FALSE + if(isrobotic(src)) + apply_status_effect(/datum/status_effect/no_combat_mode/robotic_emp, severity / 20) + severity *= 0.5 for(var/obj/item/bodypart/L in src.bodyparts) if(L.status == BODYPART_ROBOTIC) if(!informed) to_chat(src, "You feel a sharp pain as your robotic limbs overload.") informed = TRUE - switch(severity) - if(1) - L.receive_damage(0,10) - Stun(200) - if(2) - L.receive_damage(0,5) - Stun(100) + L.receive_damage(0,severity/10) + Stun(severity*2) /mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) var/list/damaged = list() diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 13456ed61c..a6a3f408dc 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -24,7 +24,8 @@ var/facial_hair_style = "Shaved" //Eye colour - var/eye_color = "000" + var/left_eye_color = "000" + var/right_eye_color = "000" var/skin_tone = "caucasian1" //Skin tone diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index af95b9e1b7..5f30d902b1 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -75,12 +75,8 @@ . = pda.owner else if(istype(tablet)) var/obj/item/computer_hardware/card_slot/card_slot = tablet.all_components[MC_CARD] - if(card_slot && (card_slot.stored_card2 || card_slot.stored_card)) - if(card_slot.stored_card2) //The second card is the one used for authorization in the ID changing program, so we prioritize it here for consistency - . = card_slot.stored_card2.registered_name - else - if(card_slot.stored_card) - . = card_slot.stored_card.registered_name + if(card_slot?.stored_card) + . = card_slot.stored_card.registered_name if(!.) . = if_no_id //to prevent null-names making the mob unclickable return diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 56ab1f1b10..68e8c5ac29 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -96,6 +96,8 @@ throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else if(S.breathid == "n2") throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro) + else if(S.breathid == "ch3br") + throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br) return FALSE else diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 230a634e0e..554013c7bc 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /// Our default override for typing indicator state var/typing_indicator_state + //the ids you can use for your species, if empty, it means default only and not changeable + var/list/allowed_limb_ids + /////////// // PROCS // /////////// @@ -121,7 +124,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/New() if(!limbs_id) //if we havent set a limbs id to use, just use our own id - limbs_id = id + mutant_bodyparts["limbs_id"] = id //done this way to be non-intrusive to the existing system + else + mutant_bodyparts["limbs_id"] = limbs_id ..() //update our mutant bodyparts to include unlocked ones @@ -359,8 +364,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod) + if(ROBOTIC_LIMBS in species_traits) + for(var/obj/item/bodypart/B in C.bodyparts) + B.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) // Makes all Bodyparts robotic. + B.render_like_organic = TRUE + SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) +/datum/species/proc/update_species_slowdown(mob/living/carbon/human/H) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod) // EDIT ENDS @@ -397,6 +409,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(F) qdel(F) + + if(ROBOTIC_LIMBS in species_traits) + for(var/obj/item/bodypart/B in C.bodyparts) + B.change_bodypart_status(BODYPART_ORGANIC, FALSE, TRUE) + B.render_like_organic = FALSE + SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) @@ -417,7 +435,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/dynamic_fhair_suffix = "" //for augmented heads - if(HD.status == BODYPART_ROBOTIC) + if(HD.status == BODYPART_ROBOTIC && !HD.render_like_organic) return //we check if our hat or helmet hides our facial hair. @@ -565,19 +583,21 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) // eyes if(!(NOEYES in species_traits)) var/has_eyes = H.getorganslot(ORGAN_SLOT_EYES) - var/mutable_appearance/eye_overlay if(!has_eyes) - eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) + standing += mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) else - eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER) - if((EYECOLOR in species_traits) && has_eyes) - eye_overlay.color = "#" + H.eye_color - - if(OFFSET_EYES in H.dna.species.offset_features) - eye_overlay.pixel_x += H.dna.species.offset_features[OFFSET_EYES][1] - eye_overlay.pixel_y += H.dna.species.offset_features[OFFSET_EYES][2] - - standing += eye_overlay + var/mutable_appearance/left_eye = mutable_appearance('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER) + var/mutable_appearance/right_eye = mutable_appearance('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER) + if((EYECOLOR in species_traits) && has_eyes) + left_eye.color = "#" + H.left_eye_color + right_eye.color = "#" + H.right_eye_color + if(OFFSET_EYES in offset_features) + left_eye.pixel_x += offset_features[OFFSET_EYES][1] + left_eye.pixel_y += offset_features[OFFSET_EYES][2] + right_eye.pixel_x += offset_features[OFFSET_EYES][1] + right_eye.pixel_y += offset_features[OFFSET_EYES][2] + standing += left_eye + standing += right_eye //Underwear, Undershirts & Socks if(!(NO_UNDERWEAR in species_traits)) @@ -778,7 +798,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(FACEHAIR) accessory_overlay.color = "#[H.facial_hair_color]" if(EYECOLOR) - accessory_overlay.color = "#[H.eye_color]" + accessory_overlay.color = "#[H.left_eye_color]" if(HORNCOLOR) accessory_overlay.color = "#[H.dna.features["horns_color"]]" if(WINGCOLOR) @@ -833,7 +853,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(FACEHAIR) extra_accessory_overlay.color = "#[H.facial_hair_color]" if(EYECOLOR) - extra_accessory_overlay.color = "#[H.eye_color]" + extra_accessory_overlay.color = "#[H.left_eye_color]" if(HORNCOLOR) extra_accessory_overlay.color = "#[H.dna.features["horns_color"]]" @@ -1374,6 +1394,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(user.zone_selected)) + if(!affecting) //Maybe the bodypart is missing? Or things just went wrong.. + affecting = target.get_bodypart(BODY_ZONE_CHEST) //target chest instead, as failsafe. Or hugbox? You decide. + var/miss_chance = 100//calculate the odds that a punch misses entirely. considers stamina and brute damage of the puncher. punches miss by default to prevent weird cases if(attackchain_flags & ATTACK_IS_PARRY_COUNTERATTACK) miss_chance = 0 @@ -1589,6 +1612,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H, attackchain_flags = NONE, damage_multiplier = 1) var/totitemdamage = H.pre_attacked_by(I, user) * damage_multiplier + + if(!affecting) //Something went wrong. Maybe the limb is missing? + affecting = H.get_bodypart(BODY_ZONE_CHEST) //If the limb is missing, or something went terribly wrong, just hit the chest instead + // Allows you to put in item-specific reactions based on species if(user != H) var/list/block_return = list() @@ -1600,8 +1627,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return 0 var/hit_area - if(!affecting) //Something went wrong. Maybe the limb is missing? - affecting = H.bodyparts[1] hit_area = affecting.name var/def_zone = affecting.body_zone @@ -1951,19 +1976,19 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.adjust_bodytemperature(natural*(1/(thermal_protection+1)) + min(thermal_protection * (loc_temp - H.bodytemperature) / BODYTEMP_HEAT_DIVISOR, BODYTEMP_HEATING_MAX)) switch((loc_temp - H.bodytemperature)*thermal_protection) if(-INFINITY to -50) - H.throw_alert("temp", /obj/screen/alert/cold, 3) + H.throw_alert("tempfeel", /obj/screen/alert/cold, 3) if(-50 to -35) - H.throw_alert("temp", /obj/screen/alert/cold, 2) + H.throw_alert("tempfeel", /obj/screen/alert/cold, 2) if(-35 to -20) - H.throw_alert("temp", /obj/screen/alert/cold, 1) + H.throw_alert("tempfeel", /obj/screen/alert/cold, 1) if(-20 to 0) //This is the sweet spot where air is considered normal - H.clear_alert("temp") + H.clear_alert("tempfeel") if(0 to 15) //When the air around you matches your body's temperature, you'll start to feel warm. - H.throw_alert("temp", /obj/screen/alert/hot, 1) + H.throw_alert("tempfeel", /obj/screen/alert/hot, 1) if(15 to 30) - H.throw_alert("temp", /obj/screen/alert/hot, 2) + H.throw_alert("tempfeel", /obj/screen/alert/hot, 2) if(30 to INFINITY) - H.throw_alert("temp", /obj/screen/alert/hot, 3) + H.throw_alert("tempfeel", /obj/screen/alert/hot, 3) // +/- 50 degrees from 310K is the 'safe' zone, where no damage is dealt. if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTHEAT)) @@ -1981,6 +2006,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else firemodifier = min(firemodifier, 0) burn_damage = max(log(2-firemodifier,(H.bodytemperature-BODYTEMP_NORMAL))-5,0) // this can go below 5 at log 2.5 + if (burn_damage) + switch(burn_damage) + if(0 to 2) + H.throw_alert("temp", /obj/screen/alert/sweat, 1) + if(2 to 4) + H.throw_alert("temp", /obj/screen/alert/sweat, 2) + else + H.throw_alert("temp", /obj/screen/alert/sweat, 3) burn_damage = burn_damage * heatmod * H.physiology.heat_mod if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4) //40% for level 3 damage on humans H.emote("scream") @@ -1993,14 +2026,18 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) switch(H.bodytemperature) if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) + H.throw_alert("temp", /obj/screen/alert/shiver, 1) H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod*H.physiology.cold_mod, BURN) if(120 to 200) + H.throw_alert("temp", /obj/screen/alert/shiver, 2) H.apply_damage(COLD_DAMAGE_LEVEL_2*coldmod*H.physiology.cold_mod, BURN) else + H.throw_alert("temp", /obj/screen/alert/shiver, 3) H.apply_damage(COLD_DAMAGE_LEVEL_3*coldmod*H.physiology.cold_mod, BURN) else H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) + H.clear_alert("temp") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index c5b57b82ab..5d43d18429 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -2,7 +2,7 @@ name = "Android" id = "android" say_mod = "states" - species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) + species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL,ROBOTIC_LIMBS) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID meat = null diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 2cf054c7b9..3cae574a90 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -141,4 +141,5 @@ H.setMovetype(H.movement_type & ~FLYING) override_float = FALSE H.pass_flags &= ~PASSTABLE - H.CloseWings() \ No newline at end of file + H.CloseWings() + update_species_slowdown(H) diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 2a955e28a4..16b371c772 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -13,10 +13,11 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/insect liked_food = MEAT | FRUIT disliked_food = TOXIC - icon_limbs = DEFAULT_BODYPART_ICON_CITADEL exotic_bloodtype = "BUG" exotic_blood_color = BLOOD_COLOR_BUG tail_type = "mam_tail" wagging_type = "mam_waggingtail" - species_type = "insect" \ No newline at end of file + species_type = "insect" + + allowed_limb_ids = list("insect","apid","moth","moth_not_greyscale") diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index d8dfe63b35..f3b499093b 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -83,17 +83,7 @@ /obj/item/organ/tongue/dullahan zone = "abstract" - modifies_speech = TRUE - -/obj/item/organ/tongue/dullahan/handle_speech(datum/source, list/speech_args) - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - if(isdullahan(H)) - var/datum/species/dullahan/D = H.dna.species - if(isobj(D.myhead.loc)) - var/obj/O = D.myhead.loc - O.say(speech_args[SPEECH_MESSAGE]) - speech_args[SPEECH_MESSAGE] = "" + accents = list(/datum/accent/dullahan) /obj/item/organ/ears/dullahan zone = "abstract" diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index cd9b3b80c7..c182defda4 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -84,11 +84,7 @@ EMPeffect = TRUE spec_updatehealth(H) to_chat(H, "You feel the light of your body leave you.") - switch(severity) - if(EMP_LIGHT) - addtimer(CALLBACK(src, .proc/stop_emp, H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds - if(EMP_HEAVY) - addtimer(CALLBACK(src, .proc/stop_emp, H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds + addtimer(CALLBACK(src, .proc/stop_emp, H), (severity/5) SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //lights out /datum/species/ethereal/proc/on_emag_act(mob/living/carbon/human/H, mob/user) if(emageffect) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 7706d4a9d5..534536d6e7 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -2,7 +2,6 @@ name = "Anthromorph" id = "mammal" default_color = "4B4B4B" - icon_limbs = DEFAULT_BODYPART_ICON_CITADEL species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR,HAS_FLESH,HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BEAST mutant_bodyparts = list("mcolor" = "FFFFFF","mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "deco_wings" = "None", @@ -17,3 +16,5 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" species_type = "furry" + + allowed_limb_ids = list("mammal","aquatic","avian") \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 3aef14c256..9bfe661f47 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -3,21 +3,28 @@ id = "ipc" say_mod = "beeps" default_color = "00FF00" - icon_limbs = DEFAULT_BODYPART_ICON_CITADEL blacklisted = 0 sexes = 0 - species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING,HAS_FLESH,HAS_BONE) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD) + species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING,HAS_FLESH,HAS_BONE,HAIR,ROBOTIC_LIMBS) + hair_alpha = 210 inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutant_bodyparts = list("ipc_screen" = "Blank", "ipc_antenna" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) - mutanttongue = /obj/item/organ/tongue/robot/ipc -//Just robo looking parts. + + //Just robo looking parts. mutant_heart = /obj/item/organ/heart/ipc mutantlungs = /obj/item/organ/lungs/ipc mutantliver = /obj/item/organ/liver/ipc mutantstomach = /obj/item/organ/stomach/ipc mutanteyes = /obj/item/organ/eyes/ipc + mutantears = /obj/item/organ/ears/ipc + mutanttongue = /obj/item/organ/tongue/robot/ipc + mutant_brain = /obj/item/organ/brain/ipc + + //special cybernetic organ for getting power from apcs + mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) exotic_bloodtype = "HF" exotic_blood_color = BLOOD_COLOR_OIL diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 49c55f70b3..a2c3248c6a 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -18,7 +18,8 @@ var/datum/action/innate/regenerate_limbs/regenerate_limbs var/datum/action/innate/slime_change/slime_change //CIT CHANGE liked_food = TOXIC | MEAT - toxic_food = null + disliked_food = null + toxic_food = ANTITOXIC coldmod = 6 // = 3x cold damage heatmod = 0.5 // = 1/4x heat damage burnmod = 0.5 // = 1/2x generic burn damage @@ -248,6 +249,8 @@ var/mob/living/carbon/human/spare = new /mob/living/carbon/human(H.loc) spare.underwear = "Nude" + spare.undershirt = "Nude" + spare.socks = "Nude" H.dna.transfer_identity(spare, transfer_SE=1) spare.dna.features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") spare.real_name = spare.dna.real_name @@ -271,7 +274,17 @@ \"steps out\" of [H.p_them()].
    ", "...and after a moment of disorentation, \ you're besides yourself!") - + if(H != spare && isslimeperson(spare) && isslimeperson(H)) + // transfer the swap-body ui if it's open + var/datum/action/innate/swap_body/this_swap = origin_datum.swap_body + var/datum/action/innate/swap_body/other_swap = spare_datum.swap_body + var/datum/tgui/ui = SStgui.get_open_ui(H, this_swap, "main") || SStgui.get_open_ui(spare, this_swap, "main") + if(ui) + SStgui.on_close(ui) // basically removes it from lists is all this proc does. + ui.user = spare + ui.src_object = other_swap + SStgui.on_open(ui) // stick it back on the lists + ui.process(force = TRUE) /datum/action/innate/swap_body name = "Swap Body" @@ -324,6 +337,8 @@ stat = "Conscious" if(UNCONSCIOUS) stat = "Unconscious" + if(SOFT_CRIT) + stat = "Barely Conscious" if(DEAD) stat = "Dead" var/occupied @@ -370,7 +385,6 @@ var/mob/living/carbon/human/selected = locate(params["ref"]) in SS.bodies if(!can_swap(selected)) return - SStgui.close_uis(src) swap_to_dupe(H.mind, selected) /datum/action/innate/swap_body/proc/can_swap(mob/living/carbon/human/dupe) @@ -404,6 +418,7 @@ /datum/action/innate/swap_body/proc/swap_to_dupe(datum/mind/M, mob/living/carbon/human/dupe) if(!can_swap(dupe)) //sanity check return + var/mob/living/carbon/human/old = M.current if(M.current.stat == CONSCIOUS) M.current.visible_message("[M.current] \ stops moving and starts staring vacantly into space.", @@ -415,7 +430,20 @@ dupe.visible_message("[dupe] blinks and looks \ around.", "...and move this one instead.") - + if(old != M.current && dupe == M.current && isslimeperson(dupe)) + var/datum/species/jelly/slime/other_spec = dupe.dna.species + var/datum/action/innate/swap_body/other_swap = other_spec.swap_body + // theoretically the transfer_to proc is supposed to transfer the ui from the mob. + // so I try to get the UI from one of the two mobs and schlump it over to the new action button + var/datum/tgui/ui = SStgui.get_open_ui(old, src, "main") || SStgui.get_open_ui(dupe, src, "main") + if(ui) + // transfer the UI over. This code is slightly hacky but it fixes the problem + // I'd use SStgui.on_transfer but that doesn't let you transfer the src_object as well s + SStgui.on_close(ui) // basically removes it from lists is all this proc does. + ui.user = dupe + ui.src_object = other_swap + SStgui.on_open(ui) // stick it back on the lists + ui.process(force = TRUE) ////////////////////////////////////////////////////////Round Start Slimes/////////////////////////////////////////////////////////////////// @@ -434,6 +462,8 @@ heatmod = 1 burnmod = 1 + allowed_limb_ids = list("slime","stargazer","lum") + /datum/action/innate/slime_change name = "Alter Form" check_flags = AB_CHECK_CONSCIOUS @@ -461,7 +491,7 @@ var/new_color = input(owner, "Choose your skin color:", "Race change","#"+H.dna.features["mcolor"]) as color|null if(new_color) var/temp_hsv = RGBtoHSV(new_color) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright + if(ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) // mutantcolors must be bright H.dna.features["mcolor"] = sanitize_hexcolor(new_color, 6) H.update_body() H.update_hair() diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index f5a2f807e4..0f62953e6c 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -21,6 +21,8 @@ species_type = "plant" + allowed_limb_ids = list("pod","mush") + /datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() C.faction |= "plants" diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 228a69c30f..a7d9ce4473 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -184,7 +184,7 @@ else if(isliving(AM)) var/mob/living/L = AM if(isethereal(AM)) - AM.emp_act(EMP_LIGHT) + AM.emp_act(50) if(iscyborg(AM)) var/mob/living/silicon/robot/borg = AM if(borg.lamp_intensity) diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 173411eaa1..b446e3796e 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -1,21 +1,26 @@ /datum/species/synthliz name = "Synthetic Lizardperson" id = "synthliz" - icon_limbs = DEFAULT_BODYPART_ICON_CITADEL say_mod = "beeps" default_color = "00FF00" - species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,HAS_FLESH,HAS_BONE) + species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutant_bodyparts = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) - mutanttongue = /obj/item/organ/tongue/robot/ipc //Just robo looking parts. mutant_heart = /obj/item/organ/heart/ipc mutantlungs = /obj/item/organ/lungs/ipc mutantliver = /obj/item/organ/liver/ipc mutantstomach = /obj/item/organ/stomach/ipc mutanteyes = /obj/item/organ/eyes/ipc + mutantears = /obj/item/organ/ears/ipc + mutanttongue = /obj/item/organ/tongue/robot/ipc + mutant_brain = /obj/item/organ/brain/ipc + + //special cybernetic organ for getting power from apcs + mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) exotic_bloodtype = "S" exotic_blood_color = BLOOD_COLOR_OIL diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index c10521dfd9..3d55ce1027 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -61,7 +61,7 @@ mutant_organs = S.mutant_organs.Copy() nojumpsuit = S.nojumpsuit no_equip = S.no_equip.Copy() - limbs_id = S.limbs_id + limbs_id = S.mutant_bodyparts["limbs_id"] use_skintones = S.use_skintones fixed_mut_color = S.fixed_mut_color hair_color = S.hair_color diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 723c4848fe..857fb6d8ed 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -114,6 +114,14 @@ #undef VAMP_DRAIN_AMOUNT + +/mob/living/carbon/get_status_tab_items() + . = ..() + var/obj/item/organ/heart/vampire/darkheart = getorgan(/obj/item/organ/heart/vampire) + if(darkheart) + . += "Current blood level: [blood_volume]/[BLOOD_VOLUME_MAXIMUM]." + + /obj/item/organ/heart/vampire name = "vampire heart" actions_types = list(/datum/action/item_action/organ_action/vampire_heart) diff --git a/code/modules/mob/living/carbon/human/species_types/xeno.dm b/code/modules/mob/living/carbon/human/species_types/xeno.dm index db34d1ae45..ddd1c86f0a 100644 --- a/code/modules/mob/living/carbon/human/species_types/xeno.dm +++ b/code/modules/mob/living/carbon/human/species_types/xeno.dm @@ -4,7 +4,6 @@ id = "xeno" say_mod = "hisses" default_color = "00FF00" - icon_limbs = DEFAULT_BODYPART_ICON_CITADEL species_traits = list(MUTCOLORS,EYECOLOR,LIPS,CAN_SCAR) mutant_bodyparts = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") attack_verb = "slash" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e399ddf872..cfb35fbb00 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -660,7 +660,7 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if //produces a key based on the human's limbs /mob/living/carbon/human/generate_icon_render_key() - . = "[dna.species.limbs_id]" + . = "[dna.species.mutant_bodyparts["limbs_id"]]" if(dna.check_mutation(HULK)) . += "-coloured-hulk" @@ -758,17 +758,22 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if // eyes if(!(NOEYES in dna.species.species_traits)) var/has_eyes = getorganslot(ORGAN_SLOT_EYES) - var/mutable_appearance/eye_overlay if(!has_eyes) - eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) + add_overlay(mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)) else - eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER) - if((EYECOLOR in dna.species.species_traits) && has_eyes) - eye_overlay.color = "#" + eye_color - if(OFFSET_EYES in dna.species.offset_features) - eye_overlay.pixel_x += dna.species.offset_features[OFFSET_EYES][1] - eye_overlay.pixel_y += dna.species.offset_features[OFFSET_EYES][2] - add_overlay(eye_overlay) + var/mutable_appearance/left_eye = mutable_appearance('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER) + var/mutable_appearance/right_eye = mutable_appearance('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER) + if((EYECOLOR in dna.species.species_traits) && has_eyes) + left_eye.color = "#" + left_eye_color + right_eye.color = "#" + right_eye_color + if(OFFSET_EYES in dna.species.offset_features) + left_eye.pixel_x += dna.species.offset_features[OFFSET_EYES][1] + left_eye.pixel_y += dna.species.offset_features[OFFSET_EYES][2] + right_eye.pixel_x += dna.species.offset_features[OFFSET_EYES][1] + right_eye.pixel_y += dna.species.offset_features[OFFSET_EYES][2] + add_overlay(left_eye) + add_overlay(right_eye) + dna.species.handle_hair(src) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index e29c6b9ffe..8f181d47fd 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -1,8 +1,4 @@ /mob/living/carbon/BiologicalLife(seconds, times_fired) - //Updates the number of stored chemicals for powers - handle_changeling() - //Handles the unique mentabolism of bloodsuckers, look at /datum/antagonist/bloodsucker/proc/LifeTick() - handle_bloodsucker() //Reagent processing needs to come before breathing, to prevent edge cases. handle_organs() . = ..() // if . is false, we are dead. @@ -410,25 +406,7 @@ for(var/thing in all_wounds) var/datum/wound/W = thing if(W.processes) // meh - W.handle_process() - -//todo generalize this and move hud out -/mob/living/carbon/proc/handle_changeling() - if(mind && hud_used && hud_used.lingchemdisplay) - var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling) - changeling.regenerate() - hud_used.lingchemdisplay.invisibility = 0 - hud_used.lingchemdisplay.maptext = "
    [round(changeling.chem_charges)]
    " - else - hud_used.lingchemdisplay.invisibility = INVISIBILITY_ABSTRACT - - -/mob/living/carbon/proc/handle_bloodsucker() - if(mind && AmBloodsucker(src)) - var/datum/antagonist/bloodsucker/B = mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - B.LifeTick() - + W.handle_process() /mob/living/carbon/handle_mutations_and_radiation() if(dna && dna.temporary_mutations.len) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 5b91119789..1f3e0a1b81 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -18,8 +18,8 @@ hud_type = /datum/hud/monkey /mob/living/carbon/monkey/Initialize(mapload, cubespawned=FALSE, mob/spawner) - verbs += /mob/living/proc/mob_sleep - verbs += /mob/living/proc/lay_down + add_verb(src, /mob/living/proc/mob_sleep) + add_verb(src, /mob/living/proc/lay_down) if(unique_name) //used to exclude pun pun gender = pick(MALE, FEMALE) @@ -90,16 +90,16 @@ return add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_temperature_speedmod, TRUE, slow) -/mob/living/carbon/monkey/Stat() - ..() - if(statpanel("Status")) - stat(null, "Intent: [a_intent]") - stat(null, "Move Mode: [m_intent]") - if(client && mind) - var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling) - stat("Chemical Storage", "[changeling.chem_charges]/[changeling.chem_storage]") - stat("Absorbed DNA", changeling.absorbedcount) +/mob/living/carbon/monkey/get_status_tab_items() + . = ..() + . += "Intent: [a_intent]" + . += "Move Mode: [m_intent]" + if(client && mind) + var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) + if(changeling) + . += "" + . += "Chemical Storage: [changeling.chem_charges]/[changeling.chem_storage]" + . += "Absorbed DNA: [changeling.absorbedcount]" /mob/living/carbon/monkey/verb/removeinternal() diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index ad1a3bc9b9..fe5a78de21 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -8,8 +8,6 @@ spill_organs(no_brain, no_organs, no_bodyparts) - release_vore_contents(silent = TRUE) // return of the bomb safe internals. - if(!no_bodyparts) spread_bodyparts(no_brain, no_organs) @@ -46,7 +44,6 @@ buckled.unbuckle_mob(src, force = TRUE) dust_animation() - release_vore_contents(silent = TRUE) //technically grief protection, I guess? if they're SM'd it doesn't matter seconds after anyway. spawn_dust(just_ash) QDEL_IN(src,5) // since this is sometimes called in the middle of movement, allow half a second for movement to finish, ghosting to happen and animation to play. Looks much nicer and doesn't cause multiple runtimes. @@ -103,5 +100,5 @@ for(var/s in sharedSoullinks) var/datum/soullink/S = s S.sharerDies(gibbed) - + release_vore_contents(silent = TRUE) return TRUE diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 97de8bfd6c..1d78979cbd 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -1,14 +1,13 @@ - -/* EMOTE DATUMS */ -/datum/emote/living - mob_type_allowed_typecache = /mob/living - mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime, /mob/living/brain) - /datum/emote/living/blush key = "blush" key_third_person = "blushes" message = "blushes." +/datum/emote/living/blush/run_emote(mob/user, params) + . = ..() + if(. && isipcperson(user)) + do_fake_sparks(5,FALSE,user) + /datum/emote/living/bow key = "bow" key_third_person = "bows" @@ -228,6 +227,21 @@ return else if(isinsect(C)) playsound(C, 'sound/voice/moth/mothlaugh.ogg', 50, 1) + else if(isjellyperson(C)) + var/mob/living/carbon/human/H = C + if(H.dna.features["mam_ears"] == "Cat" || H.dna.features["mam_ears"] == "Cat, Big") //slime have cat ear. slime go nya. + playsound(C, pick('sound/voice/jelly/nyahaha1.ogg', + 'sound/voice/jelly/nyahaha2.ogg', + 'sound/voice/jelly/nyaha.ogg', + 'sound/voice/jelly/nyahehe.ogg'), + 50, 1) + return + else if(user.gender == FEMALE) + playsound(C, 'sound/voice/jelly/womanlaugh.ogg', 50, 1) + return + else + playsound(C, pick('sound/voice/jelly/manlaugh1.ogg', 'sound/voice/jelly/manlaugh2.ogg'), 50, 1) + return else if(ishumanbasic(C)) if(user.gender == FEMALE) playsound(C, 'sound/voice/human/womanlaugh.ogg', 50, 1) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 89321082c9..e7727fcedc 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -1,5 +1,5 @@ /** - * Called by SSmobs at (hopefully) an interval of 1 second. + * Called by SSmobs at an interval of 2 seconds. * Splits off into PhysicalLife() and BiologicalLife(). Override those instead of this. */ /mob/living/proc/Life(seconds, times_fired) @@ -43,6 +43,7 @@ * Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop. */ /mob/living/proc/BiologicalLife(seconds, times_fired) + SEND_SIGNAL(src,COMSIG_LIVING_BIOLOGICAL_LIFE, seconds, times_fired) handle_diseases()// DEAD check is in the proc itself; we want it to spread even if the mob is dead, but to handle its disease-y properties only if you're not. handle_wounds() @@ -78,6 +79,7 @@ * Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop. */ /mob/living/proc/PhysicalLife(seconds, times_fired) + SEND_SIGNAL(src,COMSIG_LIVING_PHYSICAL_LIFE, seconds, times_fired) if(digitalinvis) handle_diginvis() //AI becomes unable to see mob diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 2a461b5921..8dac56a8c9 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1163,8 +1163,10 @@ A.action.Remove(src) /mob/living/proc/add_abilities_to_panel() + var/list/L = list() for(var/obj/effect/proc_holder/A in abilities) - statpanel("[A.panel]",A.get_panel_text(),A) + L[++L.len] = list("[A.panel]",A.get_panel_text(),A.name,"[REF(A)]") + return L /mob/living/lingcheck() if(mind) diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm index b6706d0548..10dece1ffc 100644 --- a/code/modules/mob/living/living_active_parry.dm +++ b/code/modules/mob/living/living_active_parry.dm @@ -244,7 +244,14 @@ if((return_list[BLOCK_RETURN_MITIGATION_PERCENT] >= 100) || (damage <= 0)) . |= BLOCK_SUCCESS var/list/effect_text - if(efficiency >= data.parry_efficiency_to_counterattack) + var/pacifist_counter_check = TRUE + if(HAS_TRAIT(src, TRAIT_PACIFISM)) + switch(parrying) + if(ITEM_PARRY) + pacifist_counter_check = (!active_parry_item.force || active_parry_item.damtype == STAMINA) + else + pacifist_counter_check = FALSE //Both martial and unarmed counter attacks generally are harmful, so no need to have the same line twice. + if(efficiency >= data.parry_efficiency_to_counterattack && pacifist_counter_check) effect_text = run_parry_countereffects(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency) if(data.parry_flags & PARRY_DEFAULT_HANDLE_FEEDBACK) handle_parry_feedback(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, effect_text) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index aab741edd6..7ce1c1e7cc 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -23,6 +23,7 @@ a_intent = INTENT_HARM //so we always get pushed instead of trying to swap sight = SEE_TURFS | SEE_MOBS | SEE_OBJS see_in_dark = 8 + deathsound = 'sound/voice/scream/android_scream.ogg' hud_type = /datum/hud/ai med_hud = DATA_HUD_MEDICAL_BASIC sec_hud = DATA_HUD_SECURITY_BASIC @@ -139,7 +140,7 @@ spark_system.set_up(5, 0, src) spark_system.attach(src) - verbs += /mob/living/silicon/ai/proc/show_laws_verb + add_verb(src, /mob/living/silicon/ai/proc/show_laws_verb) aiPDA = new/obj/item/pda/ai(src) aiPDA.owner = name @@ -153,10 +154,10 @@ deploy_action.Grant(src) if(isturf(loc)) - verbs.Add(/mob/living/silicon/ai/proc/ai_network_change, \ + add_verb(src, list(/mob/living/silicon/ai/proc/ai_network_change, \ /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ /mob/living/silicon/ai/proc/botcall, /mob/living/silicon/ai/proc/control_integrated_radio, \ - /mob/living/silicon/ai/proc/set_automatic_say_channel) + /mob/living/silicon/ai/proc/set_automatic_say_channel)) GLOB.ai_list += src GLOB.shuttle_caller_list += src @@ -208,26 +209,26 @@ display_icon_override = ai_core_icon set_core_display_icon(ai_core_icon) -/mob/living/silicon/ai/Stat() - ..() - if(statpanel("Status")) - if(!stat) - stat(null, text("System integrity: [(health+100)/2]%")) - stat(null, text("Connected cyborgs: [connected_robots.len]")) - for(var/mob/living/silicon/robot/R in connected_robots) - var/robot_status = "Nominal" - if(R.shell) - robot_status = "AI SHELL" - else if(R.stat || !R.client) - robot_status = "OFFLINE" - else if(!R.cell || R.cell.charge <= 0) - robot_status = "DEPOWERED" - //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! - stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "Empty"] | \ - Module: [R.designation] | Loc: [get_area_name(R, TRUE)] | Status: [robot_status]")) - stat(null, text("AI shell beacons detected: [LAZYLEN(GLOB.available_ai_shells)]")) //Count of total AI shells - else - stat(null, text("Systems nonfunctional")) +/mob/living/silicon/ai/get_status_tab_items() + . = ..() + if(stat != CONSCIOUS) + . += text("Systems nonfunctional") + return + . += text("System integrity: [(health + 100) * 0.5]%") + . += text("Connected cyborgs: [length(connected_robots)]") + for(var/r in connected_robots) + var/mob/living/silicon/robot/connected_robot = r + var/robot_status = "Nominal" + if(connected_robot.shell) + robot_status = "AI SHELL" + else if(connected_robot.stat != CONSCIOUS || !connected_robot.client) + robot_status = "OFFLINE" + else if(!connected_robot.cell || connected_robot.cell.charge <= 0) + robot_status = "DEPOWERED" + //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! + . += text("[connected_robot.name] | S.Integrity: [connected_robot.health]% | Cell: [connected_robot.cell ? "[connected_robot.cell.charge]/[connected_robot.cell.maxcharge]" : "Empty"] | \ + Module: [connected_robot.designation] | Loc: [get_area_name(connected_robot, TRUE)] | Status: [robot_status]") + . += text("AI shell beacons detected: [LAZYLEN(GLOB.available_ai_shells)]") //Count of total AI shells /mob/living/silicon/ai/proc/ai_alerts() var/dat = "Current Station Alerts\n" @@ -858,7 +859,7 @@ to_chat(src, "In the top right corner of the screen you will find the Malfunctions tab, where you can purchase various abilities, from upgraded surveillance to station ending doomsday devices.") to_chat(src, "You are also capable of hacking APCs, which grants you more points to spend on your Malfunction powers. The drawback is that a hacked APC will give you away if spotted by the crew. Hacking an APC takes 60 seconds.") view_core() //A BYOND bug requires you to be viewing your core before your verbs update - verbs += /mob/living/silicon/ai/proc/choose_modules + add_verb(src, /mob/living/silicon/ai/proc/choose_modules) malf_picker = new /datum/module_picker diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index 9cefa7a12f..b05b5f1aaf 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -19,13 +19,14 @@ . = ..() if(. & EMP_PROTECT_SELF) return - disconnect_shell() - if (prob(30)) - switch(pick(1,2)) - if(1) - view_core() - if(2) - SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT") + if(severity >= 60) + disconnect_shell() + if(prob(30)) + switch(pick(1,2)) + if(1) + view_core() + if(2) + SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT") /mob/living/silicon/ai/ex_act(severity, target) switch(severity) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 704a23b8db..6d2da187a1 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -184,13 +184,12 @@ else client.eye = card -/mob/living/silicon/pai/Stat() - ..() - if(statpanel("Status")) - if(!stat) - stat(null, text("Emitter Integrity: [emitterhealth * (100/emittermaxhealth)]")) - else - stat(null, text("Systems nonfunctional")) +/mob/living/silicon/pai/get_status_tab_items() + . += ..() + if(!stat) + . += text("Emitter Integrity: [emitterhealth * (100/emittermaxhealth)]") + else + . += text("Systems nonfunctional") /mob/living/silicon/pai/restrained(ignore_grab) . = FALSE diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 64509d2deb..d8c1b8fe7d 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -7,8 +7,8 @@ . = ..() if(. & EMP_PROTECT_SELF) return - take_holo_damage(50/severity) - DefaultCombatKnockdown(400/severity) + take_holo_damage(severity/2) + DefaultCombatKnockdown(severity*4) silent = max(silent, (PAI_EMP_SILENCE_DURATION) / SSmobs.wait / severity) if(holoform) fold_in(force = TRUE) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index c0fca997f5..c532e44ff5 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -5,7 +5,7 @@ /datum/emote/sound/silicon mob_type_allowed_typecache = list(/mob/living/silicon, /mob/living/carbon/human) emote_type = EMOTE_AUDIBLE - var/unrestricted = FALSE + var/unrestricted = TRUE /datum/emote/sound/silicon/run_emote(mob/user, params) if(!unrestricted && !(issilicon(user) || isipcperson(user))) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 9018c49b2c..6143bde602 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -72,8 +72,8 @@ toner = tonermax diag_hud_set_borgcell() - verbs += /mob/living/proc/lay_down //CITADEL EDIT gimmie rest verb kthx - verbs += /mob/living/silicon/robot/proc/rest_style + add_verb(src, /mob/living/proc/lay_down) //CITADEL EDIT gimmie rest verb kthx + add_verb(src, /mob/living/silicon/robot/proc/rest_style) //If there's an MMI in the robot, have it ejected when the mob goes away. --NEO /mob/living/silicon/robot/Destroy() @@ -99,7 +99,7 @@ radio.keyslot = null //END CITADEL EDIT if(connected_ai) - connected_ai.connected_robots -= src + set_connected_ai(null) if(shell) GLOB.available_ai_shells -= src else @@ -222,19 +222,19 @@ if(thruster_button) thruster_button.icon_state = "ionpulse[ionpulse_on]" -/mob/living/silicon/robot/Stat() - ..() - if(statpanel("Status")) - if(cell) - stat("Charge Left:", "[cell.charge]/[cell.maxcharge]") - else - stat(null, text("No Cell Inserted!")) +/mob/living/silicon/robot/get_status_tab_items() + . = ..() + . += "" + if(cell) + . += "Charge Left: [cell.charge]/[cell.maxcharge]" + else + . += text("No Cell Inserted!") - if(module) - for(var/datum/robot_energy_storage/st in module.storages) - stat("[st.name]:", "[st.energy]/[st.max_energy]") - if(connected_ai) - stat("Master AI:", connected_ai.name) + if(module) + for(var/datum/robot_energy_storage/st in module.storages) + . += "[st.name]: [st.energy]/[st.max_energy]" + if(connected_ai) + . += "Master AI: [connected_ai.name]" /mob/living/silicon/robot/restrained(ignore_grab) . = 0 @@ -289,50 +289,57 @@ return FALSE return ISINRANGE(T1.x, T0.x - interaction_range, T0.x + interaction_range) && ISINRANGE(T1.y, T0.y - interaction_range, T0.y + interaction_range) -/mob/living/silicon/robot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weldingtool) && (user.a_intent != INTENT_HARM || user == src)) +/mob/living/silicon/robot/proc/attempt_welder_repair(obj/item/weldingtool/W, mob/user) + if (!getBruteLoss()) + to_chat(user, "[src] is already in good condition!") + return + if (!W.tool_start_check(user, amount=0)) //The welder has 1u of fuel consumed by it's afterattack, so we don't need to worry about taking any away. + return + user.DelayNextAction(CLICK_CD_MELEE) + if(src == user) + to_chat(user, "You start fixing yourself...") + if(!W.use_tool(src, user, 50)) + return + adjustBruteLoss(-10) + else + to_chat(user, "You start fixing [src]...") + if(!do_after(user, 30, target = src)) + return + adjustBruteLoss(-30) + updatehealth() + add_fingerprint(user) + visible_message("[user] has fixed some of the dents on [src].") + +/mob/living/silicon/robot/proc/attempt_cable_repair(obj/item/stack/cable_coil/W, mob/user) + if (getFireLoss() > 0 || getToxLoss() > 0) user.DelayNextAction(CLICK_CD_MELEE) - if (!getBruteLoss()) - to_chat(user, "[src] is already in good condition!") - return - if (!W.tool_start_check(user, amount=0)) //The welder has 1u of fuel consumed by it's afterattack, so we don't need to worry about taking any away. - return if(src == user) to_chat(user, "You start fixing yourself...") - if(!W.use_tool(src, user, 50)) + if(!W.use_tool(src, user, 50, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT)) + to_chat(user, "You need more cable to repair [src]!") return - adjustBruteLoss(-10) + adjustFireLoss(-10) + adjustToxLoss(-10) else to_chat(user, "You start fixing [src]...") - if(!do_after(user, 30, target = src)) + if(!W.use_tool(src, user, 30, 1)) + to_chat(user, "You need more cable to repair [src]!") return - adjustBruteLoss(-30) - updatehealth() - add_fingerprint(user) - visible_message("[user] has fixed some of the dents on [src].") + adjustFireLoss(-30) + adjustToxLoss(-30) + updatehealth() + user.visible_message("[user] has fixed some of the burnt wires on [src].", "You fix some of the burnt wires on [src].") + else + to_chat(user, "The wires seem fine, there's no need to fix them.") + +/mob/living/silicon/robot/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weldingtool) && (user.a_intent != INTENT_HARM || user == src)) + INVOKE_ASYNC(src, .proc/attempt_welder_repair, W, user) return else if(istype(W, /obj/item/stack/cable_coil) && wiresexposed) - user.DelayNextAction(CLICK_CD_MELEE) - if (getFireLoss() > 0 || getToxLoss() > 0) - if(src == user) - to_chat(user, "You start fixing yourself...") - if(!W.use_tool(src, user, 50, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT)) - to_chat(user, "You need more cable to repair [src]!") - return - adjustFireLoss(-10) - adjustToxLoss(-10) - else - to_chat(user, "You start fixing [src]...") - if(!W.use_tool(src, user, 30, 1)) - to_chat(user, "You need more cable to repair [src]!") - return - adjustFireLoss(-30) - adjustToxLoss(-30) - updatehealth() - user.visible_message("[user] has fixed some of the burnt wires on [src].", "You fix some of the burnt wires on [src].") - else - to_chat(user, "The wires seem fine, there's no need to fix them.") + INVOKE_ASYNC(src, .proc/attempt_cable_repair, W, user) + return else if(istype(W, /obj/item/crowbar)) // crowbar means open or close the cover if(opened) @@ -553,11 +560,10 @@ gib() /mob/living/silicon/robot/proc/UnlinkSelf() - if(src.connected_ai) - connected_ai.connected_robots -= src - src.connected_ai = null - lawupdate = 0 - scrambledcodes = 1 + set_connected_ai(null) + lawupdate = FALSE + locked_down = FALSE + scrambledcodes = TRUE //Disconnect it's camera so it's not so easily tracked. if(!QDELETED(builtInCamera)) QDEL_NULL(builtInCamera) @@ -579,10 +585,10 @@ W.attack_self(src) -/mob/living/silicon/robot/proc/SetLockdown(state = 1) +/mob/living/silicon/robot/proc/SetLockdown(state = TRUE) // They stay locked down if their wire is cut. if(wires.is_cut(WIRE_LOCKDOWN)) - state = 1 + state = TRUE if(state) throw_alert("locked", /obj/screen/alert/locked) else @@ -984,7 +990,7 @@ builtInCamera.c_tag = real_name //update the camera name too mainframe = AI deployed = TRUE - connected_ai = mainframe + set_connected_ai(mainframe) mainframe.connected_robots |= src lawupdate = TRUE lawsync() @@ -1083,9 +1089,8 @@ . = ..(user) /mob/living/silicon/robot/proc/TryConnectToAI() - connected_ai = select_active_ai_with_fewest_borgs() + set_connected_ai(select_active_ai_with_fewest_borgs(z)) if(connected_ai) - connected_ai.connected_robots += src lawsync() lawupdate = 1 return TRUE @@ -1127,7 +1132,7 @@ /mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_health = 1) if(istype(cell)) - cell.charge -= amount*5 + cell.charge -= amount * 5 /mob/living/silicon/robot/verb/viewmanifest() set category = "Robot Commands" @@ -1136,3 +1141,14 @@ if(usr.stat == DEAD) return //won't work if dead ai_roster() + +/mob/living/silicon/robot/proc/set_connected_ai(new_ai) + if(connected_ai == new_ai) + return + . = connected_ai + connected_ai = new_ai + if(.) + var/mob/living/silicon/ai/old_ai = . + old_ai.connected_robots -= src + if(connected_ai) + connected_ai.connected_robots |= src diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 746c4f469d..0ed380040b 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -85,12 +85,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - switch(severity) - if(1) - Paralyze(160) - if(2) - Paralyze(60) - + Paralyze(10 + severity/1.2) /mob/living/silicon/robot/emag_act(mob/user) if(user == src)//To prevent syndieborgs from emagging themselves @@ -138,8 +133,8 @@ /mob/living/silicon/robot/proc/beep_boop_rogue_bot(mob/user) SetEmagged(1) SetStun(60) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown - lawupdate = 0 - connected_ai = null + lawupdate = FALSE + set_connected_ai(null) message_admins("[ADMIN_LOOKUPFLW(user)] emagged cyborg [ADMIN_LOOKUPFLW(src)]. Laws overridden.") log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") var/time = time2text(world.realtime,"hh:mm:ss") diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 6b58988c31..7c4125fbc6 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -361,8 +361,7 @@ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"), "Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed"), - "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakemedbox") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed") ) var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed") for(var/a in L) @@ -423,13 +422,6 @@ moduleselect_icon = "medihound" moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi' dogborg = TRUE - if("Drake") - cyborg_base_icon = "drakemed" - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakemedsleeper" - moduleselect_icon = "medihound" - moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi' - dogborg = TRUE else return FALSE return ..() @@ -486,8 +478,7 @@ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"), "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng"), - "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakeengbox") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng") ) var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng") for(var/a in L) @@ -545,11 +536,6 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "alinasleeper" dogborg = TRUE - if("Drake") - cyborg_base_icon = "drakeeng" - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakesecsleeper" - dogborg = TRUE else return FALSE return ..() @@ -588,8 +574,7 @@ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"), "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec"), - "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakesecbox") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec") ) var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark") for(var/a in L) @@ -645,11 +630,6 @@ sleeper_overlay = "valesecsleeper" cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' dogborg = TRUE - if("Drake") - cyborg_base_icon = "drakesec" - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakesecsleeper" - dogborg = TRUE else return FALSE return ..() @@ -693,8 +673,7 @@ var/static/list/peace_icons = sortList(list( "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "peace"), "Borgi" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "borgi"), - "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider"), - "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakepeacebox") + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider") )) var/peace_borg_icon = show_radial_menu(R, R , peace_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) switch(peace_borg_icon) @@ -710,11 +689,6 @@ hat_offset = INFINITY cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' has_snowflake_deadsprite = TRUE - if("Drake") - cyborg_base_icon = "drakepeace" - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakepeacesleeper" - dogborg = TRUE else return FALSE return ..() @@ -853,8 +827,7 @@ "(Janitor) Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinajan"), "(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"), "(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"), - "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan"), - "(Janitor) Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakejanitbox") + "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan") ) var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark", "(Janitor) Scrubpuppy" = "scrubpup") @@ -926,11 +899,6 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "jsleeper" dogborg = TRUE - if("(Janitor) Drake") - cyborg_base_icon = "drakejanit" - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakesecsleeper" - dogborg = TRUE else return FALSE return ..() @@ -976,8 +944,7 @@ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmin"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"), "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"), - "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakeminebox") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin") ) var/list/L = list("Blade" = "blade", "Vale" = "valemine") for(var/a in L) @@ -1021,11 +988,6 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "valeminesleeper" dogborg = TRUE - if("Drake") - cyborg_base_icon = "drakemine" - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakeminesleeper" - dogborg = TRUE else return FALSE return ..() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index c6aee397e4..944b909463 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -13,6 +13,7 @@ mob_biotypes = MOB_ROBOTIC rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE speech_span = SPAN_ROBOT + deathsound = 'sound/voice/borg_deathsound.ogg' flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 vore_flags = NO_VORE diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 8be2183d3b..3377bf9601 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -105,14 +105,10 @@ to_chat(src, "Warning: Electromagnetic pulse detected.") if(. & EMP_PROTECT_SELF) return - switch(severity) - if(1) - src.take_bodypart_damage(20) - if(2) - src.take_bodypart_damage(10) + src.take_bodypart_damage(severity/5) to_chat(src, "*BZZZT*") for(var/mob/living/M in buckled_mobs) - if(prob(severity*50)) + if(prob(severity/2)) unbuckle_mob(M) M.DefaultCombatKnockdown(40) M.visible_message("[M] is thrown off of [src]!", diff --git a/code/modules/mob/living/simple_animal/astral.dm b/code/modules/mob/living/simple_animal/astral.dm index f79a2b5b3e..ec2180ccb3 100644 --- a/code/modules/mob/living/simple_animal/astral.dm +++ b/code/modules/mob/living/simple_animal/astral.dm @@ -24,6 +24,7 @@ incorporeal_move = 1 alpha = 50 speak_emote = list("echos") + rad_flags = RAD_NO_CONTAMINATE movement_type = FLYING var/pseudo_death = FALSE var/posses_safe = FALSE diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index a1772d9281..bb7c437ca7 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -370,7 +370,7 @@ ejectpai(0) if(on) turn_off() - spawn(severity*300) + spawn(3 * severity) stat &= ~EMPED if(was_on) turn_on() @@ -1060,4 +1060,4 @@ Pass a positive integer as an argument to override a bot's default speed. path.Cut(1, 2) /mob/living/silicon/rust_heretic_act() - adjustBruteLoss(500) + adjustBruteLoss(500) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 91462a6713..3f28fd6e01 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -459,12 +459,10 @@ Auto Patrol[]"}, /mob/living/simple_animal/bot/ed209/emp_act(severity) - if(severity == 2 && prob(70)) - severity = 1 . = ..() if(. & EMP_PROTECT_SELF) return - if (severity >= 2) + if (severity >= 65) new /obj/effect/temp_visual/emp(loc) var/list/mob/living/carbon/targets = new for(var/mob/living/carbon/C in view(12,src)) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index d9bf8cc553..9176f410c3 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -438,6 +438,16 @@ +/mob/living/simple_animal/bot/mulebot/get_status_tab_items() + . = ..() + if(cell) + . += "Charge Left: [cell.charge]/[cell.maxcharge]" + else + . += text("No Cell Inserted!") + if(load) + . += "Current Load: [load.name]" + + /mob/living/simple_animal/bot/mulebot/call_bot() ..() if(path && path.len) @@ -719,7 +729,6 @@ if(load) load.emp_act(severity) - /mob/living/simple_animal/bot/mulebot/explode() visible_message("[src] blows apart!") var/atom/Tsec = drop_location() diff --git a/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/code/modules/mob/living/simple_animal/friendly/bumbles.dm index 3707aa33f8..0debb7b98c 100644 --- a/code/modules/mob/living/simple_animal/friendly/bumbles.dm +++ b/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -34,7 +34,7 @@ /mob/living/simple_animal/pet/bumbles/Initialize() . = ..() - verbs += /mob/living/proc/lay_down + add_verb(src, /mob/living/proc/lay_down) /mob/living/simple_animal/pet/bumbles/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index c21875d1db..71ae3b4c03 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -39,7 +39,7 @@ /mob/living/simple_animal/pet/cat/Initialize() . = ..() - verbs += /mob/living/proc/lay_down + add_verb(src, /mob/living/proc/lay_down) /mob/living/simple_animal/pet/cat/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 2a84152088..a8c0e7d207 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -220,11 +220,10 @@ return Stun(100) to_chat(src, "ER@%R: MME^RY CO#RU9T! R&$b@0tin)...") - if(severity == 1) + if(severity >= 65) adjustBruteLoss(heavy_emp_damage) to_chat(src, "HeAV% DA%^MMA+G TO I/O CIR!%UUT!") - /mob/living/simple_animal/drone/proc/triggerAlarm(class, area/A, O, obj/alarmsource) if(alarmsource.z != z) return @@ -240,7 +239,6 @@ L[A.name] = list(A, list(alarmsource)) to_chat(src, "--- [class] alarm detected in [A.name]!") - /mob/living/simple_animal/drone/proc/cancelAlarm(class, area/A, obj/origin) if(stat != DEAD) var/list/L = alarms[class] diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index da39fb71cf..55339a02fd 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -142,8 +142,8 @@ set_light(2, 0.5) qdel(access_card) //we don't have free access access_card = null - verbs -= /mob/living/simple_animal/drone/verb/check_laws - verbs -= /mob/living/simple_animal/drone/verb/drone_ping + remove_verb(src, /mob/living/simple_animal/drone/verb/check_laws) + remove_verb(src, /mob/living/simple_animal/drone/verb/drone_ping) /mob/living/simple_animal/drone/cogscarab/Login() ..() diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 7abecc7c81..954e968bd7 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -196,18 +196,17 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians REMOVE_TRAIT(summoner, TRAIT_NODEATH, "memento_mori") to_chat(summoner,"You feel incredibly vulnerable as the memento mori pulls your life force in one too many directions!") -/mob/living/simple_animal/hostile/guardian/Stat() - ..() - if(statpanel("Status")) - if(summoner) - var/resulthealth - if(iscarbon(summoner)) - resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100) - else - resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5) - stat(null, "Summoner Health: [resulthealth]%") - if(cooldown >= world.time) - stat(null, "Manifest/Recall Cooldown Remaining: [DisplayTimeText(cooldown - world.time)]") +/mob/living/simple_animal/hostile/guardian/get_status_tab_items() + . += ..() + if(summoner) + var/resulthealth + if(iscarbon(summoner)) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100) + else + resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5) + . += "Summoner Health: [resulthealth]%" + if(cooldown >= world.time) + . += "Manifest/Recall Cooldown Remaining: [DisplayTimeText(cooldown - world.time)]" /mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range . = ..() @@ -477,13 +476,13 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians to_chat(src, "[G.real_name] has been caught!") guardians -= G if(!guardians.len) - verbs -= /mob/living/proc/guardian_reset + remove_verb(src, /mob/living/proc/guardian_reset) else to_chat(src, "There were no ghosts willing to take control of [G.real_name]. Looks like you're stuck with it for now.") else to_chat(src, "You decide not to reset [guardians.len > 1 ? "any of your guardians":"your guardian"].") else - verbs -= /mob/living/proc/guardian_reset + remove_verb(src, /mob/living/proc/guardian_reset) ////////parasite tracking/finding procs @@ -608,9 +607,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians if("carp") to_chat(user, "[G.carp_fluff_string]") to_chat(user, "[G.real_name] has been caught!") - user.verbs += /mob/living/proc/guardian_comm - user.verbs += /mob/living/proc/guardian_recall - user.verbs += /mob/living/proc/guardian_reset + add_verb(user, list(/mob/living/proc/guardian_comm, \ + /mob/living/proc/guardian_recall, \ + /mob/living/proc/guardian_reset)) /obj/item/guardiancreator/choose random = FALSE diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index 885f907997..3bc079f6d5 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -26,11 +26,10 @@ if(loc == summoner && toggle) ToggleMode(0) -/mob/living/simple_animal/hostile/guardian/assassin/Stat() - ..() - if(statpanel("Status")) - if(stealthcooldown >= world.time) - stat(null, "Stealth Cooldown Remaining: [DisplayTimeText(stealthcooldown - world.time)]") +/mob/living/simple_animal/hostile/guardian/assassin/get_status_tab_items() + . = ..() + if(stealthcooldown >= world.time) + . += "Stealth Cooldown Remaining: [DisplayTimeText(stealthcooldown - world.time)]" /mob/living/simple_animal/hostile/guardian/assassin/AttackingTarget() . = ..() diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index 26e5d791f3..b9037ff4a4 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -7,11 +7,10 @@ carp_fluff_string = "CARP CARP CARP! Caught one! It's an explosive carp! Boom goes the fishy." var/bomb_cooldown = 0 -/mob/living/simple_animal/hostile/guardian/bomb/Stat() - ..() - if(statpanel("Status")) - if(bomb_cooldown >= world.time) - stat(null, "Bomb Cooldown Remaining: [DisplayTimeText(bomb_cooldown - world.time)]") +/mob/living/simple_animal/hostile/guardian/bomb/get_status_tab_items() + . = ..() + if(bomb_cooldown >= world.time) + . += "Bomb Cooldown Remaining: [DisplayTimeText(bomb_cooldown - world.time)]" /mob/living/simple_animal/hostile/guardian/bomb/AttackingTarget() . = ..() @@ -29,7 +28,7 @@ /mob/living/simple_animal/hostile/guardian/bomb/AltClickOn(atom/movable/A) if(!istype(A)) - altclick_listed_turf(A) + AltClickNoInteract(src, A) return if(loc == summoner) to_chat(src, "You must be manifested to create bombs!") diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index 21460b5c6b..eee3eb0cdb 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -18,11 +18,10 @@ var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] medsensor.add_hud_to(src) -/mob/living/simple_animal/hostile/guardian/healer/Stat() - ..() - if(statpanel("Status")) - if(beacon_cooldown >= world.time) - stat(null, "Beacon Cooldown Remaining: [DisplayTimeText(beacon_cooldown - world.time)]") +/mob/living/simple_animal/hostile/guardian/healer/get_status_tab_items() + . = ..() + if(beacon_cooldown >= world.time) + . += "Beacon Cooldown Remaining: [DisplayTimeText(beacon_cooldown - world.time)]" /mob/living/simple_animal/hostile/guardian/healer/AttackingTarget() . = ..() @@ -106,7 +105,7 @@ /mob/living/simple_animal/hostile/guardian/healer/AltClickOn(atom/movable/A) if(!istype(A)) - altclick_listed_turf(A) + AltClickNoInteract(src, A) return if(loc == summoner) to_chat(src, "You must be manifested to warp a target!") diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm index 100db06174..8fb531f1fb 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm @@ -1,6 +1,5 @@ /datum/emote/sound/gorilla mob_type_allowed_typecache = /mob/living/simple_animal/hostile/gorilla - mob_type_blacklist_typecache = list() /datum/emote/sound/gorilla/ooga key = "ooga" @@ -8,4 +7,3 @@ message = "oogas." message_param = "oogas at %t." sound = 'sound/creatures/gorilla.ogg' - diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index ac53ff794b..850beeb099 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -80,7 +80,9 @@ if(C.can_absorb_dna(owner)) C.add_new_profile(owner) - C.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) + var/obj/effect/proc_holder/changeling/humanform/hf = new + C.purchasedpowers += hf + hf.on_purchase(origin.current, TRUE) M.key = origin.key owner.gib() diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index 362432b2af..b98ee5adfb 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -128,7 +128,7 @@ /mob/living/simple_animal/hostile/jungle/leaper/Initialize() . = ..() - verbs -= /mob/living/verb/pulled + remove_verb(src, /mob/living/verb/pulled) /mob/living/simple_animal/hostile/jungle/leaper/CtrlClickOn(atom/A) face_atom(A) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 883ad39261..debd7f2e7b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -642,8 +642,8 @@ Difficulty: Very Hard /mob/living/simple_animal/hostile/lightgeist/Initialize() . = ..() - verbs -= /mob/living/verb/pulled - verbs -= /mob/verb/me_verb + remove_verb(src, /mob/living/verb/pulled) + remove_verb(src, /mob/verb/me_verb) var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] medsensor.add_hud_to(src) @@ -732,7 +732,7 @@ Difficulty: Very Hard L.mind.transfer_to(holder_animal) var/obj/effect/proc_holder/spell/targeted/exit_possession/P = new /obj/effect/proc_holder/spell/targeted/exit_possession holder_animal.mind.AddSpell(P) - holder_animal.verbs -= /mob/living/verb/pulled + remove_verb(holder_animal, /mob/living/verb/pulled) /obj/structure/closet/stasis/dump_contents(override = TRUE, kill = 1) STOP_PROCESSING(SSobj, src) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 4dfd4561d6..f0ab3fba4c 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -274,7 +274,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/AltClickOn(atom/movable/A) if(!istype(A)) - altclick_listed_turf(A) + AltClickNoInteract(src, A) return if(swoop_cooldown >= world.time) to_chat(src, "You need to wait 20 seconds between swoop attacks!") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 525388fa61..006bef974d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -445,7 +445,7 @@ Difficulty: Normal /mob/living/simple_animal/hostile/megafauna/hierophant/AltClickOn(atom/A) //player control handler(don't give this to a player holy fuck) if(!istype(A) || get_dist(A, src) <= 2) - return altclick_listed_turf(A) + return AltClickNoInteract(src, A) blink(A) //Hierophant overlays @@ -661,7 +661,7 @@ Difficulty: Normal continue to_chat(M.occupant, "Your [M.name] is struck by a [name]!") playsound(M,'sound/weapons/sear.ogg', 50, 1, -4) - M.take_damage(damage, BURN, 0, 0) + M.take_damage(damage, BURN, 0, 0, null, 50) /obj/effect/hierophant name = "hierophant beacon" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 795184bad5..3de4c8b41b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -141,7 +141,7 @@ Difficulty: Medium loot = list(/obj/item/staff/storm) elimination = 0 else if(prob(20)) - loot = list(/obj/structure/closet/crate/necropolis/tendril) + loot = list(/obj/structure/closet/crate/necropolis/tendril/random) //This one spawns a chest that could be any of the three types ..() /obj/item/gps/internal/legion diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index e3edd171c0..e347056924 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -25,6 +25,7 @@ var/list/attack_action_types = list() var/can_talk = FALSE var/obj/loot_drop = null + var/crate_type = /obj/structure/closet/crate/necropolis/tendril var/owner //Gives player-controlled variants the ability to swap attacks @@ -182,7 +183,7 @@ While using this makes the system rely on OnFire, it still gives options for tim activator = null -obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind) +/obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind) var/selectedspawn = pick(potentialspawns) mychild = new selectedspawn(loc) visible_message("[mychild] emerges from [src]!") @@ -193,7 +194,7 @@ obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind) icon_state = "tumor_popped" INVOKE_ASYNC(src, .proc/arena_checks) -obj/structure/elite_tumor/proc/return_elite() +/obj/structure/elite_tumor/proc/return_elite() mychild.forceMove(loc) visible_message("[mychild] emerges from [src]!") playsound(loc,'sound/effects/phasein.ogg', 200, 0, 50, TRUE, TRUE) @@ -271,11 +272,11 @@ obj/structure/elite_tumor/proc/return_elite() visible_message("[mychild] suddenly reappears above [src]!") playsound(loc,'sound/effects/phasein.ogg', 200, 0, 50, TRUE, TRUE) -obj/structure/elite_tumor/proc/onEliteLoss() +/obj/structure/elite_tumor/proc/onEliteLoss() playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, TRUE, TRUE) visible_message("[src] begins to convulse violently before beginning to dissipate.") visible_message("As [src] closes, something is forced up from down below.") - var/obj/structure/closet/crate/necropolis/tendril/lootbox = new /obj/structure/closet/crate/necropolis/tendril(loc) + var/obj/structure/closet/crate/necropolis/tendril/lootbox = new mychild.crate_type(loc) if(!boosted) mychild = null activator = null @@ -290,7 +291,7 @@ obj/structure/elite_tumor/proc/onEliteLoss() activator = null qdel(src) -obj/structure/elite_tumor/proc/onEliteWon() +/obj/structure/elite_tumor/proc/onEliteWon() activity = TUMOR_PASSIVE activator = null mychild.revive(full_heal = TRUE, admin_revive = TRUE) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index d9f3cfba3d..4e8f4f6160 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -40,6 +40,7 @@ mouse_opacity = MOUSE_OPACITY_ICON deathmessage = "explodes into gore!" loot_drop = /obj/item/crusher_trophy/broodmother_tongue + crate_type = /obj/structure/closet/crate/necropolis/tendril/weapon_armor attack_action_types = list(/datum/action/innate/elite_attack/tentacle_patch, /datum/action/innate/elite_attack/spawn_children, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index fce5b636e4..032bc2d60d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -38,7 +38,7 @@ deathsound = 'sound/magic/demon_dies.ogg' deathmessage = "begins to shudder as it becomes transparent..." loot_drop = /obj/item/clothing/neck/cloak/herald_cloak - + crate_type = /obj/structure/closet/crate/necropolis/tendril/magic can_talk = 1 attack_action_types = list(/datum/action/innate/elite_attack/herald_trishot, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 15ed0135fe..6c13bb903e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -38,7 +38,7 @@ deathsound = 'sound/magic/curse.ogg' deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless." loot_drop = /obj/item/crusher_trophy/legionnaire_spine - + crate_type = /obj/structure/closet/crate/necropolis/tendril/misc attack_action_types = list(/datum/action/innate/elite_attack/legionnaire_charge, /datum/action/innate/elite_attack/head_detach, /datum/action/innate/elite_attack/bonfire_teleport, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 7995e4d20f..b3300a86bb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -38,7 +38,7 @@ deathsound = 'sound/magic/repulse.ogg' deathmessage = "'s lights flicker, before its top part falls down." loot_drop = /obj/item/clothing/accessory/pandora_hope - + crate_type = /obj/structure/closet/crate/necropolis/tendril/magic attack_action_types = list(/datum/action/innate/elite_attack/singular_shot, /datum/action/innate/elite_attack/magic_box, /datum/action/innate/elite_attack/pandora_teleport, @@ -190,4 +190,4 @@ /obj/item/clothing/accessory/pandora_hope/on_uniform_dropped(obj/item/clothing/under/U, user) var/mob/living/L = user if(L && L.mind) - SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "hope_lavaland") + SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "hope_lavaland") \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 12f0b41d4e..fa67fd8e3b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -200,6 +200,8 @@ L.Stun(75) L.adjustBruteLoss(rand(15,20)) // Less stun more harm latched = TRUE + for(var/obj/mecha/M in loc) + M.take_damage(20, BRUTE, null, null, null, 25) if(!latched) retract() else diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 4fcb1ed5bf..3ca29b6746 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -115,12 +115,12 @@ parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var - verbs.Add(/mob/living/simple_animal/parrot/proc/steal_from_ground, \ + add_verb(src, list(/mob/living/simple_animal/parrot/proc/steal_from_ground, \ /mob/living/simple_animal/parrot/proc/steal_from_mob, \ /mob/living/simple_animal/parrot/verb/drop_held_item_player, \ /mob/living/simple_animal/parrot/proc/perch_player, \ /mob/living/simple_animal/parrot/proc/toggle_mode, - /mob/living/simple_animal/parrot/proc/perch_mob_player) + /mob/living/simple_animal/parrot/proc/perch_mob_player)) /mob/living/simple_animal/parrot/examine(mob/user) @@ -142,11 +142,11 @@ ..(gibbed) -/mob/living/simple_animal/parrot/Stat() - ..() - if(statpanel("Status")) - stat("Held Item", held_item) - stat("Mode",a_intent) +/mob/living/simple_animal/parrot/get_status_tab_items() + . = ..() + . += "" + . += "Held Item: [held_item]" + . += "Mode: [a_intent]" /mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) . = ..() @@ -978,7 +978,8 @@ /mob/living/simple_animal/parrot/Poly/ghost name = "The Ghost of Poly" desc = "Doomed to squawk the Earth." - color = "#FFFFFF77" + color = "#FFFFFF" + alpha = 77 speak_chance = 20 status_flags = GODMODE incorporeal_move = INCORPOREAL_MOVE_BASIC diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index be0338a60e..b192182c71 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -345,11 +345,10 @@ remove_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed, multiplicative_slowdown = speed) -/mob/living/simple_animal/Stat() - ..() - if(statpanel("Status")) - stat(null, "Health: [round((health / maxHealth) * 100)]%") - return 1 +/mob/living/simple_animal/get_status_tab_items() + . = ..() + . += "" + . += "Health: [round((health / maxHealth) * 100)]%" /mob/living/simple_animal/proc/drop_loot() if(loot.len) diff --git a/code/modules/mob/living/simple_animal/slime/emote.dm b/code/modules/mob/living/simple_animal/slime/emote.dm index 070cd48a70..9440caf3fc 100644 --- a/code/modules/mob/living/simple_animal/slime/emote.dm +++ b/code/modules/mob/living/simple_animal/slime/emote.dm @@ -1,6 +1,5 @@ /datum/emote/slime mob_type_allowed_typecache = /mob/living/simple_animal/slime - mob_type_blacklist_typecache = list() /datum/emote/slime/bounce key = "bounce" diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 1bdd988694..1f45e57718 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -106,6 +106,7 @@ set_colour(new_colour) . = ..() AddComponent(/datum/component/footstep, FOOTSTEP_MOB_SLIME, 7.5) + set_nutrition(rand(650, 800)) /mob/living/simple_animal/slime/Destroy() for (var/A in actions) @@ -208,21 +209,20 @@ /mob/living/simple_animal/slime/Process_Spacemove(movement_dir = 0) return 2 -/mob/living/simple_animal/slime/Stat() - if(..()) - - if(!docile) - stat(null, "Nutrition: [nutrition]/[get_max_nutrition()]") - if(amount_grown >= SLIME_EVOLUTION_THRESHOLD) - if(is_adult) - stat(null, "You can reproduce!") - else - stat(null, "You can evolve!") +/mob/living/simple_animal/slime/get_status_tab_items() + . = ..() + 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) - stat(null,"You are knocked out by high levels of BZ!") + . += "You are knocked out by high levels of BZ!" else - stat(null,"Power Level: [powerlevel]") + . += "Power Level: [powerlevel]" /mob/living/simple_animal/slime/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 36a596f42e..6661d0ccea 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -19,8 +19,11 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( to_chat(src, "You can't vent crawl while you're restrained!") return if(has_buckled_mobs()) - to_chat(src, "You can't vent crawl with other creatures on you!") - return + // attempt once + unbuckle_all_mobs() + if(has_buckled_mobs()) + to_chat(src, "You can't vent crawl with other creatures on you!") + return if(buckled) to_chat(src, "You can't vent crawl while buckled!") return diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 31bfb5621f..0d4afd0915 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -50,6 +50,8 @@ var/datum/callback/CB = foo CB.Invoke() + mind?.hide_ckey = client?.prefs?.hide_ckey + log_message("Client [key_name(src)] has taken ownership of mob [src]([src.type])", LOG_OWNERSHIP) SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 358eff7a47..e1a4ac6118 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -485,11 +485,12 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA if(!ckey) return SEND_SIGNAL(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, new_mob, src) - if (client && client.prefs && client.prefs.auto_ooc) - if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob)) - client.prefs.chat_toggles ^= CHAT_OOC - if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob)) - client.prefs.chat_toggles ^= CHAT_OOC + if (client) + if(client.prefs?.auto_ooc) + if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob)) + client.prefs.chat_toggles ^= CHAT_OOC + if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob)) + client.prefs.chat_toggles ^= CHAT_OOC new_mob.ckey = ckey if(send_signal) SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src) @@ -586,87 +587,34 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/proc/is_muzzled() return FALSE -/mob/Stat() - ..() +/// Adds this list to the output to the stat browser +/mob/proc/get_status_tab_items() + . = list() - SSvote?.render_statpanel(src) - - //This is only called from client/Stat(), let's assume client exists. - - if(statpanel("Status")) - var/list/L = list() - L += "Ping: [round(client.lastping,1)]ms (Avg: [round(client.avgping,1)]ms)" - L += SSmapping.stat_map_name - L += "Round ID: [GLOB.round_id || "NULL"]" - L += SStime_track.stat_time_text - L += SSshuttle.emergency_shuttle_stat_text - stat(null, "[L.Join("\n\n")]") - - if(client.holder) - if(statpanel("MC")) - var/turf/T = get_turf(client.eye) - stat("Location:", COORD(T)) - stat("CPU:", "[world.cpu]") - stat("Instances:", "[num2text(world.contents.len, 10)]") - stat("World Time:", "[world.time]") - GLOB.stat_entry() - config.stat_entry() - stat(null) - if(Master) - Master.stat_entry() - else - stat("Master Controller:", "ERROR") - if(Failsafe) - Failsafe.stat_entry() - else - stat("Failsafe Controller:", "ERROR") - if(Master) - stat(null) - for(var/datum/controller/subsystem/SS in Master.statworthy_subsystems) - SS.stat_entry() - GLOB.cameranet.stat_entry() - if(statpanel("Tickets")) - GLOB.ahelp_tickets.stat_entry() - if(length(GLOB.sdql2_queries)) - if(statpanel("SDQL2")) - stat("Access Global SDQL2 List", GLOB.sdql2_vv_statobj) - for(var/i in GLOB.sdql2_queries) - var/datum/SDQL2_query/Q = i - Q.generate_stat() - if(listed_turf && client) - if(!TurfAdjacent(listed_turf)) - listed_turf = null - else - statpanel(listed_turf.name, null, listed_turf) - var/list/overrides = list() - for(var/image/I in client.images) - if(I.loc && I.loc.loc == listed_turf && I.override) - overrides += I.loc - for(var/atom/A in listed_turf) - if(!A.mouse_opacity) - continue - if(A.invisibility > see_invisible) - continue - if(overrides.len && (A in overrides)) - continue - statpanel(listed_turf.name, null, A) +/// Gets all relevant proc holders for the browser statpenl +/mob/proc/get_proc_holders() + . = list() if(mind) - add_spells_to_statpanel(mind.spell_list) - var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling) - add_stings_to_statpanel(changeling.purchasedpowers) - add_spells_to_statpanel(mob_spell_list) + . += get_spells_for_statpanel(mind.spell_list) + . += get_spells_for_statpanel(mob_spell_list) -/mob/proc/add_spells_to_statpanel(list/spells) +/** + * Convert a list of spells into a displyable list for the statpanel + * + * Shows charge and other important info + */ +/mob/proc/get_spells_for_statpanel(list/spells) + var/list/L = list() for(var/obj/effect/proc_holder/spell/S in spells) if((!S.mobs_blacklist || !S.mobs_blacklist[src]) && (!S.mobs_whitelist || S.mobs_whitelist[src])) switch(S.charge_type) if("recharge") - statpanel("[S.panel]","[S.charge_counter/10.0]/[S.charge_max/10]",S) + L[++L.len] = list("[S.panel]", "[S.charge_counter/10.0]/[S.charge_max/10]", S.name, REF(S)) if("charges") - statpanel("[S.panel]","[S.charge_counter]/[S.charge_max]",S) + L[++L.len] = list("[S.panel]", "[S.charge_counter]/[S.charge_max]", S.name, REF(S)) if("holdervar") - statpanel("[S.panel]","[S.holder_var_type] [S.holder_var_amount]",S) + L[++L.len] = list("[S.panel]", "[S.holder_var_type] [S.holder_var_amount]", S.name, REF(S)) + return L /mob/proc/add_stings_to_statpanel(list/stings) for(var/obj/effect/proc_holder/changeling/S in stings) @@ -798,6 +746,8 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) if(istype(S, spell)) mob_spell_list -= S qdel(S) + if(client) + client << output(null, "statbrowser:check_spells") /mob/proc/anti_magic_check(magic = TRUE, holy = FALSE, tinfoil = FALSE, chargecost = 1, self = FALSE) if(!magic && !holy && !tinfoil) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 52b755d926..aa6635f73d 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -431,7 +431,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /mob/living/getImplant(type) return locate(type) in implants -/proc/offer_control(mob/M) +/proc/offer_control(mob/M,ignore_category=null) to_chat(M, "Control of your mob has been offered to dead players.") if(usr) log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.") @@ -445,7 +445,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp var/datum/antagonist/A = M.mind.has_antag_datum(/datum/antagonist/) if(A) poll_message = "[poll_message] Status:[A.name]." - var/list/mob/candidates = pollCandidatesForMob(poll_message, ROLE_PAI, null, FALSE, 100, M) + var/list/mob/candidates = pollCandidatesForMob(poll_message, ROLE_PAI, null, FALSE, 100, M, ignore_category) if(LAZYLEN(candidates)) var/mob/C = pick(candidates) diff --git a/code/modules/modular_computers/computers/_modular_computer_shared.dm b/code/modules/modular_computers/computers/_modular_computer_shared.dm index 8ca93e8347..9dde9a0c49 100644 --- a/code/modules/modular_computers/computers/_modular_computer_shared.dm +++ b/code/modules/modular_computers/computers/_modular_computer_shared.dm @@ -44,18 +44,20 @@ . += "It has a slot installed for an intelliCard." var/obj/item/computer_hardware/card_slot/card_slot = get_modular_computer_part(MC_CARD) + var/obj/item/computer_hardware/card_slot/card_slot2 = get_modular_computer_part(MC_CARD2) + var/multiple_slots = istype(card_slot) && istype(card_slot2) if(card_slot) - if(card_slot.stored_card || card_slot.stored_card2) + if(card_slot?.stored_card || card_slot2?.stored_card) var/obj/item/card/id/first_ID = card_slot.stored_card - var/obj/item/card/id/second_ID = card_slot.stored_card2 + var/obj/item/card/id/second_ID = card_slot2.stored_card var/multiple_cards = istype(first_ID) && istype(second_ID) if(user_is_adjacent) - . += "It has two slots for identification cards installed[multiple_cards ? " which contain [first_ID] and [second_ID]" : ", one of which contains [first_ID ? first_ID : second_ID]"]." + . += "It has [multiple_slots ? "two slots" : "a slot"] for identification cards installed[multiple_cards ? " which contain [first_ID] and [second_ID]" : ", one of which contains [first_ID ? first_ID : second_ID]"]." else - . += "It has two slots for identification cards installed, [multiple_cards ? "both of which appear" : "and one of them appears"] to be occupied." + . += "It has [multiple_slots ? "two slots" : "a slot"] for identification cards installed, [multiple_cards ? "both of which appear" : "and one of them appears"] to be occupied." . += "Alt-click [src] to eject the identification card[multiple_cards ? "s":""]." else - . += "It has two slots installed for identification cards." + . += "It has [multiple_slots ? "two slots" : "a slot"] installed for identification cards." var/obj/item/computer_hardware/printer/printer_slot = get_modular_computer_part(MC_PRINT) if(printer_slot) diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 67c04de13f..63cb1cc5fa 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -4,6 +4,12 @@ /obj/item/modular_computer name = "modular microcomputer" desc = "A small portable microcomputer." + icon = 'icons/obj/computer.dmi' + icon_state = "laptop-open" + var/light_on = FALSE + integrity_failure = 0.5 + max_integrity = 100 + armor = list("melee" = 0, "bullet" = 20, "laser" = 20, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) var/enabled = 0 // Whether the computer is turned on. var/screen_on = 1 // Whether the computer is active/opened/it's screen is on. @@ -22,8 +28,6 @@ // must have it's own DMI file. Icon states must be called exactly the same in all files, but may look differently // If you create a program which is limited to Laptops and Consoles you don't have to add it's icon_state overlay for Tablets too, for example. - icon = 'icons/obj/computer.dmi' - icon_state = "laptop-open" var/icon_state_unpowered = null // Icon state when the computer is turned off. var/icon_state_powered = null // Icon state when the computer is turned on. var/icon_state_menu = "menu" // Icon state overlay when the computer is turned on, but no program is loaded that would override the screen. @@ -31,20 +35,16 @@ var/max_hardware_size = 0 // Maximal hardware w_class. Tablets/PDAs have 1, laptops 2, consoles 4. var/steel_sheet_cost = 5 // Amount of steel sheets refunded when disassembling an empty frame of this computer. - integrity_failure = 0.5 - max_integrity = 100 - armor = list("melee" = 0, "bullet" = 20, "laser" = 20, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) - - // Important hardware (must be installed for computer to work) - - // Optional hardware (improves functionality, but is not critical for computer to work) - - var/list/all_components = list() // List of "connection ports" in this computer and the components with which they are plugged + /// List of "connection ports" in this computer and the components with which they are plugged + var/list/all_components = list() + /// Lazy List of extra hardware slots that can be used modularly. + var/list/expansion_bays + /// Number of total expansion bays this computer has available. + var/max_bays = 0 var/list/idle_threads // Idle programs on background. They still receive process calls but can't be interacted with. var/obj/physical = null // Object that represents our computer. It's used for Adjacent() and UI visibility checks. var/has_light = FALSE //If the computer has a flashlight/LED light/what-have-you installed - var/light_on = FALSE //If that light is enabled var/comp_light_luminosity = 3 //The brightness of that light var/comp_light_color //The color of that light @@ -71,80 +71,15 @@ physical = null return ..() - -/obj/item/modular_computer/proc/add_verb(var/path) - switch(path) - if(MC_CARD) - verbs += /obj/item/modular_computer/proc/eject_id - if(MC_SDD) - verbs += /obj/item/modular_computer/proc/eject_disk - if(MC_AI) - verbs += /obj/item/modular_computer/proc/eject_card - -/obj/item/modular_computer/proc/remove_verb(path) - switch(path) - if(MC_CARD) - verbs -= /obj/item/modular_computer/proc/eject_id - if(MC_SDD) - verbs -= /obj/item/modular_computer/proc/eject_disk - if(MC_AI) - verbs -= /obj/item/modular_computer/proc/eject_card - -// Eject ID card from computer, if it has ID slot with card inside. -/obj/item/modular_computer/proc/eject_id() - set name = "Eject ID" - set category = "Object" - set src in view(1) - - if(issilicon(usr)) - return - var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] - if(usr.canUseTopic(src, BE_CLOSE)) - card_slot.try_eject(null, usr) - -// Eject ID card from computer, if it has ID slot with card inside. -/obj/item/modular_computer/proc/eject_card() - set name = "Eject Intellicard" - set category = "Object" - - if(issilicon(usr)) - return - var/obj/item/computer_hardware/ai_slot/ai_slot = all_components[MC_AI] - if(usr.canUseTopic(src, BE_CLOSE)) - ai_slot.try_eject(null, usr,1) - - -// Eject ID card from computer, if it has ID slot with card inside. -/obj/item/modular_computer/proc/eject_disk() - set name = "Eject Data Disk" - set category = "Object" - - if(issilicon(usr)) - return - - if(usr.canUseTopic(src, BE_CLOSE)) - var/obj/item/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] - if(uninstall_component(portable_drive, usr)) - portable_drive.verb_pickup() - /obj/item/modular_computer/AltClick(mob/user) ..() if(issilicon(user)) return if(user.canUseTopic(src, BE_CLOSE)) + var/obj/item/computer_hardware/card_slot/card_slot2 = all_components[MC_CARD2] var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] - var/obj/item/computer_hardware/ai_slot/ai_slot = all_components[MC_AI] - var/obj/item/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] - if(portable_drive) - if(uninstall_component(portable_drive, user)) - portable_drive.verb_pickup() - else - if(card_slot && card_slot.try_eject(null, user)) - return - if(ai_slot) - ai_slot.try_eject(null, user) - + return (card_slot2?.try_eject(user) || card_slot?.try_eject(user)) //Try the secondary one first. // Gets IDs/access levels from card slot. Would be useful when/if PDAs would become modular PCs. /obj/item/modular_computer/GetAccess() @@ -160,19 +95,25 @@ return ..() /obj/item/modular_computer/RemoveID() + var/obj/item/computer_hardware/card_slot/card_slot2 = all_components[MC_CARD2] var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] - if(!card_slot) - return - return card_slot.RemoveID() + return (card_slot2?.try_eject() || card_slot?.try_eject()) //Try the secondary one first. /obj/item/modular_computer/InsertID(obj/item/inserting_item) var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD] - if(!card_slot) + var/obj/item/computer_hardware/card_slot/card_slot2 = all_components[MC_CARD2] + if(!(card_slot || card_slot2)) + //to_chat(user, "There isn't anywhere you can fit a card into on this computer.") return FALSE + var/obj/item/card/inserting_id = inserting_item.RemoveID() if(!inserting_id) return FALSE - return card_slot.try_insert(inserting_id) + + if((card_slot?.try_insert(inserting_id)) || (card_slot2?.try_insert(inserting_id))) + return TRUE + //to_chat(user, "This computer doesn't have an open card slot.") + return FALSE /obj/item/modular_computer/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr diff --git a/code/modules/modular_computers/computers/item/computer_components.dm b/code/modules/modular_computers/computers/item/computer_components.dm index 3c94a66384..8668b279cf 100644 --- a/code/modules/modular_computers/computers/item/computer_components.dm +++ b/code/modules/modular_computers/computers/item/computer_components.dm @@ -6,6 +6,14 @@ to_chat(user, "This component is too large for \the [src]!") return FALSE + if(H.expansion_hw) + if(LAZYLEN(expansion_bays) >= max_bays) + to_chat(user, "All of the computer's expansion bays are filled.") + return FALSE + if(LAZYACCESS(expansion_bays, H.device_type)) + to_chat(user, "The computer immediately ejects /the [H] and flashes an error: \"Hardware Address Conflict\".") + return FALSE + if(all_components[H.device_type]) to_chat(user, "This computer's hardware slot is already occupied by \the [all_components[H.device_type]].") return FALSE @@ -20,6 +28,8 @@ if(user && !user.transferItemToLoc(H, src)) return FALSE + if(H.expansion_hw) + LAZYSET(expansion_bays, H.device_type, H) all_components[H.device_type] = H to_chat(user, "You install \the [H] into \the [src].") @@ -32,7 +42,9 @@ /obj/item/modular_computer/proc/uninstall_component(obj/item/computer_hardware/H, mob/living/user = null) if(H.holder != src) // Not our component at all. return FALSE + if(H.expansion_hw) + LAZYREMOVE(expansion_bays, H.device_type) all_components.Remove(H.device_type) to_chat(user, "You remove \the [H] from \the [src].") @@ -43,6 +55,7 @@ if(enabled && !use_power()) shutdown_computer() update_icon() + return TRUE // Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index fd017e2b0f..4a985b93c1 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -44,6 +44,33 @@ /obj/item/modular_computer/ui_data(mob/user) var/list/data = get_header_data() data["device_theme"] = device_theme + + data["login"] = list() + var/obj/item/computer_hardware/card_slot/cardholder = all_components[MC_CARD] + if(cardholder) + var/obj/item/card/id/stored_card = cardholder.GetID() + if(stored_card) + var/stored_name = stored_card.registered_name + var/stored_title = stored_card.assignment + if(!stored_name) + stored_name = "Unknown" + if(!stored_title) + stored_title = "Unknown" + data["login"] = list( + IDName = stored_name, + IDJob = stored_title, + ) + + data["removable_media"] = list() + if(all_components[MC_SDD]) + data["removable_media"] += "removable storage disk" + var/obj/item/computer_hardware/ai_slot/intelliholder = all_components[MC_AI] + if(intelliholder?.stored_card) + data["removable_media"] += "intelliCard" + var/obj/item/computer_hardware/card_slot/secondarycardholder = all_components[MC_CARD2] + if(secondarycardholder?.stored_card) + data["removable_media"] += "secondary RFID card" + data["programs"] = list() var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] for(var/datum/computer_file/program/P in hard_drive.stored_files) @@ -157,6 +184,36 @@ light_color = new_color update_light() return TRUE + + if("PC_Eject_Disk") + var/param = params["name"] + var/mob/user = usr + switch(param) + if("removable storage disk") + var/obj/item/computer_hardware/hard_drive/portable/portable_drive = all_components[MC_SDD] + if(!portable_drive) + return + if(uninstall_component(portable_drive, usr)) + user.put_in_hands(portable_drive) + playsound(src, 'sound/machines/card_slide.ogg', 50) + if("intelliCard") + var/obj/item/computer_hardware/ai_slot/intelliholder = all_components[MC_AI] + if(!intelliholder) + return + if(intelliholder.try_eject(user)) + playsound(src, 'sound/machines/card_slide.ogg', 50) + if("ID") + var/obj/item/computer_hardware/card_slot/cardholder = all_components[MC_CARD] + if(!cardholder) + return + cardholder.try_eject(user) + if("secondary RFID card") + var/obj/item/computer_hardware/card_slot/cardholder = all_components[MC_CARD2] + if(!cardholder) + return + cardholder.try_eject(user) + + else return diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm index 5927d57a0b..ef83140a8f 100644 --- a/code/modules/modular_computers/computers/item/laptop.dm +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -12,6 +12,7 @@ hardware_flag = PROGRAM_LAPTOP max_hardware_size = 2 w_class = WEIGHT_CLASS_NORMAL + max_bays = 4 // No running around with open laptops in hands. item_flags = SLOWS_WHILE_IN_HAND diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index c79d7a9361..0d7b567877 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -8,6 +8,7 @@ icon_state_unpowered = null icon_state_menu = null hardware_flag = 0 + max_bays = 4 var/obj/machinery/modular_computer/machinery_computer = null @@ -18,7 +19,7 @@ machinery_computer = null . = ..() -/obj/item/modular_computer/processor/New(comp) //intentional new probably +/obj/item/modular_computer/processor/New(comp) ..() STOP_PROCESSING(SSobj, src) // Processed by its machine @@ -56,23 +57,5 @@ machinery_computer.update_icon() return -/obj/item/modular_computer/processor/add_verb(path) - switch(path) - if(MC_CARD) - machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_id - if(MC_SDD) - machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_disk - if(MC_AI) - machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_card - -/obj/item/modular_computer/processor/remove_verb(path) - switch(path) - if(MC_CARD) - machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_id - if(MC_SDD) - machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_disk - if(MC_AI) - machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_card - /obj/item/modular_computer/processor/attack_ghost(mob/user) ui_interact(user) diff --git a/code/modules/modular_computers/computers/item/tablet.dm b/code/modules/modular_computers/computers/item/tablet.dm index 41a256467f..67e8118c7a 100644 --- a/code/modules/modular_computers/computers/item/tablet.dm +++ b/code/modules/modular_computers/computers/item/tablet.dm @@ -5,10 +5,11 @@ icon_state_unpowered = "tablet" icon_state_powered = "tablet" icon_state_menu = "menu" - //worn_icon_state = "tablet" + // worn_icon_state = "tablet" hardware_flag = PROGRAM_TABLET max_hardware_size = 1 w_class = WEIGHT_CLASS_SMALL + max_bays = 3 steel_sheet_cost = 1 slot_flags = ITEM_SLOT_ID | ITEM_SLOT_BELT has_light = TRUE //LED flashlight! diff --git a/code/modules/modular_computers/computers/item/tablet_presets.dm b/code/modules/modular_computers/computers/item/tablet_presets.dm index 7cca8ea5b4..8ac669d2bf 100644 --- a/code/modules/modular_computers/computers/item/tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/tablet_presets.dm @@ -26,11 +26,21 @@ install_component(new /obj/item/computer_hardware/processor_unit/small) install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer)) install_component(hard_drive) + install_component(new /obj/item/computer_hardware/card_slot) install_component(new /obj/item/computer_hardware/network_card) install_component(new /obj/item/computer_hardware/printer/mini) hard_drive.store_file(new /datum/computer_file/program/bounty) //hard_drive.store_file(new /datum/computer_file/program/shipping) +/obj/item/modular_computer/tablet/preset/advanced/atmos/Initialize() //This will be defunct and will be replaced when NtOS PDAs are done + . = ..() + install_component(new /obj/item/computer_hardware/sensorpackage) + +/obj/item/modular_computer/tablet/preset/advanced/command/Initialize() + . = ..() + install_component(new /obj/item/computer_hardware/sensorpackage) + install_component(new /obj/item/computer_hardware/card_slot/secondary) + /// Given by the syndicate as part of the contract uplink bundle - loads in the Contractor Uplink. /obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink/Initialize() . = ..() diff --git a/code/modules/modular_computers/computers/machinery/console_presets.dm b/code/modules/modular_computers/computers/machinery/console_presets.dm index 9d29b23e76..12b2f6d25a 100644 --- a/code/modules/modular_computers/computers/machinery/console_presets.dm +++ b/code/modules/modular_computers/computers/machinery/console_presets.dm @@ -1,6 +1,6 @@ /obj/machinery/modular_computer/console/preset // Can be changed to give devices specific hardware - var/_has_id_slot = FALSE + var/_has_second_id_slot = FALSE var/_has_printer = FALSE var/_has_battery = FALSE var/_has_ai = FALSE @@ -11,8 +11,9 @@ return cpu.install_component(new /obj/item/computer_hardware/processor_unit) - if(_has_id_slot) - cpu.install_component(new /obj/item/computer_hardware/card_slot) + cpu.install_component(new /obj/item/computer_hardware/card_slot) + if(_has_second_id_slot) + cpu.install_component(new /obj/item/computer_hardware/card_slot/secondary) if(_has_printer) cpu.install_component(new /obj/item/computer_hardware/printer) if(_has_battery) @@ -59,7 +60,7 @@ console_department = "Command" name = "command console" desc = "A stationary computer. This one comes preloaded with command programs." - _has_id_slot = TRUE + _has_second_id_slot = TRUE _has_printer = TRUE /obj/machinery/modular_computer/console/preset/command/install_programs() @@ -73,7 +74,7 @@ console_department = "Identification" name = "identification console" desc = "A stationary computer. This one comes preloaded with identification modification programs." - _has_id_slot = TRUE + _has_second_id_slot = TRUE _has_printer = TRUE /obj/machinery/modular_computer/console/preset/id/install_programs() diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 6f016ad147..0e6f4d161a 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -75,30 +75,6 @@ add_overlay("bsod") add_overlay("broken") -// Eject ID card from computer, if it has ID slot with card inside. -/obj/machinery/modular_computer/proc/eject_id() - set name = "Eject ID" - set category = "Object" - - if(cpu) - cpu.eject_id() - -// Eject ID card from computer, if it has ID slot with card inside. -/obj/machinery/modular_computer/proc/eject_disk() - set name = "Eject Data Disk" - set category = "Object" - - if(cpu) - cpu.eject_disk() - -/obj/machinery/modular_computer/proc/eject_card() - set name = "Eject Intellicard" - set category = "Object" - set src in view(1) - - if(cpu) - cpu.eject_card() - /obj/machinery/modular_computer/AltClick(mob/user) if(cpu) cpu.AltClick(user) @@ -136,7 +112,7 @@ return . = ..() -/obj/machinery/modular_computer/attackby(var/obj/item/W as obj, mob/user) +/obj/machinery/modular_computer/attackby(obj/item/W as obj, mob/user) if(cpu && !(flags_1 & NODECONSTRUCT_1)) return cpu.attackby(W, user) return ..() @@ -169,5 +145,4 @@ // "Brute" damage mostly damages the casing. /obj/machinery/modular_computer/bullet_act(obj/item/projectile/Proj) if(cpu) - return cpu.bullet_act(Proj) - return ..() + cpu.bullet_act(Proj) diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 12e5ef6e95..6d6a48d567 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -25,8 +25,6 @@ var/ntnet_status = 1 /// Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL var/usage_flags = PROGRAM_ALL - /// Optional string that describes what NTNet server/system this program connects to. Used in default logging. - var/network_destination = null /// Whether the program can be downloaded from NTNet. Set to 0 to disable. var/available_on_ntnet = 1 /// Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable. @@ -82,10 +80,18 @@ /datum/computer_file/program/proc/process_tick() return 1 -// Check if the user can run program. Only humans can operate computer. Automatically called in run_program() -// User has to wear their ID for ID Scan to work. -// Can also be called manually, with optional parameter being access_to_check to scan the user's ID -/datum/computer_file/program/proc/can_run(mob/user, loud = FALSE, access_to_check, transfer = FALSE) +/** + *Check if the user can run program. Only humans can operate computer. Automatically called in run_program() + *ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when + *NT Software Hub is checking available software), a list can be given to be used instead. + *Arguments: + *user is a ref of the mob using the device. + *loud is a bool deciding if this proc should use to_chats + *access_to_check is an access level that will be checked against the ID + *transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check + *access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID. +*/ +/datum/computer_file/program/proc/can_run(mob/user, loud = FALSE, access_to_check, transfer = FALSE, var/list/access) // Defaults to required_access if(!access_to_check) if(transfer && transfer_access) @@ -104,29 +110,24 @@ if(issilicon(user)) return TRUE - if(ishuman(user)) + if(!length(access)) var/obj/item/card/id/D var/obj/item/computer_hardware/card_slot/card_slot - if(computer && card_slot) + if(computer) card_slot = computer.all_components[MC_CARD] - D = card_slot.GetID() - var/mob/living/carbon/human/h = user - var/obj/item/card/id/I = h.get_idcard(TRUE) + D = card_slot?.GetID() - if(!I && !D) + if(!D) if(loud) to_chat(user, "\The [computer] flashes an \"RFID Error - Unable to scan ID\" warning.") return FALSE + access = D.GetAccess() - if(I) - if(access_to_check in I.GetAccess()) - return TRUE - else if(D) - if(access_to_check in D.GetAccess()) - return TRUE - if(loud) - to_chat(user, "\The [computer] flashes an \"Access Denied\" warning.") - return 0 + if(access_to_check in access) + return TRUE + if(loud) + to_chat(user, "\The [computer] flashes an \"Access Denied\" warning.") + return FALSE // This attempts to retrieve header data for UIs. If implementing completely new device of different type than existing ones // always include the device here in this proc. This proc basically relays the request to whatever is running the program. @@ -139,8 +140,12 @@ // When implementing new program based device, use this to run the program. /datum/computer_file/program/proc/run_program(mob/living/user) if(can_run(user, 1)) - if(requires_ntnet && network_destination) - generate_network_log("Connection opened to [network_destination].") + if(requires_ntnet) + var/obj/item/card/id/ID + var/obj/item/computer_hardware/card_slot/card_holder = computer.all_components[MC_CARD] + if(card_holder) + ID = card_holder.GetID() + generate_network_log("Connection opened -- Program ID: [filename] User:[ID?"[ID.registered_name]":"None"]") program_state = PROGRAM_STATE_ACTIVE return 1 return 0 @@ -162,8 +167,12 @@ // Use this proc to kill the program. Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. /datum/computer_file/program/proc/kill_program(forced = FALSE) program_state = PROGRAM_STATE_KILLED - if(network_destination) - generate_network_log("Connection to [network_destination] closed.") + if(requires_ntnet) + var/obj/item/card/id/ID + var/obj/item/computer_hardware/card_slot/card_holder = computer.all_components[MC_CARD] + if(card_holder) + ID = card_holder.GetID() + generate_network_log("Connection closed -- Program ID: [filename] User:[ID?"[ID.registered_name]":"None"]") return 1 /datum/computer_file/program/ui_interact(mob/user, datum/tgui/ui) diff --git a/code/modules/modular_computers/file_system/program_events.dm b/code/modules/modular_computers/file_system/program_events.dm index 3c1daa5af3..1cb74a227b 100644 --- a/code/modules/modular_computers/file_system/program_events.dm +++ b/code/modules/modular_computers/file_system/program_events.dm @@ -2,7 +2,7 @@ // Always include a parent call when overriding an event. // Called when the ID card is removed from computer. ID is removed AFTER this proc. -/datum/computer_file/program/proc/event_idremoved(background, slot) +/datum/computer_file/program/proc/event_idremoved(background) return // Called when the computer fails due to power loss. Override when program wants to specifically react to power loss. diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm index 364ad79737..7ae6dd203a 100644 --- a/code/modules/modular_computers/file_system/programs/airestorer.dm +++ b/code/modules/modular_computers/file_system/programs/airestorer.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/aidiag filename = "aidiag" - filedesc = "AI Integrity Restorer" + filedesc = "NT FRK" program_icon_state = "generic" - extended_desc = "This program is capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot." + extended_desc = "Firmware Restoration Kit, capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot." size = 12 requires_ntnet = FALSE usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP @@ -48,7 +48,7 @@ if(computer.all_components[MC_AI]) var/obj/item/computer_hardware/ai_slot/ai_slot = computer.all_components[MC_AI] if(ai_slot && ai_slot.stored_card) - ai_slot.try_eject(0,usr) + ai_slot.try_eject(usr) return TRUE /datum/computer_file/program/aidiag/process_tick() @@ -71,14 +71,19 @@ ai_slot.locked = FALSE restoring = FALSE return - ai_slot.locked =TRUE + ai_slot.locked = TRUE A.adjustOxyLoss(-5, 0)//, FALSE) A.adjustFireLoss(-5, 0)//, FALSE) A.adjustToxLoss(-5, 0) A.adjustBruteLoss(-5, 0) + + // Please don't forget to update health, otherwise the below if statements will probably always fail. A.updatehealth() + if(A.health >= 0 && A.stat == DEAD) A.revive(full_heal = FALSE, admin_revive = FALSE) + cardhold.update_icon() + // Finished restoring if(A.health >= 100) ai_slot.locked = FALSE diff --git a/code/modules/modular_computers/file_system/programs/alarm.dm b/code/modules/modular_computers/file_system/programs/alarm.dm index 577fad83d0..55dea600e3 100644 --- a/code/modules/modular_computers/file_system/programs/alarm.dm +++ b/code/modules/modular_computers/file_system/programs/alarm.dm @@ -1,11 +1,10 @@ /datum/computer_file/program/alarm_monitor filename = "alarmmonitor" - filedesc = "Alarm Monitor" + filedesc = "Canary" ui_header = "alarm_green.gif" program_icon_state = "alert-green" - extended_desc = "This program provides visual interface for station's alarm system." + extended_desc = "This program provides visual interface for a station's alarm system." requires_ntnet = 1 - network_destination = "alarm monitoring network" size = 5 tgui_id = "NtosStationAlertConsole" var/has_alert = 0 diff --git a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm index 3accb8e02d..aa361d4544 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm @@ -14,7 +14,7 @@ var/assigned = FALSE var/first_load = TRUE -/datum/computer_file/program/contract_uplink/run_program(var/mob/living/user) +/datum/computer_file/program/contract_uplink/run_program(mob/living/user) . = ..(user) /datum/computer_file/program/contract_uplink/ui_act(action, params) diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm index 2ba3d69fe6..4f1c488b9e 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm @@ -10,7 +10,7 @@ tgui_id = "NtosRevelation" var/armed = 0 -/datum/computer_file/program/revelation/run_program(var/mob/living/user) +/datum/computer_file/program/revelation/run_program(mob/living/user) . = ..(user) if(armed) activate() diff --git a/code/modules/modular_computers/file_system/programs/arcade.dm b/code/modules/modular_computers/file_system/programs/arcade.dm index 2503073f9a..87a3f1ec94 100644 --- a/code/modules/modular_computers/file_system/programs/arcade.dm +++ b/code/modules/modular_computers/file_system/programs/arcade.dm @@ -1,10 +1,9 @@ /datum/computer_file/program/arcade - filename = "arcade" - filedesc = "Nanotrasen Micro Arcade" + filename = "dsarcade" + filedesc = "Donksoft Micro Arcade" program_icon_state = "arcade" extended_desc = "This port of the classic game 'Outbomb Cuban Pete', redesigned to run on tablets, with thrilling graphics and chilling storytelling." requires_ntnet = FALSE - network_destination = "arcade network" size = 6 tgui_id = "NtosArcade" @@ -25,7 +24,7 @@ /datum/computer_file/program/arcade/proc/game_check(mob/user) sleep(5) - //user?.mind?.adjust_experience(/datum/skill/gaming, 1) No gaming(TM) Yet + // user?.mind?.adjust_experience(/datum/skill/gaming, 1) if(boss_hp <= 0) heads_up = "You have crushed [boss_name]! Rejoice!" playsound(computer.loc, 'sound/arcade/win.ogg', 50, TRUE, extrarange = -3, falloff = 10) @@ -34,7 +33,7 @@ if(istype(computer)) computer.update_icon() ticket_count += 1 - //user?.mind?.adjust_experience(/datum/skill/gaming, 50) + // user?.mind?.adjust_experience(/datum/skill/gaming, 50) sleep(10) else if(player_hp <= 0 || player_mp <= 0) heads_up = "You have been defeated... how will the station survive?" @@ -43,7 +42,7 @@ program_icon_state = "arcade_off" if(istype(computer)) computer.update_icon() - //user?.mind?.adjust_experience(/datum/skill/gaming, 10) + // user?.mind?.adjust_experience(/datum/skill/gaming, 10) sleep(10) /datum/computer_file/program/arcade/proc/enemy_check(mob/user) @@ -98,8 +97,8 @@ if(computer) printer = computer.all_components[MC_PRINT] - //var/gamerSkillLevel = usr.mind?.get_skill_level(/datum/skill/gaming) - //var/gamerSkill = usr.mind?.get_skill_modifier(/datum/skill/gaming, SKILL_RANDS_MODIFIER) + // var/gamerSkillLevel = usr.mind?.get_skill_level(/datum/skill/gaming) + // var/gamerSkill = usr.mind?.get_skill_modifier(/datum/skill/gaming, SKILL_RANDS_MODIFIER) switch(action) if("Attack") var/attackamt = 0 //Spam prevention. @@ -119,8 +118,8 @@ if(pause_state == FALSE) healamt = rand(6,8)// + rand(0, gamerSkill) var/maxPointCost = 3 - //if(gamerSkillLevel >= SKILL_LEVEL_JOURNEYMAN) - // maxPointCost = 2 + // if(gamerSkillLevel >= SKILL_LEVEL_JOURNEYMAN) + // maxPointCost = 2 healcost = rand(1, maxPointCost) pause_state = TRUE heads_up = "You heal for [healamt] damage." diff --git a/code/modules/modular_computers/file_system/programs/atmosscan.dm b/code/modules/modular_computers/file_system/programs/atmosscan.dm index 2df751bebd..c4b9951838 100644 --- a/code/modules/modular_computers/file_system/programs/atmosscan.dm +++ b/code/modules/modular_computers/file_system/programs/atmosscan.dm @@ -1,17 +1,25 @@ /datum/computer_file/program/atmosscan filename = "atmosscan" - filedesc = "Atmospheric Scanner" + filedesc = "AtmoZphere" program_icon_state = "air" extended_desc = "A small built-in sensor reads out the atmospheric conditions around the device." - network_destination = "atmos scan" size = 4 tgui_id = "NtosAtmos" +/datum/computer_file/program/atmosscan/run_program(mob/living/user) + . = ..() + if (!.) + return + if(!computer?.get_modular_computer_part(MC_SENSORS)) //Giving a clue to users why the program is spitting out zeros. + to_chat(user, "\The [computer] flashes an error: \"hardware\\sensorpackage\\startup.bin -- file not found\".") + + /datum/computer_file/program/atmosscan/ui_data(mob/user) var/list/data = get_header_data() var/list/airlist = list() var/turf/T = get_turf(ui_host()) - if(T) + var/obj/item/computer_hardware/sensorpackage/sensors = computer?.get_modular_computer_part(MC_SENSORS) + if(T && sensors?.check_functionality()) var/datum/gas_mixture/environment = T.return_air() var/list/env_gases = environment.get_gases() var/pressure = environment.return_pressure() @@ -24,6 +32,10 @@ if(gas_level > 0) airlist += list(list("name" = "[GLOB.meta_gas_names[id]]", "percentage" = round(gas_level*100, 0.01))) data["AirData"] = airlist + else + data["AirPressure"] = 0 + data["AirTemp"] = 0 + data["AirData"] = list(list()) return data /datum/computer_file/program/atmosscan/ui_act(action, list/params) diff --git a/code/modules/modular_computers/file_system/programs/borg_monitor.dm b/code/modules/modular_computers/file_system/programs/borg_monitor.dm index c2160a0e92..13caab27ef 100644 --- a/code/modules/modular_computers/file_system/programs/borg_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/borg_monitor.dm @@ -1,12 +1,11 @@ /datum/computer_file/program/borg_monitor - filename = "cyborgmonitor" - filedesc = "Cyborg Remote Monitoring" + filename = "siliconnect" + filedesc = "SiliConnect" ui_header = "borg_mon.gif" program_icon_state = "generic" extended_desc = "This program allows for remote monitoring of station cyborgs." requires_ntnet = TRUE transfer_access = ACCESS_ROBOTICS - network_destination = "cyborg remote monitoring" size = 5 tgui_id = "NtosCyborgRemoteMonitor" @@ -32,7 +31,7 @@ var/list/cyborg_data = list( name = R.name, - locked_down = R.lockcharge, + locked_down = R.locked_down, status = R.stat, shell_discon = shell, charge = R.cell ? round(R.cell.percent()) : null, @@ -81,8 +80,8 @@ return ID.registered_name /datum/computer_file/program/borg_monitor/syndicate - filename = "scyborgmonitor" - filedesc = "Mission-Specific Cyborg Remote Monitoring" + filename = "roboverlord" + filedesc = "Roboverlord" ui_header = "borg_mon.gif" program_icon_state = "generic" extended_desc = "This program allows for remote monitoring of mission-assigned cyborgs." @@ -90,7 +89,6 @@ available_on_ntnet = FALSE available_on_syndinet = TRUE transfer_access = null - network_destination = "cyborg remote monitoring" tgui_id = "NtosCyborgRemoteMonitorSyndicate" /datum/computer_file/program/borg_monitor/syndicate/evaluate_borg(mob/living/silicon/robot/R) diff --git a/code/modules/modular_computers/file_system/programs/bounty_board.dm b/code/modules/modular_computers/file_system/programs/bounty_board.dm index 46fde84f65..2e7d3cc87f 100644 --- a/code/modules/modular_computers/file_system/programs/bounty_board.dm +++ b/code/modules/modular_computers/file_system/programs/bounty_board.dm @@ -4,7 +4,6 @@ program_icon_state = "bountyboard" extended_desc = "A multi-platform network for placing requests across the station, with payment across the network being possible.." requires_ntnet = TRUE - network_destination = "bounty board interface" size = 10 tgui_id = "NtosRequestKiosk" ///Reference to the currently logged in user. diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index 842d6e2588..6d45914add 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -7,8 +7,8 @@ #define CARDCON_DEPARTMENT_COMMAND "Command" /datum/computer_file/program/card_mod - filename = "cardmod" - filedesc = "ID Card Modification" + filename = "plexagonidwriter" + filedesc = "Plexagon Access Management" program_icon_state = "id" extended_desc = "Program for programming employee ID cards to access parts of the station." transfer_access = ACCESS_HEADS @@ -98,17 +98,19 @@ return TRUE var/obj/item/computer_hardware/card_slot/card_slot + var/obj/item/computer_hardware/card_slot/card_slot2 var/obj/item/computer_hardware/printer/printer if(computer) card_slot = computer.all_components[MC_CARD] + card_slot2 = computer.all_components[MC_CARD2] printer = computer.all_components[MC_PRINT] - if(!card_slot) + if(!card_slot || !card_slot2) return var/mob/user = usr - var/obj/item/card/id/user_id_card = user.get_idcard(FALSE) + var/obj/item/card/id/user_id_card = card_slot.stored_card - var/obj/item/card/id/id_card = card_slot.stored_card + var/obj/item/card/id/target_id_card = card_slot2.stored_card switch(action) if("PRG_authenticate") @@ -129,14 +131,14 @@ return var/contents = {"

    Access Report

    Prepared By: [user_id_card && user_id_card.registered_name ? user_id_card.registered_name : "Unknown"]
    - For: [id_card.registered_name ? id_card.registered_name : "Unregistered"]
    + For: [target_id_card.registered_name ? target_id_card.registered_name : "Unregistered"]

    - Assignment: [id_card.assignment]
    + Assignment: [target_id_card.assignment]
    Access:
    "} var/known_access_rights = get_all_accesses() - for(var/A in id_card.access) + for(var/A in target_id_card.access) if(A in known_access_rights) contents += " [get_access_desc(A)]" @@ -148,43 +150,40 @@ computer.visible_message("\The [computer] prints out a paper.") return TRUE if("PRG_eject") - if(!computer || !card_slot) + if(!computer || !card_slot2) return - if(id_card) - GLOB.data_core.manifest_modify(id_card.registered_name, id_card.assignment) - card_slot.try_eject(TRUE, user) + if(target_id_card) + GLOB.data_core.manifest_modify(target_id_card.registered_name, target_id_card.assignment) + return card_slot2.try_eject(user) else var/obj/item/I = user.get_active_held_item() if(istype(I, /obj/item/card/id)) - if(!user.transferItemToLoc(I, computer)) - return - card_slot.stored_card = I - playsound(computer, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) - return TRUE + return card_slot2.try_insert(I) + return FALSE if("PRG_terminate") if(!computer || !authenticated) return if(minor) - if(!(id_card.assignment in head_subordinates) && id_card.assignment != "Assistant") + if(!(target_id_card.assignment in head_subordinates) && target_id_card.assignment != "Assistant") return - id_card.access -= get_all_centcom_access() + get_all_accesses() - id_card.assignment = "Unassigned" - id_card.update_label() + target_id_card.access -= get_all_centcom_access() + get_all_accesses() + target_id_card.assignment = "Unassigned" + target_id_card.update_label() playsound(computer, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) return TRUE if("PRG_edit") - if(!computer || !authenticated || !id_card) + if(!computer || !authenticated || !target_id_card) return var/new_name = params["name"] if(!new_name) return - id_card.registered_name = new_name - id_card.update_label() + target_id_card.registered_name = new_name + target_id_card.update_label() playsound(computer, "terminal_type", 50, FALSE) return TRUE if("PRG_assign") - if(!computer || !authenticated || !id_card) + if(!computer || !authenticated || !target_id_card) return var/target = params["assign_target"] if(!target) @@ -193,8 +192,8 @@ if(target == "Custom") var/custom_name = params["custom_name"] if(custom_name) - id_card.assignment = custom_name - id_card.update_label() + target_id_card.assignment = custom_name + target_id_card.update_label() else if(minor && !(target in head_subordinates)) return @@ -212,10 +211,10 @@ to_chat(user, "No class exists for this job: [target]") return new_access = job.get_access() - id_card.access -= get_all_centcom_access() + get_all_accesses() - id_card.access |= new_access - id_card.assignment = target - id_card.update_label() + target_id_card.access -= get_all_centcom_access() + get_all_accesses() + target_id_card.access |= new_access + target_id_card.assignment = target + target_id_card.update_label() playsound(computer, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) return TRUE if("PRG_access") @@ -223,22 +222,22 @@ return var/access_type = text2num(params["access_target"]) if(access_type in (is_centcom ? get_all_centcom_access() : get_all_accesses())) - if(access_type in id_card.access) - id_card.access -= access_type + if(access_type in target_id_card.access) + target_id_card.access -= access_type else - id_card.access |= access_type + target_id_card.access |= access_type playsound(computer, "terminal_type", 50, FALSE) return TRUE if("PRG_grantall") if(!computer || !authenticated || minor) return - id_card.access |= (is_centcom ? get_all_centcom_access() : get_all_accesses()) + target_id_card.access |= (is_centcom ? get_all_centcom_access() : get_all_accesses()) playsound(computer, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) return TRUE if("PRG_denyall") if(!computer || !authenticated || minor) return - id_card.access.Cut() + target_id_card.access.Cut() playsound(computer, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) return TRUE if("PRG_grantregion") @@ -247,7 +246,7 @@ var/region = text2num(params["region"]) if(isnull(region)) return - id_card.access |= get_region_accesses(region) + target_id_card.access |= get_region_accesses(region) playsound(computer, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) return TRUE if("PRG_denyregion") @@ -256,7 +255,7 @@ var/region = text2num(params["region"]) if(isnull(region)) return - id_card.access -= get_region_accesses(region) + target_id_card.access -= get_region_accesses(region) playsound(computer, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) return TRUE @@ -321,17 +320,17 @@ /datum/computer_file/program/card_mod/ui_data(mob/user) var/list/data = get_header_data() - var/obj/item/computer_hardware/card_slot/card_slot + var/obj/item/computer_hardware/card_slot/card_slot2 var/obj/item/computer_hardware/printer/printer if(computer) - card_slot = computer.all_components[MC_CARD] + card_slot2 = computer.all_components[MC_CARD2] printer = computer.all_components[MC_PRINT] data["station_name"] = station_name() if(computer) - data["have_id_slot"] = !!card_slot + data["have_id_slot"] = !!(card_slot2) data["have_printer"] = !!printer else data["have_id_slot"] = FALSE @@ -340,7 +339,7 @@ data["authenticated"] = authenticated if(computer) - var/obj/item/card/id/id_card = card_slot.stored_card + var/obj/item/card/id/id_card = card_slot2.stored_card data["has_id"] = !!id_card data["id_name"] = id_card ? id_card.name : "-----" if(id_card) diff --git a/code/modules/modular_computers/file_system/programs/cargobounty.dm b/code/modules/modular_computers/file_system/programs/cargobounty.dm index d9bc65c98d..74ac44ade3 100644 --- a/code/modules/modular_computers/file_system/programs/cargobounty.dm +++ b/code/modules/modular_computers/file_system/programs/cargobounty.dm @@ -5,7 +5,6 @@ extended_desc = "A basic interface for supply personnel to check and claim bounties." requires_ntnet = TRUE transfer_access = ACCESS_CARGO - network_destination = "cargo claims interface" size = 10 tgui_id = "NtosBountyConsole" ///cooldown var for printing paper sheets. diff --git a/code/modules/modular_computers/file_system/programs/cargoship.dm b/code/modules/modular_computers/file_system/programs/cargoship.dm index 3ba08a3719..db8d6d9f82 100644 --- a/code/modules/modular_computers/file_system/programs/cargoship.dm +++ b/code/modules/modular_computers/file_system/programs/cargoship.dm @@ -1,9 +1,8 @@ /datum/computer_file/program/shipping filename = "shipping" - filedesc = "Nanotrasen Shipping Scanner" + filedesc = "GrandArk Exporter" program_icon_state = "shipping" extended_desc = "A combination printer/scanner app that enables modular computers to print barcodes for easy scanning and shipping." - network_destination = "ship scanner" size = 6 tgui_id = "NtosShipping" ///Account used for creating barcodes. diff --git a/code/modules/modular_computers/file_system/programs/crewmanifest.dm b/code/modules/modular_computers/file_system/programs/crewmanifest.dm index a1503ce3a8..4f2688d8f1 100644 --- a/code/modules/modular_computers/file_system/programs/crewmanifest.dm +++ b/code/modules/modular_computers/file_system/programs/crewmanifest.dm @@ -1,10 +1,10 @@ /datum/computer_file/program/crew_manifest - filename = "crewmani" - filedesc = "Crew Manifest" + filename = "plexagoncrew" + filedesc = "Plexagon Crew List" program_icon_state = "id" extended_desc = "Program for viewing and printing the current crew manifest" transfer_access = ACCESS_HEADS - requires_ntnet = FALSE + requires_ntnet = TRUE size = 4 tgui_id = "NtosCrewManifest" diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.dm b/code/modules/modular_computers/file_system/programs/jobmanagement.dm index bccc6e4dbe..b88b793b66 100644 --- a/code/modules/modular_computers/file_system/programs/jobmanagement.dm +++ b/code/modules/modular_computers/file_system/programs/jobmanagement.dm @@ -1,10 +1,10 @@ /datum/computer_file/program/job_management - filename = "job_manage" - filedesc = "Job Manager" + filename = "plexagoncore" + filedesc = "Plexagon HR Core" program_icon_state = "id" extended_desc = "Program for viewing and changing job slot avalibility." transfer_access = ACCESS_HEADS - requires_ntnet = 0 + requires_ntnet = TRUE size = 4 tgui_id = "NtosJobManager" diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index 6401d6207f..8fbcfd0b01 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -1,14 +1,14 @@ /datum/computer_file/program/ntnetdownload - filename = "ntndownloader" - filedesc = "Software Download Tool" + filename = "ntsoftwarehub" + filedesc = "NT Software Hub" program_icon_state = "generic" extended_desc = "This program allows downloads of software from official NT repositories" - unsendable = 1 - undeletable = 1 + unsendable = TRUE + undeletable = TRUE size = 4 - requires_ntnet = 1 + requires_ntnet = TRUE requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD - available_on_ntnet = 0 + available_on_ntnet = FALSE ui_header = "downloader_finished.gif" tgui_id = "NtosNetDownloader" @@ -125,6 +125,8 @@ if(!istype(my_computer)) return + var/obj/item/computer_hardware/card_slot/card_slot = computer.all_components[MC_CARD] + var/list/access = card_slot?.GetAccess() var/list/data = get_header_data() @@ -146,7 +148,7 @@ for(var/A in main_repo) var/datum/computer_file/program/P = A // Only those programs our user can run will show in the list - if(!P.can_run(user,transfer = 1) || hard_drive.find_file_by_name(P.filename)) + if(!P.can_run(user,transfer = 1, access = access) || hard_drive.find_file_by_name(P.filename)) continue all_entries.Add(list(list( "filename" = P.filename, diff --git a/code/modules/modular_computers/file_system/programs/ntmonitor.dm b/code/modules/modular_computers/file_system/programs/ntmonitor.dm index 7d6d89f32c..bbbde14780 100644 --- a/code/modules/modular_computers/file_system/programs/ntmonitor.dm +++ b/code/modules/modular_computers/file_system/programs/ntmonitor.dm @@ -1,6 +1,6 @@ /datum/computer_file/program/ntnetmonitor - filename = "ntmonitor" - filedesc = "NTNet Diagnostics and Monitoring" + filename = "wirecarp" + filedesc = "WireCarp" //wireshark. program_icon_state = "comm_monitor" extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes" size = 12 diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm index df9b02d8ec..f03ff3f8fd 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -6,7 +6,6 @@ size = 8 requires_ntnet = 1 requires_ntnet_feature = NTNET_COMMUNICATION - network_destination = "NTNRC server" ui_header = "ntnrc_idle.gif" available_on_ntnet = 1 tgui_id = "NtosNetChat" diff --git a/code/modules/modular_computers/file_system/programs/powermonitor.dm b/code/modules/modular_computers/file_system/programs/powermonitor.dm index bd11474858..e87a731a40 100644 --- a/code/modules/modular_computers/file_system/programs/powermonitor.dm +++ b/code/modules/modular_computers/file_system/programs/powermonitor.dm @@ -1,15 +1,14 @@ //normal computer version is located in code\modules\power\monitor.dm, /obj/machinery/computer/monitor /datum/computer_file/program/power_monitor - filename = "powermonitor" - filedesc = "Power Monitor" + filename = "ampcheck" + filedesc = "AmpCheck" program_icon_state = "power_monitor" extended_desc = "This program connects to sensors around the station to provide information about electrical systems" ui_header = "power_norm.gif" transfer_access = ACCESS_ENGINE usage_flags = PROGRAM_CONSOLE requires_ntnet = 0 - network_destination = "power monitoring system" size = 9 tgui_id = "NtosPowerMonitor" diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index 9b0e09ef99..216365d6ea 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -7,7 +7,6 @@ transfer_access = null available_on_ntnet = FALSE usage_flags = PROGRAM_LAPTOP | PROGRAM_TABLET - network_destination = "tracking program" size = 5 tgui_id = "NtosRadar" ///List of trackable entities. Updated by the scan() proc. @@ -207,7 +206,7 @@ ///A program that tracks crew members via suit sensors /datum/computer_file/program/radar/lifeline - filename = "Lifeline" + filename = "lifeline" filedesc = "Lifeline" extended_desc = "This program allows for tracking of crew members via their suit sensors." requires_ntnet = TRUE @@ -252,9 +251,9 @@ //Nuke Disk Finder App// //////////////////////// -///A program that tracks crew members via suit sensors +///A program that tracks nukes and nuclear accessories /datum/computer_file/program/radar/fission360 - filename = "Fission360" + filename = "fission360" filedesc = "Fission360" program_icon_state = "radarsyndicate" extended_desc = "This program allows for tracking of nuclear authorization disks and warheads." @@ -276,8 +275,6 @@ objects = list() for(var/i in GLOB.nuke_list) var/obj/machinery/nuclearbomb/nuke = i - if(!trackable(nuke)) - continue var/list/nukeinfo = list( ref = REF(nuke), @@ -285,9 +282,8 @@ ) objects += list(nukeinfo) var/obj/item/disk/nuclear/disk = locate() in GLOB.poi_list - if(trackable(disk)) - var/list/nukeinfo = list( - ref = REF(disk), - name = disk.name, - ) - objects += list(nukeinfo) + var/list/nukeinfo = list( + ref = REF(disk), + name = "Nuke Auth. Disk", + ) + objects += list(nukeinfo) diff --git a/code/modules/modular_computers/file_system/programs/robocontrol.dm b/code/modules/modular_computers/file_system/programs/robocontrol.dm index 8644ce09b4..c0b82b9c95 100644 --- a/code/modules/modular_computers/file_system/programs/robocontrol.dm +++ b/code/modules/modular_computers/file_system/programs/robocontrol.dm @@ -1,12 +1,11 @@ /datum/computer_file/program/robocontrol - filename = "robocontrol" - filedesc = "Bot Remote Controller" + filename = "botkeeper" + filedesc = "Botkeeper" program_icon_state = "robot" extended_desc = "A remote controller used for giving basic commands to non-sentient robots." transfer_access = ACCESS_ROBOTICS requires_ntnet = TRUE - network_destination = "robotics control network" size = 12 tgui_id = "NtosRoboControl" ///Number of simple robots on-station. @@ -78,7 +77,7 @@ return if(id_card) GLOB.data_core.manifest_modify(id_card.registered_name, id_card.assignment) - card_slot.try_eject(TRUE, current_user) + card_slot.try_eject(current_user) else playsound(get_turf(ui_host()) , 'sound/machines/buzz-sigh.ogg', 25, FALSE) return diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index 32ad102871..e4cf590930 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -1,12 +1,11 @@ /datum/computer_file/program/supermatter_monitor - filename = "smmonitor" - filedesc = "Supermatter Monitoring" + filename = "ntcims" + filedesc = "NT CIMS" ui_header = "smmon_0.gif" program_icon_state = "smmon_0" - extended_desc = "This program connects to specially calibrated supermatter sensors to provide information on the status of supermatter-based engines." + extended_desc = "Crystal Integrity Monitoring System, connects to specially calibrated supermatter sensors to provide information on the status of supermatter-based engines." requires_ntnet = TRUE transfer_access = ACCESS_CONSTRUCTION - network_destination = "supermatter monitoring system" size = 5 tgui_id = "NtosSupermatterMonitor" var/last_status = SUPERMATTER_INACTIVE diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm index b33442f99b..81555340b2 100644 --- a/code/modules/modular_computers/hardware/_hardware.dm +++ b/code/modules/modular_computers/hardware/_hardware.dm @@ -10,9 +10,11 @@ // Computer that holds this hardware, if any. var/power_usage = 0 // If the hardware uses extra power, change this. - var/enabled = 1 // If the hardware is turned off set this to 0. - var/critical = 0 // Prevent disabling for important component, like the CPU. - var/can_install = 1 // Prevents direct installation of removable media. + var/enabled = TRUE // If the hardware is turned off set this to 0. + var/critical = FALSE // Prevent disabling for important component, like the CPU. + var/can_install = TRUE // Prevents direct installation of removable media. + var/expansion_hw = FALSE // Hardware that fits into expansion bays. + var/removable = TRUE // Whether the hardware is removable or not. var/damage = 0 // Current damage level var/max_damage = 100 // Maximal damage level. var/damage_malfunction = 20 // "Malfunction" threshold. When damage exceeds this value the hardware piece will semi-randomly fail and do !!FUN!! things @@ -20,7 +22,7 @@ var/malfunction_probability = 10// Chance of malfunction when the component is damaged var/device_type -/obj/item/computer_hardware/New(var/obj/L) +/obj/item/computer_hardware/New(obj/L) ..() pixel_x = rand(-8, 8) pixel_y = rand(-8, 8) @@ -56,7 +58,7 @@ return TRUE // Called on multitool click, prints diagnostic information to the user. -/obj/item/computer_hardware/proc/diagnostics(var/mob/user) +/obj/item/computer_hardware/proc/diagnostics(mob/user) to_chat(user, "Hardware Integrity Test... (Corruption: [damage]/[max_damage]) [damage > damage_failure ? "FAIL" : damage > damage_malfunction ? "WARN" : "PASS"]") // Handles damage checks @@ -73,7 +75,7 @@ return TRUE // Good to go. -/obj/item/computer_hardware/examine(var/mob/user) +/obj/item/computer_hardware/examine(mob/user) . = ..() if(damage > damage_failure) . += "It seems to be severely damaged!" diff --git a/code/modules/modular_computers/hardware/ai_slot.dm b/code/modules/modular_computers/hardware/ai_slot.dm index 0ad157afcb..c874d786a0 100644 --- a/code/modules/modular_computers/hardware/ai_slot.dm +++ b/code/modules/modular_computers/hardware/ai_slot.dm @@ -5,6 +5,7 @@ icon_state = "card_mini" w_class = WEIGHT_CLASS_SMALL device_type = MC_AI + expansion_hw = TRUE var/obj/item/aicard/stored_card = null var/locked = FALSE @@ -19,12 +20,6 @@ if(stored_card) . += "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it." -/obj/item/computer_hardware/ai_slot/on_install(obj/item/modular_computer/M, mob/living/user = null) - M.add_verb(device_type) - -/obj/item/computer_hardware/ai_slot/on_remove(obj/item/modular_computer/M, mob/living/user = null) - M.remove_verb(device_type) - /obj/item/computer_hardware/ai_slot/try_insert(obj/item/I, mob/living/user = null) if(!holder) return FALSE @@ -44,7 +39,7 @@ return TRUE -/obj/item/computer_hardware/ai_slot/try_eject(slot=0,mob/living/user = null,forced = 0) +/obj/item/computer_hardware/ai_slot/try_eject(mob/living/user = null,forced = FALSE) if(!stored_card) to_chat(user, "There is no card in \the [src].") return FALSE diff --git a/code/modules/modular_computers/hardware/battery_module.dm b/code/modules/modular_computers/hardware/battery_module.dm index 6e3193abfd..0668248315 100644 --- a/code/modules/modular_computers/hardware/battery_module.dm +++ b/code/modules/modular_computers/hardware/battery_module.dm @@ -21,7 +21,7 @@ /obj/item/computer_hardware/battery/handle_atom_del(atom/A) if(A == battery) - try_eject(0, null, TRUE) + try_eject(forced = TRUE) . = ..() /obj/item/computer_hardware/battery/try_insert(obj/item/I, mob/living/user = null) @@ -48,7 +48,7 @@ return TRUE -/obj/item/computer_hardware/battery/try_eject(slot=0, mob/living/user = null, forced = 0) +/obj/item/computer_hardware/battery/try_eject(mob/living/user = null, forced = FALSE) if(!battery) to_chat(user, "There is no power cell connected to \the [src].") return FALSE diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm index 18b423a42e..c243bf7db1 100644 --- a/code/modules/modular_computers/hardware/card_slot.dm +++ b/code/modules/modular_computers/hardware/card_slot.dm @@ -7,13 +7,10 @@ device_type = MC_CARD var/obj/item/card/id/stored_card = null - var/obj/item/card/id/stored_card2 = null /obj/item/computer_hardware/card_slot/handle_atom_del(atom/A) if(A == stored_card) - try_eject(1, null, TRUE) - if(A == stored_card2) - try_eject(2, null, TRUE) + try_eject(null, TRUE) . = ..() /obj/item/computer_hardware/card_slot/Destroy() @@ -21,37 +18,25 @@ return ..() /obj/item/computer_hardware/card_slot/GetAccess() - if(stored_card && stored_card2) // Best of both worlds - return (stored_card.GetAccess() | stored_card2.GetAccess()) - else if(stored_card) - return stored_card.GetAccess() - else if(stored_card2) - return stored_card2.GetAccess() - return ..() + var/list/total_access + if(stored_card) + total_access = stored_card.GetAccess() + var/obj/item/computer_hardware/card_slot/card_slot2 = holder?.all_components[MC_CARD2] //Best of both worlds + if(card_slot2?.stored_card) + total_access |= card_slot2.stored_card.GetAccess() + return total_access /obj/item/computer_hardware/card_slot/GetID() if(stored_card) return stored_card - else if(stored_card2) - return stored_card2 return ..() /obj/item/computer_hardware/card_slot/RemoveID() if(stored_card) . = stored_card - if(!try_eject(1)) + if(!try_eject()) return null return - if(stored_card2) - . = stored_card2 - if(!try_eject(2)) - return null - -/obj/item/computer_hardware/card_slot/on_install(obj/item/modular_computer/M, mob/living/user = null) - M.add_verb(device_type) - -/obj/item/computer_hardware/card_slot/on_remove(obj/item/modular_computer/M, mob/living/user = null) - M.remove_verb(device_type) /obj/item/computer_hardware/card_slot/try_insert(obj/item/I, mob/living/user = null) if(!holder) @@ -60,8 +45,7 @@ if(!istype(I, /obj/item/card/id)) return FALSE - if(stored_card && stored_card2) - to_chat(user, "You try to insert \the [I] into \the [src], but its slots are occupied.") + if(stored_card) return FALSE if(user) if(!user.transferItemToLoc(I, src)) @@ -69,11 +53,8 @@ else I.forceMove(src) - if(!stored_card) - stored_card = I - else - stored_card2 = I - to_chat(user, "You insert \the [I] into \the [src].") + stored_card = I + to_chat(user, "You insert \the [I] into \the [expansion_hw ? "secondary":"primary"] [src].") playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) if(ishuman(user)) var/mob/living/carbon/human/H = user @@ -82,53 +63,58 @@ return TRUE -/obj/item/computer_hardware/card_slot/try_eject(slot=0, mob/living/user = null, forced = 0) - if(!stored_card && !stored_card2) +/obj/item/computer_hardware/card_slot/try_eject(mob/living/user = null, forced = FALSE) + if(!stored_card) to_chat(user, "There are no cards in \the [src].") return FALSE - var/ejected = 0 - if(stored_card && (!slot || slot == 1)) - if(user) - user.put_in_hands(stored_card) - else - stored_card.forceMove(drop_location()) - stored_card = null - ejected++ + if(user) + user.put_in_hands(stored_card) + else + stored_card.forceMove(drop_location()) + stored_card = null - if(stored_card2 && (!slot || slot == 2)) - if(user) - user.put_in_hands(stored_card2) - else - stored_card2.forceMove(drop_location()) - stored_card2 = null - ejected++ + if(holder) + if(holder.active_program) + holder.active_program.event_idremoved(0) - if(ejected) - if(holder) - if(holder.active_program) - holder.active_program.event_idremoved(0, slot) - - for(var/I in holder.idle_threads) - var/datum/computer_file/program/P = I - P.event_idremoved(1, slot) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - H.sec_hud_set_ID() - to_chat(user, "You remove the card[ejected>1 ? "s" : ""] from \the [src].") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) - return TRUE - return FALSE + for(var/p in holder.idle_threads) + var/datum/computer_file/program/computer_program = p + computer_program.event_idremoved(1) + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + human_user.sec_hud_set_ID() + to_chat(user, "You remove the card from \the [src].") + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + return TRUE /obj/item/computer_hardware/card_slot/attackby(obj/item/I, mob/living/user) if(..()) return if(I.tool_behaviour == TOOL_SCREWDRIVER) - to_chat(user, "You press down on the manual eject button with \the [I].") - try_eject(0,user) - return + if(stored_card) + to_chat(user, "You press down on the manual eject button with \the [I].") + try_eject(user) + return + swap_slot() + to_chat(user, "You adjust the connecter to fit into [expansion_hw ? "an expansion bay" : "the primary ID bay"].") + +/** + *Swaps the card_slot hardware between using the dedicated card slot bay on a computer, and using an expansion bay. +*/ +/obj/item/computer_hardware/card_slot/proc/swap_slot() + expansion_hw = !expansion_hw + if(expansion_hw) + device_type = MC_CARD2 + else + device_type = MC_CARD /obj/item/computer_hardware/card_slot/examine(mob/user) . = ..() - if(stored_card || stored_card2) + . += "The connector is set to fit into [expansion_hw ? "an expansion bay" : "a computer's primary ID bay"], but can be adjusted with a screwdriver." + if(stored_card) . += "There appears to be something loaded in the card slots." + +/obj/item/computer_hardware/card_slot/secondary + device_type = MC_CARD2 + expansion_hw = TRUE diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm index b8b9624388..e5c133de20 100644 --- a/code/modules/modular_computers/hardware/hard_drive.dm +++ b/code/modules/modular_computers/hardware/hard_drive.dm @@ -22,14 +22,14 @@ . = ..() . += "It has [max_capacity] GQ of storage capacity." -/obj/item/computer_hardware/hard_drive/diagnostics(var/mob/user) +/obj/item/computer_hardware/hard_drive/diagnostics(mob/user) ..() // 999 is a byond limit that is in place. It's unlikely someone will reach that many files anyway, since you would sooner run out of space. to_chat(user, "NT-NFS File Table Status: [stored_files.len]/999") to_chat(user, "Storage capacity: [used_capacity]/[max_capacity]GQ") // Use this proc to add file to the drive. Returns 1 on success and 0 on failure. Contains necessary sanity checks. -/obj/item/computer_hardware/hard_drive/proc/store_file(var/datum/computer_file/F) +/obj/item/computer_hardware/hard_drive/proc/store_file(datum/computer_file/F) if(!F || !istype(F)) return 0 @@ -52,7 +52,7 @@ return 1 // Use this proc to remove file from the drive. Returns 1 on success and 0 on failure. Contains necessary sanity checks. -/obj/item/computer_hardware/hard_drive/proc/remove_file(var/datum/computer_file/F) +/obj/item/computer_hardware/hard_drive/proc/remove_file(datum/computer_file/F) if(!F || !istype(F)) return 0 @@ -78,7 +78,7 @@ used_capacity = total_size // Checks whether file can be stored on the hard drive. We can only store unique files, so this checks whether we wouldn't get a duplicity by adding a file. -/obj/item/computer_hardware/hard_drive/proc/can_store_file(var/datum/computer_file/F) +/obj/item/computer_hardware/hard_drive/proc/can_store_file(datum/computer_file/F) if(!F || !istype(F)) return 0 @@ -101,7 +101,7 @@ // Tries to find the file by filename. Returns null on failure -/obj/item/computer_hardware/hard_drive/proc/find_file_by_name(var/filename) +/obj/item/computer_hardware/hard_drive/proc/find_file_by_name(filename) if(!check_functionality()) return null diff --git a/code/modules/modular_computers/hardware/network_card.dm b/code/modules/modular_computers/hardware/network_card.dm index fe1b1879cb..04bf494fe4 100644 --- a/code/modules/modular_computers/hardware/network_card.dm +++ b/code/modules/modular_computers/hardware/network_card.dm @@ -11,7 +11,7 @@ device_type = MC_NET var/static/ntnet_card_uid = 1 -/obj/item/computer_hardware/network_card/diagnostics(var/mob/user) +/obj/item/computer_hardware/network_card/diagnostics(mob/user) ..() to_chat(user, "NIX Unique ID: [identification_id]") to_chat(user, "NIX User Tag: [identification_string]") @@ -22,7 +22,7 @@ if(ethernet) to_chat(user, "OpenEth (Physical Connection) - Physical network connection port") -/obj/item/computer_hardware/network_card/New(var/l) +/obj/item/computer_hardware/network_card/New(l) ..() identification_id = ntnet_card_uid++ @@ -31,7 +31,7 @@ return "[identification_string] (NID [identification_id])" // 0 - No signal, 1 - Low signal, 2 - High signal. 3 - Wired Connection -/obj/item/computer_hardware/network_card/proc/get_signal(var/specific_action = 0) +/obj/item/computer_hardware/network_card/proc/get_signal(specific_action = 0) if(!holder) // Hardware is not installed in anything. No signal. How did this even get called? return 0 diff --git a/code/modules/modular_computers/hardware/portable_disk.dm b/code/modules/modular_computers/hardware/portable_disk.dm index b5a957be04..89b0382e86 100644 --- a/code/modules/modular_computers/hardware/portable_disk.dm +++ b/code/modules/modular_computers/hardware/portable_disk.dm @@ -8,12 +8,8 @@ max_capacity = 16 device_type = MC_SDD -/obj/item/computer_hardware/hard_drive/portable/on_install(obj/item/modular_computer/M, mob/living/user = null) - M.add_verb(device_type) - -/obj/item/computer_hardware/hard_drive/portable/on_remove(obj/item/modular_computer/M, mob/living/user = null) - ..() - M.remove_verb(device_type) +/obj/item/computer_hardware/hard_drive/portable/on_remove(obj/item/modular_computer/MC, mob/user) + return //this is a floppy disk, let's not shut the computer down when it gets pulled out. /obj/item/computer_hardware/hard_drive/portable/install_default_programs() return // Empty by default diff --git a/code/modules/modular_computers/hardware/printer.dm b/code/modules/modular_computers/hardware/printer.dm index ebe40c1922..3bd5946435 100644 --- a/code/modules/modular_computers/hardware/printer.dm +++ b/code/modules/modular_computers/hardware/printer.dm @@ -5,6 +5,7 @@ icon_state = "printer" w_class = WEIGHT_CLASS_NORMAL device_type = MC_PRINT + expansion_hw = TRUE var/stored_paper = 20 var/max_paper = 30 diff --git a/code/modules/modular_computers/hardware/sensor_package.dm b/code/modules/modular_computers/hardware/sensor_package.dm new file mode 100644 index 0000000000..c0363bc809 --- /dev/null +++ b/code/modules/modular_computers/hardware/sensor_package.dm @@ -0,0 +1,8 @@ +//This item doesn't do much on its own, but is required by apps such as AtmoZphere. +/obj/item/computer_hardware/sensorpackage + name = "sensor package" + desc = "An integrated sensor package allowing a computer to take readings from the environment. Required by certain programs." + icon_state = "servo" + w_class = WEIGHT_CLASS_TINY + device_type = MC_SENSORS + expansion_hw = TRUE diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index a8d30bad21..83bb057d66 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -52,6 +52,7 @@ var/obj/item/computer_hardware/battery/battery_module = null if(fabricate) fabricated_laptop = new /obj/item/modular_computer/laptop/buildable(src) + fabricated_laptop.install_component(new /obj/item/computer_hardware/card_slot) fabricated_laptop.install_component(new /obj/item/computer_hardware/battery) battery_module = fabricated_laptop.all_components[MC_CELL] total_price = 99 @@ -107,7 +108,7 @@ if(dev_card) total_price += 199 if(fabricate) - fabricated_laptop.install_component(new /obj/item/computer_hardware/card_slot) + fabricated_laptop.install_component(new /obj/item/computer_hardware/card_slot/secondary) return total_price else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this. @@ -116,6 +117,7 @@ fabricated_tablet = new(src) fabricated_tablet.install_component(new /obj/item/computer_hardware/battery) fabricated_tablet.install_component(new /obj/item/computer_hardware/processor_unit/small) + fabricated_tablet.install_component(new/obj/item/computer_hardware/card_slot) battery_module = fabricated_tablet.all_components[MC_CELL] total_price = 199 switch(dev_battery) @@ -154,11 +156,11 @@ if(dev_printer) total_price += 99 if(fabricate) - fabricated_tablet.install_component(new/obj/item/computer_hardware/printer) + fabricated_tablet.install_component(new/obj/item/computer_hardware/printer/mini) if(dev_card) total_price += 199 if(fabricate) - fabricated_tablet.install_component(new/obj/item/computer_hardware/card_slot) + fabricated_tablet.install_component(new/obj/item/computer_hardware/card_slot/secondary) return total_price return FALSE @@ -257,7 +259,7 @@ say("Insufficient credits on card to purchase!") return credits += target_credits - say("[target_credits] cr has been deposited from your account.") + say("[target_credits] cr have been withdrawn from your account.") return return ..() diff --git a/code/modules/newscaster/newscaster_machine.dm b/code/modules/newscaster/newscaster_machine.dm index cb2d49fc64..7e515bf0f5 100644 --- a/code/modules/newscaster/newscaster_machine.dm +++ b/code/modules/newscaster/newscaster_machine.dm @@ -95,6 +95,10 @@ GLOBAL_LIST_EMPTY(allCasters) . = ..() update_icon() +/obj/machinery/newscaster/attack_ghost(mob/dead/observer/user) + if(istype(user)) + user.read_news() + /obj/machinery/newscaster/ui_interact(mob/user) . = ..() if(ishuman(user) || issilicon(user)) @@ -336,7 +340,6 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="Return" var/datum/browser/popup = new(human_or_robot_user, "newscaster_main", "Newscaster Unit #[unit_no]", 400, 600) popup.set_content(dat) - popup.set_title_image(human_or_robot_user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/machinery/newscaster/Topic(href, href_list) diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm index ea96c1cdf6..29dc78e5f3 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm @@ -6,5 +6,5 @@ if(!ninjacost(250,N_STEALTH_CANCEL)) var/mob/living/carbon/human/H = affecting playsound(H.loc, 'sound/effects/empulse.ogg', 60, 2) - empulse(H, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. + empulse_using_range(H, 9) //Procs sure are nice. Slightly weaker than wizard's disable tch. s_coold = 2 diff --git a/code/modules/paperwork/carbonpaper.dm b/code/modules/paperwork/carbonpaper.dm new file mode 100644 index 0000000000..dc8f172069 --- /dev/null +++ b/code/modules/paperwork/carbonpaper.dm @@ -0,0 +1,45 @@ +/obj/item/paper/carbon + name = "sheet of carbon" + icon_state = "paper_stack" + item_state = "paper" + // inhand_icon_state = "paper" + show_written_words = FALSE + var/copied = FALSE + var/iscopy = FALSE + +/obj/item/paper/carbon/update_icon_state() + if(iscopy) + icon_state = "cpaper" + else if(copied) + icon_state = "paper" + else + icon_state = "paper_stack" + if(info) + icon_state = "[icon_state]_words" + +/obj/item/paper/carbon/proc/removecopy(mob/living/user) + if(!copied) + var/obj/item/paper/carbon/C = src + var/copycontents = C.info + var/obj/item/paper/carbon/Copy = new /obj/item/paper/carbon(user.loc) + + if(info) + copycontents = replacetext(copycontents, "" + Copy.name = "Copy - [C.name]" + to_chat(user, "You tear off the carbon-copy!") + C.copied = TRUE + Copy.iscopy = TRUE + Copy.update_icon_state() + C.update_icon_state() + user.put_in_hands(Copy) + else + to_chat(user, "There are no more carbon copies attached to this paper!") + +/obj/item/paper/carbon/on_attack_hand(mob/living/user) + if(loc == user && user.is_holding(src)) + removecopy(user) + return + return ..() diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 1a93661c76..5b576a2438 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -3,6 +3,8 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "clipboard" item_state = "clipboard" + // inhand_icon_state = "clipboard" + // worn_icon_state = "clipboard" throwforce = 0 w_class = WEIGHT_CLASS_SMALL throw_speed = 3 @@ -34,7 +36,6 @@ . += "clipboard_pen" . += "clipboard_over" - /obj/item/clipboard/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/paper)) if(!user.transferItemToLoc(W, src)) @@ -92,14 +93,14 @@ to_chat(usr, "You slot [W] into [src].") if(href_list["write"]) - var/obj/item/P = locate(href_list["write"]) - if(istype(P) && P.loc == src) + var/obj/item/P = locate(href_list["write"]) in src + if(istype(P)) if(usr.get_active_held_item()) P.attackby(usr.get_active_held_item(), usr) if(href_list["remove"]) - var/obj/item/P = locate(href_list["remove"]) - if(istype(P) && P.loc == src) + var/obj/item/P = locate(href_list["remove"]) in src + if(istype(P)) P.forceMove(usr.loc) usr.put_in_hands(P) if(P == toppaper) @@ -111,13 +112,13 @@ toppaper = null if(href_list["read"]) - var/obj/item/paper/P = locate(href_list["read"]) - if(istype(P) && P.loc == src) + var/obj/item/paper/P = locate(href_list["read"]) in src + if(istype(P)) usr.examinate(P) if(href_list["top"]) - var/obj/item/P = locate(href_list["top"]) - if(istype(P) && P.loc == src) + var/obj/item/P = locate(href_list["top"]) in src + if(istype(P)) toppaper = P to_chat(usr, "You move [P.name] to the top.") diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index b8f2c95762..390cd0cf83 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -35,7 +35,7 @@ . = ..() if(mapload) for(var/obj/item/I in loc) - if(istype(I, /obj/item/paper) || istype(I, /obj/item/folder) || istype(I, /obj/item/photo)) + if(I.w_class < WEIGHT_CLASS_NORMAL) //there probably shouldn't be anything placed ontop of filing cabinets in a map that isn't meant to go in them I.forceMove(src) /obj/structure/filingcabinet/deconstruct(disassembled = TRUE) @@ -46,7 +46,12 @@ qdel(src) /obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/paper) || istype(P, /obj/item/folder) || istype(P, /obj/item/photo) || istype(P, /obj/item/documents)) + if(P.tool_behaviour == TOOL_WRENCH && user.a_intent != INTENT_HELP) + to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") + if(P.use_tool(src, user, 20, volume=50)) + to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].") + anchored = !anchored + else if(P.w_class < WEIGHT_CLASS_NORMAL) if(!user.transferItemToLoc(P, src)) return to_chat(user, "You put [P] in [src].") @@ -54,11 +59,6 @@ sleep(5) icon_state = initial(icon_state) updateUsrDialog() - else if(istype(P, /obj/item/wrench)) - to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") - if(P.use_tool(src, user, 20, volume=50)) - to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].") - anchored = !anchored else if(user.a_intent != INTENT_HARM) to_chat(user, "You can't put [P] in [src]!") else @@ -67,9 +67,6 @@ /obj/structure/filingcabinet/ui_interact(mob/user) . = ..() - if(isobserver(user)) - return - if(contents.len <= 0) to_chat(user, "[src] is empty.") return @@ -100,16 +97,17 @@ to_chat(user, "You find nothing in [src].") /obj/structure/filingcabinet/Topic(href, href_list) + if(!usr.canUseTopic(src, BE_CLOSE, ismonkey(usr))) + return if(href_list["retrieve"]) usr << browse("", "window=filingcabinet") // Close the menu - var/obj/item/P = locate(href_list["retrieve"])//contents[retrieveindex] - if(istype(P) && P.loc == src && in_range(src, usr)) + var/obj/item/P = locate(href_list["retrieve"]) in src //contents[retrieveindex] + if(istype(P) && in_range(src, usr)) usr.put_in_hands(P) updateUsrDialog() icon_state = "[initial(icon_state)]-open" - sleep(5) - icon_state = initial(icon_state) + addtimer(VARSET_CALLBACK(src, icon_state, initial(icon_state)), 5) /* @@ -170,6 +168,7 @@ virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/filingcabinet/medical/on_attack_hand() populate() . = ..() diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index c32afab342..305099d115 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -33,7 +33,10 @@ if(contents.len) . += "folder_paper" + /obj/item/folder/attackby(obj/item/W, mob/user, params) + if(burn_paper_product_attackby_check(W, user)) + return if(istype(W, /obj/item/paper) || istype(W, /obj/item/photo) || istype(W, /obj/item/documents)) if(!user.transferItemToLoc(W, src)) return @@ -43,11 +46,14 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the cover of [src]!") return + var/inputvalue = stripped_input(user, "What would you like to label the folder?", "Folder Labelling", "", MAX_NAME_LEN) + if(!inputvalue) return + if(user.canUseTopic(src, BE_CLOSE)) - name = "folder - '[inputvalue]'" + name = "folder[(inputvalue ? " - '[inputvalue]'" : null)]" /obj/item/folder/Destroy() @@ -76,14 +82,14 @@ if(usr.contents.Find(src)) if(href_list["remove"]) - var/obj/item/I = locate(href_list["remove"]) - if(istype(I) && I.loc == src) + var/obj/item/I = locate(href_list["remove"]) in src + if(istype(I)) I.forceMove(usr.loc) usr.put_in_hands(I) if(href_list["read"]) - var/obj/item/I = locate(href_list["read"]) - if(istype(I) && I.loc == src) + var/obj/item/I = locate(href_list["read"]) in src + if(istype(I)) usr.examinate(I) //Update everything diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index d054e5ff12..da9fdc4ca4 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -1,9 +1,10 @@ /obj/item/hand_labeler name = "hand labeler" - desc = "A combined label printer and applicator in a portable device, designed to be easy to operate and use." + desc = "A combined label printer, applicator, and remover, all in a single portable device. Designed to be easy to operate and use." icon = 'icons/obj/bureaucracy.dmi' icon_state = "labeler0" item_state = "flight" + // inhand_icon_state = "flight" var/label = null var/labels_left = 30 var/mode = 0 @@ -55,9 +56,10 @@ to_chat(user, "You can't label creatures!") // use a collar return - user.visible_message("[user] labels [A] as [label].", \ - "You label [A] as [label].") - A.name = "[A.name] ([label])" + user.visible_message("[user] labels [A] with \"[label]\".", \ + "You label [A] with \"[label]\".") + A.AddComponent(/datum/component/label, label) + // playsound(A, 'sound/items/handling/component_pickup.ogg', 20, TRUE) labels_left-- @@ -90,7 +92,9 @@ name = "cyborg-hand labeler" /obj/item/hand_labeler/borg/afterattack(atom/A, mob/user, proximity) - . = ..(A, user, proximity) + . = ..() + if(!proximity) + return if(!iscyborg(user)) return @@ -114,6 +118,7 @@ desc = "A roll of paper. Use it on a hand labeler to refill it." icon_state = "labeler_refill" item_state = "electropack" + // inhand_icon_state = "electropack" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 5d842ef11a..20ec678e45 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -11,41 +11,6 @@ #define MODE_WRITING 1 #define MODE_STAMPING 2 -/** - * This is a custom ui state. All it really does is keep track of pen - * being used and if they are editing it or not. This way we can keep - * the data with the ui rather than on the paper - */ -/datum/ui_state/default/paper_state - /// What edit mode we are in and who is - /// writing on it right now - var/edit_mode = MODE_READING - /// Setup for writing to a sheet - var/pen_color = "black" - var/pen_font = "" - var/is_crayon = FALSE - /// Setup for stamping a sheet - // Why not the stamp obj? I have no idea - // what happens to states out of scope so - // don't want to put instances in this - var/stamp_icon_state = "" - var/stamp_name = "" - var/stamp_class = "" - -/datum/ui_state/default/paper_state/proc/copy_from(datum/ui_state/default/paper_state/from) - switch(from.edit_mode) - if(MODE_READING) - edit_mode = MODE_READING - if(MODE_WRITING) - edit_mode = MODE_WRITING - pen_color = from.pen_color - pen_font = from.pen_font - is_crayon = from.is_crayon - if(MODE_STAMPING) - edit_mode = MODE_STAMPING - stamp_icon_state = from.stamp_icon_state - stamp_class = from.stamp_class - stamp_name = from.stamp_name /** * Paper is now using markdown (like in github pull notes) for ALL rendering @@ -58,6 +23,9 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "paper" item_state = "paper" + // inhand_icon_state = "paper" + // worn_icon_state = "paper" + // custom_fire_overlay = "paper_onfire_overlay" throwforce = 0 w_class = WEIGHT_CLASS_TINY throw_range = 1 @@ -80,34 +48,19 @@ var/list/stamps /// Positioning for the stamp in tgui var/list/stamped /// Overlay info - /// This REALLY should be a componenet. Basicly used during, april fools - /// to honk at you - var/rigged = 0 - var/spam_flag = 0 - var/contact_poison // Reagent ID to transfer on contact var/contact_poison_volume = 0 - // Ok, so WHY are we caching the ui's? - // Since we are not using autoupdate we - // need some way to update the ui's of - // other people looking at it and if - // its been updated. Yes yes, lame - // but canot be helped. However by - // doing it this way, we can see - // live updates and have multipule - // people look at it - var/list/viewing_ui = list() - /// When the sheet can be "filled out" /// This is an associated list var/list/form_fields = list() var/field_counter = 1 /obj/item/paper/Destroy() - close_all_ui() stamps = null stamped = null + form_fields = null + stamped = null . = ..() /** @@ -162,7 +115,7 @@ set category = "Object" set src in usr - if(usr.incapacitated() || !usr.is_literate()) + if(!usr.can_read(src) || usr.incapacitated(TRUE, TRUE) || (isobserver(usr) && !IsAdminGhost(usr))) return if(ishuman(usr)) var/mob/living/carbon/human/H = usr @@ -180,18 +133,6 @@ user.visible_message("[user] scratches a grid on [user.p_their()] wrist with the paper! It looks like [user.p_theyre()] trying to commit sudoku...") return (BRUTELOSS) -/// ONLY USED FOR APRIL FOOLS -/obj/item/paper/proc/reset_spamflag() - spam_flag = FALSE - -/obj/item/paper/attack_self(mob/user) - if(rigged && (SSevents.holidays && SSevents.holidays[APRIL_FOOLS])) - if(!spam_flag) - spam_flag = TRUE - playsound(loc, 'sound/items/bikehorn.ogg', 50, TRUE) - addtimer(CALLBACK(src, .proc/reset_spamflag), 20) - . = ..() - /obj/item/paper/proc/clearpaper() info = "" stamps = null @@ -199,28 +140,39 @@ cut_overlays() update_icon_state() -/obj/item/paper/examine_more(mob/user) - ui_interact(user) - return list("You try to read [src]...") +/obj/item/paper/examine(mob/user) + . = ..() + if(!in_range(user, src) && !isobserver(user)) + . += "You're too far away to read it!" + return + if(user.can_read(src)) + ui_interact(user) + return + . += "You cannot read it!" + +/obj/item/paper/ui_status(mob/user,/datum/ui_state/state) + // Are we on fire? Hard ot read if so + if(resistance_flags & ON_FIRE) + return UI_CLOSE + if(!in_range(user,src)) + return UI_CLOSE + if(user.incapacitated(TRUE, TRUE) || (isobserver(user) && !IsAdminGhost(user))) + return UI_UPDATE + // Even harder to read if your blind...braile? humm + // .. or if you cannot read + if(!user.can_read(src)) + return UI_CLOSE + if(in_contents_of(/obj/machinery/door/airlock)) + return UI_INTERACTIVE + return ..() + + /obj/item/paper/can_interact(mob/user) - if(!..()) - return FALSE - // Are we on fire? Hard ot read if so - if(resistance_flags & ON_FIRE) - return FALSE - // Even harder to read if your blind...braile? humm - if(user.is_blind()) - return FALSE - // checks if the user can read. - return user.can_read(src) + if(in_contents_of(/obj/machinery/door/airlock)) + return TRUE + return ..() -/** - * This creates the ui, since we are using a custom state but not much else - * just makes it easyer to make it. - */ -/obj/item/paper/proc/create_ui(mob/user, datum/ui_state/default/paper_state/state) - ui_interact(user, state = state) /obj/item/proc/burn_paper_product_attackby_check(obj/item/I, mob/living/user, bypass_clumsy) var/ignition_message = I.ignition_effect(src, user) @@ -244,49 +196,22 @@ /obj/item/paper/attackby(obj/item/P, mob/living/user, params) if(burn_paper_product_attackby_check(P, user)) - close_all_ui() + SStgui.close_uis(src) return if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) if(length(info) >= MAX_PAPER_LENGTH) // Sheet must have less than 1000 charaters to_chat(user, "This sheet of paper is full!") return - - var/datum/ui_state/default/paper_state/state = new - state.edit_mode = MODE_WRITING - // should a crayon be in the same subtype as a pen? How about a brush or charcoal? - // TODO: Convert all writing stuff to one type, /obj/item/art_tool maybe? - state.is_crayon = istype(P, /obj/item/toy/crayon); - if(state.is_crayon) - var/obj/item/toy/crayon/PEN = P - state.pen_font = CRAYON_FONT - state.pen_color = PEN.paint_color - else - var/obj/item/pen/PEN = P - state.pen_font = PEN.font - state.pen_color = PEN.colour - - create_ui(user, state) + ui_interact(user) return else if(istype(P, /obj/item/stamp)) - - var/datum/ui_state/default/paper_state/state = new - state.edit_mode = MODE_STAMPING // we are read only becausse the sheet is full - state.stamp_icon_state = P.icon_state - state.stamp_name = P.name - - var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/simple/paper) - state.stamp_class = sheet.icon_class_name(P.icon_state) - to_chat(user, "You ready your stamp over the paper! ") - - create_ui(user, state) + ui_interact(user) return /// Normaly you just stamp, you don't need to read the thing else // cut paper? the sky is the limit! - var/datum/ui_state/default/paper_state/state = new - state.edit_mode = MODE_READING - create_ui(user, state) // The other ui will be created with just read mode outside of this + ui_interact(user) // The other ui will be created with just read mode outside of this return ..() @@ -301,68 +226,64 @@ get_asset_datum(/datum/asset/spritesheet/simple/paper), ) -/obj/item/paper/ui_interact(mob/user, datum/tgui/ui, - datum/ui_state/default/paper_state/state) - // Update the state - ui = ui || SStgui.get_open_ui(user, src) - if(ui && state) - var/datum/ui_state/default/paper_state/current_state = ui.state - current_state.copy_from(state) +/obj/item/paper/ui_interact(mob/user, datum/tgui/ui) // Update the UI ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "PaperSheet", name) - state = new - ui.set_state(state) - ui.set_autoupdate(FALSE) - viewing_ui[user] = ui ui.open() -/obj/item/paper/ui_close(mob/user) - /// close the editing window and change the mode - viewing_ui[user] = null - . = ..() -// Again, we have to do this as autoupdate is off -/obj/item/paper/proc/update_all_ui() - for(var/datum/tgui/ui in viewing_ui) - ui.process(force = TRUE) +/obj/item/paper/ui_static_data(mob/user) + . = list() + .["text"] = info + .["max_length"] = MAX_PAPER_LENGTH + .["paper_color"] = !color || color == "white" ? "#FFFFFF" : color // color might not be set + .["paper_state"] = icon_state /// TODO: show the sheet will bloodied or crinkling? + .["stamps"] = stamps + -// Again, we have to do this as autoupdate is off -/obj/item/paper/proc/close_all_ui() - for(var/datum/tgui/ui in viewing_ui) - ui.close() - viewing_ui = list() /obj/item/paper/ui_data(mob/user) var/list/data = list() - - var/datum/tgui/ui = viewing_ui[user] - var/datum/ui_state/default/paper_state/state = ui.state - - // Should all this go in static data and just do a forced update? - data["text"] = info - data["max_length"] = MAX_PAPER_LENGTH - data["paper_state"] = icon_state /// TODO: show the sheet will bloodied or crinkling? - data["paper_color"] = !color || color == "white" ? "#FFFFFF" : color // color might not be set - data["stamps"] = stamps - - data["edit_mode"] = state.edit_mode - data["edit_usr"] = "[ui.user]"; - - // pen info for editing - data["is_crayon"] = state.is_crayon - data["pen_font"] = state.pen_font - data["pen_color"] = state.pen_color - // stamping info for..stamping - data["stamp_class"] = state.stamp_class - + var/obj/O = user.get_active_held_item() + if(istype(O, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/PEN = O + data["pen_font"] = CRAYON_FONT + data["pen_color"] = PEN.paint_color + data["edit_mode"] = MODE_WRITING + data["is_crayon"] = TRUE + data["stamp_class"] = "FAKE" + data["stamp_icon_state"] = "FAKE" + else if(istype(O, /obj/item/pen)) + var/obj/item/pen/PEN = O + data["pen_font"] = PEN.font + data["pen_color"] = PEN.colour + data["edit_mode"] = MODE_WRITING + data["is_crayon"] = FALSE + data["stamp_class"] = "FAKE" + data["stamp_icon_state"] = "FAKE" + else if(istype(O, /obj/item/stamp)) + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/simple/paper) + data["stamp_icon_state"] = O.icon_state + data["stamp_class"] = sheet.icon_class_name(O.icon_state) + data["edit_mode"] = MODE_STAMPING + data["pen_font"] = "FAKE" + data["pen_color"] = "FAKE" + data["is_crayon"] = FALSE + else + data["edit_mode"] = MODE_READING + data["pen_font"] = "FAKE" + data["pen_color"] = "FAKE" + data["is_crayon"] = FALSE + data["stamp_icon_state"] = "FAKE" + data["stamp_class"] = "FAKE" data["field_counter"] = field_counter data["form_fields"] = form_fields return data -/obj/item/paper/ui_act(action, params, datum/tgui/ui, datum/ui_state/default/paper_state/state) +/obj/item/paper/ui_act(action, params,datum/tgui/ui) if(..()) return switch(action) @@ -370,34 +291,33 @@ var/stamp_x = text2num(params["x"]) var/stamp_y = text2num(params["y"]) var/stamp_r = text2num(params["r"]) // rotation in degrees - + var/stamp_icon_state = params["stamp_icon_state"] + var/stamp_class = params["stamp_class"] if (isnull(stamps)) - stamps = new/list() + stamps = list() if(stamps.len < MAX_PAPER_STAMPS) // I hate byond when dealing with freaking lists - stamps += list(list(state.stamp_class, stamp_x, stamp_y,stamp_r)) /// WHHHHY + stamps[++stamps.len] = list(stamp_class, stamp_x, stamp_y, stamp_r) /// WHHHHY /// This does the overlay stuff if (isnull(stamped)) - stamped = new/list() + stamped = list() if(stamped.len < MAX_PAPER_STAMPS_OVERLAYS) - var/mutable_appearance/stampoverlay = mutable_appearance('icons/obj/bureaucracy.dmi', "paper_[state.stamp_icon_state]") + var/mutable_appearance/stampoverlay = mutable_appearance('icons/obj/bureaucracy.dmi', "paper_[stamp_icon_state]") stampoverlay.pixel_x = rand(-2, 2) stampoverlay.pixel_y = rand(-3, 2) add_overlay(stampoverlay) - LAZYADD(stamped, state.stamp_icon_state) + LAZYADD(stamped, stamp_icon_state) - ui.user.visible_message("[ui.user] stamps [src] with [state.stamp_name]!", "You stamp [src] with [state.stamp_name]!") + update_static_data(usr,ui) + ui.user.visible_message("[ui.user] stamps [src] with [stamp_class]!", "You stamp [src] with [stamp_class]!") else to_chat(usr, pick("You try to stamp but you miss!", "There is no where else you can stamp!")) - - update_all_ui() . = TRUE if("save") var/in_paper = params["text"] var/paper_len = length(in_paper) - var/list/fields = params["form_fields"] field_counter = params["field_counter"] ? text2num(params["field_counter"]) : field_counter if(paper_len > MAX_PAPER_LENGTH) @@ -413,14 +333,10 @@ if(info != in_paper) to_chat(ui.user, "You have added to your paper masterpiece!"); info = in_paper - - for(var/key in fields) - form_fields[key] = fields[key]; + update_static_data(usr,ui) - update_all_ui() update_icon() - . = TRUE /** diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index 3937720f74..a3b9b23141 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -26,11 +26,11 @@ var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD) if(BP) BP.drop_limb() - playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) + playsound(loc, pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg'),50, TRUE, -1) return (BRUTELOSS) else user.visible_message("[user] repeatedly bashes [src.name] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) + playsound(loc, 'sound/items/gavel.ogg', 50, TRUE, -1) return (BRUTELOSS) @@ -42,11 +42,12 @@ if(storedpaper) . += "paper" + /obj/item/papercutter/attackby(obj/item/P, mob/user, params) if(istype(P, /obj/item/paper) && !storedpaper) if(!user.transferItemToLoc(P, src)) return - playsound(loc, "pageturn", 60, 1) + playsound(loc, "pageturn", 60, TRUE) to_chat(user, "You place [P] in [src].") storedpaper = P update_icon() @@ -59,17 +60,17 @@ storedcutter = P update_icon() return - if(istype(P, /obj/item/screwdriver) && storedcutter) + if(P.tool_behaviour == TOOL_SCREWDRIVER && storedcutter) P.play_tool_sound(src) to_chat(user, "[storedcutter] has been [cuttersecured ? "unsecured" : "secured"].") cuttersecured = !cuttersecured return ..() -/obj/item/papercutter/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) +/obj/item/papercutter/on_attack_hand(mob/user) add_fingerprint(user) if(!storedcutter) - to_chat(user, "The cutting blade is gone! You can't use [src] now.") + to_chat(user, "The cutting blade is gone! You can't use [src] now.") return if(!cuttersecured) @@ -79,7 +80,7 @@ update_icon() if(storedpaper) - playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1) + playsound(src.loc, 'sound/weapons/slash.ogg', 50, TRUE) to_chat(user, "You neatly cut [storedpaper].") storedpaper = null qdel(storedpaper) @@ -88,6 +89,7 @@ update_icon() /obj/item/papercutter/MouseDrop(atom/over_object) + . = ..() var/mob/M = usr if(M.incapacitated() || !Adjacent(M)) return @@ -98,10 +100,6 @@ else if(istype(over_object, /obj/screen/inventory/hand)) var/obj/screen/inventory/hand/H = over_object M.putItemFromInventoryInHandIfPossible(src, H.held_index) - - else - . = ..() - add_fingerprint(M) /obj/item/paperslip @@ -112,6 +110,12 @@ resistance_flags = FLAMMABLE max_integrity = 50 +/obj/item/paperslip/attackby(obj/item/I, mob/living/user, params) + if(burn_paper_product_attackby_check(I, user)) + return + return ..() + + /obj/item/paperslip/Initialize() . = ..() pixel_x = rand(-5, 5) @@ -124,5 +128,6 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "cutterblade" item_state = "knife" + // inhand_icon_state = "knife" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index 414026924a..5d6d3d45e8 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -4,53 +4,22 @@ /obj/item/paper/fluff/sop name = "paper- 'Standard Operating Procedure'" - info = {" -Alert Levels: -* Blue - Emergency - * Caused by fire - * Caused by manual interaction - * Action: Close all fire doors. These can only be opened by resetting the alarm -* Red- Ejection/Self Destruct - * Caused by module operating computer. - * Action: After the specified time the module will eject completely. -Engine Maintenance Instructions: -1. Shut off ignition systems: -2. Activate internal power -3. Activate orbital balance matrix -4. Remove volatile liquids from area -5. Wear a fire suit -6. After Decontaminate Visit medical examiner -Toxin Laboratory Procedure: -1. Wear a gas mask regardless -2. Get an oxygen tank. -3. Activate internal atmosphere -4. After Decontaminate Visit medical examiner -Disaster Procedure: -Fire: -1. Activate sector fire alarm. -2. Move to a safe area. -3. Get a fire suit -* After: - 1. Assess Damage - 2. Repair damages - 3. If needed, Evacuate -Meteor Shower: -1. Activate fire alarm -2. Move to the back of ship -* After - 1. Repair damage - 2. If needed, Evacuate -Accidental Reentry: -1. Activate fire alarms in front of ship. -2. Move volatile matter to a fire proof area! -3. Get a fire suit. -4. Stay secure until an emergency ship arrives. -5. If ship does not arrive-Evacuate to a nearby safe area! -"}; + info = "Alert Levels:
    \nBlue- Emergency
    \n\t1. Caused by fire
    \n\t2. Caused by manual interaction
    \n\tAction:
    \n\t\tClose all fire doors. These can only be opened by resetting the alarm
    \nRed- Ejection/Self-Destruct
    \n\t1. Caused by module operating computer.
    \n\tAction:
    \n\t\tAfter the specified time the module will eject completely.
    \n
    \nEngine Maintenance Instructions:
    \n\tShut off ignition systems:
    \n\tActivate internal power
    \n\tActivate orbital balance matrix
    \n\tRemove volatile liquids from area
    \n\tWear a fire suit
    \n
    \n\tAfter
    \n\t\tDecontaminate
    \n\t\tVisit medical examiner
    \n
    \nToxin Laboratory Procedure:
    \n\tWear a gas mask regardless
    \n\tGet an oxygen tank.
    \n\tActivate internal atmosphere
    \n
    \n\tAfter
    \n\t\tDecontaminate
    \n\t\tVisit medical examiner
    \n
    \nDisaster Procedure:
    \n\tFire:
    \n\t\tActivate sector fire alarm.
    \n\t\tMove to a safe area.
    \n\t\tGet a fire suit
    \n\t\tAfter:
    \n\t\t\tAssess Damage
    \n\t\t\tRepair damages
    \n\t\t\tIf needed, Evacuate
    \n\tMeteor Shower:
    \n\t\tActivate fire alarm
    \n\t\tMove to the back of ship
    \n\t\tAfter
    \n\t\t\tRepair damage
    \n\t\t\tIf needed, Evacuate
    \n\tAccidental Reentry:
    \n\t\tActivate fire alarms in front of ship.
    \n\t\tMove volatile matter to a fire proof area!
    \n\t\tGet a fire suit.
    \n\t\tStay secure until an emergency ship arrives.
    \n
    \n\t\tIf ship does not arrive-
    \n\t\t\tEvacuate to a nearby safe area!" /obj/item/paper/fluff/shuttles/daniel info = "i love daniel
    daniel is my best friend

    you are tearing me apart elise" +/obj/item/paper/fluff/jobs/prisoner/letter + name = "letter from home" + info = {"Dearest sweetheart, +
    It is truly saddening you must spend your time locked up in an awful prison on that dangerous station. I have spoken to your lawyer who will attempt to appeal to the judge so your sentence may hopefully be reduced. +
    Regardless, I just want you to understand that all of us out here still love you, and want to see you released safely some day! I know that prison can be a very vicious place, so please promise us you'll avoid getting into any fights or trouble, okay? +
    We all care for your safety deeply, and could not live with ourselves if you ended up getting hurt. We've scheduled a visit to see you, and with any luck, hopefully our request will be granted soon. +
    Anyways, please do your best to make it by in that place, and never forget we'll be always here for you, no matter if we're separated. +
    +
    Please stay safe, +
    -Love, Your Dearest"} + //////////// Job guides n' fluff @@ -90,13 +59,46 @@ Accidental Reentry: name = "paper- 'Chemical Information'" info = "Known Onboard Toxins:
    \n\tGrade A Semi-Liquid Plasma:
    \n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
    \n\t\tA gas mask fails to filter plasma after 50 units.
    \n\t\tWill attempt to diffuse like a gas.
    \n\t\tFiltered by scrubbers.
    \n\t\tThere is a bottled version which is very different
    \n\t\t\tfrom the version found in canisters!
    \n
    \n\t\tWARNING: Highly Flammable. Keep away from heat sources
    \n\t\texcept in an enclosed fire area!
    \n\t\tWARNING: It is a crime to use this without authorization.
    \nKnown Onboard Anti-Toxin:
    \n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
    \n\t\tBest if injected directly into bloodstream.
    \n\t\tA full injection is in every regular Med-Kit.
    \n\t\tSpecial toxin Kits hold around 7.
    \n
    \nKnown Onboard Chemicals (other):
    \n\tRejuvenation T#001:
    \n\t\tEven 1 unit injected directly into the bloodstream
    \n\t\t\twill cure unconscious and sleep toxins.
    \n\t\tIf administered to a dying patient it will prevent
    \n\t\t\tfurther damage for about units*3 seconds.
    \n\t\t\tit will not cure them or allow them to be cured.
    \n\t\tIt can be administered to a non-dying patient
    \n\t\t\tbut the chemicals disappear just as fast.
    \n\tMorphine T#054:
    \n\t\t5 units will induce precisely 1 minute of sleep.
    \n\t\t\tThe effect are cumulative.
    \n\t\tWARNING: It is a crime to use this without authorization" +/obj/item/paper/fluff/jobs/medical/hippocratic + name = "paper- 'Hippocratic Oath'" + info = {"I swear to fulfill, to the best of my ability and judgment, this covenant: +
    + I will respect the hard-won scientific gains of those physicians in whose steps I walk, + and gladly share such knowledge as is mine with those who are to follow. +
    + I will apply, for the benefit of the sick, all measures that are required, + avoiding those twin traps of overtreatment and therapeutic nihilism. +
    + I will remember that there is art to medicine as well as science, + and that warmth, sympathy, and understanding may outweigh the surgeon's knife or the chemist's drug. +
    + I will not be ashamed to say "I know not," + nor will I fail to call in my colleagues when the skills of another are needed for a patient's recovery. +
    + I will respect the privacy of my patients, for their problems are not disclosed to me that the world may know. Most especially must I tread with care in matters of life and death. + If it is given me to save a life, all thanks. But it may also be within my power to take a life; + this awesome responsibility must be faced with great humbleness and awareness of my own frailty. Above all, I must not play at God. +
    + I will remember that I do not treat a fever chart, a cancerous growth, but a sick human being, whose illness may affect the person's family and economic stability. + My responsibility includes these related problems, if I am to care adequately for the sick. +
    + I will prevent disease whenever I can, for prevention is preferable to cure. +
    + I will remember that I remain a member of society, with special obligations to all my fellow human beings, + those sound of mind and body as well as the infirm. +
    + If I do not violate this oath, may I enjoy life and art, respected while I live and remembered with affection thereafter. + May I always act so as to preserve the finest traditions of my calling and may I long experience the joy of healing those who seek my help. +
    "} + /* * Stations */ +////////// cogstation. /obj/item/paper/guides/cogstation/job_changes name = "MEMO: Job Changes" - info = "To ensure minimal employee downtime, please take note of the following changes to select professions that CogStation specifically requires:
    \n
    \n- Scientists are to have access to chemistry in order to reach the MedSci router.
    \n
    \n- Chemists should at the very least be provided with an encryption key for the Science channel, if not basic access to the Research department at large.
    \n- Roboticists are to have basic Medical and Morgue access.
    \n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
    \n- The Cook should not have Morgue access
    \n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
    \n
    \nGenerated by Organic Resources Bot #2053" + info = "To ensure minimal employee downtime, please take note of the following changes to select professions that CogStation specifically requires:
    \n
    \n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
    \n- The Cook should not have Morgue access.
    \n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
    \n
    \nGenerated by Organic Resources Bot #2053" /obj/item/paper/guides/cogstation/letter_sec name = "To future Security personnel" @@ -104,7 +106,7 @@ Accidental Reentry: /obj/item/paper/guides/cogstation/disposals name = "Regarding the disposal system:" - info = "As you might have noticed, this station has far more disposal pipes than you may expect from your average Nanotrasen research facility. Part of the reason for this is specialization - mail, trash, even corpses have their own disposal systems. Unfortunately, the convenient color-coding was lost in translocation and we've had to compensate by marking the area around each bin.
    \n
    \n- WHITE/GRAY STRIPES is for DELIVERIES.
    \n- RED STRIPES is for CORPSES.
    \n- EVERYTHING ELSE is for TRASH,
    barring a few exceptions that should be labeled as such.
    \n
    \nIdeally the station won't sustain any heavy structural damage during your time here but if it does, or someone decides to tamper with/sabotage this system, you'll be forgiven if you can't put it back together perfectly.
    \n
    \n-C. Donnelly
    Architectural Analyst" + info = "As you might have noticed, this station has far more disposal pipes than you may expect from your average Nanotrasen research facility. Part of the reason for this is specialization - mail, trash, even corpses have their own disposal systems. Unfortunately, the convenient color-coding was lost in translocation and we've had to compensate by marking the area around each bin.
    \n
    \n- WHITE/GRAY STRIPES are for DELIVERIES.
    \n- RED STRIPES are for CORPSES.
    \n- EVERYTHING ELSE is for TRASH,
    barring a few exceptions that should be labeled as such.
    \n
    \nIdeally the station won't sustain any heavy structural damage during your time here but if it does, or someone decides to tamper with/sabotage this system, you'll be forgiven if you can't put it back together perfectly.
    \n
    \n-C. Donnelly
    Architectural Analyst" /obj/item/paper/guides/cogstation/janitor name = "a quick tip" @@ -128,7 +130,7 @@ Accidental Reentry: /obj/item/paper/guides/cogstation/letter_eng name = "To future Engineering staff:" - info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
    \n
    \n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and that isn't likely to change anytime soon. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of shielding out there.
    \n
    \nYou still have three solar arrays to work with, two of them being on each end of the starboard side. The port side array will need you to either get access from a head of staff or security, unless you want to spacewalk around the whole station. Don't be afraid to ask the latter - they're there for you, after all. As for other utilities the air system is a bit different than you'd expect, but fortunately you should have the atmos techs this station needed a long time ago. The disposal network is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
    \n
    \nGood luck. You're gonna need it.
    \n
    \n-C. Donnelly
    Architectural Analyst" + info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
    \n
    \n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and that isn't likely to change anytime soon. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of protection out there.
    \n
    \nYou still have three solar arrays to work with, two of them being on each end of the starboard side. The port side array will need you to either get access from a head of staff or security, unless you want to spacewalk around the whole station. Don't be afraid to ask the latter - they're there for you, after all. As for other utilities the air system is a bit different than you'd expect, but fortunately you should have the atmos techs this station needed a long time ago. The disposal network is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
    \n
    \nGood luck. You're gonna need it.
    \n
    \n-C. Donnelly
    Architectural Analyst" /obj/item/paper/guides/cogstation/letter_atmos name = "To future Atmospheric Technicians:" @@ -140,15 +142,15 @@ Accidental Reentry: /obj/item/paper/guides/cogstation/letter_hos name = "To the future HoS" - info = "I'm gonna be rather disappointed if CentCom doesn't brief you about this station, but if they don't I wrote up another letter for your department that should cover it pretty well. Make sure your officers read it if they aren't up to speed.
    \n
    \nSomething you in particular should know is that if someone's getting to be too much to handle, the boys and I have constructed a 'discount transfer centre' just behind the router. Use it only as a last resort - the walls may be reinforced but they're still thin, and you'll have big trouble on your hands if the AI or any cyborgs find out about it.
    \n
    -LC" + info = "I'm gonna be rather disappointed if Central Command doesn't brief you about this station, but if they don't I wrote up another letter for your department that should cover it pretty well. Make sure your officers read it if they aren't up to speed.
    \n
    \nSomething you in particular should know is that if someone's getting to be too much to handle, the boys and I have constructed a 'discount transfer centre' just behind the router. Use it only as a last resort - the walls may be reinforced but they're still thin, and you'll have big trouble on your hands if the AI or any cyborgs find out about it.
    \n
    -LC" /obj/item/paper/guides/cogstation/letter_supp name = "To future Supply Staff:" - info = "Cargo, move freight. Miners, don't die. Your jobs are pretty straightforward, which is likely why they originally fell under Engineering on this station as opposed to their own department. Although we've considerably readjusted this part of the station to accommodate you, there are potential differences you should be aware of.
    \n
    \nEngineeringwill have access to some of your department, namely the warehouse and mining dock. Mining operations on this station were originally asteroid-based, hence the catwalk into the great beyond. Although you won't need to worry about being space-worthy due to a newly installed shuttle dock, they might need to get out there.
    \n
    \nYou'll have all your usual means of shipping out goods, but the disposal network is more complex with a separate line for mail and trash. I've left another note that explains this in detail, but know trash is the janitor's responsibility, not yours.
    \n
    \nThe biggest difference has to be this station's router system, which allows departments to ship goods between themselves. Even if the belts aren't working properly they'll still have their own request consoles, so you'll want to check for orders regularly.
    \n
    \n-C. Donnelly
    \nArchitectural Analyst" + info = "Cargo, move freight. Miners, don't die. Your jobs are pretty straightforward, which is likely why they originally fell under Engineering on this station as opposed to their own department. Although we've considerably readjusted this part of the station to accommodate you, there are potential differences you should be aware of.
    \n
    \nEngineeringwill have access to some of your department, namely the warehouse and mining dock. Mining operations on this station were originally asteroid-based, hence the catwalk into the great beyond. Although you won't need to worry about being space-worthy due to a newly installed shuttle dock, they might need to get out there.
    \n
    \nYou'll have all your usual means of shipping out goods, but the disposal network is more complex with a separate line for mail and trash. It also isn't fully space-proofed, meanin it may not be the best choice for livestock, monkey cubes, or clowns. I've left another note that explains this in detail, but know trash is the janitor's responsibility, not yours.
    \n
    \nThe biggest difference has to be this station's router system, which allows departments to ship goods between themselves. Even if the belts aren't working properly they'll still have their own request consoles, so you'll want to check for orders regularly.
    \n
    \n-C. Donnelly
    \nArchitectural Analyst" -/obj/item/paper/fluff/cogstation/sleepers - name = "Re: Sleepers?" - info = "Yes, the sleepers are meant to be publicly accessible. Policies in this station's original location encouraged crew to visit the clinic or treat themselves when it came to minor injuries.
    \n
    \nThis is no excuse for you not to do your jobs. You may wish to keep an eye on the sleepers as to ensure they're being used responsibly. Remember, allowing an overdose to happen under your watch isn't much different from administering that overdose yourself.
    \n
    \n- Dr. Halley" +/obj/item/paper/guides/cogstation/letter_med + name = "Re: Future Medical Staff" + info = "With this station nearing approval for regular use, I've been told to consolidate anything noteworthy about its general medical department into a single document. As you may be able to guess, this is that document.
    \n
    \n- First, you should know a medical clinic is present in the civilian (starboard bow) wing. If you have personnel to spare, it's recommended you have someone staff it - that way people with minor injuries can report there instead of clogging up the research wing.
    \n
    \n- Despite recent renovations to bring this station in line with regional policy, you'll still find the robotics lab directly adjacent to your department. I advise you take full advantage of this, whether it's requesting prosthetics in advance or harvesting organs from those who have undergone more...permanent procedures.
    \n
    \n- Lastly, please make a habit of checking the morgue on a regular basis. Thanks to the Corpse Disposal Network (or CDN for short), you may find the station's deceased delivered directly to you. Some may be employees capable of being revived - more information can be found in the morgue itself.
    \n
    \n- Dr. Halley" /obj/item/paper/fluff/cogstation/cloner name = "Re: Issue with the cloner?" @@ -172,7 +174,7 @@ Accidental Reentry: /obj/item/paper/fluff/cogstation/letter_chap name = "A message from the DHDA" - info = "Regardless of what the name leads you to believe, CogStation is neither Ratvarian in origin nor designed by members of this so-called 'clock cult'. Despite a potential common enemy and instances of exhibiting peaceful behavior, their beliefs have been labeled 'Heretical' by the Department of Higher-Dimensional Affairs and following them is grounds for immediate termination.
    \nAs the station's designated Chaplain, it is advised you correct anyone who claims this station and/or its designers are Ratvarian. While they are most likely misinformed or 'joking around', untruths gain credibility the more they are repeated.
    \n
    \nSoulstone Obelisk
    \n
    \nDepartment of Higher-Dimensional Affairs" + info = "Regardless of what the name leads you to believe, CogStation is neither Ratvarian in origin nor designed by members of this so-called 'clock cult'. Despite a potential common enemy and instances of exhibiting peaceful behavior, their beliefs have been labeled 'Heretical' by the Department of Higher-Dimensional Affairs and following them is grounds for immediate termination.
    \nAs the station's designated Chaplain, it is advised you correct anyone who claims this station and/or its designers are Ratvarian. While they are most likely misinformed or 'joking around', untruths gain credibility the more they are repeated.
    \n
    \nSoulstone Obelisk
    \n
    \nDepartment of Higher-Dimensional Affairs" /obj/item/paper/fluff/cogstation/cluwne name = "Mysterious Note" @@ -184,7 +186,7 @@ Accidental Reentry: /obj/item/paper/fluff/cogstation/eva name = "MEMO: Spacesuits" - info = "As a Head of Personnel, you may be familiar with crew members requesting EVA access, particularly when there is an absence of credible threats on the station. While it is your decision to grant or deny access unless overriden by your superior(s), you should be aware of an abundance of spacesuits on this station. While intended for emergencies, these suits are cheaper to replace. You may find it beneficial to direct aspiring 'space explorers' towards finding one of these suits instead, although it is advised you order replacement suits in advance through the cargo department.
    \n
    \n-Generated by Organic Resources Bot #2053" + info = "As a Head of Personnel, you may be familiar with crew members requesting EVA access, particularly when there is an absence of credible threats on the station. While it is your decision to grant or deny access unless overriden by your superior(s), you should be aware of an abundance of spacesuits on this station. While intended for emergencies, these suits are cheaper to replace. You may find it beneficial to direct aspiring 'space explorers' towards finding one of these suits instead, although it is advised you order replacement suits in advance through the cargo department.
    \n
    \nGenerated by Organic Resources Bot #2053" /obj/item/paper/fluff/cogstation/chemists name = "Re: Scientists?!" @@ -214,9 +216,9 @@ Accidental Reentry: name = "ROUTER STATUS: LIMITED" info = "Currently, this router cannot receive deliveries from the Airbridge, MedSci, Security, or Service Routers. Cargo and the recycler are the only points currently accepting deliveries from here, although manual input from the routing depot is currently required.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" -/obj/item/paper/fluff/cogstation/router_cargo - name = "ROUTER STATUS: VERY LIMITED" - info = "Currently, this router cannot receive deliveries from the Airbridge, MedSci, Security, or Service Routers. It is not yet capable of making deliveries, beyond sending items to the recycler.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" +/obj/item/paper/fluff/cogstation/mulebot + name = "MEMO: MULEbots" + info = "As you may know, MULEbots have been coded to minimize travel distance for maximum efficiency. In the case of this station, that may include travelling through depressurized areas exposed to space. Please bear this in mind before using them to transport living tissue.
    \n
    \nGenerated by Organic Resources Bot #2053" /////////// CentCom diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 28cb5ffae9..b8bbd0a30e 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "paper_bin1" item_state = "sheet-metal" + // inhand_icon_state = "sheet-metal" lefthand_file = 'icons/mob/inhands/misc/sheets_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/sheets_righthand.dmi' throwforce = 0 @@ -43,6 +44,7 @@ ..() /obj/item/paper_bin/MouseDrop(atom/over_object) + . = ..() var/mob/living/M = usr if(!istype(M) || M.incapacitated() || !Adjacent(M)) return @@ -54,17 +56,18 @@ var/obj/screen/inventory/hand/H = over_object M.putItemFromInventoryInHandIfPossible(src, H.held_index) - else - . = ..() - add_fingerprint(M) /obj/item/paper_bin/attack_paw(mob/user) return attack_hand(user) -/obj/item/paper_bin/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - if(user.lying) - return +//ATTACK HAND IGNORING PARENT RETURN VALUE +/obj/item/paper_bin/on_attack_hand(mob/user) + if(isliving(user)) + var/mob/living/L = user + if(!(L.mobility_flags & MOBILITY_PICKUP)) + return + // user.changeNext_move(CLICK_CD_MELEE) if(bin_pen) var/obj/item/pen/P = bin_pen P.add_fingerprint(user) @@ -85,8 +88,8 @@ P = new papertype(src) if(SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) if(prob(30)) - P.info = "*HONK HONK HONK HONK HONK HONK HONK
    HOOOOOOOOOOOOOOOOOOOOOONK*\n*APRIL FOOLS*\n" - P.rigged = 1 + P.info = "HONK HONK HONK HONK HONK HONK HONK
    HOOOOOOOOOOOOOOOOOOOOOONK
    APRIL FOOLS
    " + P.AddComponent(/datum/component/honkspam) P.add_fingerprint(user) P.forceMove(user.loc) @@ -148,8 +151,7 @@ papertype = /obj/item/paper/natural resistance_flags = FLAMMABLE -/obj/item/paper_bin/bundlenatural/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - ..() +/obj/item/paper_bin/bundlenatural/on_attack_hand(mob/user) if(total_paper < 1) qdel(src) @@ -173,3 +175,9 @@ qdel(src) else ..() + +/obj/item/paper_bin/carbon + name = "carbon paper bin" + desc = "Contains all the paper you'll ever need, in duplicate!" + icon_state = "paper_bin_carbon" + papertype = /obj/item/paper/carbon diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index c6a1ee1389..53fe886d65 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -1,9 +1,9 @@ - /obj/item/paperplane name = "paper plane" desc = "Paper, folded in the shape of a plane." icon = 'icons/obj/bureaucracy.dmi' icon_state = "paperplane" + // custom_fire_overlay = "paperplane_onfire" throw_range = 7 throw_speed = 1 throwforce = 0 @@ -11,7 +11,7 @@ resistance_flags = FLAMMABLE max_integrity = 50 - var/hit_probability = 2//% + var/hit_probability = 2 //% var/obj/item/paper/internalPaper /obj/item/paperplane/origami @@ -41,6 +41,13 @@ qdel(src) return ..() +/obj/item/paperplane/Exited(atom/movable/AM, atom/newLoc) + . = ..() + if (AM == internalPaper) + internalPaper = null + if(!QDELETED(src)) + qdel(src) + /obj/item/paperplane/Destroy() QDEL_NULL(internalPaper) return ..() @@ -71,31 +78,19 @@ user.put_in_hands(internal_paper_tmp) /obj/item/paperplane/attackby(obj/item/P, mob/living/carbon/human/user, params) - ..() + if(burn_paper_product_attackby_check(P, user)) + return if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) - to_chat(user, "You should unfold [src] before changing it.") + to_chat(user, "You should unfold [src] before changing it!") return else if(istype(P, /obj/item/stamp)) //we don't randomize stamps on a paperplane internalPaper.attackby(P, user) //spoofed attack to update internal paper. update_icon() + add_fingerprint(user) + return - else if(P.get_temperature()) - if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10)) - user.visible_message("[user] accidentally ignites [user.p_them()]self!", \ - "You miss [src] and accidentally light yourself on fire!") - user.dropItemToGround(P) - user.adjust_fire_stacks(1) - user.IgniteMob() - return - - if(!(in_range(user, src))) //to prevent issues as a result of telepathically lighting a paper - return - user.dropItemToGround(src) - user.visible_message("[user] lights [src] ablaze with [P]!", "You light [src] on fire!") - fire_act() - - add_fingerprint(user) + return ..() /obj/item/paperplane/throw_at(atom/target, range, speed, mob/thrower, spin=FALSE, diagonals_first = FALSE, datum/callback/callback) @@ -112,26 +107,28 @@ if(..() || !ishuman(hit_atom))//if the plane is caught or it hits a nonhuman return var/mob/living/carbon/human/H = hit_atom + var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) if(prob(hit_probability)) if(H.is_eyes_covered()) return - var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) - visible_message("\The [src] hits [H] in the eye!") + visible_message("\The [src] hits [H] in the eye[eyes ? "" : " socket"]!") H.adjust_blurriness(6) - if(eyes) - eyes.applyOrganDamage(rand(6,8)) + eyes?.applyOrganDamage(rand(6,8)) H.DefaultCombatKnockdown(40) H.emote("scream") - /obj/item/paper/examine(mob/user) . = ..() . += "Alt-click [src] to fold it into a paper plane." /obj/item/paper/AltClick(mob/living/carbon/user, obj/item/I) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user), NO_TK)) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return + if(istype(src, /obj/item/paper/carbon)) + var/obj/item/paper/carbon/Carbon = src + if(!Carbon.iscopy && !Carbon.copied) + to_chat(user, "Take off the carbon copy first.") + return to_chat(user, "You fold [src] into the shape of a plane!") user.temporarilyRemoveItemFromInventory(src) var/obj/item/paperplane/plane_type = /obj/item/paperplane @@ -142,4 +139,3 @@ I = new plane_type(user, src) user.put_in_hands(I) - return TRUE diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 91b8a6719b..13890ae69e 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -16,6 +16,8 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "pen" item_state = "pen" + // inhand_icon_state = "pen" + // worn_icon_state = "pen" slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_EARS throwforce = 0 w_class = WEIGHT_CLASS_TINY @@ -76,6 +78,22 @@ icon_state = "pen-fountain" font = FOUNTAIN_PEN_FONT +/obj/item/pen/charcoal + name = "charcoal stylus" + desc = "It's just a wooden stick with some compressed ash on the end. At least it can write." + icon_state = "pen-charcoal" + colour = "dimgray" + font = CHARCOAL_FONT + custom_materials = null + grind_results = list(/datum/reagent/ash = 5, /datum/reagent/cellulose = 10) + +/datum/crafting_recipe/charcoal_stylus + name = "Charcoal Stylus" + result = /obj/item/pen/charcoal + reqs = list(/obj/item/stack/sheet/mineral/wood = 1, /datum/reagent/ash = 30) + time = 30 + category = CAT_PRIMAL + /obj/item/pen/fountain/captain name = "captain's fountain pen" desc = "It's an expensive Oak fountain pen. The nib is quite sharp." @@ -93,6 +111,7 @@ "Black and Silver" = "pen-fountain-b", "Command Blue" = "pen-fountain-cb" ) + embedding = list("embed_chance" = 75) /obj/item/pen/fountain/captain/Initialize() . = ..() @@ -139,20 +158,18 @@ if(QDELETED(O) || !user.canUseTopic(O, BE_CLOSE)) return if(oldname == input) - to_chat(user, "You changed \the [O.name] to... well... \the [O.name].") + to_chat(user, "You changed \the [O.name] to... well... \the [O.name].") else O.name = input - to_chat(user, "\The [oldname] has been successfully been renamed to \the [input].") + to_chat(user, "\The [oldname] has been successfully been renamed to \the [input].") O.renamedByPlayer = TRUE - log_game("[user] [key_name(user)] has renamed [O] to [input]") if(penchoice == "Change description") - var/input = stripped_input(user,"Describe \the [O.name] here", ,"", 2048) + var/input = stripped_input(user,"Describe \the [O.name] here", ,"", 100) if(QDELETED(O) || !user.canUseTopic(O, BE_CLOSE)) return O.desc = input - to_chat(user, "You have successfully changed \the [O.name]'s description.") - log_game("[user] [key_name(user)] has changed [O]'s description to to [input]") + to_chat(user, "You have successfully changed \the [O.name]'s description.") /* * Sleepypens @@ -181,9 +198,10 @@ */ /obj/item/pen/edagger attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off + // attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") //these won't show up if the pen is off + // attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") sharpness = SHARP_EDGED var/on = FALSE - embedding = list(embed_chance = EMBED_CHANCE) /obj/item/pen/edagger/ComponentInitialize() . = ..() @@ -193,29 +211,38 @@ /obj/item/pen/edagger/get_sharpness() return on * sharpness +/obj/item/pen/edagger/suicide_act(mob/user) + . = BRUTELOSS + if(on) + user.visible_message("[user] forcefully rams the pen into their mouth!") + else + user.visible_message("[user] is holding a pen up to their mouth! It looks like [user.p_theyre()] trying to commit suicide!") + attack_self(user) + /obj/item/pen/edagger/attack_self(mob/living/user) if(on) on = FALSE force = initial(force) + throw_speed = initial(throw_speed) w_class = initial(w_class) name = initial(name) hitsound = initial(hitsound) - embedding = null + embedding = list(embed_chance = EMBED_CHANCE) throwforce = initial(throwforce) - playsound(user, 'sound/weapons/saberoff.ogg', 5, 1) + playsound(user, 'sound/weapons/saberoff.ogg', 5, TRUE) to_chat(user, "[src] can now be concealed.") - updateEmbedding() else on = TRUE force = 18 + throw_speed = 4 w_class = WEIGHT_CLASS_NORMAL name = "energy dagger" hitsound = 'sound/weapons/blade1.ogg' - embedding = list(embed_chance = 100, fall_chance = 0) //rule of cool + embedding = list(embed_chance = 100) //rule of cool throwforce = 35 - playsound(user, 'sound/weapons/saberon.ogg', 5, 1) + playsound(user, 'sound/weapons/saberon.ogg', 5, TRUE) to_chat(user, "[src] is now active.") - updateEmbedding() + updateEmbedding() update_icon() /obj/item/pen/edagger/update_icon_state() @@ -235,6 +262,8 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "digging_pen" item_state = "pen" + // inhand_icon_state = "pen" + // worn_icon_state = "pen" force = 3 w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/iron=10, /datum/material/diamond=100, /datum/material/titanium = 10) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 0b1f3bb01d..25a9cf0043 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -1,12 +1,20 @@ -/* Photocopiers! - * Contains: - * Photocopier - * Toner Cartridge - */ -/* - * Photocopier - */ +/// For use with the `color_mode` var. Photos will be printed in greyscale while the var has this value. +#define PHOTO_GREYSCALE "Greyscale" +/// For use with the `color_mode` var. Photos will be printed in full color while the var has this value. +#define PHOTO_COLOR "Color" + +/// How much toner is used for making a copy of a paper. +#define PAPER_TONER_USE 0.125 +/// How much toner is used for making a copy of a photo. +#define PHOTO_TONER_USE 0.625 +/// How much toner is used for making a copy of a document. +#define DOCUMENT_TONER_USE 0.75 +/// How much toner is used for making a copy of an ass. +#define ASS_TONER_USE 0.625 +/// The maximum amount of copies you can make with one press of the copy button. +#define MAX_COPIES_AT_ONCE 10 + /obj/machinery/photocopier name = "photocopier" desc = "Used to copy important documents and anatomy studies." @@ -19,183 +27,317 @@ power_channel = EQUIP max_integrity = 300 integrity_failure = 0.33 - var/obj/item/paper/copy = null //what's in the copier! - var/obj/item/photo/photocopy = null - var/obj/item/documents/doccopy = null - var/copies = 1 //how many copies to print! - var/toner = 40 //how much toner is left! woooooo~ - var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! - var/greytoggle = "Greyscale" - var/mob/living/ass //i can't believe i didn't write a stupid-ass comment about this var when i first coded asscopy. + /// A reference to an `/obj/item/paper` inside the copier, if one is inserted. Otherwise null. + var/obj/item/paper/paper_copy + /// A reference to an `/obj/item/photo` inside the copier, if one is inserted. Otherwise null. + var/obj/item/photo/photo_copy + /// A reference to an `/obj/item/documents` inside the copier, if one is inserted. Otherwise null. + var/obj/item/documents/document_copy + /// A reference to a mob on top of the photocopier trying to copy their ass. Null if there is no mob. + var/mob/living/ass + /// A reference to the toner cartridge that's inserted into the copier. Null if there is no cartridge. + var/obj/item/toner/toner_cartridge + /// How many copies will be printed with one click of the "copy" button. + var/num_copies = 1 + /// Used with photos. Determines if the copied photo will be in greyscale or color. + var/color_mode = PHOTO_COLOR + /// Indicates whether the printer is currently busy copying or not. var/busy = FALSE -/obj/machinery/photocopier/ui_interact(mob/user) +/obj/machinery/photocopier/Initialize() . = ..() - var/list/dat = list("Photocopier

    ") - if(copy || photocopy || doccopy || (ass && (ass.loc == src.loc))) - dat += "Remove Paper
    " - if(toner) - dat += "Copy
    " - dat += "Printing: [copies] copies." - dat += "- " - dat += "+

    " - if(photocopy) - dat += "Printing in [greytoggle]

    " - else if(toner) - dat += "Please insert paper to copy.

    " - if(isAI(user)) - dat += "Print photo from database

    " - dat += "Current toner level: [toner]" - if(!toner) - dat +="
    Please insert a new toner cartridge!" - user << browse(dat.Join(""), "window=copier") - onclose(user, "copier") + //AddComponent(/datum/component/payment, 5, SSeconomy.get_dep_account(ACCOUNT_CIV), PAYMENT_CLINICAL) + toner_cartridge = new(src) -/obj/machinery/photocopier/Topic(href, href_list) +/obj/machinery/photocopier/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Photocopier") + ui.open() + +/obj/machinery/photocopier/ui_data(mob/user) + var/list/data = list() + data["has_item"] = !copier_empty() + data["num_copies"] = num_copies + + if(photo_copy) + data["is_photo"] = TRUE + data["color_mode"] = color_mode + + if(isAI(user)) + data["isAI"] = TRUE + data["can_AI_print"] = toner_cartridge ? toner_cartridge.charges >= PHOTO_TONER_USE : FALSE + else + data["isAI"] = FALSE + + if(toner_cartridge) + data["has_toner"] = TRUE + data["current_toner"] = toner_cartridge.charges + data["max_toner"] = toner_cartridge.max_charges + data["has_enough_toner"] = has_enough_toner() + else + data["has_toner"] = FALSE + data["has_enough_toner"] = FALSE + + return data + +/obj/machinery/photocopier/ui_act(action, list/params) if(..()) return - if(href_list["copy"]) - if(copy) - for(var/i = 0, i < copies, i++) - if(toner > 0 && !busy && copy) - var/copy_as_paper = 1 - if(istype(copy, /obj/item/paper/contract/employment)) - var/obj/item/paper/contract/employment/E = copy - var/obj/item/paper/contract/employment/C = new /obj/item/paper/contract/employment (loc, E.target.current) - if(C) - copy_as_paper = 0 - if(copy_as_paper) - var/obj/item/paper/c = new /obj/item/paper (loc) - if(length(copy.info) > 0) //Only print and add content if the copied doc has words on it - if(toner > 10) //lots of toner, make it dark - c.info = "" - else //no toner? shitty copies for you! - c.info = "" - var/copied = copy.info - copied = replacetext(copied, "" - c.name = copy.name - c.update_icon() - c.stamps = copy.stamps - if(copy.stamped) - c.stamped = copy.stamped.Copy() - c.copy_overlays(copy, TRUE) - toner-- - busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) - else - break - updateUsrDialog() - else if(photocopy) - for(var/i = 0, i < copies, i++) - if(toner >= 5 && !busy && photocopy) //Was set to = 0, but if there was say 3 toner left and this ran, you would get -2 which would be weird for ink - new /obj/item/photo (loc, photocopy.picture.Copy(greytoggle == "Greyscale"? TRUE : FALSE)) - busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) - else - break - else if(doccopy) - for(var/i = 0, i < copies, i++) - if(toner > 5 && !busy && doccopy) - new /obj/item/documents/photocopy(loc, doccopy) - toner-= 6 // the sprite shows 6 papers, yes I checked - busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) - else - break - updateUsrDialog() - else if(ass) //ASS COPY. By Miauw - for(var/i = 0, i < copies, i++) - var/icon/temp_img - if(ishuman(ass) && (ass.get_item_by_slot(ITEM_SLOT_ICLOTHING) || ass.get_item_by_slot(ITEM_SLOT_OCLOTHING))) - to_chat(usr, "You feel kind of silly, copying [ass == usr ? "your" : ass][ass == usr ? "" : "\'s"] ass with [ass == usr ? "your" : "[ass.p_their()]"] clothes on." ) - break - else if(toner >= 5 && !busy && check_ass()) //You have to be sitting on the copier and either be a xeno or a human without clothes on. - if(isalienadult(ass) || istype(ass, /mob/living/simple_animal/hostile/alien)) //Xenos have their own asses, thanks to Pybro. - temp_img = icon('icons/ass/assalien.png') - else if(ishuman(ass)) //Suit checks are in check_ass - temp_img = icon(ass.gender == FEMALE ? 'icons/ass/assfemale.png' : 'icons/ass/assmale.png') - else if(isdrone(ass)) //Drones are hot - temp_img = icon('icons/ass/assdrone.png') - else - break - busy = TRUE - sleep(15) - var/obj/item/photo/p = new /obj/item/photo (loc) - var/datum/picture/toEmbed = new(name = "[ass]'s Ass", desc = "You see [ass]'s ass on the photo.", image = temp_img) - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - toEmbed.psize_x = 128 - toEmbed.psize_y = 128 - p.set_picture(toEmbed, TRUE, TRUE) - toner -= 5 - busy = FALSE - else - break - updateUsrDialog() - else if(href_list["remove"]) - if(copy) - remove_photocopy(copy, usr) - copy = null - else if(photocopy) - remove_photocopy(photocopy, usr) - photocopy = null - else if(doccopy) - remove_photocopy(doccopy, usr) - doccopy = null - else if(check_ass()) - to_chat(ass, "You feel a slight pressure on your ass.") - updateUsrDialog() - else if(href_list["min"]) - if(copies > 1) - copies-- - updateUsrDialog() - else if(href_list["add"]) - if(copies < maxcopies) - copies++ - updateUsrDialog() - else if(href_list["aipic"]) - if(!isAI(usr)) - return - if(toner >= 5 && !busy) + + switch(action) + // Copying paper, photos, documents and asses. + if("make_copy") + if(busy) + to_chat(usr, "[src] is currently busy copying something. Please wait until it is finished.") + return FALSE + if(paper_copy) + if(!length(paper_copy.info)) + to_chat(usr, "An error message flashes across [src]'s screen: \"The supplied paper is blank. Aborting.\"") + return FALSE + // Basic paper + if(istype(paper_copy, /obj/item/paper)) + do_copy_loop(CALLBACK(src, .proc/make_paper_copy), usr) + return TRUE + // Devil contract paper. + if(istype(paper_copy, /obj/item/paper/contract/employment)) + do_copy_loop(CALLBACK(src, .proc/make_devil_paper_copy), usr) + return TRUE + // Copying photo. + if(photo_copy) + do_copy_loop(CALLBACK(src, .proc/make_photo_copy), usr) + return TRUE + // Copying Documents. + if(document_copy) + do_copy_loop(CALLBACK(src, .proc/make_document_copy), usr) + return TRUE + // ASS COPY. By Miauw + if(ass) + do_copy_loop(CALLBACK(src, .proc/make_ass_copy), usr) + return TRUE + + // Remove the paper/photo/document from the photocopier. + if("remove") + if(paper_copy) + remove_photocopy(paper_copy, usr) + paper_copy = null + else if(photo_copy) + remove_photocopy(photo_copy, usr) + photo_copy = null + else if(document_copy) + remove_photocopy(document_copy, usr) + document_copy = null + else if(check_ass()) + to_chat(ass, "You feel a slight pressure on your ass.") + return TRUE + + // AI printing photos from their saved images. + if("ai_photo") + if(busy) + to_chat(usr, "[src] is currently busy copying something. Please wait until it is finished.") + return FALSE var/mob/living/silicon/ai/tempAI = usr - if(tempAI.aicamera.stored.len == 0) - to_chat(usr, "No images saved") + if(!length(tempAI.aicamera.stored)) + to_chat(usr, "No images saved.") return var/datum/picture/selection = tempAI.aicamera.selectpicture(usr) - var/obj/item/photo/photo = new(loc, selection) - photo.pixel_x = rand(-10, 10) - photo.pixel_y = rand(-10, 10) - toner -= 5 //AI prints color pictures only, thus they can do it more efficiently - busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) - updateUsrDialog() - else if(href_list["colortoggle"]) - if(greytoggle == "Greyscale") - greytoggle = "Color" - else - greytoggle = "Greyscale" - updateUsrDialog() + var/obj/item/photo/photo = new(loc, selection) // AI prints color photos only. + give_pixel_offset(photo) + toner_cartridge.charges -= PHOTO_TONER_USE + return TRUE + // Switch between greyscale and color photos + if("color_mode") + if(params["mode"] in list(PHOTO_GREYSCALE, PHOTO_COLOR)) + color_mode = params["mode"] + return TRUE + + // Remove the toner cartridge from the copier. + if("remove_toner") + if(issilicon(usr) || (ishuman(usr) && !usr.put_in_hands(toner_cartridge))) + toner_cartridge.forceMove(drop_location()) + toner_cartridge = null + return TRUE + + // Set the number of copies to be printed with 1 click of the "copy" button. + if("set_copies") + num_copies = clamp(text2num(params["num_copies"]), 1, MAX_COPIES_AT_ONCE) + return TRUE + +/** + * Determines if the photocopier has enough toner to create `num_copies` amount of copies of the currently inserted item. + */ +/obj/machinery/photocopier/proc/has_enough_toner() + if(paper_copy) + return toner_cartridge.charges >= (PAPER_TONER_USE * num_copies) + else if(document_copy) + return toner_cartridge.charges >= (DOCUMENT_TONER_USE * num_copies) + else if(photo_copy) + return toner_cartridge.charges >= (PHOTO_TONER_USE * num_copies) + else if(ass) + return toner_cartridge.charges >= (ASS_TONER_USE * num_copies) + return FALSE + +/** + * Will invoke the passed in `copy_cb` callback in 1 second intervals, and charge the user 5 credits for each copy made. + * + * Arguments: + * * copy_cb - a callback for which proc to call. Should only be one of the `make_x_copy()` procs, such as `make_paper_copy()`. + * * user - the mob who clicked copy. + */ +/obj/machinery/photocopier/proc/do_copy_loop(datum/callback/copy_cb, mob/user) + busy = TRUE + var/num_loops + for(var/i in 1 to num_copies) + //if(attempt_charge(src, user) & COMPONENT_OBJ_CANCEL_CHARGE) + // break + addtimer(copy_cb, i SECONDS) + num_loops++ + addtimer(CALLBACK(src, .proc/reset_busy), num_loops SECONDS) + +/** + * Sets busy to `FALSE`. Created as a proc so it can be used in callbacks. + */ /obj/machinery/photocopier/proc/reset_busy() busy = FALSE - updateUsrDialog() -/obj/machinery/photocopier/proc/do_insertion(obj/item/O, mob/user) - O.forceMove(src) - to_chat(user, "You insert [O] into [src].") +/** + * Gives items a random x and y pixel offset, between -10 and 10 for each. + * + * This is done that when someone prints multiple papers, we dont have them all appear to be stacked in the same exact location. + * + * Arguments: + * * copied_item - The paper, document, or photo that was just spawned on top of the printer. + */ +/obj/machinery/photocopier/proc/give_pixel_offset(obj/item/copied_item) + copied_item.pixel_x = rand(-10, 10) + copied_item.pixel_y = rand(-10, 10) + +/** + * Handles the copying of devil contract paper. Transfers all the text, stamps and so on from the old paper, to the copy. + * + * Checks first if `paper_copy` exists. Since this proc is called from a timer, it's possible that it was removed. + * Does not check if it has enough toner because devil contracts cost no toner to print. + */ +/obj/machinery/photocopier/proc/make_devil_paper_copy() + if(!paper_copy) + return + var/obj/item/paper/contract/employment/E = paper_copy + var/obj/item/paper/contract/employment/C = new(loc, E.target.current) + give_pixel_offset(C) + +/** + * Handles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy. + * + * Checks first if `paper_copy` exists. Since this proc is called from a timer, it's possible that it was removed. + */ +/obj/machinery/photocopier/proc/make_paper_copy() + if(!paper_copy) + return + var/obj/item/paper/copied_paper = new(loc) + give_pixel_offset(copied_paper) + if(toner_cartridge.charges > 10) // Lots of toner, make it dark. + copied_paper.info = "" + else // No toner? shitty copies for you! + copied_paper.info = "" + + var/copied_info = paper_copy.info + copied_info = replacetext(copied_info, "" + copied_paper.name = paper_copy.name + copied_paper.update_icon() + copied_paper.stamps = paper_copy.stamps + if(paper_copy.stamped) + copied_paper.stamped = paper_copy.stamped.Copy() + copied_paper.copy_overlays(paper_copy, TRUE) + toner_cartridge.charges -= PAPER_TONER_USE + +/** + * Handles the copying of photos, which can be printed in either color or greyscale. + * + * Checks first if `photo_copy` exists. Since this proc is called from a timer, it's possible that it was removed. + */ +/obj/machinery/photocopier/proc/make_photo_copy() + if(!photo_copy) + return + var/obj/item/photo/copied_pic = new(loc, photo_copy.picture.Copy(color_mode == PHOTO_GREYSCALE ? TRUE : FALSE)) + give_pixel_offset(copied_pic) + toner_cartridge.charges -= PHOTO_TONER_USE + +/** + * Handles the copying of documents. + * + * Checks first if `document_copy` exists. Since this proc is called from a timer, it's possible that it was removed. + */ +/obj/machinery/photocopier/proc/make_document_copy() + if(!document_copy) + return + var/obj/item/documents/photocopy/copied_doc = new(loc, document_copy) + give_pixel_offset(copied_doc) + toner_cartridge.charges -= DOCUMENT_TONER_USE + +/** + * Handles the copying of an ass photo. + * + * Calls `check_ass()` first to make sure that `ass` exists, among other conditions. Since this proc is called from a timer, it's possible that it was removed. + * Additionally checks that the mob has their clothes off. + */ +/obj/machinery/photocopier/proc/make_ass_copy() + if(!check_ass()) + return + if(ishuman(ass)) //(ass.get_item_by_slot(ITEM_SLOT_ICLOTHING) || ass.get_item_by_slot(ITEM_SLOT_OCLOTHING))) + var/mob/living/carbon/C = ass //have to typecast to this, is_groin_exposed is carbon level + if(C.is_groin_exposed()) + to_chat(usr, "You feel kind of silly, copying [ass == usr ? "your" : ass][ass == usr ? "" : "\'s"] ass with [ass == usr ? "your" : "[ass.p_their()]"] clothes on." ) + return + + var/icon/temp_img + if(isalienadult(ass) || istype(ass, /mob/living/simple_animal/hostile/alien)) //Xenos have their own asses, thanks to Pybro. + temp_img = icon('icons/ass/assalien.png') + else if(ishuman(ass)) //Suit checks are after check_ass + temp_img = icon(ass.gender == FEMALE ? 'icons/ass/assfemale.png' : 'icons/ass/assmale.png') + else if(isdrone(ass)) //Drones are hot + temp_img = icon('icons/ass/assdrone.png') + + var/obj/item/photo/copied_ass = new /obj/item/photo(loc) + var/datum/picture/toEmbed = new(name = "[ass]'s Ass", desc = "You see [ass]'s ass on the photo.", image = temp_img) + give_pixel_offset(copied_ass) + toEmbed.psize_x = 128 + toEmbed.psize_y = 128 + copied_ass.set_picture(toEmbed, TRUE, TRUE) + toner_cartridge.charges -= ASS_TONER_USE + +/** + * Inserts the item into the copier. Called in `attackby()` after a human mob clicked on the copier with a paper, photo, or document. + * + * Arugments: + * * object - the object that got inserted. + * * user - the mob that inserted the object. + */ +/obj/machinery/photocopier/proc/do_insertion(obj/item/object, mob/user) + object.forceMove(src) + to_chat(user, "You insert [object] into [src].") flick("photocopier1", src) - updateUsrDialog() -/obj/machinery/photocopier/proc/remove_photocopy(obj/item/O, mob/user) +/** + * Called when someone hits the "remove item" button on the copier UI. + * + * If the user is a silicon, it drops the object at the location of the copier. If the user is not a silicon, it tries to put the object in their hands first. + * Sets `busy` to `FALSE` because if the inserted item is removed, the copier should halt copying. + * + * Arguments: + * * object - the item we're trying to remove. + * * user - the user removing the item. + */ +/obj/machinery/photocopier/proc/remove_photocopy(obj/item/object, mob/user) if(!issilicon(user)) //surprised this check didn't exist before, putting stuff in AI's hand is bad - O.forceMove(user.loc) - user.put_in_hands(O) + object.forceMove(user.loc) + user.put_in_hands(object) else - O.forceMove(drop_location()) - to_chat(user, "You take [O] out of [src].") + object.forceMove(drop_location()) + to_chat(user, "You take [object] out of [src]. [busy ? "The [src] comes to a halt." : ""]") /obj/machinery/photocopier/attackby(obj/item/O, mob/user, params) if(default_unfasten_wrench(user, O)) @@ -210,7 +352,7 @@ else if(!user.temporarilyRemoveItemFromInventory(O)) return - copy = O + paper_copy = O do_insertion(O, user) else to_chat(user, "There is already something in [src]!") @@ -219,7 +361,7 @@ if(copier_empty()) if(!user.temporarilyRemoveItemFromInventory(O)) return - photocopy = O + photo_copy = O do_insertion(O, user) else to_chat(user, "There is already something in [src]!") @@ -228,38 +370,35 @@ if(copier_empty()) if(!user.temporarilyRemoveItemFromInventory(O)) return - doccopy = O + document_copy = O do_insertion(O, user) else to_chat(user, "There is already something in [src]!") else if(istype(O, /obj/item/toner)) - if(toner <= 0) - if(!user.temporarilyRemoveItemFromInventory(O)) - return - qdel(O) - toner = 40 - to_chat(user, "You insert [O] into [src].") - updateUsrDialog() - else - to_chat(user, "This cartridge is not yet ready for replacement! Use up the rest of the toner.") + if(toner_cartridge) + to_chat(user, "[src] already has a toner cartridge inserted. Remove that one first.") + return + O.forceMove(src) + toner_cartridge = O + to_chat(user, "You insert [O] into [src].") else if(istype(O, /obj/item/areaeditor/blueprints)) - to_chat(user, "The Blueprint is too large to put into the copier. You need to find something else to record the document") + to_chat(user, "The Blueprint is too large to put into the copier. You need to find something else to record the document.") else return ..() /obj/machinery/photocopier/obj_break(damage_flag) . = ..() - if(. && toner > 0) + if(. && toner_cartridge.charges) new /obj/effect/decal/cleanable/oil(get_turf(src)) - toner = 0 + toner_cartridge.charges = 0 /obj/machinery/photocopier/MouseDrop_T(mob/target, mob/user) check_ass() //Just to make sure that you can re-drag somebody onto it after they moved off. - if (!istype(target) || target.anchored || target.buckled || !Adjacent(target) || !user.canUseTopic(src, BE_CLOSE) || target == ass || copier_blocked()) + if(!istype(target) || target.anchored || target.buckled || !Adjacent(target) || !user.canUseTopic(src, BE_CLOSE) || target == ass || copier_blocked()) return - src.add_fingerprint(user) + add_fingerprint(user) if(target == user) user.visible_message("[user] starts climbing onto the photocopier!", "You start climbing onto the photocopier...") else @@ -277,49 +416,63 @@ target.forceMove(drop_location()) ass = target - if(photocopy) - photocopy.forceMove(drop_location()) - visible_message("[photocopy] is shoved out of the way by [ass]!") - photocopy = null + if(photo_copy) + photo_copy.forceMove(drop_location()) + visible_message("[photo_copy] is shoved out of the way by [ass]!") + photo_copy = null - else if(copy) - copy.forceMove(drop_location()) - visible_message("[copy] is shoved out of the way by [ass]!") - copy = null - updateUsrDialog() + else if(paper_copy) + paper_copy.forceMove(drop_location()) + visible_message("[paper_copy] is shoved out of the way by [ass]!") + paper_copy = null + else if(document_copy) + document_copy.forceMove(drop_location()) + visible_message("[document_copy] is shoved out of the way by [ass]!") + document_copy = null + +/obj/machinery/photocopier/Exited(atom/movable/AM, atom/newloc) + check_ass() // There was potentially a person sitting on the copier, check if they're still there. + return ..() + +/** + * Checks the living mob `ass` exists and its location is the same as the photocopier. + * + * Returns FALSE if `ass` doesn't exist or is not at the copier's location. Returns TRUE otherwise. + */ /obj/machinery/photocopier/proc/check_ass() //I'm not sure wether I made this proc because it's good form or because of the name. if(!ass) - return 0 - if(ass.loc != src.loc) + return FALSE + if(ass.loc != loc) ass = null - updateUsrDialog() - return 0 - else if(ishuman(ass)) - if(!ass.get_item_by_slot(ITEM_SLOT_ICLOTHING) && !ass.get_item_by_slot(ITEM_SLOT_OCLOTHING)) - return 1 - else - return 0 - else - return 1 + return FALSE + return TRUE +/** + * Checks if the copier is deleted, or has something dense at its location. Called in `MouseDrop_T()` + */ /obj/machinery/photocopier/proc/copier_blocked() if(QDELETED(src)) return if(loc.density) - return 1 + return TRUE for(var/atom/movable/AM in loc) if(AM == src) continue if(AM.density) - return 1 - return 0 + return TRUE + return FALSE +/** + * Checks if there is an item inserted into the copier or a mob sitting on top of it. + * + * Return `FALSE` is the copier has something inside of it. Returns `TRUE` if it doesn't. + */ /obj/machinery/photocopier/proc/copier_empty() - if(copy || photocopy || check_ass()) - return 0 + if(paper_copy || photo_copy || document_copy || check_ass()) + return FALSE else - return 1 + return TRUE /* * Toner cartridge @@ -343,3 +496,11 @@ desc = "Why would ANYONE need THIS MUCH TONER?" charges = 200 max_charges = 200 + +#undef PHOTO_GREYSCALE +#undef PHOTO_COLOR +#undef PAPER_TONER_USE +#undef PHOTO_TONER_USE +#undef DOCUMENT_TONER_USE +#undef ASS_TONER_USE +#undef MAX_COPIES_AT_ONCE diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 241dde13a8..104f70bfdf 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "stamp-ok" item_state = "stamp" + // inhand_icon_state = "stamp" throwforce = 0 w_class = WEIGHT_CLASS_TINY throw_speed = 3 @@ -11,6 +12,8 @@ custom_materials = list(/datum/material/iron=60) pressure_resistance = 2 attack_verb = list("stamped") + // attack_verb_continuous = list("stamps") + // attack_verb_simple = list("stamp") /obj/item/stamp/suicide_act(mob/user) user.visible_message("[user] stamps 'VOID' on [user.p_their()] forehead, then promptly falls over, dead.") @@ -66,5 +69,25 @@ icon_state = "stamp-clown" dye_color = DYE_CLOWN +/obj/item/stamp/mime + name = "mime's rubber stamp" + icon_state = "stamp-mime" + dye_color = DYE_MIME + +/obj/item/stamp/chap + name = "chaplain's rubber stamp" + icon_state = "stamp-chap" + dye_color = DYE_CHAP + +/obj/item/stamp/centcom + name = "CentCom rubber stamp" + icon_state = "stamp-centcom" + dye_color = DYE_CENTCOM + +/obj/item/stamp/syndicate + name = "Syndicate rubber stamp" + icon_state = "stamp-syndicate" + dye_color = DYE_SYNDICATE + /obj/item/stamp/attack_paw(mob/user) return attack_hand(user) diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm new file mode 100644 index 0000000000..0e553ced35 --- /dev/null +++ b/code/modules/paperwork/ticketmachine.dm @@ -0,0 +1,234 @@ +//Bureaucracy machine! +//Simply set this up in the hopline and you can serve people based on ticket numbers + +/obj/machinery/ticket_machine + name = "ticket machine" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "ticketmachine" + desc = "A marvel of bureaucratic engineering encased in an efficient plastic shell. It can be refilled with a hand labeler refill roll and linked to buttons with a multitool." + density = FALSE + maptext_height = 26 + maptext_width = 32 + maptext_x = 7 + maptext_y = 10 + layer = HIGH_OBJ_LAYER + var/ticket_number = 0 //Increment the ticket number whenever the HOP presses his button + var/current_number = 0 //What ticket number are we currently serving? + var/max_number = 100 //At this point, you need to refill it. + var/cooldown = 50 + var/ready = TRUE + var/id = "ticket_machine_default" //For buttons + var/list/ticket_holders = list() + var/list/obj/item/ticket_machine_ticket/tickets = list() + +/obj/machinery/ticket_machine/multitool_act(mob/living/user, obj/item/I) + if(!multitool_check_buffer(user, I)) //make sure it has a data buffer + return + var/obj/item/multitool/M = I + M.buffer = src + to_chat(user, "You store linkage information in [I]'s buffer.") + return TRUE + +/obj/machinery/ticket_machine/emag_act(mob/user) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind. + if(obj_flags & EMAGGED) + return + to_chat(user, "You overload [src]'s bureaucratic logic circuitry to its MAXIMUM setting.") + ticket_number = rand(0,max_number) + current_number = ticket_number + obj_flags |= EMAGGED + if(tickets.len) + for(var/obj/item/ticket_machine_ticket/ticket in tickets) + ticket.audible_message("\the [ticket] disperses!") + qdel(ticket) + tickets.Cut() + update_icon() + +/obj/machinery/ticket_machine/Initialize() + . = ..() + update_icon() + +/obj/machinery/ticket_machine/proc/increment() + if(current_number > ticket_number) + return + if(current_number && !(obj_flags & EMAGGED) && tickets[current_number]) + tickets[current_number].audible_message("\the [tickets[current_number]] disperses!") + qdel(tickets[current_number]) + if(current_number < ticket_number) + current_number ++ //Increment the one we're serving. + playsound(src, 'sound/misc/announce_dig.ogg', 50, FALSE) + say("Now serving ticket #[current_number]!") + if(!(obj_flags & EMAGGED) && tickets[current_number]) + tickets[current_number].audible_message("\the [tickets[current_number]] vibrates!") + update_icon() //Update our icon here rather than when they take a ticket to show the current ticket number being served + +/obj/machinery/button/ticket_machine + name = "increment ticket counter" + desc = "Use this button after you've served someone to tell the next person to come forward." + device_type = /obj/item/assembly/control/ticket_machine + req_access = list() + id = "ticket_machine_default" + +/obj/machinery/button/ticket_machine/Initialize() + . = ..() + if(device) + var/obj/item/assembly/control/ticket_machine/ours = device + ours.id = id + +/obj/machinery/button/ticket_machine/multitool_act(mob/living/user, obj/item/I) + . = ..() + if(I.tool_behaviour == TOOL_MULTITOOL) + var/obj/item/multitool/M = I + if(M.buffer && !istype(M.buffer, /obj/machinery/ticket_machine)) + return + var/obj/item/assembly/control/ticket_machine/controller = device + controller.linked = M.buffer + id = null + controller.id = null + to_chat(user, "You've linked [src] to [controller.linked].") + +/obj/item/assembly/control/ticket_machine + name = "ticket machine controller" + desc = "A remote controller for the HoP's ticket machine." + var/obj/machinery/ticket_machine/linked //To whom are we linked? + +/obj/item/assembly/control/ticket_machine/Initialize() + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/item/assembly/control/ticket_machine/LateInitialize() + find_machine() + +/obj/item/assembly/control/ticket_machine/proc/find_machine() //Locate the one to which we're linked + for(var/obj/machinery/ticket_machine/ticketsplease in GLOB.machines) + if(ticketsplease.id == id) + linked = ticketsplease + if(linked) + return TRUE + else + return FALSE + +/obj/item/assembly/control/ticket_machine/activate() + if(cooldown) + return + if(!linked) + return + cooldown = TRUE + linked.increment() + addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) + +/obj/machinery/ticket_machine/update_icon() + switch(ticket_number) //Gives you an idea of how many tickets are left + if(0 to 49) + icon_state = "ticketmachine_100" + if(50 to 99) + icon_state = "ticketmachine_50" + if(100) + icon_state = "ticketmachine_0" + handle_maptext() + +/obj/machinery/ticket_machine/proc/handle_maptext() + switch(ticket_number) //This is here to handle maptext offsets so that the numbers align. + if(0 to 9) + maptext_x = 13 + if(10 to 99) + maptext_x = 10 + if(100) + maptext_x = 8 + maptext = "[current_number]" //Finally, apply the maptext + +/obj/machinery/ticket_machine/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/hand_labeler_refill)) + if(!(ticket_number >= max_number)) + to_chat(user, "[src] refuses [I]! There [max_number-ticket_number==1 ? "is" : "are"] still [max_number-ticket_number] ticket\s left!") + return + to_chat(user, "You start to refill [src]'s ticket holder (doing this will reset its ticket count!).") + if(do_after(user, 30, target = src)) + to_chat(user, "You insert [I] into [src] as it whirs nondescriptly.") + qdel(I) + ticket_number = 0 + current_number = 0 + if(tickets.len) + for(var/obj/item/ticket_machine_ticket/ticket in tickets) + ticket.audible_message("\the [ticket] disperses!") + qdel(ticket) + tickets.Cut() + max_number = initial(max_number) + update_icon() + return + +/obj/machinery/ticket_machine/proc/reset_cooldown() + ready = TRUE + +/obj/machinery/ticket_machine/attack_hand(mob/living/carbon/user) + . = ..() + INVOKE_ASYNC(src, .proc/attempt_ticket, user) + +/obj/machinery/ticket_machine/proc/attempt_ticket(mob/living/carbon/user) + if(!ready) + to_chat(user,"You press the button, but nothing happens...") + return + if(ticket_number >= max_number) + to_chat(user,"Ticket supply depleted, please refill this unit with a hand labeller refill cartridge!") + return + if((user in ticket_holders) && !(obj_flags & EMAGGED)) + to_chat(user, "You already have a ticket!") + return + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 100, FALSE) + ticket_number ++ + to_chat(user, "You take a ticket from [src], looks like you're ticket number #[ticket_number]...") + var/obj/item/ticket_machine_ticket/theirticket = new /obj/item/ticket_machine_ticket(get_turf(src)) + theirticket.name = "Ticket #[ticket_number]" + theirticket.maptext = "[ticket_number]" + theirticket.saved_maptext = "[ticket_number]" + theirticket.ticket_number = ticket_number + theirticket.source = src + theirticket.owner = user + user.put_in_hands(theirticket) + ticket_holders += user + tickets += theirticket + if(obj_flags & EMAGGED) //Emag the machine to destroy the HOP's life. + ready = FALSE + addtimer(CALLBACK(src, .proc/reset_cooldown), cooldown)//Small cooldown to prevent piles of flaming tickets + theirticket.fire_act() + user.dropItemToGround(theirticket) + user.adjust_fire_stacks(1) + user.IgniteMob() + return + +/obj/item/ticket_machine_ticket + name = "Ticket" + desc = "A ticket which shows your place in the Head of Personnel's line. Made from Nanotrasen patented NanoPaper®. Though solid, its form seems to shimmer slightly. Feels (and burns) just like the real thing." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "ticket" + maptext_x = 7 + maptext_y = 10 + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + max_integrity = 50 + var/saved_maptext = null + var/mob/living/carbon/owner + var/obj/machinery/ticket_machine/source + var/ticket_number + +/obj/item/ticket_machine_ticket/attack_hand(mob/user) + . = ..() + maptext = saved_maptext //For some reason, storage code removes all maptext off objs, this stops its number from being wiped off when taken out of storage. + +/obj/item/ticket_machine_ticket/attackby(obj/item/P, mob/living/carbon/human/user, params) //Stolen from papercode + if(burn_paper_product_attackby_check(P, user)) + return + + return ..() + +/obj/item/paper/extinguish() + ..() + update_icon() + +/obj/item/ticket_machine_ticket/Destroy() + if(owner && source) + source.ticket_holders -= owner + source.tickets[ticket_number] = null + owner = null + source = null + return ..() diff --git a/code/modules/photography/_pictures.dm b/code/modules/photography/_pictures.dm index f667e18f47..6f85cdb3a6 100644 --- a/code/modules/photography/_pictures.dm +++ b/code/modules/photography/_pictures.dm @@ -30,16 +30,16 @@ if(autogenerate_icon && !picture_icon && picture_image) regenerate_small_icon() -/datum/picture/proc/get_small_icon() +/datum/picture/proc/get_small_icon(iconstate) if(!picture_icon) - regenerate_small_icon() + regenerate_small_icon(iconstate) return picture_icon -/datum/picture/proc/regenerate_small_icon() +/datum/picture/proc/regenerate_small_icon(iconstate) if(!picture_image) return var/icon/small_img = icon(picture_image) - var/icon/ic = icon('icons/obj/items_and_weapons.dmi', "photo") + var/icon/ic = icon('icons/obj/items_and_weapons.dmi', iconstate ? iconstate :"photo") small_img.Scale(8, 8) ic.Blend(small_img,ICON_OVERLAY, 13, 13) picture_icon = ic diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 5c78709e9b..c363c549de 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -35,23 +35,23 @@ /obj/item/photo/update_icon_state() if(!istype(picture) || !picture.picture_image) return - var/icon/I = picture.get_small_icon() + var/icon/I = picture.get_small_icon(initial(icon_state)) if(I) icon = I /obj/item/photo/suicide_act(mob/living/carbon/user) user.visible_message("[user] is taking one last look at \the [src]! It looks like [user.p_theyre()] giving in to death!")//when you wanna look at photo of waifu one last time before you die... if (user.gender == MALE) - playsound(user, 'sound/voice/human/manlaugh1.ogg', 50, 1)//EVERY TIME I DO IT MAKES ME LAUGH + playsound(user, 'sound/voice/human/manlaugh1.ogg', 50, TRUE)//EVERY TIME I DO IT MAKES ME LAUGH else if (user.gender == FEMALE) - playsound(user, 'sound/voice/human/womanlaugh.ogg', 50, 1) + playsound(user, 'sound/voice/human/womanlaugh.ogg', 50, TRUE) return OXYLOSS /obj/item/photo/attack_self(mob/user) user.examinate(src) /obj/item/photo/attackby(obj/item/P, mob/user, params) - if(try_burn(P, user)) + if(burn_paper_product_attackby_check(P, user)) return if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) if(!user.is_literate()) @@ -60,31 +60,13 @@ var/txt = stripped_input(user, "What would you like to write on the back?", "Photo Writing", "", 128) if(txt && user.canUseTopic(src, BE_CLOSE)) scribble = txt - ..() - -/obj/item/photo/proc/try_burn(obj/item/I, mob/living/user) - var/ignition_message = I.ignition_effect(src, user) - if(!ignition_message) - return - . = TRUE - if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10) && Adjacent(user)) - user.visible_message("[user] accidentally ignites [user.p_them()]self!", \ - "You miss [src] and accidentally light yourself on fire!") - if(user.is_holding(I)) //checking if they're holding it in case TK is involved - user.dropItemToGround(I) - user.adjust_fire_stacks(1) - user.IgniteMob() - return - - if(user.is_holding(src)) //no TK shit here. - user.dropItemToGround(src) - user.visible_message(ignition_message) - add_fingerprint(user) - fire_act(I.get_temperature()) + else + return ..() /obj/item/photo/examine(mob/user) . = ..() - if(in_range(src, user)) + + if(in_range(src, user) || isobserver(user)) show(user) else . += "You need to get closer to get a good look at this photo!" diff --git a/code/modules/plumbing/plumbers/autohydro.dm b/code/modules/plumbing/plumbers/autohydro.dm index dbc70dfcf5..20b8e6012a 100644 --- a/code/modules/plumbing/plumbers/autohydro.dm +++ b/code/modules/plumbing/plumbers/autohydro.dm @@ -1,10 +1,9 @@ /obj/machinery/hydroponics/constructable/automagic name = "automated hydroponics system" desc = "The bane of botanists everywhere. Accepts chemical reagents via plumbing, automatically harvests and removes dead plants." + icon_state = "hydrotray4" obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/hydroponics/automagic - self_sufficiency_req = 400 //automating hydroponics makes gaia sad so she needs more drugs to turn they tray godly. - canirrigate = FALSE /obj/machinery/hydroponics/constructable/automagic/attackby(obj/item/O, mob/user, params) @@ -31,18 +30,19 @@ . = ..() START_PROCESSING(SSobj, src) create_reagents(100 , AMOUNT_VISIBLE) + AddComponent(/datum/component/plumbing/simple_demand) /obj/machinery/hydroponics/constructable/automagic/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) - AddComponent(/datum/component/plumbing/simple_demand) + /obj/machinery/hydroponics/constructable/proc/can_be_rotated(mob/user, rotation_type) return !anchored /obj/machinery/hydroponics/constructable/automagic/process() if(reagents) - applyChemicals(reagents) + reagents.add_reagent(reagents) reagents.clear_reagents() if(dead) dead = 0 diff --git a/code/modules/plumbing/plumbers/pill_press.dm b/code/modules/plumbing/plumbers/pill_press.dm index 56510fac87..88f56f111d 100644 --- a/code/modules/plumbing/plumbers/pill_press.dm +++ b/code/modules/plumbing/plumbers/pill_press.dm @@ -42,7 +42,7 @@ for (var/x in 1 to PILL_STYLE_COUNT) var/list/SL = list() SL["id"] = x - SL["htmltag"] = assets.icon_tag("pill[x]") + SL["class_name"] = assets.icon_class_name("pill[x]") pill_styles += list(SL) diff --git a/code/modules/pool/pool_controller.dm b/code/modules/pool/pool_controller.dm index c9bc6be3e5..17faa7a3e3 100644 --- a/code/modules/pool/pool_controller.dm +++ b/code/modules/pool/pool_controller.dm @@ -210,7 +210,7 @@ for(var/datum/reagent/R in reagents.reagent_list) if(R.reagent_state == SOLID) R.reagent_state = LIQUID - if(!swimee.reagents.has_reagent(POOL_NO_OVERDOSE_MEDICINE_MAX)) + if(!swimee.reagents.has_reagent(R.type,POOL_NO_OVERDOSE_MEDICINE_MAX)) swimee.reagents.add_reagent(R.type, 0.5) //osmosis reagents.reaction(swimee, VAPOR, 0.03) //3 percent. Need to find a way to prevent this from stacking chems at some point like the above. for(var/obj/objects in W) diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index 568ad893a2..cac2b1f2b1 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -30,7 +30,6 @@ var/stored_power = 0//Power to deploy per tick - /obj/machinery/power/am_control_unit/Initialize() . = ..() linked_shielding = list() @@ -44,7 +43,6 @@ QDEL_NULL(fueljar) return ..() - /obj/machinery/power/am_control_unit/process() if(exploding) explosion(get_turf(src),8,12,18,12) @@ -72,7 +70,6 @@ return - /obj/machinery/power/am_control_unit/proc/produce_power() playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) var/core_power = reported_core_efficiency//Effectively how much fuel we can safely deal with @@ -103,15 +100,9 @@ . = ..() if(. & EMP_PROTECT_SELF) return - switch(severity) - if(1) - if(active) - toggle_power() - stability -= rand(15,30) - if(2) - if(active) - toggle_power() - stability -= rand(10,20) + if(active) + toggle_power() + stability -= rand(round(severity/5),round(severity/3)) /obj/machinery/power/am_control_unit/blob_act() stability -= 20 @@ -123,20 +114,17 @@ check_stability() return - /obj/machinery/power/am_control_unit/ex_act(severity, target) stability -= (80 - (severity * 20)) check_stability() return - /obj/machinery/power/am_control_unit/bullet_act(obj/item/projectile/Proj) . = ..() if(Proj.flag != "bullet") stability -= Proj.force check_stability() - /obj/machinery/power/am_control_unit/power_change() ..() if(stat & NOPOWER) @@ -150,7 +138,6 @@ return - /obj/machinery/power/am_control_unit/update_icon_state() if(active) icon_state = "control_on" @@ -158,7 +145,6 @@ icon_state = "control" //No other icons for it atm - /obj/machinery/power/am_control_unit/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/wrench)) if(!anchored) @@ -192,7 +178,6 @@ else return ..() - /obj/machinery/power/am_control_unit/take_damage(damage, damage_type = BRUTE, sound_effect = 1) switch(damage_type) if(BRUTE) @@ -221,7 +206,6 @@ update_shield_icons = 1 return 1 - /obj/machinery/power/am_control_unit/proc/remove_shielding(obj/machinery/am_shielding/AMS) if(!istype(AMS)) return 0 @@ -231,13 +215,11 @@ toggle_power() return 1 - /obj/machinery/power/am_control_unit/proc/check_stability()//TODO: make it break when low also might want to add a way to fix it like a part or such that can be replaced if(stability <= 0) qdel(src) return - /obj/machinery/power/am_control_unit/proc/toggle_power(powerfail = 0) active = !active if(active) @@ -249,7 +231,6 @@ update_icon() return - /obj/machinery/power/am_control_unit/proc/check_shield_icons()//Forces icon_update for all shields if(shield_icon_delay) return diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 2480288484..3bfcd0a921 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1161,7 +1161,7 @@ occupier.eyeobj.name = "[occupier.name] (AI Eye)" if(malf.parent) qdel(malf) - occupier.verbs += /mob/living/silicon/ai/proc/corereturn + add_verb(occupier, /mob/living/silicon/ai/proc/corereturn) occupier.cancel_camera() @@ -1173,7 +1173,7 @@ occupier.parent.shunted = 0 occupier.parent.setOxyLoss(occupier.getOxyLoss()) occupier.parent.cancel_camera() - occupier.parent.verbs -= /mob/living/silicon/ai/proc/corereturn + remove_verb(occupier.parent, /mob/living/silicon/ai/proc/corereturn) qdel(occupier) else to_chat(occupier, "Primary core damaged, unable to return core processes.") @@ -1449,7 +1449,7 @@ environ = 0 update_icon() update() - addtimer(CALLBACK(src, .proc/reset, APC_RESET_EMP), 600) + addtimer(CALLBACK(src, .proc/reset, APC_RESET_EMP), severity*8) /obj/machinery/power/apc/blob_act(obj/structure/blob/B) set_broken() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 6dcb08512c..3f1e688120 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -549,11 +549,16 @@ By design, d1 is the smallest direction and d2 is the highest var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) if(affecting && affecting.status == BODYPART_ROBOTIC) + //only heal to 25 if limb is damaged to or past 25 burn, otherwise heal normally + var/difference = affecting.burn_dam - 25 + var/heal_amount = 15 + if(difference >= 0) + heal_amount = difference if(user == H) user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") if(!do_mob(user, H, 50)) return - if(item_heal_robotic(H, user, 0, 15)) + if(item_heal_robotic(H, user, 0, heal_amount)) use(1) return else diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 6425feac31..fe05365dd9 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -136,8 +136,8 @@ . = ..() if(. & EMP_PROTECT_SELF) return - charge -= 1000 / severity - if (charge < 0) + charge -= 10 * severity + if(charge < 0) charge = 0 /obj/item/stock_parts/cell/ex_act(severity, target) @@ -185,6 +185,23 @@ /obj/item/stock_parts/cell/get_part_rating() return rating * maxcharge +// stuff so ipcs and synthlizards can eat power cells, taken from how moths can eat clothing +/obj/item/reagent_containers/food/snacks/cell + name = "oops" + desc = "If you're reading this it means I messed up. This is related to ipcs/synths eating cells and I didn't know a better way to do it than making a new food object." + list_reagents = list(/datum/reagent/consumable/nutriment = 0.5) + tastes = list("electricity" = 1, "metal" = 1) + +/obj/item/stock_parts/cell/attack(mob/M, mob/user, def_zone) + if(user.a_intent != INTENT_HARM && isrobotic(M)) + var/obj/item/reagent_containers/food/snacks/cell/cell_as_food = new + cell_as_food.name = name + if(cell_as_food.attack(M, user, def_zone)) + take_damage(40, sound_effect=FALSE) + qdel(cell_as_food) + else + return ..() + /* Cell variants*/ /obj/item/stock_parts/cell/empty start_charged = FALSE @@ -359,7 +376,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - charge = clamp((charge-(10000/severity)),0,maxcharge) + charge = clamp((charge-(100*severity)),0,maxcharge) /obj/item/stock_parts/cell/emergency_light name = "miniature power cell" diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 78a20e5b62..bc921b5b26 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -66,7 +66,7 @@ var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) var/heat = energy_transfer*(1-efficiency) - lastgen += energy_transfer*efficiency + lastgen += LOGISTIC_FUNCTION(500000,0.0009,delta_temperature,10000) hot_air.set_temperature(hot_air.return_temperature() - energy_transfer/hot_air_heat_capacity) cold_air.set_temperature(cold_air.return_temperature() + heat/cold_air_heat_capacity) @@ -139,7 +139,6 @@ . = ..() var/datum/browser/popup = new(user, "teg", "Thermo-Electric Generator", 460, 300) popup.set_content(get_menu()) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/power/generator/Topic(href, href_list) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index e2f8c4e58a..b5ed659e47 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -209,7 +209,7 @@ if(obj_flags & EMAGGED) return obj_flags |= EMAGGED - emp_act(EMP_HEAVY) + emp_act(100) /obj/machinery/power/port_gen/pacman/attack_ai(mob/user) interact(user) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index cc3a19cf55..ee4b9ce6ba 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -434,7 +434,7 @@ /obj/singularity/proc/emp_area() - empulse(src, 8, 10) + empulse_using_range(src, 10) return /obj/singularity/singularity_act() diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index a4fc7d0641..f0f99ab7da 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -407,7 +407,7 @@ outputting = output_attempt output_level = rand(0, output_level_max) input_level = rand(0, input_level_max) - charge -= 1e6/severity + charge -= 10000*severity if (charge < 0) charge = 0 update_icon() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index fd8f900552..e3fdbd3654 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -639,7 +639,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) if(produces_gas) env.merge(removed) air_update_turf() - + /********* END CITADEL CHANGES *********/ @@ -985,6 +985,13 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) layer = ABOVE_MOB_LAYER moveable = TRUE +/obj/machinery/power/supermatter_crystal/shard/examine(mob/user) + . = ..() + if(anchored) + . += "[src] is anchored to the floor." + else + . += "[src] is unanchored, but can be bolted down." + /obj/machinery/power/supermatter_crystal/shard/engine name = "anchored supermatter shard" is_main_engine = TRUE @@ -1026,12 +1033,12 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) if(L) switch(type) if(FLUX_ANOMALY) - var/obj/effect/anomaly/flux/A = new(L, 300, FALSE) + var/obj/effect/anomaly/flux/A = new(L, 300, SUPERMATTER_ANOMALY_DROP_CHANCE) A.explosive = FALSE if(GRAVITATIONAL_ANOMALY) - new /obj/effect/anomaly/grav(L, 250, FALSE) + new /obj/effect/anomaly/grav(L, 250, SUPERMATTER_ANOMALY_DROP_CHANCE) if(PYRO_ANOMALY) - new /obj/effect/anomaly/pyro(L, 200, FALSE) + new /obj/effect/anomaly/pyro(L, 200, SUPERMATTER_ANOMALY_DROP_CHANCE) /obj/machinery/power/supermatter_crystal/proc/supermatter_zap(atom/zapstart = src, range = 5, zap_str = 4000, zap_flags = ZAP_SUPERMATTER_FLAGS, list/targets_hit = list()) if(QDELETED(zapstart)) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index eb80548441..be24ea0fef 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -160,6 +160,14 @@ buckle_lying = FALSE buckle_requires_restraints = TRUE +/obj/machinery/power/grounding_rod/Initialize() + GLOB.grounding_rods |= src + return ..() + +/obj/machinery/power/grounding_rod/Destroy() + GLOB.grounding_rods.Remove(src) + return ..() + /obj/machinery/power/grounding_rod/default_unfasten_wrench(mob/user, obj/item/I, time = 20) . = ..() if(. == SUCCESSFUL_UNFASTEN) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 06e5d27f6d..fc51915b73 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -31,6 +31,7 @@ var/produced_power var/energy_to_raise = 32 var/energy_to_lower = -20 + var/obj/machinery/power/grounding_rod/rodtarget /obj/singularity/energy_ball/Initialize(mapload, starting_energy = 50, is_miniball = FALSE) miniball = is_miniball @@ -60,11 +61,12 @@ return //don't annnounce miniballs ..() - /obj/singularity/energy_ball/process() if(!orbiting) handle_energy() + determine_containment() + move_the_basket_ball(4 + orbiting_balls.len * 1.5) playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, TRUE, extrarange = 30) @@ -87,12 +89,19 @@ if(orbiting_balls.len) . += "There are [orbiting_balls.len] mini-balls orbiting it." - /obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount) //we face the last thing we zapped, so this lets us favor that direction a bit var/move_bias = pick(GLOB.alldirs) + var/move_dir + for(var/rod in GLOB.grounding_rods) // grounding rods pull the tesla ball, picks the nearest one + if(!rodtarget || get_dist(src,rod)= energy_to_raise) @@ -121,6 +144,10 @@ else if(orbiting_balls.len) dissipate() //sing code has a much better system. + if(energy<=0) + investigate_log("fizzled.", INVESTIGATE_SINGULO) + qdel(src) + /obj/singularity/energy_ball/proc/new_mini_ball() if(!loc) return @@ -134,7 +161,6 @@ EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) - /obj/singularity/energy_ball/Bump(atom/A) dust_mobs(A) @@ -166,7 +192,6 @@ if (!QDELETED(src)) qdel(src) - /obj/singularity/energy_ball/proc/dust_mobs(atom/A) if(isliving(A)) var/mob/living/L = A @@ -321,7 +346,7 @@ if(issilicon(closest_mob)) var/mob/living/silicon/S = closest_mob if((zap_flags & ZAP_MOB_STUN) && (zap_flags & ZAP_MOB_DAMAGE)) - S.emp_act(EMP_LIGHT) + S.emp_act(50) next_range = 7 // metallic folks bounce it further else next_range = 5 @@ -329,6 +354,12 @@ else power = closest_atom.zap_act(power, zap_flags, shocked_targets) + + var/obj/singularity/energy_ball/tesla = source + if(istype(tesla)) + if(istype(closest_atom,/obj/machinery/power/grounding_rod) && tesla.energy>13 && !tesla.contained) + qdel(closest_atom) // each rod deletes two miniballs, + tesla.energy = round(tesla.energy/1.5625) // if there are no miniballs the rod stays and continues to pull the ball in if(prob(20))//I know I know tesla_zap(closest_atom, next_range, power * 0.5, zap_flags, shocked_targets) tesla_zap(closest_atom, next_range, power * 0.5, zap_flags, shocked_targets) diff --git a/code/modules/projectiles/ammunition/special/magic.dm b/code/modules/projectiles/ammunition/special/magic.dm index cc039c5f2b..8380bf82e9 100644 --- a/code/modules/projectiles/ammunition/special/magic.dm +++ b/code/modules/projectiles/ammunition/special/magic.dm @@ -43,3 +43,17 @@ /obj/item/ammo_casing/magic/locker projectile_type = /obj/item/projectile/magic/locker + +//Spell book ammo casing +/obj/item/ammo_casing/magic/book + projectile_type = /obj/item/projectile/magic/spellcard/book + +/obj/item/ammo_casing/magic/book/spark + projectile_type = /obj/item/projectile/magic/spellcard/book/spark + +/obj/item/ammo_casing/magic/book/heal + projectile_type = /obj/item/projectile/magic/spellcard/book/heal + harmful = FALSE + +/obj/item/ammo_casing/magic/book/shock + projectile_type = /obj/item/projectile/magic/spellcard/book/shock diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 78ca6e9280..9ea030da99 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -20,7 +20,6 @@ var/caliber var/multiload = 1 var/start_empty = 0 - var/load_delay = 0 //how long do we take to load (deciseconds) var/list/bullet_cost var/list/base_cost// override this one as well if you override bullet_cost @@ -76,19 +75,12 @@ return 1 /obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = FALSE, replace_spent = 0) - if(INTERACTING_WITH(user, src) || INTERACTING_WITH(user, A)) - to_chat(user, "You're already doing that!") - return FALSE var/num_loaded = 0 if(!can_load(user)) return if(istype(A, /obj/item/ammo_box)) var/obj/item/ammo_box/AM = A for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - if(load_delay || AM.load_delay) - var/loadtime = max(AM.load_delay, load_delay) - if(!do_after(user, loadtime, target = src)) - return FALSE var/did_load = give_round(AC, replace_spent) if(did_load) AM.stored_ammo -= AC diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 0b00c89c02..70058801f8 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -149,12 +149,13 @@ icon = 'icons/obj/ammo.dmi' icon_state = "shotgunclip" caliber = "shotgun" // slapped in to allow shell mix n match + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET + w_class = WEIGHT_CLASS_NORMAL + w_volume = ITEM_VOLUME_STRIPPER_CLIP ammo_type = /obj/item/ammo_casing/shotgun max_ammo = 4 var/pixeloffsetx = 4 start_empty = TRUE - multiload = FALSE - load_delay = 6 //6ds /obj/item/ammo_box/shotgun/update_overlays() . = ..() diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 1aefa51a51..fa8099a257 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -53,8 +53,6 @@ ..() if (istype(A, /obj/item/ammo_box/magazine)) var/obj/item/ammo_box/magazine/AM = A - if(AM.load_delay && !do_after(user, AM.load_delay, target = src)) - return FALSE if (!magazine && istype(AM, mag_type)) if(user.transferItemToLoc(AM, src)) magazine = AM diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm index 4e27a73300..c01a2fb74a 100644 --- a/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -51,11 +51,6 @@ cell.use(shot.energy_cost) . = ..() -/obj/item/gun/ballistic/automatic/magrifle/emp_act(severity) - . = ..() - if(!(. & EMP_PROTECT_CONTENTS)) - cell.use(round(cell.charge / severity)) - /obj/item/gun/ballistic/automatic/magrifle/get_cell() return cell diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 6f1fb96af5..a26f05d553 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -8,7 +8,7 @@ /obj/item/gun/ballistic/revolver/Initialize() . = ..() if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - verbs -= /obj/item/gun/ballistic/revolver/verb/spin + verbs += /obj/item/gun/ballistic/revolver/verb/spin /obj/item/gun/ballistic/revolver/chamber_round(spin = 1) if(spin) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 17dcfa96e6..0f5934e8fd 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -41,7 +41,7 @@ /obj/item/gun/energy/emp_act(severity) . = ..() if(!(. & EMP_PROTECT_CONTENTS)) - cell.use(round(cell.charge / severity)) + cell.use(round(cell.charge * severity/100)) chambered = null //we empty the chamber recharge_newshot() //and try to charge a new shot update_icon() @@ -268,7 +268,7 @@ for(var/i = ratio, i >= 1, i--) charge_overlay.pixel_x = ammo_x_offset * (i - 1) charge_overlay.pixel_y = ammo_y_offset * (i - 1) - . += charge_overlay + . += new /mutable_appearance(charge_overlay) else . += "[icon_state]_charge[ratio]" diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 2c9794f391..45bc3a79dc 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -132,7 +132,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - fail_chance = min(fail_chance + round(15/severity), 100) + fail_chance = min(fail_chance + round(severity/6.6), 100) /obj/item/gun/energy/e_gun/nuclear/update_overlays() . = ..() diff --git a/code/modules/projectiles/guns/magic/spell_book.dm b/code/modules/projectiles/guns/magic/spell_book.dm new file mode 100644 index 0000000000..752a6ae5ac --- /dev/null +++ b/code/modules/projectiles/guns/magic/spell_book.dm @@ -0,0 +1,66 @@ +/obj/item/gun/magic/wand/book + name = "blank spellbook" + desc = "It's not just a book, it's a SPELL book!" + ammo_type = /obj/item/ammo_casing/magic + icon = 'icons/obj/library.dmi' + icon_state = "book" + w_class = WEIGHT_CLASS_NORMAL + charges = 10 //We start with max pages + max_charges = 10 + variable_charges = FALSE + +/obj/item/gun/magic/wand/book/zap_self(mob/living/user) + to_chat(user, "The book has [charges] pages\s remaining.
    ") + +/obj/item/gun/magic/wand/book/attackby(obj/item/S, mob/living/user, params) + if(!istype(S, /obj/item/paper)) + return ..() + if(charges < max_charges) + charges++ + recharge_newshot() + to_chat(user, "You add a new page to [src].") + qdel(S) + update_icon() + process() + else + to_chat(user, "The [src] has no more room for pages!") + +////////////////////// +//Spell Book - SPARK// +////////////////////// + +/obj/item/gun/magic/wand/book/spark + name = "Spell Book of Spark" + desc = "A spell book that fires burn pages to set the target ablaze!" + ammo_type = /obj/item/ammo_casing/magic/book/spark + icon_state = "spellbook_spark" + +////////////////////// +//Spell Book - PAGE/// +////////////////////// + +/obj/item/gun/magic/wand/book/page + name = "Spell Book of Throw" + desc = "A spell book that throws pages at its target!" + ammo_type = /obj/item/ammo_casing/magic/book + icon_state = "spellbook_page" + +////////////////////// +//Spell Book - SHOCK// +////////////////////// + +/obj/item/gun/magic/wand/book/shock + name = "Spell Book of Shock" + desc = "A spell book that uses its pages to capture energy in the air and send it in a bolt at its target!" + ammo_type = /obj/item/ammo_casing/magic/book/shock + icon_state = "spellbook_shock" + +//////////////////////// +//Spell Book - HEALING// +//////////////////////// + +/obj/item/gun/magic/wand/book/healing + name = "Spell Book of Mending" + desc = "A spell book that uses its pages to heal and repair the target! The back of the book lists what it works on, and it seems to only be of flesh and of metal beings..." + ammo_type = /obj/item/ammo_casing/magic/book/heal + icon_state = "spellbook_healing" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 99a0bedc4d..4e81c5aeb6 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -460,6 +460,7 @@ return TRUE //Bullets don't drift in space /obj/item/projectile/process(wait) + set waitfor = FALSE if(!loc || !fired || !trajectory) fired = FALSE return PROCESS_KILL diff --git a/code/modules/projectiles/projectile/magic/spellcard.dm b/code/modules/projectiles/projectile/magic/spellcard.dm index 1b8f326573..5015a97e78 100644 --- a/code/modules/projectiles/projectile/magic/spellcard.dm +++ b/code/modules/projectiles/projectile/magic/spellcard.dm @@ -4,3 +4,60 @@ icon_state = "spellcard" damage_type = BURN damage = 2 + +/obj/item/projectile/magic/spellcard/book + nodamage = FALSE + name = "enchanted page" + desc = "A piece of paper enchanted to give it extreme durability and stiffness, along with a very hot burn to anyone unfortunate enough to get hit by a charged one." + icon_state = "spellcard" + damage_type = BURN + damage = 12 + flag = "magic" + +/obj/item/projectile/magic/spellcard/book/spark + damage = 4 + var/fire_stacks = 4 + +/obj/item/projectile/magic/spellcard/book/spark/on_hit(atom/target, blocked = FALSE) + . = ..() + var/mob/living/carbon/M = target + if(ismob(target)) + if(M.anti_magic_check()) + M.visible_message("[src] vanishes on contact with [target]!") + return BULLET_ACT_BLOCK + + if(iscarbon(target)) + M.adjust_fire_stacks(fire_stacks) + M.IgniteMob() + return + else + damage = 20 //If we are a simplemob we deal 5x damage + +/obj/item/projectile/magic/spellcard/book/shock + damage = 0 + stamina = 11 + stutter = 5 + jitter = 20 + knockdown = 10 + +/obj/item/projectile/magic/spellcard/book/heal + damage = 0 + nodamage = TRUE + +/obj/item/projectile/magic/spellcard/book/heal/on_hit(atom/target, blocked = FALSE) + . = ..() + var/mob/living/carbon/M = target + if(ismob(target)) + if(M.anti_magic_check()) + M.visible_message("[src] vanishes on contact with [target]!") + return BULLET_ACT_BLOCK + if(iscarbon(target)) + M.visible_message("[src] mends [target]!") + M.adjustBruteLoss(-5) //HEALS + M.adjustOxyLoss(-5) + M.adjustBruteLoss(-5) + M.adjustFireLoss(-5) + M.adjustToxLoss(-5, TRUE) //heals TOXINLOVERs + M.adjustCloneLoss(-5) + M.adjustStaminaLoss(-5) + return diff --git a/code/modules/projectiles/projectile/special/ion.dm b/code/modules/projectiles/projectile/special/ion.dm index 9755269031..757f87a4d9 100644 --- a/code/modules/projectiles/projectile/special/ion.dm +++ b/code/modules/projectiles/projectile/special/ion.dm @@ -10,7 +10,7 @@ /obj/item/projectile/ion/on_hit(atom/target, blocked = FALSE) ..() - empulse(target, emp_radius, emp_radius) + empulse_using_range(target, emp_radius) return BULLET_ACT_HIT /obj/item/projectile/ion/weak diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index d22523c4b8..80b8011af0 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -32,14 +32,13 @@ /obj/machinery/smoke_machine/Initialize() . = ..() create_reagents(REAGENTS_BASE_VOLUME) - // AddComponent(/datum/component/plumbing/simple_demand) for(var/obj/item/stock_parts/matter_bin/B in component_parts) reagents.maximum_volume += REAGENTS_BASE_VOLUME * B.rating + AddComponent(/datum/component/plumbing/simple_demand) /obj/machinery/smoke_machine/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) - AddComponent(/datum/component/plumbing/simple_demand) //this SURELY CANT' LEAD TO BAD THINGS HAPPENING. /obj/machinery/smoke_machine/proc/can_be_rotated(mob/user, rotation_type) return !anchored diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 672127cb11..d6b7201ef9 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -213,6 +213,16 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) if(prob(30)) to_chat(M, "You're not feeling good at all! You really need some [name].") +/** + * New, standardized method for chemicals to affect hydroponics trays. + * Defined on a per-chem level as opposed to by the tray. + * Can affect plant's health, stats, or cause the plant to react in certain ways. + */ +/datum/reagent/proc/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + if(!mytray || !chems) + return + return + /proc/pretty_string_from_reagent_list(list/reagent_list) //Convert reagent list to a printable string for logging etc var/list/rs = list() diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 4034759c72..c2bb678904 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -90,6 +90,13 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A freezing pint of beer." pH = 4 + // Beer is a chemical composition of alcohol and various other things. It's a garbage nutrient but hey, it's still one. Also alcohol is bad, mmmkay? +/datum/reagent/consumable/ethanol/beer/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 0.05)) + mytray.adjustWater(round(chems.get_reagent_amount(src.type) * 0.7)) + /datum/reagent/consumable/ethanol/beer/light name = "Light Beer" description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety has reduced calorie and alcohol content." @@ -2280,6 +2287,7 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = RACE_DRINK else C.adjust_disgust(disgust) + return ..() /datum/reagent/consumable/ethanol/species_drink/coldscales name = "Coldscales" @@ -2289,7 +2297,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "coldscales" glass_name = "glass of Coldscales" glass_desc = "A soft green drink that looks inviting!" - species_required = "lizard" /datum/reagent/consumable/ethanol/species_drink/oil_drum @@ -2301,7 +2308,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "oil_drum" glass_name = "Drum of oil" glass_desc = "A gray can of booze and oil..." - species_required = "robot" /datum/reagent/consumable/ethanol/species_drink/nord_king @@ -2312,7 +2318,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "nord_king" glass_name = "Keg of Nord King" glass_desc = "A dripping keg of red mead." - species_required = "basic" /datum/reagent/consumable/ethanol/species_drink/velvet_kiss @@ -2324,7 +2329,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "velvet_kiss" glass_name = "glass of Velvet Kiss" glass_desc = "Red and white drink for the upper classes or undead." - species_required = "undead" /datum/reagent/consumable/ethanol/species_drink/abduction_fruit @@ -2336,7 +2340,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "abduction_fruit" glass_name = "glass of Abduction Fruit" glass_desc = "Mixed fruits that were never meant to be mixed..." - species_required = "alien" /datum/reagent/consumable/ethanol/species_drink/bug_zapper @@ -2348,7 +2351,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "bug_zapper" glass_name = "glass of Bug Zapper" glass_desc = "An odd mix of copper, lemon juice and power meant for non-human consumption." - species_required = "bug" /datum/reagent/consumable/ethanol/species_drink/mush_crush @@ -2360,7 +2362,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "mush_crush" glass_name = "glass of Mush Crush" glass_desc = "Popular among people that want to grow their own food rather than drink the soil." - species_required = "plant" /datum/reagent/consumable/ethanol/species_drink/darkbrew @@ -2372,7 +2373,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "darkbrew" glass_name = "glass of Darkbrew" glass_desc = "A pitch black drink that's commonly confused with a type of coffee." - species_required = "shadow" /datum/reagent/consumable/ethanol/species_drink/hollow_bone @@ -2384,7 +2384,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "hollow_bone" glass_name = "skull of Hollow Bone" glass_desc = "Mixing of milk and bone hurting juice for the enjoyment of rather skinny people." - species_required = "skeleton" /datum/reagent/consumable/ethanol/species_drink/frisky_kitty @@ -2396,7 +2395,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "frisky_kitty" glass_name = "cup of Drisky Kitty" glass_desc = "Warm milk and some catnip." - species_required = "furry" /datum/reagent/consumable/ethanol/species_drink/jell_wyrm @@ -2408,7 +2406,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "jell_wyrm" glass_name = "glass of Jell Wyrm" glass_desc = "A bubbly drink that is rather inviting to those that don't know who it's meant for." - species_required = "jelly" /datum/reagent/consumable/ethanol/species_drink/laval_spit //Yes Laval @@ -2420,7 +2417,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "laval_spit" glass_name = "glass of Laval Spit" glass_desc = "Piping hot drink for those who can stomach the heat of lava." - species_required = "golem" /////////////// diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index e1433eb64e..37fc075c6f 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -214,6 +214,14 @@ pH = 6.5 value = REAGENT_VALUE_VERY_COMMON + // Milk is good for humans, but bad for plants. The sugars cannot be used by plants, and the milk fat harms growth. Not shrooms though. I can't deal with this now... +/datum/reagent/consumable/milk/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustWater(round(chems.get_reagent_amount(type) * 0.3)) + if(myseed) + myseed.adjust_potency(-chems.get_reagent_amount(type) * 0.5) + /datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M) if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER)) M.heal_bodypart_damage(1.5,0, 0) @@ -329,7 +337,7 @@ color = "#101000" // rgb: 16, 16, 0 nutriment_factor = 0 taste_description = "sweet red tea" - glass_icon_state = "teaglass" + glass_icon_state = "tea_red" glass_name = "glass of red tea" glass_desc = "A piping hot tea that helps with the digestion of food." @@ -340,6 +348,7 @@ M.drowsyness = max(0,M.drowsyness-1) M.jitteriness = max(0,M.jitteriness-3) M.adjust_bodytemperature(23 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL) + ..() . = 1 /datum/reagent/consumable/tea/green @@ -348,7 +357,7 @@ color = "#101000" // rgb: 16, 16, 0 nutriment_factor = 0 taste_description = "tart green tea" - glass_icon_state = "teaglass" + glass_icon_state = "tea_green" glass_name = "glass of tea" glass_desc = "A calming glass of green tea to help get you through the day." @@ -358,6 +367,7 @@ M.drowsyness = max(0,M.drowsyness-1) M.jitteriness = max(0,M.jitteriness-3) M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL) + ..() . = 1 /datum/reagent/consumable/tea/forest @@ -367,7 +377,7 @@ nutriment_factor = 0 quality = DRINK_NICE taste_description = "sweet tea" - glass_icon_state = "teaglass" + glass_icon_state = "tea_forest" glass_name = "glass of forest tea" glass_desc = "A lovely glass of tea and honey." @@ -379,6 +389,7 @@ M.drowsyness = max(0,M.drowsyness-1) M.jitteriness = max(0,M.jitteriness-3) M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL) + ..() . = 1 /datum/reagent/consumable/tea/mush @@ -388,7 +399,7 @@ nutriment_factor = 0 quality = DRINK_NICE taste_description = "fungal infections" - glass_icon_state = "teaglass" + glass_icon_state = "tea_mush" glass_name = "glass of mush tea" glass_desc = "A cold merky brown tea." @@ -398,6 +409,7 @@ M.Dizzy(10) if(prob(10)) M.disgust = 0 + ..() . = 1 /datum/reagent/consumable/lemonade @@ -603,6 +615,15 @@ glass_name = "honeycomb of Buzz Fuzz" glass_desc = "Stinging with flavour." + //This drink seems to be just made for plants.. how curious. +/datum/reagent/consumable/buzz_fuzz/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src,1)) + mytray.adjustPests(-rand(2,5)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.1)) + if(myseed) + myseed.adjust_potency(round(chems.get_reagent_amount(src.type) * 0.5)) + /datum/reagent/consumable/buzz_fuzz/on_mob_life(mob/living/carbon/M) M.reagents.add_reagent(/datum/reagent/consumable/sugar,1) if(prob(5)) @@ -674,6 +695,15 @@ glass_name = "glass of soda water" glass_desc = "Soda water. Why not make a scotch and soda?" + + // A variety of nutrients are dissolved in club soda, without sugar. + // These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. +/datum/reagent/consumable/sodawater/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustWater(round(chems.get_reagent_amount(type) * 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(type) * 0.1)) + /datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 18203f1a4c..1975eede70 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -17,8 +17,9 @@ var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes /datum/reagent/consumable/on_mob_life(mob/living/carbon/M) - current_cycle++ - M.adjust_nutrition(nutriment_factor, max_nutrition) + if(!HAS_TRAIT(M, TRAIT_NO_PROCESS_FOOD)) + current_cycle++ + M.adjust_nutrition(nutriment_factor, max_nutrition) M.CheckBloodsuckerEatFood(nutriment_factor) holder.remove_reagent(type, metabolization_rate) @@ -49,10 +50,11 @@ var/burn_heal = 0 /datum/reagent/consumable/nutriment/on_mob_life(mob/living/carbon/M) - if(prob(50)) - M.heal_bodypart_damage(brute_heal,burn_heal, 0) - . = 1 - ..() + if(!HAS_TRAIT(M, TRAIT_NO_PROCESS_FOOD)) + if(prob(50)) + M.heal_bodypart_damage(brute_heal,burn_heal, 0) + . = 1 + ..() /datum/reagent/consumable/nutriment/on_new(list/supplied_data) // taste data can sometimes be ("salt" = 3, "chips" = 1) @@ -157,6 +159,13 @@ taste_description = "sweetness" value = REAGENT_VALUE_NONE +// Plants should not have sugar, they can't use it and it prevents them getting water/ nutients, it is good for mold though... +/datum/reagent/consumable/sugar/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustWeeds(rand(2,3)) + mytray.adjustPests(rand(1,2)) + /datum/reagent/consumable/sugar/overdose_start(mob/living/M) to_chat(M, "You go into hyperglycaemic shock! Lay off the twinkies!") M.AdjustSleeping(600, FALSE) @@ -174,6 +183,12 @@ color = "#899613" // rgb: 137, 150, 19 taste_description = "watery milk" +// Compost for EVERYTHING +/datum/reagent/consumable/virus_food/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 0.5)) + /datum/reagent/consumable/soysauce name = "Soysauce" description = "A salty sauce made from the soy plant." diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 37010cbbb5..f3d299cce5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -36,6 +36,25 @@ taste_description = "badmins" value = REAGENT_VALUE_GLORIOUS +// The best stuff there is. For testing/debugging. +/datum/reagent/medicine/adminordrazine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustWater(round(chems.get_reagent_amount(type) * 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(type) * 1)) + mytray.adjustPests(-rand(1,5)) + mytray.adjustWeeds(-rand(1,5)) + if(chems.has_reagent(type, 3)) + switch(rand(100)) + if(66 to 100) + mytray.mutatespecie() + if(33 to 65) + mytray.mutateweed() + if(1 to 32) + mytray.mutatepest(user) + else if(prob(20)) + mytray.visible_message("Nothing happens...") + /datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M) M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1) M.setCloneLoss(0, 0) @@ -1168,6 +1187,11 @@ ..() . = 1 +// Antitoxin binds plants pretty well. So the tox goes significantly down +/datum/reagent/medicine/antitoxin/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + mytray.adjustToxic(-round(chems.get_reagent_amount(type) * 2)) + /datum/reagent/medicine/inaprovaline name = "Inaprovaline" description = "Stabilizes the breathing of patients. Good for those in critical condition." @@ -1297,6 +1321,21 @@ pH = 11 value = REAGENT_VALUE_COMMON //not any higher. Ambrosia is a milestone for hydroponics already. + +//Earthsblood is still a wonderdrug. Just... don't expect to be able to mutate something that makes plants so healthy. +/datum/reagent/medicine/earthsblood/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustPests(-rand(1,3)) + mytray.adjustWeeds (-rand(1,3)) + if(myseed) + myseed.adjust_instability(-round(chems.get_reagent_amount(src.type) * 1.3)) + myseed.adjust_potency(round(chems.get_reagent_amount(src.type) *1)) + myseed.adjust_yield(round(chems.get_reagent_amount(src.type) * 1)) + myseed.adjust_endurance(round(chems.get_reagent_amount(src.type) * 0.5)) + myseed.adjust_production(-round(chems.get_reagent_amount(src.type) * 0.5)) + /datum/reagent/medicine/earthsblood/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-3 * REM, FALSE) M.adjustFireLoss(-3 * REM, FALSE) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 5c01fd8cf6..0d3e9a4139 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -13,6 +13,12 @@ shot_glass_icon_state = "shotglassred" pH = 7.4 +// FEED ME,SEYMOUR! +/datum/reagent/blood/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustPests(rand(2,3)) + /datum/reagent/blood/reaction_mob(mob/living/L, method = TOUCH, reac_volume) if(data && data["viruses"]) for(var/thing in data["viruses"]) @@ -313,6 +319,13 @@ metabolization_rate = 45 * REAGENTS_METABOLISM . = 1 +///For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual. +/datum/reagent/water/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + if(chems.has_reagent(src.type, 1)) + mytray.adjustWater(round(chems.get_reagent_amount(src.type) * 1)) + //You don't belong in this world, monster! + chems.remove_reagent(/datum/reagent/water, chems.get_reagent_amount(src.type)) + /datum/reagent/water/hollowwater name = "Hollow Water" description = "An ubiquitous chemical substance that is composed of hydrogen and oxygen, but it looks kinda hollow." @@ -329,6 +342,14 @@ glass_desc = "A glass of holy water." pH = 7.5 //God is alkaline + // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits. Also ALSO increases instability. +/datum/reagent/water/holywater/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + if(chems.has_reagent(src.type, 1)) + mytray.adjustWater(round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.1)) + if(myseed) + myseed.adjust_instability(round(chems.get_reagent_amount(src.type) * 0.15)) + /datum/reagent/water/holywater/on_mob_metabolize(mob/living/L) . = ..() ADD_TRAIT(L, TRAIT_HOLY, type) @@ -401,6 +422,13 @@ qdel(R) T.Bless() +/datum/reagent/water/holywater/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + mytray.adjustWater(round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.1)) + if(myseed) + myseed.adjust_instability(round(chems.get_reagent_amount(src.type) * 0.15)) + /datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke name = "Unholy Water" overdose_threshold = 150 //Same as normal water @@ -537,7 +565,7 @@ var/diff_len = length(GLOB.skin_tones - GLOB.nonstandard_skin_tones) H.skin_tone = GLOB.skin_tones[min(diff_len, GLOB.skin_tones.Find(H.skin_tone) + 1)] else - H.skin_tone = H.dna.skin_tone_override = tan_mutant_color(H.dna.skin_tone_override, "#202020") + H.skin_tone = H.dna.skin_tone_override = tan_mutant_color(H.dna.skin_tone_override, MINIMUM_MUTANT_COLOR) if(MUTCOLORS in H.dna.species.species_traits) //take current alien color and darken it slightly H.dna.features["mcolor"] = tan_mutant_color(H.dna.features["mcolor"]) H.update_body() @@ -548,7 +576,7 @@ return ..() -/datum/reagent/spraytan/proc/tan_mutant_color(color, limit = "#7F7F7F") +/datum/reagent/spraytan/proc/tan_mutant_color(color, limit = MINIMUM_MUTANT_COLOR) var/newcolor = "" var/len = length(color) var/char = "" @@ -973,6 +1001,15 @@ taste_description = "chlorine" pH = 7.4 +// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial +/datum/reagent/chlorine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 1.5)) + mytray.adjustWater(-round(chems.get_reagent_amount(src.type) * 0.5)) + mytray.adjustWeeds(-rand(1,3)) + /datum/reagent/chlorine/on_mob_life(mob/living/carbon/M) M.take_bodypart_damage(1*REM, 0, 0, 0) . = 1 @@ -986,6 +1023,15 @@ taste_description = "acid" pH = 2 +// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial +/datum/reagent/fluorine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 2)) + mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 2.5)) + mytray.adjustWater(-round(chems.get_reagent_amount(src.type) * 0.5)) + mytray.adjustWeeds(-rand(1,4)) + /datum/reagent/fluorine/on_mob_life(mob/living/carbon/M) M.adjustToxLoss(1*REM, 0) . = 1 @@ -1037,6 +1083,12 @@ taste_description = "the colour blue and regret" pH = 10 +/datum/reagent/radium/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 1)) + /datum/reagent/radium/on_mob_life(mob/living/carbon/M) M.apply_effect(2*REM/M.metabolism_efficiency,EFFECT_IRRADIATE,0) ..() @@ -1148,6 +1200,14 @@ GG = new/obj/effect/decal/cleanable/greenglow(T) GG.reagents.add_reagent(/datum/reagent/uranium, reac_volume) +//Mutagenic chem side-effects. +/datum/reagent/uranium/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + mytray.mutation_roll(user) + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 2)) + /datum/reagent/bluespace name = "Bluespace Dust" description = "A dust composed of microscopic bluespace crystals, with minor space-warping properties." @@ -1406,6 +1466,15 @@ taste_description = "mordant" pH = 11.6 +/datum/reagent/ammonia/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + // Ammonia is bad ass. + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.12)) + if(myseed && prob(10)) + myseed.adjust_yield(1) + myseed.adjust_instability(1) + /datum/reagent/diethylamine name = "Diethylamine" description = "A secondary amine, mildly corrosive." @@ -1413,6 +1482,16 @@ taste_description = "iron" pH = 12 +// This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. The new trade off is it culls stability. +/datum/reagent/diethylamine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustPests(-rand(1,2)) + if(myseed) + myseed.adjust_yield(round(chems.get_reagent_amount(src.type) * 1)) + myseed.adjust_instability(-round(chems.get_reagent_amount(src.type) * 1)) + /datum/reagent/carbondioxide name = "Carbon Dioxide" reagent_state = GAS @@ -1606,24 +1685,68 @@ /datum/reagent/plantnutriment/eznutriment name = "E-Z-Nutrient" - description = "Cheap and extremely common type of plant nutriment." + description = "Contains electrolytes. It's what plants crave." color = "#376400" // RBG: 50, 100, 0 tox_prob = 10 - pH = 2.5 + +/datum/reagent/plantnutriment/eznutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + if(myseed && chems.has_reagent(src.type, 1)) + myseed.adjust_instability(0.2) + myseed.adjust_potency(round(chems.get_reagent_amount(src.type) * 0.3)) + myseed.adjust_yield(round(chems.get_reagent_amount(src.type) * 0.1)) /datum/reagent/plantnutriment/left4zednutriment name = "Left 4 Zed" description = "Unstable nutriment that makes plants mutate more often than usual." color = "#1A1E4D" // RBG: 26, 30, 77 tox_prob = 25 - pH = 3.5 + +/datum/reagent/plantnutriment/left4zednutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + if(myseed && chems.has_reagent(src.type, 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 0.1)) + myseed.adjust_instability(round(chems.get_reagent_amount(src.type) * 0.2)) /datum/reagent/plantnutriment/robustharvestnutriment name = "Robust Harvest" - description = "Very potent nutriment that prevents plants from mutating." + description = "Very potent nutriment that slows plants from mutating." color = "#9D9D00" // RBG: 157, 157, 0 tox_prob = 15 - pH = 2.5 + +/datum/reagent/plantnutriment/robustharvestnutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + if(myseed && chems.has_reagent(src.type, 1)) + myseed.adjust_instability(-0.25) + myseed.adjust_potency(round(chems.get_reagent_amount(src.type) * 0.1)) + myseed.adjust_yield(round(chems.get_reagent_amount(src.type) * 0.2)) + +/datum/reagent/plantnutriment/endurogrow + name = "Enduro Grow" + description = "A specialized nutriment, which decreases product quantity and potency, but strengthens the plants endurance." + color = "#a06fa7" // RBG: 160, 111, 167 + tox_prob = 15 + +/datum/reagent/plantnutriment/endurogrow/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + if(myseed && chems.has_reagent(src.type, 1)) + myseed.adjust_potency(-round(chems.get_reagent_amount(src.type) * 0.1)) + myseed.adjust_yield(-round(chems.get_reagent_amount(src.type) * 0.075)) + myseed.adjust_endurance(round(chems.get_reagent_amount(src.type) * 0.35)) + +/datum/reagent/plantnutriment/liquidearthquake + name = "Liquid Earthquake" + description = "A specialized nutriment, which increases the plant's production speed, as well as it's susceptibility to weeds." + color = "#912e00" // RBG: 145, 46, 0 + tox_prob = 25 + +/datum/reagent/plantnutriment/liquidearthquake/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) + . = ..() + if(myseed && chems.has_reagent(src.type, 1)) + myseed.adjust_weed_rate(round(chems.get_reagent_amount(src.type) * 0.1)) + myseed.adjust_weed_chance(round(chems.get_reagent_amount(src.type) * 0.3)) + myseed.adjust_production(-round(chems.get_reagent_amount(src.type) * 0.075)) + // GOON OTHERS @@ -1679,6 +1802,13 @@ taste_description = "ash" pH = 6.5 +// Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer +/datum/reagent/ash/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(src.type) * 1)) + mytray.adjustWeeds(-1) + /datum/reagent/acetone name = "Acetone" description = "A slick, slightly carcinogenic liquid. Has a multitude of mundane uses in everyday life." @@ -1799,6 +1929,16 @@ taste_description = "alkali" //who put ACID for NaOH ???? pH = 11.9 +// Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants +/datum/reagent/saltpetre/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(src.type, 1)) + var/salt = chems.get_reagent_amount(src.type) + mytray.adjustHealth(round(salt * 0.18)) + if(myseed) + myseed.adjust_production(-round(salt/10)-prob(salt%10)) + myseed.adjust_potency(round(salt*1)) + /datum/reagent/drying_agent name = "Drying agent" description = "A desiccant. Can be used to dry things." @@ -2220,6 +2360,7 @@ color = "#f7685e" metabolization_rate = REAGENTS_METABOLISM * 0.25 + /datum/reagent/wittel name = "Wittel" description = "An extremely rare metallic-white substance only found on demon-class planets." @@ -2281,6 +2422,7 @@ /datum/reagent/gravitum/on_mob_end_metabolize(mob/living/L) L.RemoveElement(/datum/element/forced_gravity, 0) + //body bluids /datum/reagent/consumable/semen name = "Semen" @@ -2457,3 +2599,56 @@ datum/reagent/eldritch return ..() +/datum/reagent/red_ichor + name = "Red Ichor" + can_synth = FALSE + description = "A unknown red liquid, linked to healing of most moral wounds." + color = "#c10000" + metabolization_rate = REAGENTS_METABOLISM * 2.5 + +/datum/reagent/red_ichor/on_mob_life(mob/living/carbon/M) + M.adjustBruteLoss(-50) + M.adjustOxyLoss(-50) + M.adjustBruteLoss(-50) + M.adjustFireLoss(-50) + M.adjustToxLoss(-50, TRUE) //heals TOXINLOVERs + M.adjustCloneLoss(-50) + M.adjustStaminaLoss(-50) + ..() + +/datum/reagent/green_ichor + name = "Green Ichor" + can_synth = FALSE + description = "A unknown green liquid, linked to healing of most internal wounds." + color = "#158c00" + metabolization_rate = REAGENTS_METABOLISM * 2.5 + +/datum/reagent/green_ichor/on_mob_life(mob/living/carbon/M) + M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -100) + M.adjustOrganLoss(ORGAN_SLOT_HEART, -100) + M.adjustOrganLoss(ORGAN_SLOT_LIVER, -100) + M.adjustOrganLoss(ORGAN_SLOT_EARS, -100) + M.adjustOrganLoss(ORGAN_SLOT_STOMACH, -100) + M.adjustOrganLoss(ORGAN_SLOT_TONGUE, -100) + M.adjustOrganLoss(ORGAN_SLOT_EYES, -100) + ..() + +/datum/reagent/blue_ichor + name = "Blue Ichor" + can_synth = FALSE + description = "A unknown blue liquid, linked to healing the mind." + color = "#0914e0" + metabolization_rate = REAGENTS_METABOLISM * 2.5 + +/datum/reagent/blue_ichor/on_mob_life(mob/living/carbon/M) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -100) + M.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) + M.hallucination = 0 + M.dizziness = 0 + M.disgust = 0 + M.drowsyness = 0 + M.stuttering = 0 + M.confused = 0 + M.SetSleeping(0, 0) + ..() + diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 07934d9880..0d0a234afc 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -10,6 +10,12 @@ value = REAGENT_VALUE_COMMON //Encouraging people to mix toxins for reasons beyond harming each other or mixing reagents such as pen acid. var/toxpwr = 1.5 +// Are you a bad enough dude to poison your own plants? +/datum/reagent/toxin/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 2)) + /datum/reagent/toxin/on_mob_life(mob/living/carbon/M) if(toxpwr) M.adjustToxLoss(toxpwr*REM, 0) @@ -54,6 +60,11 @@ C.apply_effect(5,EFFECT_IRRADIATE,0) return ..() +/datum/reagent/toxin/mutagen/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + mytray.mutation_roll(user) + if(chems.has_reagent(type, 1)) + mytray.adjustToxic(1.5) //It is still toxic, mind you, but not to the same degree. + /datum/reagent/toxin/plasma name = "Plasma" description = "Plasma in its liquid form." @@ -245,6 +256,13 @@ pH = 2.7 value = REAGENT_VALUE_NONE +/datum/reagent/toxin/plantbgone/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 10)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 6)) + mytray.adjustWeeds(-rand(4,8)) + /datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume) if(istype(O, /obj/structure/alien/weeds)) var/obj/structure/alien/weeds/alien_weeds = O @@ -270,6 +288,14 @@ pH = 3 value = REAGENT_VALUE_NONE +//Weed Spray +/datum/reagent/toxin/plantbgone/weedkiller/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + if(!mytray) + return + if(chems.has_reagent(type, 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 0.5)) + mytray.adjustWeeds(-rand(1,2)) + /datum/reagent/toxin/pestkiller name = "Pest Killer" description = "A harmful toxic mixture to kill pests. Do not ingest!" @@ -278,6 +304,14 @@ pH = 3.2 value = REAGENT_VALUE_NONE +//Pest Spray +/datum/reagent/toxin/pestkiller/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + if(!mytray) + return + if(chems.has_reagent(type, 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 1)) + mytray.adjustPests(-rand(1,2)) + /datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume) ..() if(M.mob_biotypes & MOB_BUG) @@ -838,6 +872,14 @@ pH = 2.75 value = REAGENT_VALUE_NONE +// Sure, go ahead and pour acid on your precious plants. What's the worst that could happen? +/datum/reagent/toxin/acid/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 1.5)) + mytray.adjustWeeds(-rand(1,2)) + /datum/reagent/toxin/acid/reaction_mob(mob/living/carbon/C, method=TOUCH, reac_volume) if(!istype(C)) return @@ -870,6 +912,14 @@ acidpwr = 42.0 value = REAGENT_VALUE_COMMON +// ACID II: UNHEEDED WARNINGS +/datum/reagent/toxin/acid/fluacid/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 2)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 3)) + mytray.adjustWeeds(-rand(1,4)) + /datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/M) M.adjustFireLoss(current_cycle/10, 0) . = 1 diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index efa92ef7d6..86464aceea 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -114,12 +114,9 @@ /datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, multiplier) var/location = get_turf(holder.my_atom) - // 100 multiplier = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes. - // 200 multiplier = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades. - empulse(location, round(multiplier / 12), round(multiplier / 7), 1) + empulse(location, multiplier) holder.clear_reagents() - /datum/chemical_reaction/beesplosion name = "Bee Explosion" id = "beesplosion" diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 2c3f25e73a..1e78d81f24 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -296,7 +296,7 @@ required_other = TRUE /datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, multiplier) - empulse(get_turf(holder.my_atom), 3, 7) + empulse_using_range(get_turf(holder.my_atom), 10) ..() /datum/chemical_reaction/slime/slimecell diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index b71584982c..be631513bd 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -70,7 +70,6 @@ return /obj/item/reagent_containers/attack(mob/living/M, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) - . = ..() if(user.a_intent == INTENT_HARM) return ..() diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 20abcf847f..2cd0a76a4b 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -416,3 +416,20 @@ /obj/item/reagent_containers/glass/bottle/bromine name = "bromine bottle" list_reagents = list(/datum/reagent/bromine = 30) + +//Ichors +/obj/item/reagent_containers/glass/bottle/ichor + possible_transfer_amounts = list(1) + volume = 1 + +/obj/item/reagent_containers/glass/bottle/ichor/red + name = "healing potion" + list_reagents = list(/datum/reagent/red_ichor = 1) + +/obj/item/reagent_containers/glass/bottle/ichor/blue + name = "blue potion" + list_reagents = list(/datum/reagent/blue_ichor = 1) + +/obj/item/reagent_containers/glass/bottle/ichor/green + name = "green potion" + list_reagents = list(/datum/reagent/green_ichor = 1) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 9b25a80680..926ed27854 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -19,6 +19,10 @@ var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. var/stream_amount = 10 //the amount of reagents transfered when in stream mode. var/spray_delay = 3 //The amount of sleep() delay between each chempuff step. + /// Last world.time of spray + var/last_spray = 0 + /// Spray cooldown + var/spray_cooldown = CLICK_CD_MELEE var/can_fill_from_container = TRUE amount_per_transfer_from_this = 5 volume = 250 @@ -27,8 +31,6 @@ /obj/item/reagent_containers/spray/afterattack(atom/A, mob/user) . = ..() - if(!user.CheckActionCooldown(CLICK_CD_MELEE)) - return if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) return @@ -49,7 +51,8 @@ to_chat(user, "[src] is empty!") return - spray(A) + if(!spray(A)) + return playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) user.last_action = world.time @@ -64,10 +67,10 @@ if(reagents.has_reagent(/datum/reagent/lube)) message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [ADMIN_VERBOSEJMP(T)].") log_game("[key_name(user)] fired Space lube from \a [src] at [AREACOORD(T)].") - return - /obj/item/reagent_containers/spray/proc/spray(atom/A) + if((last_spray + spray_cooldown) > world.time) + return var/range = clamp(get_dist(src, A), 1, current_range) var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) D.create_reagents(amount_per_transfer_from_this, NONE, NO_REAGENTS_VALUE) @@ -79,10 +82,11 @@ reagents.trans_to(D, amount_per_transfer_from_this, 1/range) D.color = mix_color_from_reagents(D.reagents.reagent_list) var/wait_step = max(round(2+ spray_delay * INVERSE(range)), 2) - do_spray(A, wait_step, D, range, puff_reagent_left) + last_spray = world.time + INVOKE_ASYNC(src, .proc/do_spray, A, wait_step, D, range, puff_reagent_left) + return TRUE /obj/item/reagent_containers/spray/proc/do_spray(atom/A, wait_step, obj/effect/decal/chempuff/D, range, puff_reagent_left) - set waitfor = FALSE var/range_left = range for(var/i=0, iThere is no core inserted.") + return + if(last_requirements_say + 3 SECONDS > world.time) + return + last_requirements_say = world.time + say_requirements(inserted_core) + +/obj/machinery/research/explosive_compressor/CtrlClick(mob/living/user) + . = ..() + if(!istype(user) || !user.Adjacent(src) || !(user.mobility_flags & MOBILITY_USE)) + return + if(!inserted_core) + to_chat(user, "There is no core inserted.") + return + inserted_core.forceMove(get_turf(user)) + to_chat(user, "You remove [inserted_core] from [src].") + user.put_in_hands(inserted_core) + inserted_core = null + +/** + * Says (no, literally) the data of required explosive power for a certain anomaly type. + */ +/obj/machinery/research/explosive_compressor/proc/say_requirements(obj/item/raw_anomaly_core/C) + var/required = get_required_radius(C.anomaly_type) + if(isnull(required)) + say("Unfortunately, due to diminishing supplies of condensed anomalous matter, [C] and any cores of its type are no longer of a sufficient quality level to be compressed into a working core.") + else + say("[C] requires a minimum of a theoretical radius of [required] to successfully implode into a charged anomaly core.") + +/** + * Determines how much explosive power (last value, so light impact theoretical radius) is required to make a certain anomaly type. + * + * Returns null if the max amount has already been reached. + * + * Arguments: + * * anomaly_type - anomaly type define + */ +/obj/machinery/research/explosive_compressor/proc/get_required_radius(anomaly_type) + var/already_made = SSresearch.created_anomaly_types[anomaly_type] + var/hard_limit = SSresearch.anomaly_hard_limit_by_type[anomaly_type] + if(already_made >= hard_limit) + return //return null + // my crappy autoscale formula + // linear scaling. + var/radius_span = MAX_RADIUS_REQUIRED - MIN_RADIUS_REQUIRED + var/radius_increase_per_core = radius_span / hard_limit + var/radius = clamp(round(MIN_RADIUS_REQUIRED + radius_increase_per_core * already_made, 1), MIN_RADIUS_REQUIRED, MAX_RADIUS_REQUIRED) + return radius + +/obj/machinery/research/explosive_compressor/attackby(obj/item/I, mob/living/user, params) + if(default_unfasten_wrench(user, I)) + return + if(default_deconstruction_screwdriver(user, "explosive_compressor", "explosive_compressor", I)) + return + if(default_deconstruction_crowbar(I)) + return + . = ..() + if(istype(I, /obj/item/raw_anomaly_core)) + if(inserted_core) + to_chat(user, "There is already a core in [src].") + return + if(!user.transferItemToLoc(I, src)) + to_chat(user, "[I] is stuck to your hand.") + return + inserted_core = I + to_chat(user, "You insert [I] into [src].") + return + if(istype(I, /obj/item/transfer_valve)) + // If they don't have a bomb core inserted, don't let them insert this. If they do, insert and do implosion. + if(!inserted_core) + to_chat(user, "There is no core inserted in [src]. What would be the point of detonating an implosion without a core?") + return + var/obj/item/transfer_valve/valve = I + if(!valve.ready()) + to_chat(user, "[valve] is incomplete.") + return + if(!user.transferItemToLoc(I, src)) + to_chat(user, "[I] is stuck to your hand.") + return + inserted_bomb = I + to_chat(user, "You insert [I] and press the start button.") + do_implosion() + +/** + * The ""explosion"" proc. + */ +/obj/machinery/research/explosive_compressor/proc/do_implosion() + var/required_radius = get_required_radius(inserted_core.anomaly_type) + // By now, we should be sure that we have a core, a TTV, and that the TTV has both tanks in place. + var/datum/gas_mixture/mix1 = inserted_bomb.tank_one.air_contents + var/datum/gas_mixture/mix2 = inserted_bomb.tank_two.air_contents + // Snowflaked tank explosion + var/datum/gas_mixture/mix = new(70) // Standard tank volume, 70L + mix.merge(mix1) + mix.merge(mix2) + mix.react() + if(mix.return_pressure() < TANK_FRAGMENT_PRESSURE) + // They failed so miserably we're going to give them their bomb back. + inserted_bomb.forceMove(drop_location()) + inserted_bomb = null + inserted_core.forceMove(drop_location()) + inserted_core = null + say("Transfer valve resulted in negligible explosive power. Items ejected.") + return + mix.react() // build more pressure + var/pressure = mix.return_pressure() + var/range = (pressure - TANK_FRAGMENT_PRESSURE) / TANK_FRAGMENT_SCALE + QDEL_NULL(inserted_bomb) // bomb goes poof + if(range < required_radius) + inserted_bomb.forceMove(src) + say("Resultant detonation failed to produce enough implosive power to compress [inserted_core]. Core ejected.") + return + inserted_core.create_core(drop_location(), TRUE, TRUE) + inserted_core = null + say("Success. Resultant detonation has theoretical range of [range]. Required radius was [required_radius]. Core production complete.") + +#undef MAX_RADIUS_REQUIRED +#undef MIN_RADIUS_REQUIRED diff --git a/code/modules/research/anomaly/raw_anomaly.dm b/code/modules/research/anomaly/raw_anomaly.dm new file mode 100644 index 0000000000..2342edd28f --- /dev/null +++ b/code/modules/research/anomaly/raw_anomaly.dm @@ -0,0 +1,73 @@ +/** + * # Raw Anomaly Cores + * + * The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more. + * + * The current amounts created is stored in SSresearch.created_anomaly_types[ANOMALY_CORE_TYPE_DEFINE] = amount + * The hard limits are in code/__DEFINES/anomalies.dm + */ +/obj/item/raw_anomaly_core + name = "raw anomaly core" + desc = "You shouldn't be seeing this. Someone screwed up." + icon = 'icons/obj/assemblies/new_assemblies.dmi' + icon_state = "broken_state" + + /// Anomaly type + var/anomaly_type + +/obj/item/raw_anomaly_core/bluespace + name = "raw bluespace core" + desc = "The raw core of a bluespace anomaly, glowing and full of potential." + anomaly_type = /obj/item/assembly/signaler/anomaly/bluespace + icon_state = "rawcore_bluespace" + +/obj/item/raw_anomaly_core/vortex + name = "raw vortex core" + desc = "The raw core of a vortex anomaly. Feels heavy to the touch." + anomaly_type = /obj/item/assembly/signaler/anomaly/vortex + icon_state = "rawcore_vortex" + +/obj/item/raw_anomaly_core/grav + name = "raw gravity core" + desc = "The raw core of a gravity anomaly. The air seems attracted to it." + anomaly_type = /obj/item/assembly/signaler/anomaly/grav + icon_state = "rawcore_grav" + +/obj/item/raw_anomaly_core/pyro + desc = "The raw core of a pyro anomaly. It is warm to the touch." + name = "raw pyro core" + anomaly_type = /obj/item/assembly/signaler/anomaly/pyro + icon_state = "rawcore_pyro" + +/obj/item/raw_anomaly_core/flux + name = "raw flux core" + desc = "The raw core of a flux anomaly, faintly crackling with energy." + anomaly_type = /obj/item/assembly/signaler/anomaly/flux + icon_state = "rawcore_flux" + +/obj/item/raw_anomaly_core/random + name = "random raw core" + desc = "You should not see this!" + icon_state = "rawcore_bluespace" + +/obj/item/raw_anomaly_core/random/Initialize(mapload) + . = ..() + var/path = pick(subtypesof(/obj/item/raw_anomaly_core)) + new path(loc) + return INITIALIZE_HINT_QDEL + +/** + * Created the resulting core after being "made" into it. + * + * Arguments: + * * newloc - Where the new core will be created + * * del_self - should we qdel(src) + * * count_towards_limit - should we increment the amount of created cores on SSresearch + */ +/obj/item/raw_anomaly_core/proc/create_core(newloc, del_self = FALSE, count_towards_limit = FALSE) + . = new anomaly_type(newloc) + if(count_towards_limit) + var/existing = SSresearch.created_anomaly_types[anomaly_type] || 0 + SSresearch.created_anomaly_types[anomaly_type] = existing + 1 + if(del_self) + qdel(src) diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index 2cf9df6d50..bdaf39732f 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -77,6 +77,22 @@ make_reagents = list(/datum/reagent/plantnutriment/robustharvestnutriment = 10) category = list("initial","Botany Chemicals") +/datum/design/end_gro + name = "30u Enduro Grow" + id = "end_gro" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass= 30) + make_reagents = list(/datum/reagent/plantnutriment/endurogrow = 30) + category = list("initial","Botany Chemicals") + +/datum/design/liq_earth + name = "30u Liquid Earthquake" + id = "liq_earth" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass= 30) + make_reagents = list(/datum/reagent/plantnutriment/liquidearthquake = 30) + category = list("initial","Botany Chemicals") + /datum/design/weed_killer name = "Weed Killer" id = "weed_killer" diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index ab487b0aaa..db37b13e87 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -143,7 +143,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING // APC Link -/datum/design/APClink +/datum/design/apc_link name = "Area Power Connector" id = "APClink" build_type = PROTOLATHE @@ -230,7 +230,7 @@ name = "Photonic Processor Board" id = "pcpu_normal" build_type = IMPRINTER - materials = list(/datum/material/glass= 6400, /datum/material/gold = 2000) + materials = list(/datum/material/glass = 6400, /datum/material/gold = 2000) build_path = /obj/item/computer_hardware/processor_unit/photonic category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -243,3 +243,12 @@ build_path = /obj/item/computer_hardware/processor_unit/photonic/small category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/sensorpackage + name = "Sensor Package" + id = "sensorpackage" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 200, /datum/material/glass = 100, /datum/material/gold = 50, /datum/material/silver = 50) + build_path = /obj/item/computer_hardware/sensorpackage + category = list("Computer Parts") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 0a9fce2e67..7013412e6d 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -354,6 +354,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/portable_chem_mixer + name = "Portable Chemical Mixer" + desc = "A portable device that dispenses and mixes chemicals. Reagents have to be supplied with beakers." + id = "portable_chem_mixer" + build_type = PROTOLATHE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(/datum/material/plastic = 5000, /datum/material/iron = 10000, /datum/material/glass = 3000) + build_path = /obj/item/storage/portable_chem_mixer + category = list("Equipment") + ///////////////////////////////////////// //////////Cybernetic Implants//////////// ///////////////////////////////////////// diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 1b608060ce..a54fe857e9 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -375,7 +375,7 @@ materials = list(/datum/material/iron = 1500, /datum/material/silver = 150, /datum/material/glass = 3000) build_path = /obj/item/lightreplacer category = list("Equipment") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE + departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_ENGINEERING /datum/design/normtrash name = "Trashbag" @@ -469,7 +469,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/engineering - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holosignatmos @@ -479,7 +479,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/atmos - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holosignfirelock @@ -489,7 +489,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/firelock - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holosigncombifan @@ -499,7 +499,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 7500, /datum/material/glass = 2500, /datum/material/silver = 2500, /datum/material/gold = 2500, /datum/material/titanium = 1750) build_path = /obj/item/holosign_creator/combifan - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/forcefield_projector @@ -509,7 +509,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 1000) build_path = /obj/item/forcefield_projector - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holobarrier_med diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm index 4fe07cb02f..5ef050efe9 100644 --- a/code/modules/research/designs/tool_designs.dm +++ b/code/modules/research/designs/tool_designs.dm @@ -97,7 +97,7 @@ desc = "A new advanced atmospheric analyzer design, capable of performing scans at long range." id = "ranged_analyzer" build_type = PROTOLATHE - materials = list(/datum/material/iron = 400, /datum/material/glass = 1000, /datum/material/uranium = 800, /datum/material/gold = 200, /datum/material/plastic = 200) + materials = list(/datum/material/iron = 400, /datum/material/glass = 1000, /datum/material/uranium = 800, /datum/material/gold = 200, /datum/material/diamond = 50) build_path = /obj/item/analyzer/ranged category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 9667830dbc..67af26e468 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -328,7 +328,7 @@ throwSmoke(loc) else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) visible_message("[src] melts [exp_on], ionizing the air around it!") - empulse(loc, 4, 6) + empulse_using_range(loc, 9) investigate_log("Experimentor has generated an Electromagnetic Pulse.", INVESTIGATE_EXPERIMENTOR) ejectItem(TRUE) //////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm index ae0d8d35aa..b9fa0db22f 100644 --- a/code/modules/research/nanites/nanite_programs/weapon.dm +++ b/code/modules/research/nanites/nanite_programs/weapon.dm @@ -123,7 +123,7 @@ rogue_types = list(/datum/nanite_program/toxic) /datum/nanite_program/emp/on_trigger(comm_message) - empulse(host_mob, 1, 2) + empulse_using_range(host_mob, 3) /datum/nanite_program/pyro/active_effect() host_mob.fire_stacks += 1 diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index d3b4bb6bac..6f8ea50f05 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -40,12 +40,12 @@ else working = TRUE -/obj/machinery/rnd/server/emp_act() +/obj/machinery/rnd/server/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) return stat |= EMPED - addtimer(CALLBACK(src, .proc/unemp), 600) + addtimer(CALLBACK(src, .proc/unemp), severity*9) refresh_working() /obj/machinery/rnd/server/proc/unemp() diff --git a/code/modules/research/techweb/nodes/computer_hud_nodes.dm b/code/modules/research/techweb/nodes/computer_hud_nodes.dm index 2835edc52b..2db03861e9 100644 --- a/code/modules/research/techweb/nodes/computer_hud_nodes.dm +++ b/code/modules/research/techweb/nodes/computer_hud_nodes.dm @@ -13,10 +13,10 @@ display_name = "Computer Hardware" description = "How computer hardware are made." prereq_ids = list("comptech") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) //they are really kinda shitty + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) //they are really shitty design_ids = list("hdd_basic", "hdd_advanced", "hdd_super", "hdd_cluster", "ssd_small", "ssd_micro", "netcard_basic", "netcard_advanced", "netcard_wired", "portadrive_basic", "portadrive_advanced", "portadrive_super", "cardslot", "aislot", "miniprinter", "APClink", "bat_control", "bat_normal", "bat_advanced", - "bat_super", "bat_micro", "bat_nano", "cpu_normal", "pcpu_normal", "cpu_small", "pcpu_small") + "bat_super", "bat_micro", "bat_nano", "cpu_normal", "pcpu_normal", "cpu_small", "pcpu_small", "sensorpackage") /datum/techweb_node/comp_recordkeeping id = "comp_recordkeeping" diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index bc78e3ab1a..a8cefd9bed 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -258,7 +258,7 @@ if(SLIME_ACTIVATE_MAJOR) user.visible_message("[user]'s skin starts flashing intermittently...", "Your skin starts flashing intermittently...") if(do_after(user, 25, target = user)) - empulse(user, 1, 2) + empulse_using_range(user, 3) user.visible_message("[user]'s skin flashes!", "Your skin flashes as you emit an electromagnetic pulse!") return 600 diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm index d97eae5766..4859fcfca0 100644 --- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm @@ -183,6 +183,13 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337) . = ..() promptAndCheckIn(user) +/obj/item/hilbertshotel/ghostdojo/linkTurfs(datum/turf_reservation/currentReservation, currentRoomnumber) + . = ..() + var/area/hilbertshotel/currentArea = get_area(locate(currentReservation.bottom_left_coords[1], currentReservation.bottom_left_coords[2], currentReservation.bottom_left_coords[3])) + for(var/turf/closed/indestructible/hoteldoor/door in currentArea) + door.parentSphere = src + door.desc = "The door to this hotel room. Strange, this door doesnt even seem openable. The doorknob, however, seems to buzz with unusual energy...
    Alt-Click to look through the peephole." + //Template Stuff /datum/map_template/hilbertshotel name = "Hilbert's Hotel Room" diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index 52fafb81be..99357d802a 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -86,7 +86,7 @@ GLOBAL_LIST_INIT(all_security_levels, list("green", "blue", "amber", "red", "del if(is_station_level(FA.z)) FA.update_icon() for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines) - pod.admin_controlled = 0 + pod.admin_controlled = FALSE if(SEC_LEVEL_DELTA) minor_announce(CONFIG_GET(string/alert_delta), "Attention! Delta security level reached!",1) if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) @@ -102,7 +102,7 @@ GLOBAL_LIST_INIT(all_security_levels, list("green", "blue", "amber", "red", "del if(is_station_level(FA.z)) FA.update_icon() for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines) - pod.admin_controlled = 0 + pod.admin_controlled = FALSE if(level >= SEC_LEVEL_RED) for(var/obj/machinery/door/D in GLOB.machines) if(D.red_alert_access) diff --git a/code/modules/shielding/helpers.dm b/code/modules/shielding/helpers.dm new file mode 100644 index 0000000000..8995cc3b03 --- /dev/null +++ b/code/modules/shielding/helpers.dm @@ -0,0 +1,65 @@ +//////// HELPER FILE FOR SHIELDING ///////// + +// HULL SHIELD GENERATION HELPERS +/** + * Gets hull exterior adjacent tiles of a certain area + * Area method. + * EXPENSIVE. + * If the area itself is already considered exterior, it'll find all tiles inside it that's next to an interior area. + */ +/proc/hull_shielding_get_tiles_around_area(area/instance, check_tick = FALSE) + var/list/cache = list() + var/area/A + if(instance.considered_hull_exterior) + for(var/turf/potential in instance) + for(var/turf/looking in orange(1, potential)) + A = looking.loc + if(!A.considered_hull_exterior) + cache[potential] = TRUE // we're the exterior area, grab the one that's reaching out + if(check_tick) + CHECK_TICK + else + for(var/turf/potential in instance) + for(var/turf/looking in orange(1, potential)) + A = looking.loc + if(A.considered_hull_exterior) + cache[looking] = TRUE // we're not the exterior area, grab the one that's being reached to + if(check_tick) + CHECK_TICK + . = list() + for(var/i in cache) + . += i // strip assoc value + +/** + * Gets hull adjacent exterior tiles of an entire zlevel + * EXPENSIVE. + * Gets the tiles in the exterior area touching to a non-exterior area + */ +/proc/hull_shielding_get_tiles_in_z(zlevel, check_tick = FALSE, recurse = FALSE, list/outlist = list(), list/scanned_zlevels = list()) + . = outlist + if(zlevel in scanned_zlevels) + return + scanned_zlevels |= zlevel + if(recurse) + var/up = SSmapping.level_trait(zlevel, ZTRAIT_UP) + var/down = SSmapping.level_trait(zlevel, ZTRAIT_DOWN) + if(isnum(up) && (up != 0)) + hull_shielding_get_tiles_in_z(up, check_tick, recurse, outlist, scanned_zlevels) + if(isnum(down) && (down != 0)) + hull_shielding_get_tiles_in_z(down, check_tick, recurse, outlist, scanned_zlevels) + // sigh. why. + var/turf/potential + var/area/p_area + var/area/l_area + for(var/x in 1 to world.maxx) + for(var/y in 1 to world.maxy) + if(check_tick) + CHECK_TICK + potential = locate(x, y, zlevel) + p_area = potential.loc + if(!p_area.considered_hull_exterior) + continue + for(var/turf/looking in orange(1, potential)) + l_area = looking.loc + if(!l_area.considered_hull_exterior) + outlist += potential diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 682a7fa14b..4b7e65c0f3 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -5,63 +5,109 @@ icon_keyboard = "tech_key" light_color = LIGHT_COLOR_CYAN req_access = list( ) + /// ID of the attached shuttle var/shuttleId + /// Possible destinations of the attached shuttle var/possible_destinations = "" - var/admin_controlled - var/no_destination_swap = 0 + /// Variable dictating if the attached shuttle requires authorization from the admin staff to move + var/admin_controlled = FALSE + /// Variable dictating if the attached shuttle is forbidden to change destinations mid-flight + var/no_destination_swap = FALSE + /// ID of the currently selected destination of the attached shuttle + var/destination + /// Authorization request cooldown to prevent request spam to admin staff + COOLDOWN_DECLARE(request_cooldown) -/obj/machinery/computer/shuttle/ui_interact(mob/user) - . = ..() +/obj/machinery/computer/shuttle/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "ShuttleConsole", name) + ui.open() + +/obj/machinery/computer/shuttle/ui_data(mob/user) + var/list/data = list() var/list/options = params2list(possible_destinations) var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) - var/dat = "Status: [M ? M.getStatusText() : "*Missing*"]

    " - if(M) - var/destination_found - for(var/obj/docking_port/stationary/S in SSshuttle.stationary) - if(!options.Find(S.id)) - continue - if(!M.check_dock(S, silent=TRUE)) - continue - destination_found = 1 - dat += "Send to [S.name]
    " - if(!destination_found) - dat += "Shuttle Locked
    " - if(admin_controlled) - dat += "Authorized personnel only
    " - dat += "Request Authorization
    " - dat += "Close" + data["docked_location"] = M ? M.get_status_text_tgui() : "Unknown" + data["locations"] = list() + data["locked"] = FALSE + data["authorization_required"] = admin_controlled + data["timer_str"] = M ? M.getTimerStr() : "00:00" + data["destination"] = destination + if(!M) + data["status"] = "Missing" + return data + if(admin_controlled) + data["status"] = "Unauthorized Access" + else + data["status"] = M.mode == SHUTTLE_IGNITING ? "Igniting" : M.mode != SHUTTLE_IDLE ? "In Transit" : "Idle" + for(var/obj/docking_port/stationary/S in SSshuttle.stationary) + if(!options.Find(S.id)) + continue + if(!M.check_dock(S, silent = TRUE)) + continue + var/list/location_data = list( + id = S.id, + name = S.name + ) + data["locations"] += list(location_data) + if(length(data["locations"]) == 1) + for(var/location in data["locations"]) + destination = location["id"] + data["destination"] = destination + if(!length(data["locations"])) + data["locked"] = TRUE + data["status"] = "Locked" + return data - var/datum/browser/popup = new(user, "computer", M ? M.name : "shuttle", 300, 200) - popup.set_content("
    [dat]
    ") - popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/shuttle/Topic(href, href_list) - if(..()) +/obj/machinery/computer/shuttle/ui_act(action, params) + . = ..() + if(.) return - usr.set_machine(src) - src.add_fingerprint(usr) if(!allowed(usr)) to_chat(usr, "Access denied.") return - if(href_list["move"]) - var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) - if(M.launch_status == ENDGAME_LAUNCHED) - to_chat(usr, "You've already escaped. Never going back to that place again!") - return - if(no_destination_swap) - if(M.mode != SHUTTLE_IDLE) - to_chat(usr, "Shuttle already in transit.") + switch(action) + if("move") + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(M.launch_status == ENDGAME_LAUNCHED) + to_chat(usr, "You've already escaped. Never going back to that place again!") return - switch(SSshuttle.moveShuttle(shuttleId, href_list["move"], 1)) - if(0) - say("Shuttle departing. Please stand away from the doors.") - log_shuttle("[key_name(usr)] has sent shuttle \"[M]\" towards \"[href_list["move"]]\", using [src].") - if(1) - to_chat(usr, "Invalid shuttle requested.") - else - to_chat(usr, "Unable to comply.") + if(no_destination_swap) + if(M.mode == SHUTTLE_RECHARGING) + to_chat(usr, "Shuttle engines are not ready for use.") + return + if(M.mode != SHUTTLE_IDLE) + to_chat(usr, "Shuttle already in transit.") + return + var/list/options = params2list(possible_destinations) + if(!(params["shuttle_id"] in options)) + log_admin("[usr] attempted to href dock exploit on [src] with target location \"[params["shuttle_id"]]\"") + message_admins("[usr] just attempted to href dock exploit on [src] with target location \"[params["shuttle_id"]]\"") + return + switch(SSshuttle.moveShuttle(shuttleId, params["shuttle_id"], 1)) + if(0) + say("Shuttle departing. Please stand away from the doors.") + log_shuttle("[key_name(usr)] has sent shuttle \"[M]\" towards \"[params["shuttle_id"]]\", using [src].") + return TRUE + if(1) + to_chat(usr, "Invalid shuttle requested.") + else + to_chat(usr, "Unable to comply.") + if("set_destination") + var/target_destination = params["destination"] + if(target_destination) + destination = target_destination + return TRUE + if("request") + if(!COOLDOWN_FINISHED(src, request_cooldown)) + to_chat(usr, "CentCom is still processing last authorization request!") + return + COOLDOWN_START(src, request_cooldown, 1 MINUTES) + to_chat(usr, "Your request has been received by CentCom.") + to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to CentCom.") + return TRUE /obj/machinery/computer/shuttle/emag_act(mob/user) . = ..() diff --git a/code/modules/shuttle/custom_shuttle.dm b/code/modules/shuttle/custom_shuttle.dm index c71b6ba9a8..8047e972db 100644 --- a/code/modules/shuttle/custom_shuttle.dm +++ b/code/modules/shuttle/custom_shuttle.dm @@ -68,7 +68,6 @@ popup = new(user, "computer", M ? M.name : "shuttle", 350, 450) popup.set_content("
    [dat]
    ") - popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) popup.open() /obj/machinery/computer/custom_shuttle/Topic(href, href_list) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 810cadcd2c..15f9b31302 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -528,7 +528,7 @@ /obj/machinery/computer/shuttle/pod name = "pod control computer" - admin_controlled = 1 + admin_controlled = TRUE possible_destinations = "pod_asteroid" icon = 'icons/obj/terminals.dmi' icon_state = "dorm_available" diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm index 39bde5e541..892e135bdf 100644 --- a/code/modules/shuttle/ferry.dm +++ b/code/modules/shuttle/ferry.dm @@ -5,7 +5,6 @@ shuttleId = "ferry" possible_destinations = "ferry_home;ferry_away" req_access = list(ACCESS_CENT_GENERAL) - var/allow_silicons = FALSE var/allow_emag = FALSE @@ -24,17 +23,6 @@ /obj/machinery/computer/shuttle/ferry/request name = "ferry console" circuit = /obj/item/circuitboard/computer/ferry/request - var/last_request //prevents spamming admins - var/cooldown = 600 possible_destinations = "ferry_home;ferry_away" req_access = list(ACCESS_CENT_GENERAL) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/machinery/computer/shuttle/ferry/request/Topic(href, href_list) - ..() - if(href_list["request"]) - if(last_request && (last_request + cooldown > world.time)) - return - last_request = world.time - to_chat(usr, "Your request has been received by CentCom.") - to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to CentCom.") diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index d7a6d4a583..03ff509086 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -711,6 +711,26 @@ else return "00:00" +/** + * Gets shuttle location status in a form of string for tgui interfaces + */ +/obj/docking_port/mobile/proc/get_status_text_tgui() + var/obj/docking_port/stationary/dockedAt = get_docked() + var/docked_at = dockedAt?.name || "Unknown" + if(istype(dockedAt, /obj/docking_port/stationary/transit)) + if(timeLeft() > 1 HOURS) + return "Hyperspace" + else + var/obj/docking_port/stationary/dst + if(mode == SHUTTLE_RECALL) + dst = previous + else + dst = destination + return "In transit to [dst?.name || "unknown location"]" + else if(mode == SHUTTLE_RECHARGING) + return "[docked_at], recharging [getTimerStr()]" + else + return docked_at /obj/docking_port/mobile/proc/getStatusText() var/obj/docking_port/stationary/dockedAt = get_docked() @@ -730,7 +750,6 @@ else return docked_at - /obj/docking_port/mobile/proc/getDbgStatusText() var/obj/docking_port/stationary/dockedAt = get_docked() . = (dockedAt && dockedAt.name) ? dockedAt.name : "unknown" diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 0076f584e9..bdbdc08c6f 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -12,26 +12,34 @@ possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s;syndicate_custom" resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF -/obj/machinery/computer/shuttle/syndicate/recall - name = "syndicate shuttle recall terminal" - desc = "Use this if your friends left you behind." - possible_destinations = "syndicate_away" - - -/obj/machinery/computer/shuttle/syndicate/Topic(href, href_list) - if(href_list["move"]) - var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit - if(board.challenge && ((world.time - SSticker.round_start_time) < SYNDICATE_CHALLENGE_TIMER)) - to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(SYNDICATE_CHALLENGE_TIMER - (world.time - SSticker.round_start_time))] more to allow them to prepare.") - return 0 - board.moved = TRUE - ..() - /obj/machinery/computer/shuttle/syndicate/allowed(mob/M) if(issilicon(M) && !(ROLE_SYNDICATE in M.faction)) return FALSE return ..() +/obj/machinery/computer/shuttle/syndicate/ui_act(action, params) + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return + + switch(action) + if("move") + if(istype(src, /obj/machinery/computer/shuttle/syndicate/drop_pod)) + if(!is_centcom_level(z)) + to_chat(usr, "Pods are one way!") + return + var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit + if(board?.challenge && world.time < SYNDICATE_CHALLENGE_TIMER) + to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(SYNDICATE_CHALLENGE_TIMER - world.time)] more to allow them to prepare.") + return + board.moved = TRUE + return ..() + +/obj/machinery/computer/shuttle/syndicate/recall + name = "syndicate shuttle recall terminal" + desc = "Use this if your friends left you behind." + possible_destinations = "syndicate_away" + /obj/machinery/computer/shuttle/syndicate/drop_pod name = "syndicate assault pod control" desc = "Controls the drop pod's launch system." @@ -43,13 +51,6 @@ possible_destinations = null clockwork = TRUE //it'd look weird -/obj/machinery/computer/shuttle/syndicate/drop_pod/Topic(href, href_list) - if(href_list["move"]) - if(!is_centcom_level(z)) - to_chat(usr, "Pods are one way!") - return 0 - ..() - /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate name = "syndicate shuttle navigation computer" desc = "Used to designate a precise transit location for the syndicate shuttle." diff --git a/code/modules/smithing/anvil.dm b/code/modules/smithing/anvil.dm new file mode 100644 index 0000000000..19d48119e6 --- /dev/null +++ b/code/modules/smithing/anvil.dm @@ -0,0 +1,315 @@ +#define WORKPIECE_PRESENT 1 +#define WORKPIECE_INPROGRESS 2 +#define WORKPIECE_FINISHED 3 +#define WORKPIECE_SLAG 5 + +#define RECIPE_SMALLPICK "dbp" //draw bend punch +#define RECIPE_LARGEPICK "ddbp" //draw draw bend punch +#define RECIPE_SHOVEL "dfup" //draw fold upset punch +#define RECIPE_HAMMER "sfp" //shrink fold punch + + +#define RECIPE_SMALLKNIFE "sdd" //shrink draw draw +#define RECIPE_SHORTSWORD "dff" //draw fold fold +#define RECIPE_WAKI "dfsf" //draw fold shrink fold +#define RECIPE_SCIMITAR "dfb" //draw fold bend +#define RECIPE_SABRE "ddsf" //draw draw shrink fold +#define RECIPE_RAPIER "sdfd" //shrink draw fold draw +#define RECIPE_BROADSWORD "dfuf" //draw fold upset fold +#define RECIPE_ZWEIHANDER "udfsf" //upset draw fold shrink fold +#define RECIPE_KATANA "fffff" //fold fold fold fold fold + + +#define RECIPE_SCYTHE "bdf" //bend draw fold +#define RECIPE_COGHEAD "bsf" //bend shrink fold. + + +#define RECIPE_JAVELIN "dbf" //draw bend fold +#define RECIPE_HALBERD "duffp" //draw upset fold fold punch +#define RECIPE_GLAIVE "usfp" //upset shrink fold punch +#define RECIPE_PIKE "ddbf" //draw draw bend fold + +/obj/structure/anvil + name = "anvil" + desc = "Base class of anvil. This shouldn't exist, but is useable." + icon = 'icons/obj/smith.dmi' + icon_state = "anvil" + density = TRUE + anchored = TRUE + var/workpiece_state = FALSE + var/datum/material/workpiece_material + var/anvilquality = 0 + var/currentquality = 0 //lolman? what the fuck do these vars do? + var/currentsteps = 0 //even i don't know + var/outrightfailchance = 1 //todo: document this shit + var/stepsdone = "" + var/rng = FALSE + var/debug = FALSE //vv this if you want an artifact + var/artifactrolled = FALSE + var/itemqualitymax = 20 + var/list/smithrecipes = list(RECIPE_HAMMER = /obj/item/smithing/hammerhead, + RECIPE_SCYTHE = /obj/item/smithing/scytheblade, + RECIPE_SHOVEL = /obj/item/smithing/shovelhead, + RECIPE_COGHEAD = /obj/item/smithing/cogheadclubhead, + RECIPE_JAVELIN = /obj/item/smithing/javelinhead, + RECIPE_LARGEPICK = /obj/item/smithing/pickaxehead, + RECIPE_SMALLPICK = /obj/item/smithing/prospectingpickhead, + RECIPE_SHORTSWORD = /obj/item/smithing/shortswordblade, + RECIPE_SCIMITAR = /obj/item/smithing/scimitarblade, + RECIPE_WAKI = /obj/item/smithing/wakiblade, + RECIPE_RAPIER = /obj/item/smithing/rapierblade, + RECIPE_SABRE = /obj/item/smithing/sabreblade, + RECIPE_SMALLKNIFE = /obj/item/smithing/knifeblade, + RECIPE_BROADSWORD = /obj/item/smithing/broadblade, + RECIPE_ZWEIHANDER = /obj/item/smithing/zweiblade, + RECIPE_KATANA = /obj/item/smithing/katanablade, + RECIPE_HALBERD = /obj/item/smithing/halberdhead, + RECIPE_GLAIVE = /obj/item/smithing/glaivehead, + RECIPE_PIKE = /obj/item/smithing/pikehead) + +/obj/structure/anvil/Initialize() + ..() + currentquality = anvilquality + +/obj/structure/anvil/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/ingot)) + var/obj/item/ingot/notsword = I + if(workpiece_state) + to_chat(user, "There's already a workpiece! Finish it or take it off.") + return FALSE + if(notsword.workability == "shapeable") + workpiece_state = WORKPIECE_PRESENT + workpiece_material = notsword.custom_materials + to_chat(user, "You place the [notsword] on the [src].") + currentquality = anvilquality + var/skillmod = 0 + if(user.mind.skill_holder) + skillmod = user.mind.get_skill_level(/datum/skill/level/dorfy/blacksmithing)/2 + currentquality += skillmod + qdel(notsword) + else + to_chat(user, "The ingot isn't workable yet!") + return FALSE + return + else if(istype(I, /obj/item/melee/smith/hammer)) + var/obj/item/melee/smith/hammer/hammertime = I + if(workpiece_state == WORKPIECE_PRESENT || workpiece_state == WORKPIECE_INPROGRESS) + do_shaping(user, hammertime.qualitymod) + return + else + to_chat(user, "You can't work an empty anvil!") + return FALSE + return ..() + +/obj/structure/anvil/wrench_act(mob/living/user, obj/item/I) + ..() + default_unfasten_wrench(user, I, 5) + return TRUE + + +/obj/structure/anvil/proc/do_shaping(mob/user, var/qualitychange) + currentquality += qualitychange + var/list/shapingsteps = list("weak hit", "strong hit", "heavy hit", "fold", "draw", "shrink", "bend", "punch", "upset") //weak/strong/heavy hit affect strength. All the other steps shape. + workpiece_state = WORKPIECE_INPROGRESS + var/stepdone = input(user, "How would you like to work the metal?") in shapingsteps + var/steptime = 50 + if(user.mind.skill_holder) + var/skillmod = user.mind.get_skill_level(/datum/skill/level/dorfy/blacksmithing)/10 + 1 + steptime = 50 / skillmod + playsound(src, 'sound/effects/clang2.ogg',40, 2) + if(!do_after(user, steptime, target = src)) + return FALSE + switch(stepdone) + if("weak hit") + currentsteps += 1 + outrightfailchance += 5 + currentquality += 1 + if("strong hit") + currentsteps += 2 + outrightfailchance += 9.5 + currentquality += 2 + if("heavy hit") + currentsteps += 3 + outrightfailchance += 12.5 + currentquality += 3 + if("fold") + stepsdone += "f" + currentsteps += 1 + currentquality -= 1 + if("draw") + stepsdone += "d" + currentsteps += 1 + currentquality -= 1 + if("shrink") + stepsdone += "s" + currentsteps += 1 + currentquality -= 1 + if("bend") + stepsdone += "b" + currentsteps += 1 + currentquality -= 1 + if("punch") + stepsdone += "p" + currentsteps += 1 + currentquality -= 1 + if("upset") + stepsdone += "u" + currentsteps += 1 + currentquality -= 1 + user.visible_message("[user] works the metal on the anvil with their hammer with a loud clang!", \ + "You [stepdone] the metal with a loud clang!") + playsound(src, 'sound/effects/clang2.ogg',40, 2) + addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/effects/clang2.ogg', 40, 2), 15) + if(length(stepsdone) >= 3) + tryfinish(user) + +/obj/structure/anvil/proc/tryfinish(mob/user) + var/artifactchance = 0 + if(!artifactrolled) + artifactchance = (1+(user.mind.get_skill_level(/datum/skill/level/dorfy/blacksmithing)/4))/2500 + artifactrolled = TRUE + var/artifact = max(prob(artifactchance), debug) + var/finalfailchance = outrightfailchance + if(user.mind.skill_holder) + var/skillmod = user.mind.get_skill_level(/datum/skill/level/dorfy/blacksmithing)/10 + 1 + finalfailchance = max(0, finalfailchance / skillmod) //lv 2 gives 20% less to fail, 3 30%, etc + if((currentsteps > 10 || (rng && prob(finalfailchance))) && !artifact) + to_chat(user, "You overwork the metal, causing it to turn into useless slag!") + var/turf/T = get_turf(user) + workpiece_state = FALSE + new /obj/item/stack/ore/slag(T) + currentquality = anvilquality + stepsdone = "" + currentsteps = 0 + outrightfailchance = 1 + artifactrolled = FALSE + if(user.mind.skill_holder) + user.mind.auto_gain_experience(/datum/skill/level/dorfy/blacksmithing, 25, 400, silent = FALSE) + for(var/i in smithrecipes) + if(i == stepsdone) + var/turf/T = get_turf(user) + var/obj/item/smithing/create = smithrecipes[stepsdone] + var/obj/item/smithing/finisheditem = new create(T) + to_chat(user, "You finish your [finisheditem]!") + if(artifact) + to_chat(user, "It is an artifact, a creation whose legacy shall live on forevermore.") //todo: SSblackbox + currentquality = max(currentquality, 2) + finisheditem.quality = currentquality * 3//this is insane i know it's 1/2500 for most of the time and 0.8% at best + finisheditem.artifact = TRUE + else + finisheditem.quality = min(currentquality, itemqualitymax) + switch(finisheditem.quality) + if(-1000 to -8) + finisheditem.desc = "It looks to be the most awfully made object you've ever seen." + if(-8) + finisheditem.desc = "It looks to be the second most awfully made object you've ever seen." + if(-8 to 0) + finisheditem.desc = "It looks to be barely passable as... whatever it's trying to pass for." + if(0) + finisheditem.desc = "It looks to be totally average." + if(0 to INFINITY) + finisheditem.desc = "It looks to be better than average." + workpiece_state = FALSE + finisheditem.set_custom_materials(workpiece_material) + currentquality = anvilquality + stepsdone = "" + currentsteps = 0 + outrightfailchance = 1 + artifactrolled = FALSE + if(user.mind.skill_holder) + user.mind.auto_gain_experience(/datum/skill/level/dorfy/blacksmithing, 50, 10000000, silent = FALSE) + break + +/obj/structure/anvil/debugsuper + name = "super ultra epic anvil of debugging." + desc = "WOW. A DEBUG ITEM STRUCTURE. EPIC." + icon_state = "anvil" + anvilquality = 10 + itemqualitymax = 9001 + outrightfailchance = 0 + +/obj/structure/anvil/obtainable + name = "anvil" + desc = "Base class of anvil. This shouldn't exist, but is useable." + anvilquality = 0 + outrightfailchance = 5 + rng = TRUE + +/obj/structure/anvil/obtainable/table + name = "table anvil" + desc = "A slightly reinforced table. Good luck." + icon_state = "tablevil" + anvilquality = -2 + itemqualitymax = 0 + + +/obj/structure/anvil/obtainable/table/do_shaping(mob/user, var/qualitychange) + if(prob(5)) + to_chat(user, "The [src] breaks under the strain!") + take_damage(max_integrity) + return FALSE + else + ..() + +/obj/structure/anvil/obtainable/bronze + name = "slab of bronze" + desc = "A big block of bronze. Useable as an anvil." + custom_materials = list(/datum/material/bronze=8000) + icon_state = "ratvaranvil" + anvilquality = -0.5 + itemqualitymax = 2 + +/obj/structure/anvil/obtainable/sandstone + name = "sandstone brick anvil" + desc = "A big block of sandstone. Useable as an anvil." + custom_materials = list(/datum/material/sandstone=8000) + icon_state = "sandvil" + anvilquality = -1 + itemqualitymax = 2 + +/obj/structure/anvil/obtainable/basalt + name = "basalt brick anvil" + desc = "A big block of basalt. Useable as an anvil, better than sandstone. Igneous!" + icon_state = "sandvilnoir" + anvilquality = -0.5 + itemqualitymax = 4 + +/obj/structure/anvil/obtainable/basic + name = "anvil" + desc = "An anvil. It's got wheels bolted to the bottom." + anvilquality = 0 + itemqualitymax = 6 + +/obj/structure/anvil/obtainable/ratvar + name = "brass anvil" + desc = "A big block of what appears to be brass. Useable as an anvil, if whatever's holding the brass together lets you." + custom_materials = list(/datum/material/bronze=8000) + icon_state = "ratvaranvil" + anvilquality = 1 + itemqualitymax = 8 + +/obj/structure/anvil/obtainable/ratvar/attackby(obj/item/I, mob/user) + if(is_servant_of_ratvar(user)) + return ..() + else + to_chat(user, "KNPXWN, QNJCQNW!") //rot13 then rot22 if anyone wants to decode + +/obj/structure/anvil/obtainable/narsie + name = "runic anvil" + desc = "An anvil made of a strange, runic metal." + custom_materials = list(/datum/material/runedmetal=8000) + icon = 'icons/obj/smith.dmi' + icon_state = "evil" + anvilquality = 1 + itemqualitymax = 8 + +/obj/structure/anvil/obtainable/narsie/attackby(obj/item/I, mob/user) + if(iscultist(user)) + return ..() + else + to_chat(user, "That is not yours to use!") + +#undef WORKPIECE_PRESENT +#undef WORKPIECE_INPROGRESS +#undef WORKPIECE_FINISHED +#undef WORKPIECE_SLAG diff --git a/code/modules/smithing/finished_items.dm b/code/modules/smithing/finished_items.dm new file mode 100644 index 0000000000..5db6b09452 --- /dev/null +++ b/code/modules/smithing/finished_items.dm @@ -0,0 +1,329 @@ + +/obj/item/melee/smith + name = "base class obj/item/melee/smith" //tin. handles overlay and quality and shit. + desc = "cringe" + icon = 'icons/obj/smith.dmi' + icon_state = "claymore" + item_state = "claymore" + material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + total_mass = TOTAL_MASS_MEDIEVAL_WEAPON //yeah ok + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_NORMAL + force = 6 + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + var/quality + var/overlay_state = "stick" + var/mutable_appearance/overlay + var/wielded_mult = 1 + var/wield_force = 15 + +/obj/item/melee/smith/Initialize() + ..() + if(desc == "cringe") + desc = "A handmade [name]." + overlay = mutable_appearance(icon, overlay_state) + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 + + +/obj/item/melee/smith/twohand + item_flags = NEEDS_PERMIT //it's a bigass sword/spear. beepsky is going to give you shit for it. + sharpness = SHARP_EDGED + material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + force = 10 + wielded_mult = 1.75 + w_class = WEIGHT_CLASS_BULKY + +/obj/item/melee/smith/twohand/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad. + AddElement(/datum/element/sword_point) + + + +/////////////////////////// +// Mining // +/////////////////////////// +/obj/item/mining_scanner/prospector + name = "prospector's pickaxe" + desc = "A pickaxe that can sound rocks to find mineral deposits and stop gibtonite detonations." + material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + icon = 'icons/obj/smith.dmi' + icon_state = "minipick" //todo:sprite + sharpness = SHARP_POINTY//it doesnt have a blade it has a point + +/obj/item/mining_scanner/prospector/Initialize() + ..() + var/mutable_appearance/overlay + desc = "A handmade [name]." + overlay = mutable_appearance(icon, "minihandle") + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 + +/obj/item/pickaxe/smithed + name = "pickaxe" + desc = "A pickaxe." + material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + icon = 'icons/obj/smith.dmi' + icon_state = "pickaxe" + sharpness = SHARP_POINTY + +/obj/item/pickaxe/smithed/Initialize() + ..() + desc = "A handmade [name]." + var/mutable_appearance/overlay + overlay = mutable_appearance(icon, "stick") + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 + +/obj/item/pickaxe/smithed/attack_self(mob/user) + to_chat(user, "Tool does not have a configureable dig range.") + +/obj/item/shovel/smithed + name = "shovel" + desc = "A shovel." + icon = 'icons/obj/smith.dmi' + material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + icon_state = "shovel" + sharpness = SHARP_EDGED //it cuts through the earth + +/obj/item/shovel/smithed/Initialize() + ..() + desc = "A handmade [name]." + var/mutable_appearance/overlay + overlay = mutable_appearance(icon, "shovelhandle") + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) + if(force < 0) + force = 0 + + +/////////////////////////// +// Spears // +/////////////////////////// + + +/obj/item/melee/smith/twohand/halberd + name = "halberd" + icon_state = "halberd" + w_class = WEIGHT_CLASS_HUGE + overlay_state = "spearhandle" + slot_flags = ITEM_SLOT_BACK + wielded_mult = 2.5 + +/obj/item/melee/smith/twohand/halberd/ComponentInitialize() + . = ..() + AddComponent(/datum/component/jousting) + +/obj/item/melee/smith/twohand/javelin + name = "javelin" + icon_state = "javelin" + overlay_state = "longhandle" + wielded_mult = 1.5 + slot_flags = ITEM_SLOT_BACK + sharpness = SHARP_POINTY + + +/obj/item/melee/smith/twohand/javelin/ComponentInitialize() + . = ..() + AddComponent(/datum/component/jousting) + +/obj/item/melee/smith/twohand/glaive + name = "glaive" + icon_state = "glaive" + overlay_state = "longhandle" + slot_flags = ITEM_SLOT_BACK + wielded_mult = 2 + +/obj/item/melee/smith/twohand/glaive/ComponentInitialize() + . = ..() + AddComponent(/datum/component/jousting) + + +/obj/item/melee/smith/twohand/pike + name = "pike" + icon_state = "pike" + w_class = WEIGHT_CLASS_HUGE + overlay_state = "longhandle" + reach = 2 //yeah ok + slot_flags = ITEM_SLOT_BACK + sharpness = SHARP_POINTY + +////////////////////////// +// Other Melee // +/////////////////////////// + + +/obj/item/melee/smith/hammer//blacksmithing, not warhammer. + name = "hammer" + icon_state = "hammer" + overlay_state = "hammerhandle" + var/qualitymod = 0 + +/obj/item/scythe/smithed //we need to inherit scythecode, but that's about it. + material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + + +/obj/item/melee/smith/cogheadclub + name = "coghead club" + icon_state = "coghead" + item_flags = NEEDS_PERMIT + overlay_state = "stick" + +/obj/item/melee/smith/shortsword + name = "gladius" + force = 9 + item_flags = NEEDS_PERMIT + sharpness = SHARP_EDGED + icon_state = "gladius" + overlay_state = "gladiushilt" + +/obj/item/melee/smith/shortsword/scimitar + name = "scimitar" + sharpness = SHARP_EDGED + icon_state = "scimitar" + overlay_state = "scimitarhilt" + +/obj/item/melee/smith/wakizashi + name = "wakizashi" + sharpness = SHARP_EDGED + force = 7 + item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY + obj_flags = UNIQUE_RENAME + icon_state = "waki" + overlay_state = "wakihilt" + block_parry_data = /datum/block_parry_data/waki + +/datum/block_parry_data/waki //like longbokken but worse reflect + parry_stamina_cost = 6 + parry_time_windup = 0 + parry_time_active = 15 //decent window + parry_time_spindown = 0 + parry_time_perfect = 2 + parry_time_perfect_leeway = 0.75 + parry_imperfect_falloff_percent = 7.5 + parry_efficiency_to_counterattack = 100 + parry_efficiency_considered_successful = 80 + parry_efficiency_perfect = 120 + parry_failed_stagger_duration = 3 SECONDS + parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 1.9) + +/obj/item/melee/smith/twohand/broadsword + name = "broadsword" + icon_state = "broadsword" + overlay_state = "broadhilt" + wielded_mult = 1.8 + +/obj/item/melee/smith/twohand/zweihander + name = "zweihander" + icon_state = "zwei" + overlay_state = "zweihilt" + total_mass = TOTAL_MASS_MEDIEVAL_WEAPON * 2 + force = 4 + wielded_mult = 3 //affected more by quality. a -1 is 25% less damage, a +1 is 25% more. These bonuses are tripled when wielded. + +/obj/item/melee/smith/twohand/katana + name = "katana" + icon_state = "katana" + overlay_state = "katanahilt" + force = 7 + wielded_mult = 2 + item_flags = ITEM_CAN_PARRY | NEEDS_PERMIT //want to name your katana "DEMON BLADE" or some shit? go ahead, idiot. + obj_flags = UNIQUE_RENAME + block_parry_data = /datum/block_parry_data/captain_saber //todo + +/obj/item/melee/smith/sabre + name = "sabre" + icon_state = "sabre" + sharpness = SHARP_EDGED + overlay_state = "sabrehilt" + armour_penetration = 15 + force = 9 + hitsound = 'sound/weapons/rapierhit.ogg' + item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY + block_parry_data = /datum/block_parry_data/captain_saber //yeah this is fine i guess + +/obj/item/melee/smith/sabre/rapier + name = "rapier" + icon_state = "rapier" + sharpness = SHARP_EDGED + overlay_state = "rapierhilt" + force = 6 //less force, stronger parry + sharpness = SHARP_POINTY + armour_penetration = 30 + block_parry_data = /datum/block_parry_data/smithrapier + +/datum/block_parry_data/smithrapier //parry into riposte. i am pretty sure this is going to be nearly fucking impossible to land. + parry_stamina_cost = 12 //dont miss + parry_time_active = 4 + parry_time_perfect = 2 + parry_time_perfect_leeway = 2 + parry_failed_stagger_duration = 3 SECONDS + parry_failed_clickcd_duration = 3 SECONDS + parry_time_windup = 0 + parry_time_spindown = 0 + parry_imperfect_falloff_percent = 0 + parry_efficiency_to_counterattack = 100 + parry_efficiency_considered_successful = 120 + parry_efficiency_perfect = 120 + parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 4) + +//unique hammers +/obj/item/melee/smith/hammer/toolbox + name = "toolbox hammer" + desc = "A metal filled toolbox on a stick. Useable as a really shitty hammer." + w_class = WEIGHT_CLASS_BULKY + icon_state = "toolbox" + overlay_state = "hammerhandle" + qualitymod = -2 + +/obj/item/melee/smith/hammer/narsie + name = "runemetal hammer" + custom_materials = list(/datum/material/runedmetal = 12000) + desc = "A metal hammer inscribed with geometeric runes." + qualitymod = 1 + +/obj/item/melee/smith/hammer/narsie/attack(mob/living/target, mob/living/carbon/human/user) + if(!iscultist(user)) + user.DefaultCombatKnockdown(100) + user.dropItemToGround(src, TRUE) + user.visible_message("A powerful force shoves [user] away from [target]!", \ + "\"You shouldn't be touching tools that aren't yours.\"") + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.apply_damage(rand(force/2, force), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + else + user.adjustBruteLoss(rand(force/2,force)) + return + ..() + +/obj/item/melee/smith/hammer/ratvar + name = "brass hammer" + custom_materials = list(/datum/material/bronze = 12000) + desc = "A brass hammer inscribed with... writing? You can't read it." + qualitymod = 1 + +/obj/item/melee/smith/hammer/ratvar/attack(mob/living/target, mob/living/carbon/human/user) + if(!is_servant_of_ratvar(user)) + user.DefaultCombatKnockdown(100) + user.dropItemToGround(src, TRUE) + user.visible_message("A powerful force shoves [user] away from [target]!", "\"You shouldn't be touching tools that aren't yours.\"") + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.apply_damage(rand(force/2, force), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + else + user.adjustBruteLoss(rand(force/2,force)) + return + ..() + +/obj/item/melee/smith/hammer/debug + name = "debugging hammer" + desc = "A DEBUGGING HAMMER!! EPIC!!." + qualitymod = 10 diff --git a/code/modules/smithing/furnace.dm b/code/modules/smithing/furnace.dm new file mode 100644 index 0000000000..ee1d6a1b93 --- /dev/null +++ b/code/modules/smithing/furnace.dm @@ -0,0 +1,75 @@ +/obj/structure/furnace + name = "furnace" + desc = "A furnace." + icon = 'icons/obj/smith.dmi' + icon_state = "furnace0" + density = TRUE + anchored = TRUE + var/debug = FALSE //debugging only + var/working = TRUE + var/fueluse = 1 + + +/obj/structure/furnace/Initialize() + ..() + create_reagents(250, TRANSPARENT) + START_PROCESSING(SSobj, src) + +/obj/structure/furnace/Destroy() + ..() + STOP_PROCESSING(SSobj, src) + +/obj/structure/furnace/process() + if(debug) + reagents.add_reagent(/datum/reagent/fuel, 1) + return TRUE + if(reagents.remove_reagent(/datum/reagent/fuel, fueluse)) + working = TRUE + if(icon_state == "furnace0") + icon_state = "furnace1" + else + working = FALSE + icon_state = "furnace0" + +/obj/structure/furnace/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/ingot)) + var/obj/item/ingot/notsword = I + if(working) + to_chat(user, "You heat the [notsword] in the [src].") + notsword.workability = "shapeable" + else + to_chat(user, "The furnace isn't working!.") + else + ..() + +/obj/structure/furnace/wrench_act(mob/living/user, obj/item/I) + ..() + default_unfasten_wrench(user, I, 5) + return TRUE + +/obj/structure/furnace/attackby(obj/item/W, mob/user, params) + if(W.reagents) + W.reagents.trans_to(src, 250) + else + return ..() + +/obj/structure/furnace/plunger_act(obj/item/plunger/P, mob/living/user, reinforced) + to_chat(user, "You start furiously plunging [name].") + if(do_after(user, 30, target = src)) + to_chat(user, "You finish plunging the [name].") + reagents.reaction(get_turf(src), TOUCH) //splash on the floor + reagents.clear_reagents() + +/obj/structure/furnace/infinite + name = "fuelless furnace" + debug = TRUE + icon_state = "ratfurnace" + + +/obj/structure/furnace/infinite/ratvar + name = "brass furnace" + desc = "A brass furnace. Powered by... something, but seems otherwise safe." //todo:sprites they're safe for noncultists because you're just putting ingots in them. also there';s a reason to steal them ig + +/obj/structure/furnace/infinite/narsie + name = "rune furnace" + desc = "A runed furnace. Powered by... something, but seems otherwise safe." diff --git a/code/modules/smithing/smithed_items.dm b/code/modules/smithing/smithed_items.dm new file mode 100644 index 0000000000..6d10d33a75 --- /dev/null +++ b/code/modules/smithing/smithed_items.dm @@ -0,0 +1,419 @@ +/obj/item/basaltblock + name = "basalt block" + desc = "A block of basalt." + icon = 'icons/obj/smith.dmi' + icon_state = "sandvilnoir" + + +/obj/item/smithing + name = "base class /obj/item/smithing" + icon = 'icons/obj/smith.dmi' + icon_state = "unfinished" + material_flags = MATERIAL_COLOR | MATERIAL_ADD_PREFIX + var/quality = 0 //quality. Changed by the smithing process. + var/obj/item/finishingitem = /obj/item/stick //What this item needs to be hit by to create finalitem + var/obj/item/finalitem + var/artifact = FALSE + +/obj/item/ingot + name = "ingot" + icon = 'icons/obj/smith.dmi' + icon_state = "ingot" + material_flags = MATERIAL_COLOR | MATERIAL_ADD_PREFIX + var/workability = 0 + + +/obj/item/ingot/on_attack_hand(mob/user) + var/mob/living/carbon/human/H + if(workability != "shapeable") + return ..() + var/prot = 0 + if(ishuman(user)) + H = user + if(H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(G.max_heat_protection_temperature) + prot = (G.max_heat_protection_temperature > 360) + else + prot = 1 + if(prot > 0 || HAS_TRAIT(user, TRAIT_RESISTHEAT) || HAS_TRAIT(user, TRAIT_RESISTHEATHANDS)) + to_chat(user, "You pick up the [src].") + return ..() + else + to_chat(user, "You try to move the [src], but you burn your hand on it!") + if(H) + var/obj/item/bodypart/affecting = H.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + H.update_damage_overlays() + +/obj/item/ingot/iron + custom_materials = list(/datum/material/iron=12000) + +/obj/item/ingot/diamond + custom_materials = list(/datum/material/diamond=12000) //yeah ok + +/obj/item/ingot/uranium + custom_materials = list(/datum/material/uranium=12000) + +/obj/item/ingot/plasma + custom_materials = list(/datum/material/plasma=12000)//yeah ok + +/obj/item/ingot/gold + custom_materials = list(/datum/material/gold=12000) + +/obj/item/ingot/silver + custom_materials = list(/datum/material/silver=12000) + +/obj/item/ingot/bananium + custom_materials = list(/datum/material/bananium=12000) + +/obj/item/ingot/titanium + custom_materials = list(/datum/material/titanium=12000) + +/obj/item/ingot/adamantine + custom_materials = list(/datum/material/adamantine=12000) + +/obj/item/ingot/cult + custom_materials = list(/datum/material/runedmetal=12000) + +/obj/item/ingot/bronze + custom_materials = list(/datum/material/bronze=12000) + +/obj/item/ingot/ratvar + custom_materials = list(/datum/material/brass=12000) + desc = "On closer inspection, what appears to be wholly-unsuitable-for-smithing brass is actually primarily replicant alloy. Nezbere must have switched it while you weren't looking." + + +/obj/item/smithing/attackby(obj/item/I, mob/user) + if(istype(I, finishingitem)) + qdel(I) + startfinish() + else + return ..() + +/obj/item/smithing/proc/startfinish() + dofinish() + +/obj/item/smithing/proc/dofinish() + var/qualname + switch(quality) + if(-1000 to -5) + qualname = "awful" + if(-1000 to -2) + qualname = "shoddy" + if(-1000 to -1) + qualname = "poor" + if(-1 to 1) + qualname = "normal" + if(10 to INFINITY) + qualname = "legendary" + if(7.5 to 10) + qualname = "masterwork" + if(5.5 to 7.5) + qualname = "excellent" + if(3.5 to 5.5) + qualname = "good" + if(0 to 3.5) + qualname = "above-average" + var/datum/material/mat = custom_materials[1] + finalitem.set_custom_materials(custom_materials) + mat = mat.name + if(artifact) + dwarfyartifact(finalitem, mat) + else + finalitem.name = "[qualname] [mat] [initial(finalitem.name)]" + finalitem.desc = "A [qualname] [initial(finalitem.name)]. Its quality is [quality]." + finalitem.forceMove(get_turf(src)) + qdel(src) + + +/obj/item/smithing/proc/dwarfyartifact(var/obj/item/finalitem, var/mat) + var/finaldesc = "A [initial(finalitem.name)] made of [mat], all craftsmanship is of the highest quality. It " + switch(pick(1,2,3,4,5)) + if(1) + finaldesc += "is encrusted with [pick("","synthetic ","multi-faceted ","magical ","sparkling ") + pick("rubies","emeralds","jade","opals","lapiz lazuli")]." + if(2) + finaldesc += "is laced with studs of [pick("gold","silver","aluminium","titanium")]." + if(3) + finaldesc += "is encircled with bands of [pick("durasteel","metallic hydrogen","ferritic-alloy","plasteel","duranium")]." + if(4) + finaldesc += "menaces with spikes of [pick("ytterbium","uranium","white pearl","black steel")]." + if(5) + finaldesc += "is encrusted with [pick("","synthetic ","multi-faceted ","magical ","sparkling ") + pick("rubies","emeralds","jade","opals","lapis lazuli")],laced with studs of [pick("gold","silver","aluminium","titanium")], encircled with bands of [pick("durasteel","metallic hydrogen","ferritic-alloy","plasteel","duranium")] and menaces with spikes of [pick("ytterbium","uranium","white pearl","black steel")]." + finalitem.desc = finaldesc + finalitem.name = pick("Delersibnir", "Nekolangrir", "Zanoreshik","Öntakrítin", "Nogzatan", "Vunomam", "Nazushagsaldôbar", "Sergeb", "Zafaldastot", "Vudnis", "Dostust", "Shotom", "Mugshith", "Angzak", "Oltud", "Deleratîs", "Nökornomal") //one of these is literally BLOOD POOL CREATE.iirc its Nazushagsaldôbar. + +/obj/item/smithing/hammerhead + name = "smithed hammer head" + finalitem = /obj/item/melee/smith/hammer + icon_state = "hammer" + +/obj/item/smithing/hammerhead/startfinish() + var/obj/item/melee/smith/hammer/finalforreal = new /obj/item/melee/smith/hammer(src) + finalforreal.force += quality/2 + finalforreal.qualitymod = quality/4 + finalitem = finalforreal + ..() + + + +/obj/item/smithing/scytheblade + name = "smithed scythe head" + finalitem = /obj/item/scythe/smithed + icon_state = "scythe" + +/obj/item/smithing/scytheblade/startfinish() + finalitem = new /obj/item/scythe/smithed(src) + finalitem.force += quality + ..() + +/obj/item/smithing/shovelhead + name = "smithed shovel head" + finalitem = /obj/item/shovel/smithed + icon_state = "shovel" + +/obj/item/smithing/shovelhead/startfinish() + finalitem = new /obj/item/shovel/smithed(src) + finalitem.force += quality/2 + if(quality > 0) + finalitem.toolspeed = max(0.05,(1-(quality/10))) + else + finalitem.toolspeed *= max(1, (quality * -1)) + ..() + +/obj/item/smithing/cogheadclubhead + name = "smithed coghead club head" + finalitem = /obj/item/melee/smith/cogheadclub + icon_state = "coghead" + +/obj/item/smithing/cogheadclubhead/startfinish() + finalitem = new /obj/item/melee/smith/cogheadclub(src) + finalitem.force += quality + ..() + +/obj/item/smithing/javelinhead + name = "smithed javelin head" + finalitem = /obj/item/melee/smith/twohand/javelin + icon_state = "javelin" + +/obj/item/smithing/javelinhead/startfinish() + var/obj/item/melee/smith/twohand/javelin/finalforreal = new /obj/item/melee/smith/twohand/javelin(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.throwforce = finalforreal.force*2 + finalitem = finalforreal + ..() + +/obj/item/smithing/pikehead + name = "smithed pike head" + finalitem = /obj/item/melee/smith/twohand/pike + icon_state = "pike" + +/obj/item/smithing/pikehead/startfinish() + var/obj/item/melee/smith/twohand/pike/finalforreal = new /obj/item/melee/smith/twohand/pike(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.throwforce = finalforreal.force/10 //its a pike not a javelin + finalitem = finalforreal + ..() + +/obj/item/smithing/pickaxehead + name = "smithed pickaxe head" + finalitem = /obj/item/pickaxe/smithed + icon_state = "pickaxe" + +/obj/item/smithing/pickaxehead/startfinish() + var/obj/item/pickaxe/smithed/finalforreal = new /obj/item/pickaxe/smithed(src) + finalforreal.force += quality/2 + if(quality > 0) + finalforreal.toolspeed = max(0.05,(1-(quality/10))) + else + finalforreal.toolspeed *= max(1, (quality * -1)) + switch(quality) + if(10 to INFINITY) + finalforreal.digrange = 4 + if(5 to 9) + finalforreal.digrange = 3 + if(3,4) + finalforreal.digrange = 2 + else + finalforreal.digrange = 1 + finalitem = finalforreal + ..() + + +/obj/item/smithing/prospectingpickhead + name = "smithed prospector's pickaxe head" + finalitem = /obj/item/mining_scanner/prospector + icon_state = "minipick" + +/obj/item/smithing/prospectingpickhead/startfinish() + var/obj/item/mining_scanner/prospector/finalforreal = new /obj/item/mining_scanner/prospector(src) + finalforreal.range = 2 + quality + if(quality) + finalforreal.cooldown = 100/quality + finalitem = finalforreal + ..() + + +/obj/item/smithing/shortswordblade + name = "smithed gladius blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/shortsword + icon_state = "gladius" + +/obj/item/smithing/shortswordblade/startfinish() + finalitem = new /obj/item/melee/smith/shortsword(src) + finalitem.force += quality + ..() + +/obj/item/smithing/scimitarblade + name = "smithed scimitar blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/shortsword/scimitar + icon_state = "scimitar" + +/obj/item/smithing/scimitarblade/startfinish() + finalitem = new /obj/item/melee/smith/shortsword/scimitar(src) + finalitem.force += quality + ..() + +/obj/item/smithing/wakiblade + name = "smithed wakizashi blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/wakizashi + icon_state = "waki" + +/obj/item/smithing/wakiblade/startfinish() + finalitem = new /obj/item/melee/smith/wakizashi(src) + finalitem.force += quality + ..() + +/obj/item/smithing/sabreblade + name = "smithed sabre blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/sabre + icon_state = "sabre" + +/obj/item/smithing/sabreblade/startfinish() + finalitem = new /obj/item/melee/smith/sabre(src) + finalitem.force += quality + ..() + +/obj/item/smithing/rapierblade + name = "smithed rapier blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/sabre/rapier + icon_state = "rapier" + +/obj/item/smithing/rapierblade/startfinish() + finalitem = new /obj/item/melee/smith/sabre/rapier(src) + finalitem.force += quality + ..() + +/obj/item/smithing/knifeblade + name = "smithed knife blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/kitchen/knife + icon_state = "dagger" + +/obj/item/smithing/knifeblade/startfinish() + finalitem = new /obj/item/kitchen/knife(src) + finalitem.force = 4 + quality/2 + finalitem.icon = 'icons/obj/smith.dmi' + finalitem.icon_state = "dagger" + finalitem.name = "dagger" + finalitem.desc = "A dagger." + var/mutable_appearance/overlay = mutable_appearance('icons/obj/smith.dmi', "daggerhilt") + overlay.appearance_flags = RESET_COLOR + finalitem.add_overlay(overlay) + if(finalitem.force < 0) + finalitem.force = 0 + finalitem.material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + ..() + +/obj/item/smithing/broadblade + name = "smithed broadsword blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/twohand/broadsword + icon_state = "broadsword" + +/obj/item/smithing/broadblade/startfinish() + var/obj/item/melee/smith/twohand/broadsword/finalforreal = new /obj/item/melee/smith/twohand/broadsword(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalitem = finalforreal + ..() + +/obj/item/smithing/zweiblade + name = "smithed zweihander blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/twohand/zweihander + icon_state = "zwei" + +/obj/item/smithing/zweiblade/startfinish() + var/obj/item/melee/smith/twohand/zweihander/finalforreal = new /obj/item/melee/smith/twohand/zweihander(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalitem = finalforreal + ..() + +/obj/item/smithing/halberdhead + name = "smithed halberd head" + finalitem = /obj/item/melee/smith/twohand/halberd + icon_state = "halberd" + +/obj/item/smithing/halberdhead/startfinish() + var/obj/item/melee/smith/twohand/halberd/finalforreal = new /obj/item/melee/smith/twohand/halberd(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.throwforce = finalforreal.force/3 + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalitem = finalforreal + ..() + +/obj/item/smithing/glaivehead + name = "smithed glaive head" + finalitem = /obj/item/melee/smith/twohand/glaive + icon_state = "glaive" + +/obj/item/smithing/glaivehead/startfinish() + var/obj/item/melee/smith/twohand/glaive/finalforreal = new /obj/item/melee/smith/twohand/glaive(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.throwforce = finalforreal.force + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalitem = finalforreal + ..() + +/obj/item/smithing/katanablade + name = "smithed katana blade" + finishingitem = /obj/item/swordhandle + finalitem = /obj/item/melee/smith/twohand/katana + icon_state = "katana" + + +/obj/item/smithing/katanablade/startfinish() + var/obj/item/melee/smith/twohand/katana/finalforreal = new /obj/item/melee/smith/twohand/katana(src) + finalforreal.force += quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalitem = finalforreal + ..() + +/obj/item/stick + name = "wooden rod" + desc = "It's a rod, suitable for use of a handle of a tool. Also could serve as a weapon, in a pinch." + icon = 'icons/obj/smith.dmi' + icon_state = "stick" + force = 7 + +/obj/item/swordhandle + name = "sword handle" + desc = "It's a crudlely shaped wooden sword hilt." + icon = 'icons/obj/smith.dmi' + icon_state = "shorthilt" diff --git a/code/modules/spells/spell_types/emplosion.dm b/code/modules/spells/spell_types/emplosion.dm index 98723273ae..91706d843e 100644 --- a/code/modules/spells/spell_types/emplosion.dm +++ b/code/modules/spells/spell_types/emplosion.dm @@ -3,9 +3,7 @@ desc = "This spell emplodes an area." charge_max = 250 cooldown_min = 50 - - var/emp_heavy = 2 - var/emp_light = 3 + var/emp_range = 4 //same as a 50/50 reaction of uranium and iron action_icon_state = "emp" sound = 'sound/weapons/zapbang.ogg' @@ -15,6 +13,6 @@ for(var/mob/living/target in targets) if(target.anti_magic_check()) continue - empulse(target.loc, emp_heavy, emp_light) + empulse_using_range(target.loc, emp_range) - return \ No newline at end of file + return diff --git a/code/modules/spells/spell_types/taeclowndo.dm b/code/modules/spells/spell_types/taeclowndo.dm index 59826daf07..9d6d71a89f 100644 --- a/code/modules/spells/spell_types/taeclowndo.dm +++ b/code/modules/spells/spell_types/taeclowndo.dm @@ -42,6 +42,8 @@ return . = ..() + if(!.) + return new /obj/item/grown/bananapeel(target) /obj/effect/proc_holder/spell/aimed/banana_peel/update_icon() diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 14f359ef81..0be8cb9196 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -96,8 +96,7 @@ include_user = 1 cooldown_min = 200 //50 deciseconds reduction per rank - emp_heavy = 6 - emp_light = 10 + range = 14 sound = 'sound/magic/disable_tech.ogg' /obj/effect/proc_holder/spell/targeted/turf_teleport/blink diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 472734b74b..9ebcfe91d6 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -31,6 +31,7 @@ anchored = TRUE /obj/machinery/bsa/wrench_act(mob/living/user, obj/item/I) + ..() default_unfasten_wrench(user, I, 10) return TRUE @@ -142,17 +143,17 @@ /obj/machinery/bsa/full/proc/get_front_turf() switch(dir) if(WEST) - return locate(x - 6,y,z) + return locate(x - 7,y,z) if(EAST) - return locate(x + 4,y,z) + return locate(x + 7,y,z) return get_turf(src) /obj/machinery/bsa/full/proc/get_back_turf() switch(dir) if(WEST) - return locate(x + 4,y,z) + return locate(x + 5,y,z) if(EAST) - return locate(x - 6,y,z) + return locate(x - 5,y,z) return get_turf(src) /obj/machinery/bsa/full/proc/get_target_turf() @@ -169,11 +170,12 @@ switch(cannon_direction) if(WEST) setDir(WEST) - pixel_x = -192 top_layer.icon_state = "top_west" icon_state = "cannon_west" if(EAST) setDir(EAST) + pixel_x = -128 + bound_x = -128 top_layer.icon_state = "top_east" icon_state = "cannon_east" add_overlay(top_layer) @@ -211,6 +213,7 @@ message_admins("[ADMIN_LOOKUPFLW(user)] has launched an artillery strike targeting [ADMIN_VERBOSEJMP(bullseye)] but it was blocked by [blocker] at [ADMIN_VERBOSEJMP(target)].") log_game("[key_name(user)] has launched an artillery strike targeting [AREACOORD(bullseye)] but it was blocked by [blocker] at [AREACOORD(target)].") + /obj/machinery/bsa/full/proc/reload() ready = FALSE use_power(power_used_per_shot) @@ -293,15 +296,16 @@ /obj/machinery/computer/bsa_control/proc/get_target_name() if(istype(target, /area)) return get_area_name(target, TRUE) - else if(istype(target, /obj/item/gps)) - var/obj/item/gps/G = target + else if(istype(target, /datum/component/gps)) + var/datum/component/gps/G = target return G.gpstag /obj/machinery/computer/bsa_control/proc/get_impact_turf() if(istype(target, /area)) return pick(get_area_turfs(target)) - else if(istype(target, /obj/item/gps)) - return get_turf(target) + else if(istype(target, /datum/component/gps)) + var/datum/component/gps/G = target + return get_turf(G.parent) /obj/machinery/computer/bsa_control/proc/fire(mob/user) if(cannon.stat) diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 3d88282937..90f2185ce6 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -71,6 +71,8 @@ var/medium_burn_msg = "blistered" var/heavy_burn_msg = "peeling away" + var/render_like_organic = FALSE // forces limb to render as if it were an organic limb + /// The wounds currently afflicting this body part var/list/wounds @@ -355,7 +357,7 @@ else damage = min(damage, WOUND_MAX_CONSIDERED_DAMAGE) - var/base_roll = rand(max(damage/1.5,25), round(damage ** WOUND_DAMAGE_EXPONENT)) + var/base_roll = rand(max(damage/1.5,25), round(damage ** CONFIG_GET(number/wound_exponent))) + (get_damage()*CONFIG_GET(number/wound_damage_multiplier)) var/injury_roll = base_roll injury_roll += check_woundings_mods(woundtype, damage, wound_bonus, bare_wound_bonus) var/list/wounds_checking = GLOB.global_wound_types[woundtype] @@ -555,7 +557,7 @@ if(status == BODYPART_ORGANIC) icon = base_bp_icon || DEFAULT_BODYPART_ICON_ORGANIC else if(status == BODYPART_ROBOTIC) - icon = DEFAULT_BODYPART_ICON_ROBOTIC + icon = base_bp_icon || DEFAULT_BODYPART_ICON_ROBOTIC if(owner) owner.updatehealth() @@ -579,7 +581,7 @@ C = owner no_update = FALSE - if(HAS_TRAIT(C, TRAIT_HUSK) && is_organic_limb()) + if(HAS_TRAIT(C, TRAIT_HUSK) && (is_organic_limb() || render_like_organic)) species_id = "husk" //overrides species_id dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE @@ -598,7 +600,7 @@ var/datum/species/S = H.dna.species base_bp_icon = S?.icon_limbs || DEFAULT_BODYPART_ICON - species_id = S.limbs_id + species_id = S.mutant_bodyparts["limbs_id"] species_flags_list = H.dna.species.species_traits //body marking memes @@ -613,12 +615,14 @@ if(S.use_skintones) skin_tone = H.skin_tone - base_bp_icon = (base_bp_icon == DEFAULT_BODYPART_ICON) ? DEFAULT_BODYPART_ICON_ORGANIC : base_bp_icon else skin_tone = "" body_gender = H.dna.features["body_model"] - should_draw_gender = S.sexes + if(GLOB.nongendered_limb_types[species_id]) + should_draw_gender = FALSE + else + should_draw_gender = S.sexes var/mut_colors = (MUTCOLORS in S.species_traits) if(mut_colors) @@ -626,13 +630,9 @@ species_color = S.fixed_mut_color else species_color = H.dna.features["mcolor"] - base_bp_icon = (base_bp_icon == DEFAULT_BODYPART_ICON) ? DEFAULT_BODYPART_ICON_ORGANIC : base_bp_icon else species_color = "" - if(base_bp_icon != DEFAULT_BODYPART_ICON) - color_src = mut_colors ? MUTCOLORS : ((H.dna.skin_tone_override && S.use_skintones == USE_SKINTONES_GRAYSCALE_CUSTOM) ? CUSTOM_SKINTONE : SKINTONE) - if(S.mutant_bodyparts["legs"]) if(body_zone == BODY_ZONE_L_LEG || body_zone == BODY_ZONE_R_LEG) if(DIGITIGRADE in S.species_traits) @@ -652,11 +652,16 @@ body_markings = "plain" aux_marking = "plain" markings_color = list(colorlist) - else body_markings = null aux_marking = null + if(species_id in GLOB.greyscale_limb_types) //should they have greyscales? + base_bp_icon = DEFAULT_BODYPART_ICON_ORGANIC + + if(base_bp_icon != DEFAULT_BODYPART_ICON) + color_src = mut_colors ? MUTCOLORS : ((H.dna.skin_tone_override && S.use_skintones == USE_SKINTONES_GRAYSCALE_CUSTOM) ? CUSTOM_SKINTONE : SKINTONE) + if(!dropping_limb && H.dna.check_mutation(HULK)) mutation_color = "00aa00" else @@ -669,8 +674,9 @@ if(status == BODYPART_ROBOTIC) dmg_overlay_type = "robotic" - body_markings = null - aux_marking = null + if(!render_like_organic) + body_markings = null + aux_marking = null if(dropping_limb) no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner. @@ -736,7 +742,7 @@ if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST)) should_draw_gender = FALSE - if(is_organic_limb()) + if(is_organic_limb() || render_like_organic) limb.icon = base_bp_icon || 'icons/mob/human_parts.dmi' if(should_draw_gender) limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index fa003e3f3c..3038e32733 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -434,5 +434,8 @@ var/datum/scar/scaries = new var/datum/wound/loss/phantom_loss = new // stolen valor, really scaries.generate(L, phantom_loss) + if(HAS_TRAIT(src, ROBOTIC_LIMBS)) //Snowflake trait moment, but needed. + L.render_like_organic = TRUE + L.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) //Haha what if IPC-lings actually regenerated the right limbs instead of organic ones? That'd be pretty cool, right? L.attach_limb(src, 1) return TRUE diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 13b1140527..b6a0a387e2 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -180,13 +180,17 @@ . += lips_overlay // eyes - var/image/eyes_overlay = image('icons/mob/human_face.dmi', "eyes", -BODY_LAYER, SOUTH) - . += eyes_overlay - if(!eyes) - eyes_overlay.icon_state = "eyes_missing" - - else if(eyes.eye_color) - eyes_overlay.color = "#" + eyes.eye_color + if(eyes) + var/image/left_eye = image('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER, SOUTH) + var/image/right_eye = image('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER, SOUTH) + if(eyes.left_eye_color && eyes.right_eye_color) + left_eye.color = "#" + eyes.left_eye_color + right_eye.color = "#" + eyes.right_eye_color + . += left_eye + . += right_eye + else + var/eyes_overlay = image('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER, SOUTH) + . += eyes_overlay /obj/item/bodypart/head/monkey icon = 'icons/mob/animal_parts.dmi' diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index afaa66dae9..239bd8a98d 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -10,7 +10,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) - requires_bodypart_type = 0 + requires_bodypart_type = BODYPART_ORGANIC /datum/surgery_step/fix_brain name = "fix brain" implements = list(TOOL_HEMOSTAT = 85, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) //don't worry, pouring some alcohol on their open brain will get that chance to 100 diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index d1d478ddfe..69f5062032 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -3,6 +3,7 @@ steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/incise_heart, /datum/surgery_step/coronary_bypass, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) + requires_bodypart_type = BODYPART_ORGANIC /datum/surgery/coronary_bypass/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/heart/H = target.getorganslot(ORGAN_SLOT_HEART) diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 87e6d096b3..57803f7461 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -2,6 +2,7 @@ name = "dental implant" steps = list(/datum/surgery_step/drill, /datum/surgery_step/insert_pill) possible_locs = list(BODY_ZONE_PRECISE_MOUTH) + requires_bodypart_type = BODYPART_ORGANIC /datum/surgery_step/insert_pill name = "insert pill" diff --git a/code/modules/surgery/embalming.dm b/code/modules/surgery/embalming.dm index c6d2c72caa..a4494c606a 100644 --- a/code/modules/surgery/embalming.dm +++ b/code/modules/surgery/embalming.dm @@ -7,7 +7,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = 0 + requires_bodypart_type = BODYPART_ORGANIC /datum/surgery_step/embalming name = "embalming body" diff --git a/code/modules/surgery/emergency_cardioversion_recovery.dm b/code/modules/surgery/emergency_cardioversion_recovery.dm index 5df90c5e80..2508bf135f 100644 --- a/code/modules/surgery/emergency_cardioversion_recovery.dm +++ b/code/modules/surgery/emergency_cardioversion_recovery.dm @@ -3,6 +3,7 @@ steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/incise_heart, /datum/surgery_step/ventricular_electrotherapy, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) + requires_bodypart_type = BODYPART_ORGANIC /datum/surgery_step/ventricular_electrotherapy name = "ventricular electrotherapy" diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index 006dbe2af1..c26fda4158 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -3,7 +3,8 @@ steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/fix_eyes, /datum/surgery_step/close) target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_PRECISE_EYES) - requires_bodypart_type = 0 + requires_bodypart_type = BODYPART_ORGANIC + //fix eyes /datum/surgery_step/fix_eyes name = "fix eyes" diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index 0680dda404..f5b23e6087 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -8,7 +8,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = FALSE + requires_bodypart_type = BODYPART_ORGANIC replaced_by = /datum/surgery ignore_clothes = TRUE var/healing_step_type diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm index 5a0fd819f1..ecdc5477f1 100644 --- a/code/modules/surgery/lipoplasty.dm +++ b/code/modules/surgery/lipoplasty.dm @@ -2,10 +2,13 @@ name = "Lipoplasty" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/cut_fat, /datum/surgery_step/remove_fat, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) + requires_bodypart_type = BODYPART_ORGANIC + /datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(HAS_TRAIT(target, TRAIT_FAT)) return 1 return 0 + //cut fat /datum/surgery_step/cut_fat name = "cut excess fat" diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index 7ef7e4cd7f..34b40258c8 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -3,6 +3,7 @@ steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/lobectomy, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) + requires_bodypart_type = BODYPART_ORGANIC /datum/surgery/lobectomy/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/lungs/L = target.getorganslot(ORGAN_SLOT_LUNGS) diff --git a/code/modules/surgery/mechanic_steps.dm b/code/modules/surgery/mechanic_steps.dm index 9366e585c3..101be7f103 100644 --- a/code/modules/surgery/mechanic_steps.dm +++ b/code/modules/surgery/mechanic_steps.dm @@ -85,3 +85,107 @@ display_results(user, target, "You begin to open the hatch holders in [target]'s [parse_zone(target_zone)]...", "[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)].", "[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)].") + +//cut wires +/datum/surgery_step/cut_wires + name = "cut wires" + implements = list( + TOOL_WIRECUTTER = 100, + TOOL_SCALPEL = 75, + /obj/item/kitchen/knife = 50, + /obj/item = 10) // 10% success with any sharp item. + time = 24 + +/datum/surgery_step/cut_wires/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results(user, target, "You begin to cut loose wires in [target]'s [parse_zone(target_zone)]...", + "[user] begins to cut loose wires in [target]'s [parse_zone(target_zone)].", + "[user] begins to cut loose wires in [target]'s [parse_zone(target_zone)].") + +/datum/surgery_step/cut_wires/tool_check(mob/user, obj/item/tool) + if(implement_type == /obj/item && !tool.get_sharpness()) + return FALSE + return TRUE + +//pry off plating +/datum/surgery_step/pry_off_plating + name = "pry off plating" + implements = list( + TOOL_CROWBAR = 100, + TOOL_HEMOSTAT = 10) + time = 24 + +/datum/surgery_step/pry_off_plating/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + do_sparks(rand(5, 9), FALSE, target.loc) + return TRUE + +/datum/surgery_step/pry_off_plating/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results(user, target, "You begin to pry off [target]'s [parse_zone(target_zone)] plating...", + "[user] begins to pry off [target]'s [parse_zone(target_zone)] plating.", + "[user] begins to pry off [target]'s [parse_zone(target_zone)] plating.") + +//weld plating +/datum/surgery_step/weld_plating + name = "weld plating" + implements = list( + TOOL_WELDER = 100) + time = 24 + +/datum/surgery_step/weld_plating/tool_check(mob/user, obj/item/tool) + if(implement_type == TOOL_WELDER && !tool.use_tool(user, user, 0, volume=50, amount=1)) + return FALSE + return TRUE + +/datum/surgery_step/weld_plating/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results(user, target, "You begin to weld [target]'s [parse_zone(target_zone)] plating...", + "[user] begins to weld [target]'s [parse_zone(target_zone)] plating.", + "[user] begins to weld [target]'s [parse_zone(target_zone)] plating.") + +//replace wires +/datum/surgery_step/replace_wires + name = "replace wires" + implements = list(/obj/item/stack/cable_coil = 100) + time = 24 + var/cableamount = 5 + +/datum/surgery_step/replace_wires/tool_check(mob/user, obj/item/tool) + var/obj/item/stack/cable_coil/coil = tool + if(coil.get_amount() < cableamount) + to_chat(user, "Not enough cable!") + return FALSE + return TRUE + +/datum/surgery_step/replace_wires/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + var/obj/item/stack/cable_coil/coil = tool + if(coil && !(coil.get_amount()You begin to replace [target]'s [parse_zone(target_zone)] wiring...", + "[user] begins to replace [target]'s [parse_zone(target_zone)] wiring.", + "[user] begins to replace [target]'s [parse_zone(target_zone)] wiring.") + +//add plating +/datum/surgery_step/add_plating + name = "add plating" + implements = list(/obj/item/stack/sheet/metal = 100) + time = 24 + var/metalamount = 5 + +/datum/surgery_step/add_plating/tool_check(mob/user, obj/item/tool) + var/obj/item/stack/sheet/metal/plat = tool + if(plat.get_amount() < metalamount) + to_chat(user, "Not enough metal!") + return FALSE + return TRUE + +/datum/surgery_step/add_plating/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + var/obj/item/stack/sheet/metal/plat = tool + if(plat && !(plat.get_amount()You begin to add plating to [target]'s [parse_zone(target_zone)]...", + "[user] begins to add plating to [target]'s [parse_zone(target_zone)].", + "[user] begins to add plating to [target]'s [parse_zone(target_zone)].") \ No newline at end of file diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index 4ce51ae119..85b400d2da 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -2,6 +2,7 @@ name = "organ manipulation" target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD) + requires_bodypart_type = BODYPART_ORGANIC requires_real_bodypart = 1 steps = list( /datum/surgery_step/incise, diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index b42770723b..e3c32ad009 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -306,3 +306,69 @@ var/obj/item/assembly/flash/armimplant/F = new(src) items_list += F F.I = src + +///////////////// + + +//IPC/Synth Arm// + + +///////////////// + +/obj/item/organ/cyberimp/arm/power_cord + name = "power cord implant" + desc = "An internal power cord hooked up to a battery. Useful if you run on volts." + contents = newlist(/obj/item/apc_powercord) + zone = "l_arm" + +/obj/item/apc_powercord + name = "power cord" + desc = "An internal power cord hooked up to a battery. Useful if you run on electricity. Not so much otherwise." + icon = 'icons/obj/power.dmi' + icon_state = "wire1" + +/obj/item/apc_powercord/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!istype(target, /obj/machinery/power/apc) || !ishuman(user) || !proximity_flag) + return ..() + user.DelayNextAction(CLICK_CD_MELEE) + var/obj/machinery/power/apc/A = target + var/mob/living/carbon/human/H = user + var/obj/item/organ/stomach/ipc/cell = locate(/obj/item/organ/stomach/ipc) in H.internal_organs + if(!cell) + to_chat(H, "You try to siphon energy from the [A], but your power cell is gone!") + return + + if(A.cell && A.cell.charge > 0) + if(H.nutrition >= NUTRITION_LEVEL_WELL_FED) + to_chat(user, "You are already fully charged!") + return + else + powerdraw_loop(A, H) + return + + to_chat(user, "There is no charge to draw from that APC.") + +/obj/item/apc_powercord/proc/powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H) + H.visible_message("[H] inserts a power connector into the [A].", "You begin to draw power from the [A].") + while(do_after(H, 10, target = A)) + if(loc != H) + to_chat(H, "You must keep your connector out while charging!") + break + if(A.cell.charge == 0) + to_chat(H, "The [A] doesn't have enough charge to spare.") + break + A.charging = 1 + if(A.cell.charge >= 500) + do_sparks(1, FALSE, A) + H.nutrition += 50 + A.cell.charge -= 150 + to_chat(H, "You siphon off some of the stored charge for your own use.") + else + H.nutrition += A.cell.charge/10 + A.cell.charge = 0 + to_chat(H, "You siphon off as much as the [A] can spare.") + break + if(H.nutrition > NUTRITION_LEVEL_WELL_FED) + to_chat(H, "You are now fully charged.") + break + H.visible_message("[H] unplugs from the [A].", "You unplug from the [A].") diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index fcc3f71b8b..ea8c188346 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -33,10 +33,9 @@ . = ..() if(!owner || . & EMP_PROTECT_SELF) return - owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount / severity) + owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount * severity/100) to_chat(owner, "You feel like your insides are burning.") - /obj/item/organ/cyberimp/chest/nutriment/plus name = "Nutriment pump implant PLUS" desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are hungry." @@ -115,10 +114,10 @@ if(ishuman(owner)) var/mob/living/carbon/human/H = owner - if(H.stat != DEAD && prob(50 / severity) && H.can_heartattack()) + if(H.stat != DEAD && prob(severity/2) && H.can_heartattack()) H.set_heartattack(TRUE) to_chat(H, "You feel a horrible agony in your chest!") - addtimer(CALLBACK(src, .proc/undo_heart_attack), 60 SECONDS / severity) + addtimer(CALLBACK(src, .proc/undo_heart_attack), (60 * severity/100) SECONDS) /obj/item/organ/cyberimp/chest/reviver/proc/undo_heart_attack() var/mob/living/carbon/human/H = owner diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 6705b4c7b4..5861f0e48b 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -34,11 +34,10 @@ . = ..() if(!owner || . & EMP_PROTECT_SELF) return - var/stun_amount = 200/severity + var/stun_amount = 2*severity owner.Stun(stun_amount) to_chat(owner, "Your body seizes up!") - /obj/item/organ/cyberimp/brain/anti_drop name = "anti-drop implant" desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle." @@ -68,12 +67,11 @@ release_items() to_chat(owner, "Your hands relax...") - /obj/item/organ/cyberimp/brain/anti_drop/emp_act(severity) . = ..() if(!owner || . & EMP_PROTECT_SELF) return - var/range = severity ? 10 : 5 + var/range = severity/10 var/atom/A if(active) release_items() @@ -114,7 +112,7 @@ return crit_fail = TRUE organ_flags |= ORGAN_FAILING - addtimer(CALLBACK(src, .proc/reboot), 90 / severity) + addtimer(CALLBACK(src, .proc/reboot), 0.9 * severity) /obj/item/organ/cyberimp/brain/anti_stun/proc/reboot() crit_fail = FALSE @@ -136,6 +134,6 @@ . = ..() if(!owner || . & EMP_PROTECT_SELF) return - if(prob(60/severity)) + if(prob(0.6*severity)) to_chat(owner, "Your breathing tube suddenly closes!") owner.losebreath += 2 diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index c1e33c7dac..3787d4e781 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -131,4 +131,31 @@ . = ..() if(. & EMP_PROTECT_SELF) return - damage += 40/severity + damage += 0.15 * severity + +/obj/item/organ/ears/ipc + name = "auditory sensors" + icon_state = "ears-c" + desc = "A pair of microphones intended to be installed in an IPC head, that grant the ability to hear." + zone = BODY_ZONE_HEAD + slot = ORGAN_SLOT_EARS + gender = PLURAL + organ_flags = ORGAN_SYNTHETIC + +/obj/item/organ/ears/ipc/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + to_chat(owner, "Alert: Auditory systems corrupted!.") + switch(severity) + if(1) + owner.Jitter(30) + owner.Dizzy(30) + owner.DefaultCombatKnockdown(80) + deaf = 30 + + if(2) + owner.Jitter(15) + owner.Dizzy(15) + owner.DefaultCombatKnockdown(40) + damage += 0.15 * severity diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 049fc5b5d4..efceefc131 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -26,8 +26,10 @@ var/sight_flags = 0 var/see_in_dark = 2 var/tint = 0 - var/eye_color = "" //set to a hex code to override a mob's eye color - var/old_eye_color = "fff" + var/left_eye_color = "" //set to a hex code to override a mob's eye color + var/right_eye_color = "" + var/old_left_eye_color = "fff" + var/old_right_eye_color = "fff" var/flash_protect = 0 var/see_invisible = SEE_INVISIBLE_LIVING var/lighting_alpha @@ -44,11 +46,19 @@ owner.become_blind(EYE_DAMAGE) if(ishuman(owner)) var/mob/living/carbon/human/H = owner - old_eye_color = H.eye_color - if(eye_color) - H.eye_color = eye_color + old_left_eye_color = H.left_eye_color + old_right_eye_color = H.right_eye_color + + if(left_eye_color) + H.left_eye_color = left_eye_color else - eye_color = H.eye_color + left_eye_color = H.left_eye_color + + if(right_eye_color) + H.right_eye_color = right_eye_color + else + right_eye_color = H.right_eye_color + if(!special) H.dna?.species?.handle_body(H) //regenerate eyeballs overlays. M.update_tint() @@ -64,9 +74,10 @@ C.clear_fullscreen("eye_damage") if(BLIND_VISION_THREE) C.cure_blind(EYE_DAMAGE) - if(ishuman(C) && eye_color) + if(ishuman(C) && left_eye_color && right_eye_color) var/mob/living/carbon/human/H = C - H.eye_color = old_eye_color + H.left_eye_color = old_left_eye_color + H.right_eye_color = old_right_eye_color if(!special) H.dna.species.handle_body(H) if(!special) @@ -155,21 +166,23 @@ return to_chat(owner, "Static obfuscates your vision!") owner.flash_act(visual = 1) - if(severity == EMP_HEAVY) + if(severity >= 70) owner.adjustOrganLoss(ORGAN_SLOT_EYES, 20) /obj/item/organ/eyes/robotic/xray name = "\improper X-ray eyes" desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile." - eye_color = "000" + left_eye_color = "000" + right_eye_color = "000" see_in_dark = 8 sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS /obj/item/organ/eyes/robotic/thermals name = "thermal eyes" desc = "These cybernetic eye implants will give you thermal vision. Vertical slit pupil included." - eye_color = "FC0" + left_eye_color = "FC0" + right_eye_color = "FC0" sight_flags = SEE_MOBS lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE flash_protect = -1 @@ -178,7 +191,8 @@ /obj/item/organ/eyes/robotic/flashlight name = "flashlight eyes" desc = "It's two flashlights rigged together with some wire. Why would you put these in someone's head?" - eye_color ="fee5a3" + left_eye_color ="fee5a3" + right_eye_color ="fee5a3" icon = 'icons/obj/lighting.dmi' icon_state = "flashlight_eyes" flash_protect = 2 @@ -219,7 +233,8 @@ /obj/item/organ/eyes/robotic/glow name = "High Luminosity Eyes" desc = "Special glowing eyes, used by snowflakes who want to be special." - eye_color = "000" + left_eye_color = "000" + right_eye_color = "000" actions_types = list(/datum/action/item_action/organ_action/use, /datum/action/item_action/organ_action/toggle) var/current_color_string = "#ffffff" var/active = FALSE @@ -272,14 +287,26 @@ set_distance(clamp(range, 0, max_light_beam_distance)) assume_rgb(C) +#define MAX_SATURATION 192 +#define MAX_LIGHTNESS 256 + /obj/item/organ/eyes/robotic/glow/proc/assume_rgb(newcolor) - current_color_string = newcolor - eye_color = RGB2EYECOLORSTRING(current_color_string) + var/current_color = RGB2EYECOLORSTRING(newcolor) + left_eye_color = current_color + right_eye_color = current_color + var/list/hsv = ReadHSV(RGBtoHSV(newcolor)) + hsv[2] = clamp(hsv[2], 0, MAX_SATURATION) + hsv[3] = clamp(hsv[3], 0, MAX_LIGHTNESS) + var/new_hsv = hsv(hsv[1], hsv[2], hsv[3]) + current_color_string = HSVtoRGB(new_hsv) sync_light_effects() cycle_mob_overlay() if(!QDELETED(owner) && ishuman(owner)) //Other carbon mobs don't have eye color. owner.dna.species.handle_body(owner) +#undef MAX_SATURATION +#undef MAX_LIGHTNESS + /obj/item/organ/eyes/robotic/glow/proc/cycle_mob_overlay() remove_mob_overlay() mob_overlay.color = current_color_string @@ -394,6 +421,15 @@ name = "ipc eyes" icon_state = "cybernetic_eyeballs" +/obj/item/organ/eyes/ipc/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + to_chat(owner, "Alert: Perception visuals damaged!") + owner.flash_act(visual = 1) + if(severity >= 70) + owner.adjustOrganLoss(ORGAN_SLOT_EYES, 20) + #undef BLURRY_VISION_ONE #undef BLURRY_VISION_TWO -#undef BLIND_VISION_THREE \ No newline at end of file +#undef BLIND_VISION_THREE diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index e251abfd35..25b7e8fa48 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -198,8 +198,8 @@ obj/item/organ/heart/slime if(. & EMP_PROTECT_SELF) return Stop() - addtimer(CALLBACK(src, .proc/Restart), 20/severity SECONDS) - damage += 100/severity + addtimer(CALLBACK(src, .proc/Restart), 0.2*severity SECONDS) + damage += severity /obj/item/organ/heart/cybernetic/upgraded name = "upgraded cybernetic heart" diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index f0f98a5fa5..69633c54df 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -112,8 +112,4 @@ . = ..() if(. & EMP_PROTECT_SELF) return - switch(severity) - if(1) - damage+=100 - if(2) - damage+=50 + damage += severity diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index e34fd8e8a9..953c8b2c1b 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -36,6 +36,10 @@ var/safe_co2_max = 10 // Yes it's an arbitrary value who cares? var/safe_toxins_min = 0 var/safe_toxins_max = MOLES_GAS_VISIBLE + var/safe_ch3br_min = 0 + var/safe_ch3br_max = 1 //problematic even at low concentrations + var/safe_methane_min = 0 + var/safe_methane_max = 0 var/SA_para_min = 1 //Sleeping agent var/SA_sleep_min = 5 //Sleeping agent var/BZ_trip_balls_min = 1 //BZ gas @@ -53,6 +57,9 @@ var/tox_breath_dam_min = MIN_TOXIC_GAS_DAMAGE var/tox_breath_dam_max = MAX_TOXIC_GAS_DAMAGE var/tox_damage_type = TOX + var/methane_breath_dam_min = MIN_TOXIC_GAS_DAMAGE + var/methane_breath_dam_max = MAX_TOXIC_GAS_DAMAGE + var/methane_damage_type = OXY var/cold_message = "your face freezing and an icicle forming" var/cold_level_1_threshold = 260 @@ -129,6 +136,8 @@ H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else if(safe_nitro_min) H.throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro) + else if(safe_ch3br_min) + H.throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br) return FALSE var/gas_breathed = 0 @@ -138,6 +147,8 @@ var/N2_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/nitrogen)) var/Toxins_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/plasma)) var/CO2_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/carbon_dioxide)) + var/CH4_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/methane)) + var/CH3Br_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/methyl_bromide)) //-- OXY --// @@ -278,6 +289,58 @@ breath.adjust_moles(/datum/gas/carbon_dioxide, gas_breathed) gas_breathed = 0 +//-- METHANE --// + + //Too much methane! + if(safe_methane_max) + if(CH4_pp > safe_methane_max) //Same effect as excess nitrogen, generally nontoxic + var/ratio = (breath.get_moles(/datum/gas/methane)/safe_methane_max) * 10 + H.apply_damage_type(clamp(ratio, methane_breath_dam_min, methane_breath_dam_max), methane_damage_type) + H.throw_alert("too_much_ch4", /obj/screen/alert/too_much_ch4) + H.losebreath += 2 + else + H.clear_alert("too_much_ch4") + //Too little methane! + if(safe_methane_min) + if(CH4_pp < safe_methane_min) + gas_breathed = handle_too_little_breath(H, CH4_pp, safe_methane_min, breath.get_moles(/datum/gas/methane)) + H.throw_alert("not_enough_ch4", /obj/screen/alert/not_enough_ch4) + else + H.failed_last_breath = FALSE + if(H.health >= H.crit_threshold) + H.adjustOxyLoss(-breathModifier) + gas_breathed = breath.get_moles(/datum/gas/methane) + H.clear_alert("not_enough_ch4") + + //Exhale + breath.adjust_moles(/datum/gas/methane, -gas_breathed) + breath.adjust_moles(/datum/gas/methyl_bromide, gas_breathed) + gas_breathed = 0 + +//-- CH3BR --// + + //Too much methyl bromide! + if(safe_ch3br_max) + if(CH3Br_pp > safe_ch3br_max) + if(prob(CH3Br_pp/0.5)) + H.adjustOrganLoss(ORGAN_SLOT_LUNGS, 3, 150) //Inhaling this is a bad idea + if(prob(CH3Br_pp/2)) + to_chat(H, "Your throat closes up!") + H.silent = max(H.silent, 3) + H.throw_alert("too_much_ch3br", /obj/screen/alert/too_much_ch3br) + else + H.clear_alert("too_much_ch3br") + //Too little methyl bromide! + if(safe_ch3br_min) + if(CH3Br_pp < safe_ch3br_min) + gas_breathed = handle_too_little_breath(H, CH3Br_pp, safe_ch3br_min, breath.get_moles(/datum/gas/methyl_bromide)) + H.throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br) + else + H.failed_last_breath = FALSE + if(H.health >= H.crit_threshold) + H.adjustOxyLoss(-breathModifier) + gas_breathed = breath.get_moles(/datum/gas/methyl_bromide) + H.clear_alert("not_enough_ch3br") //-- TRACES --// @@ -458,9 +521,20 @@ failed = FALSE /obj/item/organ/lungs/ipc - name = "ipc lungs" + name = "ipc cooling system" icon_state = "lungs-c" +/obj/item/organ/lungs/ipc/emp_act(severity) //Should probably put it somewhere else later + . = ..() + if(. & EMP_PROTECT_SELF) + return + to_chat(owner, "Alert: Critical cooling system failure!") + switch(severity) + if(1) + owner.adjust_bodytemperature(100*TEMPERATURE_DAMAGE_COEFFICIENT) + if(2) + owner.adjust_bodytemperature(30*TEMPERATURE_DAMAGE_COEFFICIENT) + /obj/item/organ/lungs/plasmaman name = "plasma filter" desc = "A spongy rib-shaped mass for filtering plasma from the air." @@ -487,7 +561,6 @@ owner.losebreath = 20 owner.adjustOrganLoss(ORGAN_SLOT_LUNGS, 25) - /obj/item/organ/lungs/cybernetic/upgraded name = "upgraded cybernetic lungs" desc = "A more advanced version of the stock cybernetic lungs. They are capable of filtering out lower levels of toxins and carbon dioxide." diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm old mode 100755 new mode 100644 index 44b4f6362a..cabe49db25 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -89,9 +89,20 @@ desc = "A strange crystal that is responsible for metabolizing the unseen energy force that feeds plasmamen." /obj/item/organ/stomach/ipc - name = "ipc stomach" + name = "ipc cell" icon_state = "stomach-ipc" +/obj/item/organ/stomach/ipc/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + switch(severity) + if(1) + owner.nutrition = min(owner.nutrition - 50, 0) + to_chat(owner, "Alert: Detected severe battery discharge!") + if(2) + owner.nutrition = min(owner.nutrition - 100, 0) + to_chat(owner, "Alert: Minor battery discharge!") /obj/item/organ/stomach/ethereal name = "biological battery" diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 7090ab62e2..929b42f96d 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -11,7 +11,8 @@ var/say_mod = null var/taste_sensitivity = 15 // lower is more sensitive. maxHealth = TONGUE_MAX_HEALTH - var/modifies_speech = FALSE + var/list/initial_accents //the ones the tongue starts with, not what it currently has + var/list/accents = list() //done in order of priority (please always apply abductor accent and stuttering last) var/static/list/languages_possible_base = typecacheof(list( /datum/language/common, /datum/language/draconic, @@ -30,6 +31,8 @@ /obj/item/organ/tongue/Initialize(mapload) . = ..() + for(var/accent in initial_accents) + accents += new accent low_threshold_passed = "Your [name] feels a little sore." low_threshold_cleared = "Your [name] soreness has subsided." high_threshold_passed = "Your [name] is really starting to hurt." @@ -38,12 +41,13 @@ now_fixed = "The excruciating pain of your [name] has subsided." languages_possible = languages_possible_base -/obj/item/organ/tongue/proc/handle_speech(datum/source, list/speech_args) - return +/obj/item/organ/tongue/proc/handle_speech(datum/source, list/speech_args) //this wont proc unless there's initial_accents on the tongue + for(var/datum/accent/speech_modifier in accents) + speech_args = speech_modifier.modify_speech(speech_args, source, owner) /obj/item/organ/tongue/applyOrganDamage(d, maximum = maxHealth) . = ..() - if (damage >= maxHealth) + if(damage >= maxHealth) to_chat(owner, "Your tongue is singed beyond recognition, and disintegrates!") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Tongues lost to Fermi") qdel(src) @@ -52,7 +56,7 @@ ..() if(say_mod && M.dna && M.dna.species) M.dna.species.say_mod = say_mod - if (modifies_speech) + if(length(initial_accents) || length(accents)) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) M.UnregisterSignal(M, COMSIG_MOB_SAY) @@ -74,16 +78,7 @@ say_mod = "hisses" taste_sensitivity = 10 // combined nose + tongue, extra sensitive maxHealth = 40 //extra sensitivity means tongue is more susceptible to damage - modifies_speech = TRUE - -/obj/item/organ/tongue/lizard/handle_speech(datum/source, list/speech_args) - var/static/regex/lizard_hiss = new("s+", "g") - var/static/regex/lizard_hiSS = new("S+", "g") - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = lizard_hiss.Replace(message, "sss") - message = lizard_hiSS.Replace(message, "SSS") - speech_args[SPEECH_MESSAGE] = message + initial_accents = list(/datum/accent/lizard) /obj/item/organ/tongue/fly name = "proboscis" @@ -92,16 +87,7 @@ say_mod = "buzzes" taste_sensitivity = 25 // you eat vomit, this is a mercy maxHealth = 80 //years of eatting trash has made your tongue strong - modifies_speech = TRUE - -/obj/item/organ/tongue/fly/handle_speech(datum/source, list/speech_args) - var/static/regex/fly_buzz = new("z+", "g") - var/static/regex/fly_buZZ = new("Z+", "g") - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = fly_buzz.Replace(message, "zzz") - message = fly_buZZ.Replace(message, "ZZZ") - speech_args[SPEECH_MESSAGE] = message + initial_accents = list(/datum/accent/fly) /obj/item/organ/tongue/abductor name = "superlingual matrix" @@ -110,7 +96,7 @@ say_mod = "gibbers" taste_sensitivity = 101 // ayys cannot taste anything. maxHealth = 120 //Ayys probe a lot - modifies_speech = TRUE + initial_accents = list(/datum/accent/abductor) var/mothership /obj/item/organ/tongue/abductor/attack_self(mob/living/carbon/human/H) @@ -138,26 +124,6 @@ else . += "It is attuned to [mothership]." -/obj/item/organ/tongue/abductor/handle_speech(datum/source, list/speech_args) - //Hacks - var/message = speech_args[SPEECH_MESSAGE] - var/mob/living/carbon/human/user = source - var/rendered = "[user.name]: [message]" - user.log_talk(message, LOG_SAY, tag="abductor") - for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) - var/obj/item/organ/tongue/T = H.getorganslot(ORGAN_SLOT_TONGUE) - if(!T || T.type != type) - continue - if(H.dna && H.dna.species.id == "abductor" && user.dna && user.dna.species.id == "abductor") - var/datum/antagonist/abductor/A = user.mind.has_antag_datum(/datum/antagonist/abductor) - if(!A || !(H.mind in A.team.members)) - continue - to_chat(H, rendered) - for(var/mob/M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, user) - to_chat(M, "[link] [rendered]") - speech_args[SPEECH_MESSAGE] = "" - /obj/item/organ/tongue/zombie name = "rotting tongue" desc = "Between the decay and the fact that it's just lying there you doubt a tongue has ever seemed less sexy." @@ -165,23 +131,7 @@ say_mod = "moans" taste_sensitivity = 32 maxHealth = 65 //Stop! It's already dead...! - modifies_speech = TRUE - -/obj/item/organ/tongue/zombie/handle_speech(datum/source, list/speech_args) - var/list/message_list = splittext(speech_args[SPEECH_MESSAGE], " ") - var/maxchanges = max(round(message_list.len / 1.5), 2) - - for(var/i = rand(maxchanges / 2, maxchanges), i > 0, i--) - var/insertpos = rand(1, message_list.len - 1) - var/inserttext = message_list[insertpos] - - if(!(copytext(inserttext, -3) == "..."))//3 == length("...") - message_list[insertpos] = inserttext + "..." - - if(prob(20) && message_list.len > 3) - message_list.Insert(insertpos, "[pick("BRAINS", "Brains", "Braaaiinnnsss", "BRAAAIIINNSSS")]...") - - speech_args[SPEECH_MESSAGE] = jointext(message_list, " ") + initial_accents = list(/datum/accent/zombie) /obj/item/organ/tongue/alien name = "alien tongue" @@ -190,7 +140,7 @@ say_mod = "hisses" taste_sensitivity = 10 // LIZARDS ARE ALIENS CONFIRMED maxHealth = 500 //They've a little mouth for a tongue, so it's pretty rhobust - modifies_speech = TRUE // not really, they just hiss + initial_accents = list(/datum/accent/alien) var/static/list/languages_possible_alien = typecacheof(list( /datum/language/xenocommon, /datum/language/common, @@ -202,9 +152,6 @@ . = ..() languages_possible = languages_possible_alien -/obj/item/organ/tongue/alien/handle_speech(datum/source, list/speech_args) - playsound(owner, "hiss", 25, 1, 1) - /obj/item/organ/tongue/bone name = "bone \"tongue\"" desc = "Apparently skeletons alter the sounds they produce through oscillation of their teeth, hence their characteristic rattling." @@ -214,14 +161,13 @@ attack_verb = list("bitten", "chattered", "chomped", "enamelled", "boned") taste_sensitivity = 101 // skeletons cannot taste anything maxHealth = 75 //Take brute damage instead - modifies_speech = TRUE var/chattering = FALSE var/phomeme_type = "sans" - var/list/phomeme_types = list("sans", "papyrus") + var/list/phomeme_types = list(/datum/accent/span/sans, /datum/accent/span/papyrus) /obj/item/organ/tongue/bone/Initialize() + initial_accents += pick(phomeme_types) . = ..() - phomeme_type = pick(phomeme_types) /obj/item/organ/tongue/bone/applyOrganDamage(var/d, var/maximum = maxHealth) if(d < 0) @@ -234,19 +180,14 @@ return /obj/item/organ/tongue/bone/handle_speech(datum/source, list/speech_args) - if (chattering) + if(chattering) chatter(speech_args[SPEECH_MESSAGE], phomeme_type, source) - switch(phomeme_type) - if("sans") - speech_args[SPEECH_SPANS] |= SPAN_SANS - if("papyrus") - speech_args[SPEECH_SPANS] |= SPAN_PAPYRUS + ..() /obj/item/organ/tongue/bone/plasmaman name = "plasma bone \"tongue\"" desc = "Like animated skeletons, Plasmamen vibrate their teeth in order to produce speech." icon_state = "tongueplasma" - modifies_speech = FALSE /obj/item/organ/tongue/robot name = "robotic voicebox" @@ -256,7 +197,7 @@ icon_state = "tonguerobot" say_mod = "states" attack_verb = list("beeped", "booped") - modifies_speech = TRUE + initial_accents = list(/datum/accent/span/robot) taste_sensitivity = 25 // not as good as an organic tongue maxHealth = 100 //RoboTongue! var/electronics_magic = TRUE @@ -264,34 +205,19 @@ /obj/item/organ/tongue/robot/could_speak_language(language) return ..() || electronics_magic -/obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args) - speech_args[SPEECH_SPANS] |= SPAN_ROBOT - /obj/item/organ/tongue/fluffy name = "fluffy tongue" desc = "OwO what's this?" icon_state = "tonguefluffy" taste_sensitivity = 10 // extra sensitive and inquisitive uwu maxHealth = 35 //Sensitive tongue! - modifies_speech = TRUE - -/obj/item/organ/tongue/fluffy/handle_speech(datum/source, list/speech_args) - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = replacetext(message, "ne", "nye") - message = replacetext(message, "nu", "nyu") - message = replacetext(message, "na", "nya") - message = replacetext(message, "no", "nyo") - message = replacetext(message, "ove", "uv") - message = replacetext(message, "l", "w") - message = replacetext(message, "r", "w") - message = lowertext(message) - speech_args[SPEECH_MESSAGE] = message + initial_accents = list(/datum/accent/fluffy) /obj/item/organ/tongue/cybernetic name = "cybernetic tongue" desc = "A state of the art robotic tongue that can detect the pH of anything drank." icon_state = "tonguecybernetic" + initial_accents = list(/datum/accent/span/robot) taste_sensitivity = 10 maxHealth = 60 //It's robotic! organ_flags = ORGAN_SYNTHETIC @@ -303,9 +229,6 @@ var/errormessage = list("Runtime in tongue.dm, line 39: Undefined operation \"zapzap ow my tongue\"", "afhsjifksahgjkaslfhashfjsak", "-1.#IND", "Graham's number", "inside you all along", "awaiting at least 1 approving review before merging this taste request") owner.say("The pH is appropriately [pick(errormessage)].", forced = "EMPed synthetic tongue") -/obj/item/organ/tongue/cybernetic/handle_speech(datum/source, list/speech_args) - speech_args[SPEECH_SPANS] |= SPAN_ROBOT - /obj/item/organ/tongue/robot/ipc name = "positronic voicebox" say_mod = "beeps" diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index c4e056583c..d3597ba516 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -2,6 +2,8 @@ name = "Plastic surgery" steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/reshape_face, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_HEAD) + requires_bodypart_type = BODYPART_ORGANIC + //reshape_face /datum/surgery_step/reshape_face name = "reshape face" diff --git a/code/modules/surgery/robot_brain_surgery.dm b/code/modules/surgery/robot_brain_surgery.dm new file mode 100644 index 0000000000..5feca7382f --- /dev/null +++ b/code/modules/surgery/robot_brain_surgery.dm @@ -0,0 +1,51 @@ +/datum/surgery/robot_brain_surgery + name = "Reset posibrain logic (Brain surgery)" + steps = list( + /datum/surgery_step/mechanic_open, + /datum/surgery_step/mechanic_unwrench, + /datum/surgery_step/pry_off_plating, + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/fix_robot_brain, + /datum/surgery_step/mechanic_close) + + target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) + possible_locs = list(BODY_ZONE_HEAD) + requires_bodypart_type = BODYPART_ROBOTIC + desc = "A surgical procedure that restores the default behavior logic and personality matrix of an IPC posibrain." + +/datum/surgery_step/fix_robot_brain + name = "fix posibrain (multitool)" + implements = list(TOOL_MULTITOOL = 100, TOOL_HEMOSTAT = 35, TOOL_SCREWDRIVER = 15) + time = 120 //long and complicated + +/datum/surgery/robot_brain_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) + var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) + if(!B) + return FALSE + return TRUE + +/datum/surgery_step/fix_robot_brain/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results(user, target, "You begin to fix [target]'s posibrain...", + "[user] begins to fix [target]'s posibrain.", + "[user] begins to perform surgery on [target]'s posibrain.") + +/datum/surgery_step/fix_robot_brain/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results(user, target, "You succeed in fixing [target]'s posibrain.", + "[user] successfully fixes [target]'s posibrain!", + "[user] completes the surgery on [target]'s posibrain.") + if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) + target.mind.remove_antag_datum(/datum/antagonist/brainwashed) + target.setOrganLoss(ORGAN_SLOT_BRAIN, target.getOrganLoss(ORGAN_SLOT_BRAIN) - 60) //we set damage in this case in order to clear the "failing" flag + target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) //Lobotomy tier fix cause you can't clone this! + return TRUE + +/datum/surgery_step/fix_robot_brain/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(target.getorganslot(ORGAN_SLOT_BRAIN)) + display_results(user, target, "You screw up, causing more damage!", + "[user] screws up, causing damage to the circuits!", + "[user] completes the surgery on [target]'s posibrain.") + target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60) + target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) + else + user.visible_message("[user] suddenly notices that the posibrain [user.p_they()] [user.p_were()] working on is not there anymore.", "You suddenly notice that the posibrain you were working on is not there anymore.") + return FALSE diff --git a/code/modules/surgery/robot_healing.dm b/code/modules/surgery/robot_healing.dm new file mode 100644 index 0000000000..6355410a79 --- /dev/null +++ b/code/modules/surgery/robot_healing.dm @@ -0,0 +1,125 @@ +//Almost copypaste of tend wounds, with some changes + +/datum/surgery/robot_healing + name = "Repair robotic limbs (basic)" + desc = "A surgical procedure that provides repairs and maintenance to robotic limbs. Is slightly more efficient when the patient is severely damaged." + + steps = list(/datum/surgery_step/mechanic_open, + /datum/surgery_step/pry_off_plating, + /datum/surgery_step/cut_wires, + /datum/surgery_step/robot_heal, + /datum/surgery_step/mechanic_close) + + target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) + possible_locs = list(BODY_ZONE_CHEST) + requires_bodypart_type = BODYPART_ROBOTIC + ignore_clothes = TRUE + var/antispam = FALSE + var/healing_step_type = /datum/surgery_step/robot_heal/basic + +/datum/surgery/robot_healing/New(surgery_target, surgery_location, surgery_bodypart) + ..() + if(healing_step_type) + steps = list(/datum/surgery_step/mechanic_open, + /datum/surgery_step/pry_off_plating, + /datum/surgery_step/cut_wires, + healing_step_type, + /datum/surgery_step/mechanic_close) + +/datum/surgery_step/robot_heal + name = "repair body (welder/cable)" + implements = list(TOOL_WELDER = 100, /obj/item/stack/cable_coil = 100) + repeatable = TRUE + time = 15 + var/healsbrute = FALSE + var/healsburn = FALSE + var/brutehealing = 0 + var/burnhealing = 0 + var/missinghpbonus = 0 //heals an extra point of damager per X missing damage of type (burn damage for burn healing, brute for brute). Smaller Number = More Healing! + +/datum/surgery_step/robot_heal/tool_check(mob/user, obj/item/tool) + if(implement_type == TOOL_WELDER && !tool.tool_use_check(user, 1)) + return FALSE + return TRUE + +/datum/surgery_step/robot_heal/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + var/woundtype + if(implement_type == TOOL_WELDER) + healsbrute = TRUE + healsburn = FALSE + woundtype = "dents" + else + healsbrute = FALSE + healsburn = TRUE + woundtype = "wiring" + + if(istype(surgery,/datum/surgery/robot_healing)) + var/datum/surgery/robot_healing/the_surgery = surgery + if(!the_surgery.antispam) + display_results(user, target, "You attempt to fix some of [target]'s [woundtype].", + "[user] attempts to fix some of [target]'s [woundtype].", + "[user] attempts to fix some of [target]'s [woundtype].") + +/datum/surgery_step/robot_heal/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE) + if(..()) + while((healsbrute && target.getBruteLoss() && tool.tool_use_check(user,1)) || (healsburn && target.getFireLoss() && tool)) + if(!..()) + break + +/datum/surgery_step/robot_heal/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + var/umsg = "You succeed in fixing some of [target]'s damage" //no period, add initial space to "addons" + var/tmsg = "[user] fixes some of [target]'s damage" //see above + var/urhealedamt_brute = 0 + if(healsbrute) + urhealedamt_brute = brutehealing + tool.use_tool(target, user, 0, volume=50, amount=1) + var/urhealedamt_burn = 0 + if(healsburn) + urhealedamt_burn = burnhealing + if(tool) + tool.use(1) + if(missinghpbonus) + if(target.stat != DEAD) + urhealedamt_brute += round((target.getBruteLoss()/ missinghpbonus),0.1) + urhealedamt_burn += round((target.getFireLoss()/ missinghpbonus),0.1) + else //less healing bonus for the dead since they're expected to have lots of damage to begin with (to make TW into defib not TOO simple) + urhealedamt_brute += round((target.getBruteLoss()/ (missinghpbonus*5)),0.1) + urhealedamt_burn += round((target.getFireLoss()/ (missinghpbonus*5)),0.1) + if(!get_location_accessible(target, target_zone)) + urhealedamt_brute *= 0.55 + urhealedamt_burn *= 0.55 + umsg += " as best as you can while they have clothing on" + tmsg += " as best as they can while [target] has clothing on" + target.heal_bodypart_damage(urhealedamt_brute,urhealedamt_burn, only_organic = FALSE, only_robotic = TRUE) + display_results(user, target, "[umsg].", + "[tmsg].", + "[tmsg].") + if(istype(surgery, /datum/surgery/robot_healing)) + var/datum/surgery/robot_healing/the_surgery = surgery + the_surgery.antispam = TRUE + return TRUE + +/datum/surgery_step/robot_heal/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results(user, target, "You screwed up!", + "[user] screws up!", + "[user] fixes some of [target]'s damage.", TRUE) + var/urdamageamt_brute = 0 + if(healsbrute) + urdamageamt_brute = brutehealing * 0.8 + var/urdamageamt_burn = 0 + if(healsburn) + urdamageamt_burn = burnhealing * 0.8 + if(missinghpbonus) + urdamageamt_brute += round((target.getBruteLoss()/ (missinghpbonus*2)),0.1) + urdamageamt_burn += round((target.getFireLoss()/ (missinghpbonus*2)),0.1) + + target.take_bodypart_damage(urdamageamt_brute, urdamageamt_burn) + return FALSE + +/***************************STEPS***************************/ + +/datum/surgery_step/robot_heal/basic + name = "repair damage" + brutehealing = 10 + burnhealing = 10 + missinghpbonus = 15 \ No newline at end of file diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index c4ded65e9c..0f1004221c 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -10,6 +10,12 @@ tool_behaviour = TOOL_RETRACTOR toolspeed = 1 +/obj/item/retractor/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() + /obj/item/retractor/advanced name = "mechanical pinches" desc = "An agglomerate of rods and gears." @@ -55,6 +61,12 @@ tool_behaviour = TOOL_HEMOSTAT toolspeed = 1 +/obj/item/hemostat/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() + /obj/item/hemostat/augment name = "hemostat" desc = "Tiny servos power a pair of pincers to stop bleeding." @@ -79,6 +91,12 @@ tool_behaviour = TOOL_CAUTERY toolspeed = 1 +/obj/item/cautery/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() + /obj/item/cautery/augment name = "cautery" desc = "A heated element that cauterizes wounds." @@ -107,6 +125,12 @@ tool_behaviour = TOOL_DRILL toolspeed = 1 +/obj/item/surgicaldrill/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() + /obj/item/surgicaldrill/advanced name = "searing tool" desc = "It projects a high power laser used for medical application." @@ -172,6 +196,12 @@ . = ..() AddComponent(/datum/component/butchering, 80 * toolspeed, 100, 0) +/obj/item/scalpel/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() + /obj/item/scalpel/advanced name = "laser scalpel" desc = "An advanced scalpel which uses laser technology to cut." @@ -255,6 +285,11 @@ . = ..() AddComponent(/datum/component/butchering, 40 * toolspeed, 100, 5, 'sound/weapons/circsawhit.ogg') //saws are very accurate and fast at butchering +/obj/item/circular_saw/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() /obj/item/circular_saw/augment name = "circular saw" @@ -392,3 +427,9 @@ attack_verb = list("corrected", "properly set") tool_behaviour = TOOL_BONESET toolspeed = 1 + +/obj/item/bonesetter/attack(mob/living/L, mob/user) + if(user.a_intent == INTENT_HELP) + to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") + return + return ..() diff --git a/code/modules/tgchat/message.dm b/code/modules/tgchat/message.dm new file mode 100644 index 0000000000..2e9bfe784e --- /dev/null +++ b/code/modules/tgchat/message.dm @@ -0,0 +1,17 @@ +/** + * Message-related procs + * + * Message format (/list): + * - type - Message type, must be one of defines in `code/__DEFINES/chat.dm` + * - text - Plain message text + * - html - HTML message text + * - Optional metadata, can be any key/value pair. + * + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/proc/message_to_html(message) + // Here it is possible to add a switch statement + // to custom-handle various message types. + return message["html"] || message["text"] diff --git a/code/modules/tgchat/to_chat.dm b/code/modules/tgchat/to_chat.dm new file mode 100644 index 0000000000..a50bf4595e --- /dev/null +++ b/code/modules/tgchat/to_chat.dm @@ -0,0 +1,75 @@ +/** + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/** + * Circumvents the message queue and sends the message + * to the recipient (target) as soon as possible. + */ +/proc/to_chat_immediate(target, html, + type = null, + text = null, + avoid_highlighting = FALSE, + // FIXME: These flags are now pointless and have no effect + handle_whitespace = TRUE, + trailing_newline = TRUE, + confidential = FALSE) + if(!target || (!html && !text)) + return + if(target == world) + target = GLOB.clients + // Build a message + var/message = list() + if(type) message["type"] = type + if(text) message["text"] = text + if(html) message["html"] = html + if(avoid_highlighting) message["avoidHighlighting"] = avoid_highlighting + var/message_blob = TGUI_CREATE_MESSAGE("chat/message", message) + var/message_html = message_to_html(message) + if(islist(target)) + for(var/_target in target) + var/client/client = CLIENT_FROM_VAR(_target) + if(client) + // Send to tgchat + client.tgui_panel?.window.send_raw_message(message_blob) + // Send to old chat + SEND_TEXT(client, message_html) + return + var/client/client = CLIENT_FROM_VAR(target) + if(client) + // Send to tgchat + client.tgui_panel?.window.send_raw_message(message_blob) + // Send to old chat + SEND_TEXT(client, message_html) + +/** + * Sends the message to the recipient (target). + * + * Recommended way to write to_chat calls: + * to_chat(client, + * type = MESSAGE_TYPE_INFO, + * html = "You have found [object]") + */ +/proc/to_chat(target, html, + type = null, + text = null, + avoid_highlighting = FALSE, + // FIXME: These flags are now pointless and have no effect + handle_whitespace = TRUE, + trailing_newline = TRUE, + confidential = FALSE) + if(Master.current_runlevel == RUNLEVEL_INIT || !SSchat?.initialized) + to_chat_immediate(target, html, type, text) + return + if(!target || (!html && !text)) + return + if(target == world) + target = GLOB.clients + // Build a message + var/message = list() + if(type) message["type"] = type + if(text) message["text"] = text + if(html) message["html"] = html + if(avoid_highlighting) message["avoidHighlighting"] = avoid_highlighting + SSchat.queue(target, message) diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm index 46b324e151..8f47c609b2 100644 --- a/code/modules/tgui/external.dm +++ b/code/modules/tgui/external.dm @@ -130,6 +130,13 @@ */ /client/var/list/tgui_windows = list() +/** + * global + * + * TRUE if cache was reloaded by tgui dev server at least once. + */ +/client/var/tgui_cache_reloaded = FALSE + /** * public * @@ -159,25 +166,44 @@ /** * Middleware for /client/Topic. * - * return bool Whether the topic is passed (TRUE), or cancelled (FALSE). + * return bool If TRUE, prevents propagation of the topic call. */ /proc/tgui_Topic(href_list) // Skip non-tgui topics if(!href_list["tgui"]) - return TRUE + return FALSE var/type = href_list["type"] // Unconditionally collect tgui logs if(type == "log") - log_tgui(usr, href_list["message"]) + var/context = href_list["window_id"] + if (href_list["ns"]) + context += " ([href_list["ns"]])" + log_tgui(usr, href_list["message"], + context = context) + // Reload all tgui windows + if(type == "cacheReloaded") + if(!check_rights(R_ADMIN) || usr.client.tgui_cache_reloaded) + return TRUE + // Mark as reloaded + usr.client.tgui_cache_reloaded = TRUE + // Notify windows + var/list/windows = usr.client.tgui_windows + for(var/window_id in windows) + var/datum/tgui_window/window = windows[window_id] + if (window.status == TGUI_WINDOW_READY) + window.on_message(type, null, href_list) + return TRUE // Locate window var/window_id = href_list["window_id"] var/datum/tgui_window/window if(window_id) window = usr.client.tgui_windows[window_id] if(!window) - log_tgui(usr, "Error: Couldn't find the window datum, force closing.") + log_tgui(usr, + "Error: Couldn't find the window datum, force closing.", + context = window_id) SStgui.force_close_window(usr, window_id) - return FALSE + return TRUE // Decode payload var/payload if(href_list["payload"]) @@ -185,4 +211,4 @@ // Pass message to window if(window) window.on_message(type, payload, href_list) - return FALSE + return TRUE diff --git a/code/modules/tgui/states/debug.dm b/code/modules/tgui/states/debug.dm new file mode 100644 index 0000000000..6c600b38ce --- /dev/null +++ b/code/modules/tgui/states/debug.dm @@ -0,0 +1,6 @@ +GLOBAL_DATUM_INIT(debug_state, /datum/ui_state/debug_state, new) + +/datum/ui_state/debug_state/can_use_topic(src_object, mob/user) + if(check_rights_for(user.client, R_DEBUG)) + return UI_INTERACTIVE + return UI_CLOSE diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index d0d5ff8ebb..9393b9641f 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -49,7 +49,9 @@ * return datum/tgui The requested UI. */ /datum/tgui/New(mob/user, datum/src_object, interface, title, ui_x, ui_y) - log_tgui(user, "new [interface] fancy [user.client.prefs.tgui_fancy]") + log_tgui(user, + "new [interface] fancy [user.client.prefs.tgui_fancy]", + src_object = src_object) src.user = user src.src_object = src_object src.window_key = "[REF(src_object)]-main" @@ -80,14 +82,20 @@ opened_at = world.time window.acquire_lock(src) if(!window.is_ready()) - window.initialize(inline_assets = list( - get_asset_datum(/datum/asset/simple/tgui), - )) + window.initialize( + fancy = user.client.prefs.tgui_fancy, + inline_assets = list( + get_asset_datum(/datum/asset/simple/tgui_common), + get_asset_datum(/datum/asset/simple/tgui), + )) else window.send_message("ping") - window.send_asset(get_asset_datum(/datum/asset/simple/fontawesome)) + var/flush_queue = window.send_asset(get_asset_datum( + /datum/asset/simple/namespaced/fontawesome)) for(var/datum/asset/asset in src_object.ui_assets(user)) - window.send_asset(asset) + flush_queue |= window.send_asset(asset) + if (flush_queue) + user.client.browse_queue_flush() window.send_message("update", get_payload( with_data = TRUE, with_static_data = TRUE)) @@ -143,11 +151,13 @@ * Makes an asset available to use in tgui. * * required asset datum/asset + * + * return bool - true if an asset was actually sent */ /datum/tgui/proc/send_asset(datum/asset/asset) if(!window) CRASH("send_asset() can only be called after open().") - window.send_asset(asset) + return window.send_asset(asset) /** * public @@ -199,13 +209,17 @@ "key" = window_key, "size" = window_size, "fancy" = user.client.prefs.tgui_fancy, - "locked" = user.client.prefs.tgui_lock + "locked" = user.client.prefs.tgui_lock, + ), + "client" = list( + "ckey" = user.client.ckey, + "address" = user.client.address, + "computer_id" = user.client.computer_id, ), "user" = list( "name" = "[user]", - "ckey" = "[user.ckey]", - "observer" = isobserver(user) - ) + "observer" = isobserver(user), + ), ) var/data = custom_data || with_data && src_object.ui_data(user) if(data) @@ -233,11 +247,9 @@ return // Validate ping if(!initialized && world.time - opened_at > TGUI_PING_TIMEOUT) - log_tgui(user, \ - "Error: Zombie window detected, killing it with fire.\n" \ - + "window_id: [window.id]\n" \ - + "opened_at: [opened_at]\n" \ - + "world.time: [world.time]") + log_tgui(user, "Error: Zombie window detected, closing.", + window = window, + src_object = src_object) close(can_be_suspended = FALSE) return // Update through a normal call to ui_interact @@ -270,8 +282,12 @@ /datum/tgui/proc/on_message(type, list/payload, list/href_list) // Pass act type messages to ui_act if(type && copytext(type, 1, 5) == "act/") + var/act_type = copytext(type, 5) + log_tgui(user, "Action: [act_type] [href_list["payload"]]", + window = window, + src_object = src_object) process_status() - if(src_object.ui_act(copytext(type, 5), payload, src, state)) + if(src_object.ui_act(act_type, payload, src, state)) SStgui.update_uis(src_object) return FALSE switch(type) diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 3f271163c9..23583e8b53 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -8,12 +8,18 @@ var/client/client var/pooled var/pool_index + var/is_browser = FALSE var/status = TGUI_WINDOW_CLOSED var/locked = FALSE var/datum/tgui/locked_by + var/datum/subscriber_object + var/subscriber_delegate var/fatally_errored = FALSE var/message_queue var/sent_assets = list() + // Vars passed to initialize proc (and saved for later) + var/inline_assets + var/fancy /** * public @@ -26,9 +32,9 @@ /datum/tgui_window/New(client/client, id, pooled = FALSE) src.id = id src.client = client + src.client.tgui_windows[id] = src src.pooled = pooled if(pooled) - client.tgui_windows[id] = src src.pool_index = TGUI_WINDOW_INDEX(id) /** @@ -39,18 +45,26 @@ * will be put into the queue until the window finishes loading. * * optional inline_assets list List of assets to inline into the html. + * optional inline_html string Custom HTML to inject. + * optional fancy bool If TRUE, will hide the window titlebar. */ -/datum/tgui_window/proc/initialize(inline_assets = list()) - log_tgui(client, "[id]/initialize") +/datum/tgui_window/proc/initialize( + inline_assets = list(), + inline_html = "", + fancy = FALSE) + log_tgui(client, + context = "[id]/initialize", + window = src) if(!client) return + src.inline_assets = inline_assets + src.fancy = fancy status = TGUI_WINDOW_LOADING fatally_errored = FALSE - message_queue = null // Build window options var/options = "file=[id].html;can_minimize=0;auto_format=0;" // Remove titlebar and resize handles for a fancy window - if(client.prefs.tgui_fancy) + if(fancy) options += "titlebar=0;can_resize=0;" else options += "titlebar=1;can_resize=1;" @@ -69,13 +83,17 @@ inline_styles += "\n" else if(copytext(name, -3) == ".js") inline_scripts += "\n" - asset.send() + asset.send(client) html = replacetextEx(html, "\n", inline_styles) html = replacetextEx(html, "\n", inline_scripts) + // Inject custom HTML + html = replacetextEx(html, "\n", inline_html) // Open the window client << browse(html, "window=[id];[options]") // Instruct the client to signal UI when the window is closed. winset(client, id, "on-close=\"uiclose [id]\"") + // Detect whether the control is a browser + is_browser = winexists(client, id) == "BROWSER" /** * public @@ -107,8 +125,8 @@ * Acquire the window lock. Pool will not be able to provide this window * to other UIs for the duration of the lock. * - * Can be given an optional tgui datum, which will hook its on_message - * callback into the message stream. + * Can be given an optional tgui datum, which will be automatically + * subscribed to incoming messages via the on_message proc. * * optional ui /datum/tgui */ @@ -117,6 +135,8 @@ locked_by = ui /** + * public + * * Release the window lock. */ /datum/tgui_window/proc/release_lock() @@ -126,6 +146,28 @@ locked = FALSE locked_by = null +/** + * public + * + * Subscribes the datum to consume window messages on a specified proc. + * + * Note, that this supports only one subscriber, because code for that + * is simpler and therefore faster. If necessary, this can be rewritten + * to support multiple subscribers. + */ +/datum/tgui_window/proc/subscribe(datum/object, delegate) + subscriber_object = object + subscriber_delegate = delegate + +/** + * public + * + * Unsubscribes the datum. Do not forget to call this when cleaning up. + */ +/datum/tgui_window/proc/unsubscribe(datum/object) + subscriber_object = null + subscriber_delegate = null + /** * public * @@ -137,11 +179,15 @@ if(!client) return if(can_be_suspended && can_be_suspended()) - log_tgui(client, "[id]/close: suspending") + log_tgui(client, + context = "[id]/close (suspending)", + window = src) status = TGUI_WINDOW_READY send_message("suspend") return - log_tgui(client, "[id]/close") + log_tgui(client, + context = "[id]/close", + window = src) release_lock() status = TGUI_WINDOW_CLOSED message_queue = null @@ -159,25 +205,40 @@ * required payload list Message payload * optional force bool Send regardless of the ready status. */ -/datum/tgui_window/proc/send_message(type, list/payload, force) +/datum/tgui_window/proc/send_message(type, payload, force) if(!client) return - var/message = json_encode(list( - "type" = type, - "payload" = payload, - )) - // Strip #255/improper. - message = replacetext(message, "\proper", "") - message = replacetext(message, "\improper", "") - // Pack for sending via output() - message = url_encode(message) + var/message = TGUI_CREATE_MESSAGE(type, payload) // Place into queue if window is still loading if(!force && status != TGUI_WINDOW_READY) if(!message_queue) message_queue = list() message_queue += list(message) return - client << output(message, "[id].browser:update") + client << output(message, is_browser \ + ? "[id]:update" \ + : "[id].browser:update") + +/** + * public + * + * Sends a raw payload to tgui window. + * + * required message string JSON+urlencoded blob to send. + * optional force bool Send regardless of the ready status. + */ +/datum/tgui_window/proc/send_raw_message(message, force) + if(!client) + return + // Place into queue if window is still loading + if(!force && status != TGUI_WINDOW_READY) + if(!message_queue) + message_queue = list() + message_queue += list(message) + return + client << output(message, is_browser \ + ? "[id]:update" \ + : "[id].browser:update") /** * public @@ -185,16 +246,18 @@ * Makes an asset available to use in tgui. * * required asset datum/asset + * + * return bool - TRUE if any assets had to be sent to the client */ /datum/tgui_window/proc/send_asset(datum/asset/asset) if(!client || !asset) return + sent_assets |= list(asset) + . = asset.send(client) if(istype(asset, /datum/asset/spritesheet)) var/datum/asset/spritesheet/spritesheet = asset send_message("asset/stylesheet", spritesheet.css_filename()) send_message("asset/mappings", asset.get_url_mappings()) - sent_assets += list(asset) - asset.send(client) /** * private @@ -205,7 +268,9 @@ if(!client || !message_queue) return for(var/message in message_queue) - client << output(message, "[id].browser:update") + client << output(message, is_browser \ + ? "[id]:update" \ + : "[id].browser:update") message_queue = null /** @@ -213,26 +278,45 @@ * * Callback for handling incoming tgui messages. */ -/datum/tgui_window/proc/on_message(type, list/payload, list/href_list) - switch(type) - if("ready") - // Status can be READY if user has refreshed the window. - if(status == TGUI_WINDOW_READY) - // Resend the assets - for(var/asset in sent_assets) - send_asset(asset) - status = TGUI_WINDOW_READY - if("log") - if(href_list["fatal"]) - fatally_errored = TRUE +/datum/tgui_window/proc/on_message(type, payload, href_list) + // Status can be READY if user has refreshed the window. + if(type == "ready" && status == TGUI_WINDOW_READY) + // Resend the assets + for(var/asset in sent_assets) + send_asset(asset) + // Mark this window as fatally errored which prevents it from + // being suspended. + if(type == "log" && href_list["fatal"]) + fatally_errored = TRUE + // Mark window as ready since we received this message from somewhere + if(status != TGUI_WINDOW_READY) + status = TGUI_WINDOW_READY + flush_message_queue() // Pass message to UI that requested the lock if(locked && locked_by) - locked_by.on_message(type, payload, href_list) - flush_message_queue() - return + var/prevent_default = locked_by.on_message(type, payload, href_list) + if(prevent_default) + return + // Pass message to the subscriber + else if(subscriber_object) + var/prevent_default = call( + subscriber_object, + subscriber_delegate)(type, payload, href_list) + if(prevent_default) + return // If not locked, handle these message types switch(type) + if("ping") + send_message("pingReply", payload) if("suspend") close(can_be_suspended = TRUE) if("close") close(can_be_suspended = FALSE) + if("openLink") + client << link(href_list["url"]) + if("cacheReloaded") + // Reinitialize + initialize(inline_assets = inline_assets, fancy = fancy) + // Resend the assets + for(var/asset in sent_assets) + send_asset(asset) diff --git a/code/modules/tgui_panel/audio.dm b/code/modules/tgui_panel/audio.dm new file mode 100644 index 0000000000..e62c4b5bc1 --- /dev/null +++ b/code/modules/tgui_panel/audio.dm @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/// Admin music volume, from 0 to 1. +/client/var/admin_music_volume = 1 + +/** + * public + * + * Sends music data to the browser. + * + * Optional settings: + * - pitch: the playback rate + * - start: the start time of the sound + * - end: when the musics stops playing + * + * required url string Must be an https URL. + * optional extra_data list Optional settings. + */ +/datum/tgui_panel/proc/play_music(url, extra_data) + if(!is_ready()) + return + if(!findtext(url, GLOB.is_http_protocol)) + return + var/list/payload = list() + if(length(extra_data) > 0) + for(var/key in extra_data) + payload[key] = extra_data[key] + payload["url"] = url + window.send_message("audio/playMusic", payload) + +/** + * public + * + * Stops playing music through the browser. + */ +/datum/tgui_panel/proc/stop_music() + if(!is_ready()) + return + window.send_message("audio/stopMusic") diff --git a/code/modules/tgui_panel/external.dm b/code/modules/tgui_panel/external.dm new file mode 100644 index 0000000000..35aa31eca7 --- /dev/null +++ b/code/modules/tgui_panel/external.dm @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/client/var/datum/tgui_panel/tgui_panel + +/** + * tgui panel / chat troubleshooting verb + */ +/client/verb/fix_tgui_panel() + set name = "Fix chat" + set category = "OOC" + var/action + log_tgui(src, "Started fixing.", + context = "verb/fix_tgui_panel") + // Not ready + if(!tgui_panel?.is_ready()) + log_tgui(src, "Panel is not ready", + context = "verb/fix_tgui_panel") + tgui_panel.window.send_message("ping", force = TRUE) + action = alert(src, "Method: Pinging the panel.\nWait a bit and tell me if it's fixed", "", "Fixed", "Nope") + if(action == "Fixed") + log_tgui(src, "Fixed by sending a ping", + context = "verb/fix_tgui_panel") + return + // Catch all solution + if(!tgui_panel || !istype(tgui_panel)) + log_tgui(src, "tgui_panel datum is missing", + context = "verb/fix_tgui_panel") + tgui_panel = new(src) + tgui_panel.initialize(force = TRUE) + // Force show the panel to see if there are any errors + winset(src, "output", "is-disabled=1&is-visible=0") + winset(src, "browseroutput", "is-disabled=0;is-visible=1") + action = alert(src, "Method: Reinitializing the panel.\nWait a bit and tell me if it's fixed", "", "Fixed", "Nope") + if(action == "Fixed") + log_tgui(src, "Fixed by calling 'initialize'", + context = "verb/fix_tgui_panel") + return + // Failed to fix + action = alert(src, "Welp, I'm all out of ideas. Try closing BYOND and reconnecting.\nWe could also disable tgui_panel and re-enable the old UI", "", "Thanks anyways", "Switch to old UI") + if (action == "Switch to old UI") + winset(src, "output", "on-show=&is-disabled=0&is-visible=1") + winset(src, "browseroutput", "is-disabled=1;is-visible=0") + log_tgui(src, "Failed to fix.", + context = "verb/fix_tgui_panel") diff --git a/code/modules/tgui_panel/telemetry.dm b/code/modules/tgui_panel/telemetry.dm new file mode 100644 index 0000000000..79087d8500 --- /dev/null +++ b/code/modules/tgui_panel/telemetry.dm @@ -0,0 +1,80 @@ +/** + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/** + * Maximum number of connection records allowed to analyze. + * Should match the value set in the browser. + */ +#define TGUI_TELEMETRY_MAX_CONNECTIONS 5 + +/** + * Maximum time allocated for sending a telemetry packet. + */ +#define TGUI_TELEMETRY_RESPONSE_WINDOW 30 SECONDS + +/// Time of telemetry request +/datum/tgui_panel/var/telemetry_requested_at +/// Time of telemetry analysis completion +/datum/tgui_panel/var/telemetry_analyzed_at +/// List of previous client connections +/datum/tgui_panel/var/list/telemetry_connections + +/** + * private + * + * Requests some telemetry from the client. + */ +/datum/tgui_panel/proc/request_telemetry() + telemetry_requested_at = world.time + telemetry_analyzed_at = null + window.send_message("telemetry/request", list( + "limits" = list( + "connections" = TGUI_TELEMETRY_MAX_CONNECTIONS, + ), + )) + +/** + * private + * + * Analyzes a telemetry packet. + * + * Is currently only useful for detecting ban evasion attempts. + */ +/datum/tgui_panel/proc/analyze_telemetry(payload) + if(world.time > telemetry_requested_at + TGUI_TELEMETRY_RESPONSE_WINDOW) + message_admins("[key_name(client)] sent telemetry outside of the allocated time window.") + return + if(telemetry_analyzed_at) + message_admins("[key_name(client)] sent telemetry more than once.") + return + telemetry_analyzed_at = world.time + if(!payload) + return + telemetry_connections = payload["connections"] + var/len = length(telemetry_connections) + if(len == 0) + return + if(len > TGUI_TELEMETRY_MAX_CONNECTIONS) + message_admins("[key_name(client)] was kicked for sending a huge telemetry payload") + qdel(client) + return + var/list/found + for(var/i in 1 to len) + if(QDELETED(client)) + // He got cleaned up before we were done + return + var/list/row = telemetry_connections[i] + // Check for a malformed history object + if (!row || row.len < 3 || (!row["ckey"] || !row["address"] || !row["computer_id"])) + return + if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE)) + found = row + break + CHECK_TICK + // This fucker has a history of playing on a banned account. + if(found) + var/msg = "[key_name(client)] has a banned account in connection history! (Matched: [found["ckey"]], [found["address"]], [found["computer_id"]])" + message_admins(msg) + log_admin_private(msg) diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm new file mode 100644 index 0000000000..b983484046 --- /dev/null +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -0,0 +1,95 @@ +/** + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +/** + * tgui_panel datum + * Hosts tgchat and other nice features. + */ +/datum/tgui_panel + var/client/client + var/datum/tgui_window/window + var/broken = FALSE + var/initialized_at + +/datum/tgui_panel/New(client/client) + src.client = client + window = new(client, "browseroutput") + window.subscribe(src, .proc/on_message) + +/datum/tgui_panel/Del() + window.unsubscribe(src) + window.close() + return ..() + +/** + * public + * + * TRUE if panel is initialized and ready to receive messages. + */ +/datum/tgui_panel/proc/is_ready() + return !broken && window.is_ready() + +/** + * public + * + * Initializes tgui panel. + */ +/datum/tgui_panel/proc/initialize(force = FALSE) + initialized_at = world.time + // Perform a clean initialization + window.initialize(inline_assets = list( + get_asset_datum(/datum/asset/simple/tgui_common), + get_asset_datum(/datum/asset/simple/tgui_panel), + )) + window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/fontawesome)) + window.send_asset(get_asset_datum(/datum/asset/spritesheet/chat)) + request_telemetry() + addtimer(CALLBACK(src, .proc/on_initialize_timed_out), 2 SECONDS) + +/** + * private + * + * Called when initialization has timed out. + */ +/datum/tgui_panel/proc/on_initialize_timed_out() + // Currently does nothing but sending a message to old chat. + SEND_TEXT(client, "Failed to load fancy chat, reverting to old chat. Certain features won't work.") + +/** + * private + * + * Callback for handling incoming tgui messages. + */ +/datum/tgui_panel/proc/on_message(type, payload) + if(type == "ready") + broken = FALSE + window.send_message("update", list( + "config" = list( + "client" = list( + "ckey" = client.ckey, + "address" = client.address, + "computer_id" = client.computer_id, + ), + "window" = list( + "fancy" = FALSE, + "locked" = FALSE, + ), + ), + )) + return TRUE + if(type == "audio/setAdminMusicVolume") + client.admin_music_volume = payload["volume"] + return TRUE + if(type == "telemetry") + analyze_telemetry(payload) + return TRUE + +/** + * public + * + * Sends a round restart notification. + */ +/datum/tgui_panel/proc/send_roundrestart() + window.send_message("roundrestart") diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index c739d426c2..e758a43589 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -3,6 +3,7 @@ #ifdef UNIT_TESTS #include "anchored_mobs.dm" +#include "character_saving.dm" #include "component_tests.dm" #include "reagent_id_typos.dm" #include "reagent_recipe_collisions.dm" diff --git a/code/modules/unit_tests/character_saving.dm b/code/modules/unit_tests/character_saving.dm new file mode 100644 index 0000000000..8d978a630d --- /dev/null +++ b/code/modules/unit_tests/character_saving.dm @@ -0,0 +1,18 @@ +/datum/unit_test/character_saving/Run() + try + var/datum/preferences/P = new + P.load_path("test") + P.features["flavor_text"] = "Foo" + P.features["ooc_notes"] = "Bar" + P.save_character() + P.load_character() + if(P.features["flavor_text"] != "Foo") + Fail("Flavor text is failing to save.") + if(P.features["ooc_notes"] != "Bar") + Fail("OOC text is failing to save.") + P.save_character() + P.load_character() + if(P.features["flavor_text"] != "Foo") + Fail("Repeated saving and loading possibly causing save deletion.") + catch(var/exception/e) + Fail("Failed to save and load character due to exception [e.file]:[e.line], [e.name]") diff --git a/code/modules/unit_tests/reactions.dm b/code/modules/unit_tests/reactions.dm new file mode 100644 index 0000000000..66d9b49099 --- /dev/null +++ b/code/modules/unit_tests/reactions.dm @@ -0,0 +1,6 @@ +/datum/unit_test/reactions/Run() + for(var/datum/gas_reaction/G in SSair.gas_reactions) + var/test_info = G.test() + if(!test_info["success"]) + var/message = test_info["message"] + Fail("Gas reaction [G.name] is failing its unit test with the following message: [message]") diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index c26a9ae1f0..745eddcc07 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -90,6 +90,7 @@ desc = "Through bluespace magic stolen from an organisation that hoards technology, these boots simply allow you to slip through the atoms that make up anything, but only while walking, for safety reasons. As well as this, they unfortunately cause minor breath loss as the majority of atoms in your lungs are sucked out into any solid object you walk through." item = /obj/item/clothing/shoes/wallwalkers cost = 6 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/device_tools/guerillagloves name = "Guerilla Gloves" diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index a43e3fc2ce..898b716775 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -20,6 +20,7 @@ desc = "A sleek box containing a brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers, and an extra speedloader." item = /obj/item/storage/box/syndie_kit/revolver cost = 13 + player_minimum = 15 surplus = 50 exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) @@ -177,6 +178,7 @@ organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." item = /obj/item/storage/box/syndie_kit/guardian cost = 15 + limited_stock = 1 // you can only have one holopara apparently? refundable = TRUE cant_discount = TRUE surplus = 0 diff --git a/code/modules/uplink/uplink_items/uplink_explosives.dm b/code/modules/uplink/uplink_items/uplink_explosives.dm index 6cc1c9fe05..f44966fb3b 100644 --- a/code/modules/uplink/uplink_items/uplink_explosives.dm +++ b/code/modules/uplink/uplink_items/uplink_explosives.dm @@ -80,6 +80,7 @@ item = /obj/item/cartridge/virus/syndicate cost = 5 restricted = TRUE + limited_stock = 1 /datum/uplink_item/explosives/emp name = "EMP Grenades and Implanter Kit" diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index a115300085..26bee38f7b 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -529,7 +529,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(5) // limb squish! for(var/i in C.bodyparts) var/obj/item/bodypart/squish_part = i - if(squish_part.is_organic_limb()) + if(squish_part.is_organic_limb() || squish_part.render_like_organic) var/type_wound = pick(list(/datum/wound/blunt/critical, /datum/wound/blunt/severe, /datum/wound/blunt/moderate)) squish_part.force_wound_upwards(type_wound) else diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index bc824cc994..14cdd30931 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -29,6 +29,16 @@ /obj/item/clothing/glasses/monocle =1, /obj/item/clothing/head/bowler = 1, /obj/item/cane = 1, + /obj/item/clothing/under/rank/civilian/victorian_redsleeves = 1, + /obj/item/clothing/under/rank/civilian/victorian_redvest = 1, + /obj/item/clothing/under/rank/civilian/victorian_vest = 1, + /obj/item/clothing/under/rank/civilian/victorian_purple = 1, + /obj/item/clothing/suit/tailcoat = 1, + /obj/item/clothing/under/rank/civilian/victorianreddress = 1, + /obj/item/clothing/suit/vickyred = 1, + /obj/item/clothing/under/rank/civilian/victorianblackdress = 1, + /obj/item/clothing/suit/vickyblack =1, + /obj/item/clothing/under/rank/civilian/dutch = 2, /obj/item/clothing/under/suit/sl = 1, /obj/item/clothing/mask/fakemoustache = 1, /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 7005a0b02f..bd821d80e3 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -21,6 +21,11 @@ /obj/item/clothing/suit/jacket/puffer/vest = 4, /obj/item/clothing/suit/jacket/puffer = 4, /obj/item/clothing/suit/hooded/cloak/david = 4, + /obj/item/clothing/suit/bomber = 5, + /obj/item/clothing/under/suit/turtle/teal = 3, + /obj/item/clothing/under/suit/turtle/grey = 3, + /obj/item/clothing/under/rank/civilian/util = 5, + /obj/item/clothing/under/rank/civilian/util/greyshirt = 5, /obj/item/clothing/under/suit/navy = 3, /obj/item/clothing/under/suit/black_really = 3, /obj/item/clothing/under/suit/burgundy = 3, diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm index a78a4e6ef4..e522583772 100644 --- a/code/modules/vending/kinkmate.dm +++ b/code/modules/vending/kinkmate.dm @@ -26,7 +26,12 @@ /obj/item/clothing/under/shorts/polychromic/pantsu = 3, /obj/item/clothing/under/misc/poly_bottomless = 3, /obj/item/clothing/under/misc/poly_tanktop = 3, - /obj/item/clothing/under/misc/poly_tanktop/female = 3 + /obj/item/clothing/under/misc/poly_tanktop/female = 3, + /obj/item/autosurgeon/penis = 3, + /obj/item/autosurgeon/testicles = 3, + /obj/item/storage/pill_bottle/penis_enlargement = 5, + /obj/item/storage/pill_bottle/breast_enlargement = 5, + /obj/item/storage/daki = 4 ) contraband = list( /obj/item/clothing/neck/petcollar/locked = 2, diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 26beccaac0..e15e02f0d5 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -27,7 +27,10 @@ /obj/item/clothing/mask/bandana/red = 5, /obj/item/clothing/under/rank/security/officer/skirt = 5, /obj/item/clothing/under/rank/security/officer/grey = 5, - /obj/item/clothing/under/pants/khaki = 5) + /obj/item/clothing/under/pants/khaki = 5, + /obj/item/clothing/suit/toggle/labcoat/depjacket/sec = 5, + /obj/item/clothing/under/rank/security/officer/util = 5, + /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp = 5) premium = list(/obj/item/clothing/under/rank/security/officer/formal = 5, /obj/item/clothing/head/beret/sec/navyofficer = 5) refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe @@ -39,6 +42,44 @@ /obj/item/vending_refill/wardrobe/sec_wardrobe machine_name = "SecDrobe" + +/obj/machinery/vending/wardrobe/det_wardrobe + name = "\improper DetDrobe" + desc = "A machine for all your detective needs, as long as you need clothes." + icon_state = "detdrobe" + product_ads = "Apply your brilliant deductive methods in style!" + vend_reply = "Thank you for using the DetDrobe!" + products = list(/obj/item/clothing/under/rank/security/detective = 2, + /obj/item/clothing/under/rank/security/detective/skirt = 2, + /obj/item/clothing/under/rank/security/detective/brown = 2, + /obj/item/clothing/under/rank/security/detective/brown/brown2 = 2, + /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/detcorp = 2, + /obj/item/clothing/under/rank/security/officer/util = 2, + /obj/item/clothing/shoes/sneakers/brown = 2, + /obj/item/clothing/suit/det_suit = 2, + /obj/item/clothing/head/fedora/det_hat = 2, + /obj/item/clothing/under/rank/security/detective/grey = 2, + /obj/item/clothing/under/rank/security/detective/grey/skirt = 2, + /obj/item/clothing/accessory/waistcoat = 2, + /obj/item/clothing/shoes/laceup = 2, + /obj/item/clothing/suit/det_suit/grey = 1, + /obj/item/clothing/suit/det_suit/forensicsred = 1, + /obj/item/clothing/suit/det_suit/forensicsred/long = 1, + /obj/item/clothing/suit/det_suit/forensicsblue = 1, + /obj/item/clothing/suit/det_suit/forensicsblue/long = 1, + /obj/item/clothing/head/fedora = 2, + /obj/item/clothing/gloves/color/black = 2, + /obj/item/clothing/gloves/color/latex = 2, + /obj/item/reagent_containers/food/drinks/flask/det = 2, + /obj/item/storage/fancy/cigarettes = 5) + premium = list(/obj/item/clothing/head/flatcap = 1) + refill_canister = /obj/item/vending_refill/wardrobe/det_wardrobe + extra_price = 350 + payment_department = ACCOUNT_SEC + +/obj/item/vending_refill/wardrobe/det_wardrobe + machine_name = "DetDrobe" + /obj/machinery/vending/wardrobe/medi_wardrobe name = "\improper MediDrobe" desc = "A vending machine rumoured to be capable of dispensing clothing for medical personnel." @@ -66,10 +107,15 @@ /obj/item/clothing/suit/toggle/labcoat = 5, /obj/item/clothing/suit/toggle/labcoat/paramedic = 5, /obj/item/clothing/suit/toggle/labcoat/emt = 5, + /obj/item/clothing/suit/toggle/labcoat/depjacket/med = 5, /obj/item/clothing/shoes/sneakers/white = 5, /obj/item/clothing/head/soft/emt = 5, /obj/item/clothing/suit/apron/surgical = 5, - /obj/item/clothing/mask/surgical = 5) + /obj/item/clothing/mask/surgical = 5, + /obj/item/clothing/under/rank/medical/doctor/util = 5, + /obj/item/clothing/under/rank/medical/paramedic/red = 5, + /obj/item/clothing/suit/toggle/labcoat/emt/red = 5, + /obj/item/clothing/suit/toggle/labcoat/emt/highvis = 5) refill_canister = /obj/item/vending_refill/wardrobe/medi_wardrobe payment_department = ACCOUNT_MED cost_multiplier_per_dept = list(ACCOUNT_MED = 0) @@ -91,6 +137,12 @@ /obj/item/clothing/suit/hooded/wintercoat/engineering = 3, /obj/item/clothing/under/rank/engineering/engineer = 5, /obj/item/clothing/under/rank/engineering/engineer/skirt = 5, + /obj/item/clothing/under/rank/engineering/engineer/hazard = 5, + /obj/item/clothing/under/rank/engineering/engineer/hazard/green = 5, + /obj/item/clothing/under/rank/engineering/engineer/hazard/white = 5, + /obj/item/clothing/suit/toggle/labcoat/depjacket/eng = 5, + /obj/item/clothing/under/rank/engineering/engineer/util = 5, + /obj/item/clothing/under/rank/engineering/engineer/mechanic = 5, /obj/item/clothing/suit/hazardvest = 5, /obj/item/clothing/shoes/workboots = 5, /obj/item/clothing/head/hardhat = 5, @@ -134,6 +186,9 @@ products = list(/obj/item/clothing/suit/hooded/wintercoat/cargo = 3, /obj/item/clothing/under/rank/cargo/tech = 5, /obj/item/clothing/under/rank/cargo/tech/skirt = 5, + /obj/item/clothing/under/rank/cargo/util = 5, + /obj/item/clothing/suit/toggle/labcoat/depjacket/sup = 5, + /obj/item/clothing/under/rank/cargo/tech/long = 5, /obj/item/clothing/shoes/sneakers/black = 5, /obj/item/clothing/gloves/fingerless = 5, /obj/item/clothing/head/soft = 5, @@ -154,13 +209,17 @@ products = list(/obj/item/clothing/glasses/hud/diagnostic = 3, /obj/item/clothing/head/beret/robo = 3, /obj/item/clothing/under/rank/rnd/roboticist = 3, + /obj/item/clothing/under/rank/rnd/roboticist/sleek = 3, /obj/item/clothing/under/rank/rnd/roboticist/skirt = 3, /obj/item/clothing/suit/hooded/wintercoat/robotics = 3, /obj/item/clothing/suit/toggle/labcoat = 3, /obj/item/clothing/shoes/sneakers/black = 3, /obj/item/clothing/gloves/fingerless = 3, /obj/item/clothing/head/soft/black = 3, - /obj/item/clothing/mask/bandana/skull = 2) + /obj/item/clothing/mask/bandana/skull = 2, + /obj/item/clothing/under/misc/mechsuitred = 1, + /obj/item/clothing/under/misc/mechsuitwhite = 1, + /obj/item/clothing/under/misc/mechsuitblue = 1) contraband = list(/obj/item/clothing/suit/hooded/techpriest = 2) refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe payment_department = ACCOUNT_SCI @@ -181,8 +240,10 @@ /obj/item/storage/backpack/satchel/tox = 3, /obj/item/clothing/suit/hooded/wintercoat/science = 3, /obj/item/clothing/under/rank/rnd/scientist = 4, + /obj/item/clothing/under/rank/rnd/scientist/util = 4, /obj/item/clothing/under/rank/rnd/scientist/skirt = 4, /obj/item/clothing/suit/toggle/labcoat/science = 4, + /obj/item/clothing/suit/toggle/labcoat/depjacket/sci = 4, /obj/item/clothing/shoes/sneakers/white = 4, /obj/item/radio/headset/headset_sci = 4, /obj/item/clothing/mask/gas = 5) @@ -471,6 +532,7 @@ /obj/item/clothing/neck/cloak/cap = 1, /obj/item/clothing/shoes/sneakers/brown = 2, /obj/item/clothing/under/rank/captain = 1, + /obj/item/clothing/under/rank/captain/util = 1, /obj/item/clothing/under/rank/captain/skirt = 1, /obj/item/clothing/head/caphat = 1, /obj/item/clothing/head/caphat/parade = 1, diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index 9395cef952..8923e9107d 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -11,13 +11,11 @@ // Hook for generic creation of stuff on new creatures // /hook/living_new/proc/vore_setup(mob/living/M) - M.verbs += /mob/living/proc/preyloop_refresh - M.verbs += /mob/living/proc/lick - M.verbs += /mob/living/proc/escapeOOC + add_verb(M, list(/mob/living/proc/preyloop_refresh, /mob/living/proc/lick, /mob/living/proc/escapeOOC)) if(M.vore_flags & NO_VORE) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach. return TRUE - M.verbs += /mob/living/proc/insidePanel + add_verb(M, /mob/living/proc/insidePanel) //Tries to load prefs if a client is present otherwise gives freebie stomach spawn(2 SECONDS) // long delay because the server delays in its startup. just on the safe side. @@ -275,16 +273,7 @@ to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.") return FALSE ENABLE_BITFIELD(vore_flags,VOREPREF_INIT) - - // garbage data coming back the other way or breaking absorbed would be bad, so instead we do this - vore_flags |= CHECK_BITFIELD(client.prefs.vore_flags,DIGESTABLE) // set to 1 if prefs is 1 - vore_flags |= CHECK_BITFIELD(client.prefs.vore_flags,DEVOURABLE) - vore_flags |= CHECK_BITFIELD(client.prefs.vore_flags,FEEDING) - - vore_flags &= CHECK_BITFIELD(client.prefs.vore_flags,DIGESTABLE) // set to 0 if prefs is 0 - vore_flags &= CHECK_BITFIELD(client.prefs.vore_flags,DEVOURABLE) - vore_flags &= CHECK_BITFIELD(client.prefs.vore_flags,FEEDING) - + COPY_SPECIFIC_BITFIELDS(vore_flags,client.prefs.vore_flags,DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE) vore_taste = client.prefs.vore_taste release_vore_contents(silent = TRUE) diff --git a/config/config.txt b/config/config.txt index 46f9a0cdc4..a550e6bf8a 100644 --- a/config/config.txt +++ b/config/config.txt @@ -4,6 +4,8 @@ $include game_options.txt $include dbconfig.txt $include comms.txt $include antag_rep.txt +$include resources.txt +# Cit-specific imports $include donator_groupings.txt $include dynamic_config.txt $include plushies/defines.txt @@ -431,6 +433,8 @@ AUTOADMIN_RANK Game Master #CLIENT_WARN_MESSAGE Byond released 511 as the stable release. You can set the framerate your client runs at, which makes the game feel very different and cool. Shortly after its release we will end up using 511 client features and you will be forced to update. CLIENT_ERROR_VERSION 511 CLIENT_ERROR_MESSAGE Your version of byond is not supported. Please upgrade. +## The minimum build needed for joining the server, if using 512, a good minimum build would be 1421 as that disables the Middle Mouse Button exploit. +CLIENT_ERROR_BUILD 1421 ## TOPIC RATE LIMITING ## This allows you to limit how many topic calls (clicking on an interface window) the client can do in any given game second and/or game minute. diff --git a/config/policy.json b/config/policy.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/config/policy.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/config/resources.txt b/config/resources.txt new file mode 100644 index 0000000000..909bef0809 --- /dev/null +++ b/config/resources.txt @@ -0,0 +1,38 @@ +# External resources +# Set this to the location of a .zip with the server's .rsc inside of it. +# If you set this mutiple times, the server will rotate between the links. +# To use this, the compile option PRELOAD_RSC must be set to 0 to keep byond from preloading resources + +EXTERNAL_RSC_URLS http://tgstation13.download/byond/tgstationv2.zip + + +######################## +# Browser Asset Config # +######################## +# Browser assets are any file included in interfaces. css, images, javascript, etc. +# This handles configuring how we get these to the player so interfaces can access them. + +# Asset Transport +# The normal way of getting assets to clients is to use the internal byond system. This can be slow and delay the opening of interface windows. It also doesn't allow the internal IE windows byond uses to cache anything. +# You can instead have the server save them to a website via a folder within the game server that the web server can read. This could be a simple webserver or something backed by a CDN. +# Valid values: simple, webroot. Simple is the default. +#ASSET_TRANSPORT webroot + + +# Simple asset transport configurable values. + +# Uncomment this to have the server passively send all browser assets to each client in the background. (instead of waiting for them to be needed) +# This should be uncommented in production and commented in development +#ASSET_SIMPLE_PRELOAD + + +# Webroot asset transport configurable values. + +# Local folder to save assets to. +# Assets will be saved in the format of asset.MD5HASH.EXT or in namespaces/hash/ as ASSET_FILE_NAME or asset.MD5HASH.EXT +#ASSET_CDN_WEBROOT data/asset-store/ + +# URL the folder from above can be accessed from. +# for best results the webserver powering this should return a long cache validity time, as all assets sent via this transport use hash based urls +# if you want to test this locally, you simpily run the `localhost-asset-webroot-server.py` python3 script to host assets stored in `data/asset-store/` via http://localhost:58715/ +#ASSET_CDN_URL http://localhost:58715/ diff --git a/config/wounds.txt b/config/wounds.txt new file mode 100644 index 0000000000..11cd4988eb --- /dev/null +++ b/config/wounds.txt @@ -0,0 +1,7 @@ +## WOUNDS ## + +## wound damage exponent +WOUND_EXPONENT 1.2 + +## wound damage multiplier (injury rolls get limb damage multiplied by this, added) +WOUND_DAMAGE_MULTIPLIER 0.333 diff --git a/html/panels.css b/html/admin/panels.css similarity index 97% rename from html/panels.css rename to html/admin/panels.css index 1f969c690e..22373ee0ca 100644 --- a/html/panels.css +++ b/html/admin/panels.css @@ -1,10 +1,10 @@ -body {padding:0px;margin:0px;} -#top {position:fixed;top:5px;left:10%;width:80%;text-align:center;background-color:#fff;border:2px solid #ccc;} -#main {position:relative;top:10px;left:3%;width:96%;text-align:center;z-index:0;} -#searchable {table-layout:fixed;width:100%;text-align:center;"#f4f4f4";} -tr.norm {background-color:#f4f4f4;} -tr.title {background-color:#ccc;} -tr.alt {background-color:#e7e7e7;} -.small {font-size:80%;} -a {text-decoration:none;} -a:hover {color:#d3d;} +body {padding:0px;margin:0px;} +#top {position:fixed;top:5px;left:10%;width:80%;text-align:center;background-color:#fff;border:2px solid #ccc;} +#main {position:relative;top:10px;left:3%;width:96%;text-align:center;z-index:0;} +#searchable {table-layout:fixed;width:100%;text-align:center;"#f4f4f4";} +tr.norm {background-color:#f4f4f4;} +tr.title {background-color:#ccc;} +tr.alt {background-color:#e7e7e7;} +.small {font-size:80%;} +a {text-decoration:none;} +a:hover {color:#d3d;} diff --git a/html/search.js b/html/admin/search.js similarity index 100% rename from html/search.js rename to html/admin/search.js diff --git a/html/changelog.html b/html/changelog.html index fd590f4673..0de57ebe79 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,653 @@ -->
    +

    04 October 2020

    +

    DeltaFire15 updated:

    +
      +
    • Synths / IPCs are no longer wound immune.
    • +
    • Husked IPCs / Synths should now be rendered correctly.
    • +
    • Falling vendors now squish synths / IPCs' limbs again.
    • +
    • Synths and IPCs now do not have some fun roundstart oversights anymore.
    • +
    • Regenerate_limbs now works for carbons with the ROBOTIC_LIMBS trait.
    • +
    • Pacifists no longer counterattack on parries if that attack would be harmful.
    • +
    • Heretic sacrifices now husk with the reason of burn, and deal some additional damage.
    • +
    • Neovgre can no longer become invincible on clock tiles.
    • +
    • Plushlings no longer break when absorbing snowflake plushies.
    • +
    +

    Detective-Google updated:

    +
      +
    • the snow cabin doors actually bolt now
    • +
    +

    Putnam3145 updated:

    +
      +
    • Ghosts are no longer incapable of going away.
    • +
    +

    monster860 updated:

    +
      +
    • The slimeperson swap-body UI stays open when you switch bodies
    • +
    +

    timothyteakettle updated:

    +
      +
    • limb id entry in mutant bodyparts now supports switching to/from species with gendered body parts
    • +
    • the minimum brightness of mutant parts is now a define
    • +
    + +

    02 October 2020

    +

    ArcaneMusic, with minor tweaks by TheObserver-sys updated:

    +
      +
    • Adds and modifies fertilizers, as well as a new stat, Instability.
    • +
    • Removes the rather disused functionality of irrigation hoses, temporarily disables circuit use on hydroponics trays.
    • +
    • Plant Analyzer have been upgraded. Using one in hand will now switch between a stat view of your plant, and a chemical view of your plant. tweak:Trays now accept and store reagents, as well as coming with an autogrow mode. However, these upgrades came at the cost of old self sufficiency, meaning you must attend to your plants a bit more often.
    • +
    • Earthsblood, while not being able to gild trays anymore, has been found to still be quite powerful as a fertilizer.
    • +
    +

    CoreFlare updated:

    +
      +
    • Altcloaks! Available in loadout.
    • +
    +

    Detective-Google updated:

    +
      +
    • a smattering of clothes from the RP server
    • +
    • detective wardrobe
    • +
    +

    EmeraldSundisk updated:

    +
      +
    • Adds the "Skelter" space ruin
    • +
    • Creates a few new area designations for the Skelter
    • +
    • Cargo techs now have access to a "long pants" variant of their standard work uniform
    • +
    • Adds said uniform to CargoDrobes and the loadout menu
    • +
    +

    ItzGabby updated:

    +
      +
    • Three new turf tiles.
    • +
    • Turf icons with multiple damage icons, with in-hand icons for each tile.
    • +
    • Edited the name and description to wooden.
    • +
    +

    LetterN updated:

    +
      +
    • craftable railings
    • +
    • ports robust savefiles
    • +
    +

    MrJWhit updated:

    +
      +
    • tweaked heavy suit dmi
    • +
    • Fixes drones not being able to quickslot items
    • +
    +

    Putnam3145 updated:

    +
      +
    • New policy config for pyroclastic slimes.
    • +
    • SDGF clones now naked.
    • +
    • SDGF is now way more likely to make a clone that will align with the creator's goals, with purity, making it a better antagging tool.
    • +
    • SDGF clones now have the same traits as the original.
    • +
    • transfer_ckey now resets view, preventing things like SDGF clones with much larger view range.
    • +
    • Policy configs have been added for SDGF, currently unused: SDGF, SDGF_ALIGNED, SDGF_UNALIGNED.
    • +
    • Shivering now has thresholds and fever's thresholds now work.
    • +
    • Made allturfs setup actually set up all turfs.
    • +
    • Dynamic is now more aggressive with adding antags.
    • +
    • Fixes vore pref saving.
    • +
    +

    SandPoot updated:

    +
      +
    • Fixes headslugs being unable to recover their human form.
    • +
    +

    Tupinambis updated:

    +
      +
    • Adds methane and methyl bromide gases.
    • +
    • Minor gas name/desc changes to improve consistency
    • +
    • Ports the methyl bromide tank from bay. Adds two new canister sprites for the new gases and CH4 screen alerts.
    • +
    • fixed a mispelling in the wound armor value for the bounty hunter suit
    • +
    +

    dapnee updated:

    +
      +
    • atrium, clinic, an extra office, a pseudo public mining area, two more deluxe dorms, micro beach, aux bathroom, two construction areas, mass driver, more intercoms
    • +
    • moved all of service, chapel, dorms, garden, holodeck to a different z-level, RnD is more open, maintenance is a bit more random, more firelocks, added more mine-able rock
    • +
    • fixed the buttons in xenobio, gave shutters to cargo's storage area, fixed holodeck so it works now, fixed some techfabs being lathes, added sensors to atmos tanks, more decals, couple more signs, little floral areas and sitting areas added to break up hallway monotony, mech chargers are no longer missing their consoles, whiteship won't crash into arrivals anymore while the area it takes up is more telegraphed, APC placement on AI sat entrance, missing wire node for the outer portion of the AI sat, civilian level now has a telecom relay
    • +
    +

    lolman360 updated:

    +
      +
    • smonk machine runtimes
    • +
    • automatic hydro tray has a unique sprite now (fancy robot arm)
    • +
    +

    timothyteakettle updated:

    +
      +
    • added luminescent and stargazer sprites as selectable body sprites for slimes
    • +
    • wound exponent lowered slightly from 1.225 to 1.2
    • +
    • wound exponent and limb damage multiplier are now config values
    • +
    • ipcs and synthlizards are now treated as actual robots, with robotic limbs, an extra organ, and better emp acts
    • +
    • surgeries for healing robotic limbs, and brain surgery for robotic heads
    • +
    • androids limbs now show up as intended
    • +
    • emps now work from 1-100 severity instead of 1/2 and the severity reduces as you move from the epicentre
    • +
    +

    zeroisthebiggay updated:

    +
      +
    • ratvar gf is complete
    • +
    + +

    01 October 2020

    +

    BlueWildrose updated:

    +
      +
    • Slimepeople are given unique laughs and screams.
    • +
    • Adds "warbles", "chimpers", and "puffs" to the customizable speech verbs for character.
    • +
    + +

    29 September 2020

    +

    timothyteakettle updated:

    +
      +
    • fixed a typo causing your right eye colour to save as the left eye colour
    • +
    + +

    28 September 2020

    +

    ArchieBeepBoop updated:

    +
      +
    • Craftable Micro Powered Fans
    • +
    +

    Degirin2120 updated:

    +
      +
    • Added engineering hazard jumpsuits, can be found in the engidrobe, comes in 3 varieties.
    • +
    +

    Putnam3145 updated:

    +
      +
    • Added a brute-force check-every-single-tile step to SSair when it has enough time to run.
    • +
    • G fuid production is now much lower.
    • +
    • Supermatter sabotage objective's gone.
    • +
    • Subterfuge objectives are now all equally likely.
    • +
    • Replaced a "(hopefully) 1" with a "2"
    • +
    • Cryoing no longer unwins already-won objectives.
    • +
    +

    SiliconMain updated:

    +
      +
    • Minor adjustment to material cost of long range atmos analyzer
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • Most drinks now have some animation in them, from basic soda bubbles fizzing around to ice cubes bobbing just a bit.
    • +
    +

    Tupinambis updated:

    +
      +
    • Ghost poly's color value is now a hex value instead of an oct value. This has been a thing for OVER FIVE YEARS
    • +
    • Updates TEG, Antimatter, Jetpack sprites (CO2 and Oxy from Eris).
    • +
    • Replaced old chair sprites with new ones ported and modified from eris.
    • +
    • Beds can now be placed both right and left.
    • +
    • Subtle changes to stool legs to give them more of a shine.
    • +
    +

    raspy-on-osu updated:

    +
      +
    • TEG power generation
    • +
    +

    thakyZ updated:

    +
      +
    • Added the ability to print the Light Replacer at the Engineering Protolathe
    • +
    +

    timothyteakettle updated:

    +
      +
    • turrets can once again be broken
    • +
    • you can now have heterochromia and select individual eye colours
    • +
    + +

    27 September 2020

    +

    SiliconMain updated:

    +
      +
    • Holograms made from projectors (atmos, engi, sec, medical, ect...) can no longer be contaminated by radiation
    • +
    + +

    26 September 2020

    +

    CoreFlare updated:

    +
      +
    • IPC's can have hair. Why wasn't this added earlier. Use the bald hairstyle for no hair.
    • +
    + +

    25 September 2020

    +

    Putnam3145 updated:

    +
      +
    • Removed a non-working proc that already had its functionality implemented in another proc in the same file.
    • +
    + +

    24 September 2020

    +

    Putnam3145 updated:

    +
      +
    • Atmos is free.
    • +
    + +

    22 September 2020

    +

    Arturlang updated:

    +
      +
    • TGUI Statpanel
    • +
    +

    YakumoChen updated:

    +
      +
    • Mechsuits, robotics jumpsuits added to RoboDrobe
    • +
    +

    timothyteakettle updated:

    +
      +
    • character previews should be more consistent now
    • +
    + +

    20 September 2020

    +

    DeltaFire15 updated:

    +
      +
    • Sutures work on simplemobs again.
    • +
    • Attacking dismembered bodyparts now targets the chest instead, for weapons aswell as unarmed attacks.
    • +
    +

    MrJWhit updated:

    +
      +
    • New sprites for chess pieces! You can craft them in-game with metal sheets.
    • +
    +

    silicons updated:

    +
      +
    • hulks can smash again (walls no longer break their hands)
    • +
    • acid no longer degrades armor
    • +
    + +

    17 September 2020

    +

    DeltaFire15 updated:

    +
      +
    • Failing the plushmium reaction can now create peculiar plushies, depending on reaction volume.
    • +
    • The mood-buff from petting a plushie now works properly again.
    • +
    • Fixed wacky necropolis loot chest behavior
    • +
    +

    EmeraldSundisk updated:

    +
      +
    • Adds the Research Director's office to Omega Station
    • +
    • Adds 2 new solar arrays (and control rooms)
    • +
    • Adds some action figures that weren't there previously
    • +
    • The CMO's office now has a light switch
    • +
    • Slight readjustments to impacted areas
    • +
    • Readjusts the toxins air supply line to (ideally) be easier to service
    • +
    • Department camera consoles should now be able to actually check appropriate cameras
    • +
    • Xenobiology can now be locked down (by the Research Director)
    • +
    +

    MrJWhit updated:

    +
      +
    • Adds a brain damage line
    • +
    +

    Putnam3145 updated:

    +
      +
    • Your balls finally feel full, again.
    • +
    +

    timothyteakettle updated:

    +
      +
    • due to changes in policy, and several lawsuits, Nanotrasen has been forced to allow disabled people to sign up
    • +
    + +

    16 September 2020

    +

    timothyteakettle updated:

    +
      +
    • fixed an icon path
    • +
    + +

    12 September 2020

    +

    BlueWildrose updated:

    +
      +
    • The Polychromic winter coat's hoodie will now polychrome, alongside any other new polychromic items with toggleable headwear.
    • +
    • Minesweeper will no longer blow up the player's ears when they select "Play on the same board"
    • +
    • Slimepeople will find warm donk pockets among other toxin healing items even more repulsive, as they are anti-toxic.
    • +
    • Slimepeople are now neutral to gross foods.
    • +
    +

    DeltaFire15 updated:

    +
      +
    • AIs can no longer qdel() the gravity generator
    • +
    +

    Putnam3145 updated:

    +
      +
    • Added some unit tests for reactions.
    • +
    • replaced handle_changeling and handle_bloodsucker with signal registration
    • +
    +

    Sonic121x updated:

    +
      +
    • Fixed pill button on chemical press
    • +
    +

    TheObserver-sys updated:

    +
      +
    • Brass now has a proper datum. Aspiring Forgetenders rejoice!
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • Race based drinks will no longer stay inside your blood for ever.
    • +
    +

    Tupinambis updated:

    +
      +
    • Redid Cogstation atmos pipes to make it less cluttered.
    • +
    • Removed a few doors from the main hallway to mitigate chokepoint issues
    • +
    • All belt hell conveyers are now on by default, so that belt hell actually works.
    • +
    • IDs for poddoors and belts and the like. Everything is now properly hooked and should work as expected (except for the pressure triggered mass drivers)
    • +
    • addresses most if not all roundstart active turfs.
    • +
    • Issue where wires were connected to the SMES improperly, and SMES were not properly precharged, resulting in power failure earlier than intended.
    • +
    • various rogue turfs and wirings.
    • +
    • security office APC being hooked to maintenance for some reason.
    • +
    • TEG is now directly wired to the SMES.
    • +
    • adds a subtype of mass drivers that is triggered by things being on it. TODO: Make these mass drivers trigger poddoors, to make belt hell fully functional.
    • +
    +

    lolman360 updated:

    +
      +
    • glaives now work again
    • +
    +

    zeroisthebiggay updated:

    +
      +
    • Revolver is now poplocked down to fifteen people.
    • +
    + +

    11 September 2020

    +

    Putnam3145 updated:

    +
      +
    • Superconducting turfs now can't go below 0 celsius.
    • +
    + +

    09 September 2020

    +

    Putnam3145 updated:

    +
      +
    • Made superconductivity work for the first time literally ever.
    • +
    +

    timothyteakettle updated:

    +
      +
    • accents work better
    • +
    + +

    08 September 2020

    +

    Ghommie updated:

    +
      +
    • fixed names of the Electrical Toolbox goodie pack and green croptop christmas suit.
    • +
    • Fixed turf visuals for real. Original PR by AnturK on tgstation.
    • +
    +

    KeRSedChaplain updated:

    +
      +
    • added borg_deathsound.ogg and android_scream.ogg
    • +
    +

    silicons updated:

    +
      +
    • meteor waves now have a static 5 minute timer.
    • +
    + +

    07 September 2020

    +

    DeltaFire15 updated:

    +
      +
    • fixed a typo causing a span not to show.
    • +
    +

    Putnam for debugging ammo loading! Thx!! updated:

    +
      +
    • Removed spell blade, diamond picaxe, and fire wand from lava land loot tables
    • +
    • Each mini boss now has its own type of crate.
    • +
    • Each spike has its own type of crate that it pulls its now smaller loot table from
    • +
    • Moved god eye from spike loot table to hard spawn collosses fight
    • +
    • Moved holoparasight from spike loot table to bubble gum
    • +
    • Moved magic meat hook from spike loot table to drake
    • +
    • 2 more crates to Arena Shuttle as well as 4-4-4 of each new type of chest
    • +
    • Replaced the diamond pick loot with a better one
    • +
    • Replaced the cursted katana with a non cursted verson that deals half the damage and has less block!
    • +
    • Three new potions, blue heals the mind like a mama potion, Green heals the soul aka the organs! Lastly Red heals the body, by 100 damage of each main types. Best not to waste them!
    • +
    • Four more "wands" Spellbooks! These fun little guys shoot out its own pages to do the affect, one will set the target on fire like a bullet, one will harm them a bit, one will heal the target a small bit - How nice! Last one will give them a few statis affects like a taser bolt but without as much power or tasing affect
    • +
    + +

    06 September 2020

    +

    Putnam3145 updated:

    +
      +
    • Dynamic no longer pushes events.
    • +
    • Made spontaneous brain trauma a good deal less annoying.
    • +
    +

    lolman360, NecromancerAnne updated:

    +
      +
    • The ancient art of blacksmithing, now in pixels.
    • +
    • cool swords and shit (thanks anne)
    • +
    +

    raspy-on-osu updated:

    +
      +
    • thermomachine examine text
    • +
    + +

    05 September 2020

    +

    Bhijn updated:

    +
      +
    • Readded the old method of temperature notifications in the form of a new pair of shivering/sweating notifications.
    • +
    +

    Putnam3145 updated:

    +
      +
    • Hilbert hotel flavor text for one particular snowflake hotel changed.
    • +
    • admins can now actually reduce threat level in dynamic
    • +
    • Made owo.ogg smaller.
    • +
    • Character saving unit test is now more verbose on failure.
    • +
    • Added an extools proc hook alternative to rust_g logging.
    • +
    +

    raspy-on-osu updated:

    +
      +
    • supermatter shard examine text
    • +
    • protolathe item categories
    • +
    + +

    04 September 2020

    +

    timothyteakettle updated:

    +
      +
    • ipcs can speak
    • +
    + +

    03 September 2020

    +

    Ghommie updated:

    +
      +
    • Jaunters should now work with magic mirror chasming.
    • +
    • The photocopier can now print more than one copy at a time.
    • +
    • Alkali perspiration infos don't crash the Pandemic UI anymore.
    • +
    • Windoors can be actually tinted now.
    • +
    + +

    02 September 2020

    +

    Putnam3145 updated:

    +
      +
    • Added a unit test for character saving.
    • +
    • Plastitanium rapier no longer silently sleeps with no chance at counterplay when used by pacifists.
    • +
    • Fusion scan is now actually useful.
    • +
    +

    Tupinambis updated:

    +
      +
    • moved the dakis, genital growth pills, and genital autosurgeons out of the maintenance loot table and into kinkmates.
    • +
    +

    raspy-on-osu updated:

    +
      +
    • pyroclastic anomaly client spam
    • +
    +

    timothyteakettle updated:

    +
      +
    • you can hide your ckey now from the roundend report
    • +
    + +

    01 September 2020

    +

    BlueWildrose updated:

    +
      +
    • fixed slimes starting off hungry
    • +
    + +

    31 August 2020

    +

    Arturlang updated:

    +
      +
    • Slimes can now damage structures, don't leave them unfed!
    • +
    +

    Chiirno updated:

    +
      +
    • Moves pill_bottles/dice to box/dice on CogStation.
    • +
    +

    Couls, ported by NecromancerAnne updated:

    +
      +
    • cleans up mech backstabbing code
    • +
    +

    DeltaFire15 updated:

    +
      +
    • teleport-to-ark ability of the eminence, commented out
    • +
    • teleport-to-obelisk ability for the eminence
    • +
    +

    Detective-Google updated:

    +
      +
    • plasmamen have no more slowdown
    • +
    • object reskins now use very nice and cool radials
    • +
    +

    EmeraldSundisk updated:

    +
      +
    • Adds a pool to MetaStation
    • +
    • Slight readjustments to the surrounding area
    • +
    • Fixes a handful of external airlocks
    • +
    +

    ForrestWick updated:

    +
      +
    • removes wall walking boots from nukie uplink
    • +
    +

    Ghommie updated:

    +
      +
    • e-gun overlays and some floor decals should have been fixed.
    • +
    +

    LetterN updated:

    +
      +
    • tgchat
    • +
    +

    Lynxless updated:

    +
      +
    • Changed anatomic panacea into a direct buff, instead of a chem injection
    • +
    • Changed the values of anatomic panacea
    • +
    • Added a new icon for panacea's buff alert
    • +
    +

    Putnam3145 updated:

    +
      +
    • Pref for genital/vore examine text
    • +
    • Fixed a couple events having ghost roles eligible.
    • +
    • Buffed slaughter demon: gets stronger as it eats people
    • +
    • Nerfed slaughter demon: no longer permanently round-removes all who are eaten by it, instead releasing their now-heartless bodies
    • +
    • Dynamic storytellers now calculate property weights properly.
    • +
    +

    Sonic121x updated:

    +
      +
    • Fix the four type of new tea that will stuck inside your vein.
    • +
    • drinking glass sprite for those tea.
    • +
    +

    kappa-sama updated:

    +
      +
    • miners can no longer acquire funny antag item
    • +
    +

    lolman360 updated:

    +
      +
    • shuttle engine/heater sprites now face the right way
    • +
    +

    raspy-on-osu updated:

    +
      +
    • TEG power output
    • +
    • tesla movement priorities
    • +
    • tesla counterplay
    • +
    • tesla containment check (containment variable now usable)
    • +
    +

    silicons updated:

    +
      +
    • brooms now sweep objects on MOVABLE_PRE_MOVE rather than MOVABLE_MOVED
    • +
    • firedoors no longer automatically open on touch when there's no pressure differences.
    • +
    +

    timothyteakettle updated:

    +
      +
    • buzz, buzz2 and ping are now all unrestricted emotes and can be used by anyone
    • +
    • the drake credit and pickle credit sprites have been removed
    • +
    • tongue speech handling is now done by accent datums
    • +
    +

    zeroisthebiggay updated:

    +
      +
    • waffleco
    • +
    + +

    30 August 2020

    +

    raspy-on-osu updated:

    +
      +
    • new explosion echoes
    • +
    • explosion echo range
    • +
    • 5 new explosion related sounds
    • +
    + +

    28 August 2020

    +

    EmeraldSundisk updated:

    +
      +
    • Adds more paper to the library
    • +
    • The law office now has a desk window
    • +
    • Expands most of CogStation's exterior airlocks. Slightly adjusts surrounding areas to accommodate this.
    • +
    • Updates some of CogStation's paperwork
    • +
    • The rat in the morgue turned themselves into a possum. Funniest shit I've ever seen.
    • +
    • Adjusts some area designations so cameras should receive power properly
    • +
    • Cleans up an errant decal
    • +
    +

    Hatterhat updated:

    +
      +
    • Traitor holoparasites can now only be bought once, because apparently you can only have one active holopara.
    • +
    • PDA bombs can now only be bought once per uplink.
    • +
    +

    lolman360 updated:

    +
      +
    • atmos = radiation = chemistry.
    • +
    +

    shellspeed1 updated:

    +
      +
    • Adds slow mode for iv drips
    • +
    +

    timothyteakettle updated:

    +
      +
    • an ancient game over a thousand years old has re-emerged among crewmembers - rock paper scissors
    • +
    • customization features appear in alphabetical order where necessary
    • +
    • bokken do two more stamina damage now
    • +
    • you can now choose a body sprite as an anthromorph or anthromorphic insect, and can choose from aquatic/avian and apid respectively (and obviously back to the defaults too)
    • +
    + +

    27 August 2020

    +

    silicons updated:

    +
      +
    • eyebeam lighting can only have 128 maximum HSV saturation now.
    • +
    • no more shotgun stripper clips in boxes.
    • +
    • goliath tentacles now do 20 damage to mechs at 25% ap
    • +
    +

    timothyteakettle updated:

    +
      +
    • changing your character's gender won't randomize its hairstyle and facial hairstyle now
    • +
    + +

    26 August 2020

    +

    ancientpower updated:

    +
      +
    • Ghosts can read newscasters by clicking on them.
    • +
    +

    silicons updated:

    +
      +
    • hierophant vortex blasts now have 50% armor penetration vs mecha
    • +
    • ventcrawling now kicks off every attached/buckled mob, even for non humans.
    • +
    + +

    25 August 2020

    +

    Hatterhat updated:

    +
      +
    • Insidious combat gloves have been replaced by insidious guerilla gloves. They're generally the same, except now you can tackle with them.
    • +
    +

    Literallynotpickles updated:

    +
      +
    • You can now equip handheld crew monitors on all medical-related winter coats.
    • +
    +

    Putnam3145 updated:

    +
      +
    • vore now ejects occupants on death
    • +
    +

    raspy-on-osu updated:

    +
      +
    • Thermoelectric Generator power output
    • +
    +

    timothyteakettle updated:

    +
      +
    • I.P.Cs now short their circuits when expressing emotion, causing sparks to appear around them.
    • +
    + +

    24 August 2020

    +

    MrJWhit updated:

    +
      +
    • Fixes areas on expanded airlocks
    • +
    +

    silicons updated:

    +
      +
    • wormhole jaunters work
    • +
    • wormhole jaunters no longer get interference from bags of holding
    • +
    • airlocks now only shock on pulse/wirecutters instead of on tgui panel open.
    • +
    +

    timothyteakettle updated:

    +
      +
    • three new items are in the loadout for all donators
    • +
    +

    zeroisthebiggay updated:

    +
      +
    • contraband black evening gloves in kinkvend
    • +
    +

    23 August 2020

    DeltaFire15 updated:

      @@ -555,919 +1202,6 @@
    • explosive stand bombs can now be examined from any distance
    • explosive stand bombs are now a component.
    - -

    02 August 2020

    -

    Auris456852 updated:

    -
      -
    • Added B.O.O.P. Remote Control cartridges to the PTech.
    • -
    -

    Hatterhat updated:

    -
      -
    • Durathread reinforcement kits! Sprites by Toriate, sets jumpsuit armor to durathread levels, craft in the crafting menu.
    • -
    -

    KeRSedChaplain updated:

    -
      -
    • The belligerent scripture and a brass multitool, and a new marauder variant which act similar to holoparasites/guardian spirits.
    • -
    • Removed the abductor teleport consoles they get, removes abscond for the time being as I've not seen much use for it other than just spamming it and hoping you end up in the armory.
    • -
    • moved around scriptures to make the cult work better as being based around the station, makes the Ark scream more often and work as a summonable object, clockwork armor now has a flat 0 defense up to 10 instead of negatives against laser damage. Makes the Ark work better in a station based setting, as well as the Heralds beacon in case It works for the mode.
    • -
    • added powerloaderstep.ogg for Neovgre
    • -
    • changes 'Dread_Ipad.dmi' to 'clockwork_slab.dmi'
    • -
    -

    MrJWhit updated:

    -
      -
    • Adjusts abductor spawntext
    • -
    -

    Seris02 updated:

    -
      -
    • fixed replica pods
    • -
    -

    dapnee updated:

    -
      -
    • fixed active turfs on wizard ruin and space hermit, fixed missing APC's and added a light on Delta
    • -
    -

    ike709 and bobbahbrown updated:

    -
      -
    • Admins can now see your bans on (some) other servers.
    • -
    -

    kappa-sama updated:

    -
      -
    • chaplain cultists being able to convert people to full clockwork cult status
    • -
    -

    timothyteakettle updated:

    -
      -
    • combat mode now has weaker buffs in terms of damage dealt and took for being or not being in the mode
    • -
    • damage debuff for laying down has been decreased from 0.5x to 0.7x
    • -
    - -

    01 August 2020

    -

    dapnee updated:

    -
      -
    • added cake hat to bar, adds another atmostech spawn
    • -
    • sinks point in the right direction, APC won't spawn off the wall in circuits
    • -
    • changes commissary APC so it actually powers the room, adds a missing AIR alarm, arrivals no longer has active atmos tiles.
    • -
    -

    silicons updated:

    -
      -
    • toy shotguns no longer need 2 hands to fire
    • -
    • being on fire works again.
    • -
    -

    timothyteakettle updated:

    -
      -
    • monkeys no longer continuously bleed everywhere
    • -
    - -

    30 July 2020

    -

    Adelphon updated:

    -
      -
    • Created a Cosmetic version of the camo.
    • -
    -

    Arturlang updated:

    -
      -
    • Bloodsucker LifeTick runs from BiologicalLife now
    • -
    -

    Ryll-Ryll ported by silicons updated:

    -
      -
    • Shoelaces are now a thing. You can untie them by laying down next to someone.
    • -
    • shoes now have lace delays and some can't be laced at all
    • -
    • do after now tracks who's interacting with who, meaning some actions now break when the target moves away.
    • -
    -

    SiliconMain updated:

    -
      -
    • Ported the long range atmos analyzer from sk*rat, credit to NotRanged
    • -
    -

    silicons updated:

    -
      -
    • energy sword perfect parries now reflect projectiles back at their shooters.
    • -
    • any mob can now parry if they have the right item
    • -
    • beam rifles now go into emitters properly
    • -
    • clickdelay has been refactored into an experimental hybrid system. Check code/modules/mob/clickdelay.dm for more information.
    • -
    • Resisting no longer checks clickdelay, but is standardized to a 2 second per resist system for most forms of resisting. It still sets clickdelay, though.
    • -
    • Meters have been added for estimating time until next attack/resist. Won't be that useful due to our clickdelay currently being very short, though. They're visible from your hand and resist HUD elements. experimental: Most attacks and forms of attacking (minus unarmed because it's too much of a pain to refactor how hugs/gloves of the north star works) now check for time-since-last-attack rather than making it so you can't attack for said time. This means you can very quickly switch to a gun from a melee weapon, whereas in the old system a melee weapon would put you on lockout for 0.8 seconds, in the new system all the gun cares about is that you did not attack for at least 0.4 seconds.
    • -
    • All clickdelay setting/reading are now procs, so it should be trivial to implement another system where drawing/switching to a weapon requires you to have it out for x seconds before using it. I am not personally doing it at this point in time though because it will likely just annoy everyone with no real gain unless we do something like putting a 0.8 second switch-to cooldown for guns (which I did not, yet)
    • -
    • attack_hand has been refactored to on_attack_hand remove: sexchems no longer impact click delay
    • -
    • turrets now automatically stagger their shots. Happy parrying/blocking.
    • -
    • turrets now speed_process, they were shooting slower than they should be
    • -
    • anything can now block with the right items
    • -
    -

    timothyteakettle updated:

    -
      -
    • some crafted crates won't contain items now, and thus have stopped breaking the laws of physics
    • -
    • beepskys hats now follow the laws of gravity and move up/down when he bobs up and down
    • -
    - -

    29 July 2020

    -

    DeltaFire15 updated:

    -
      -
    • The 'Naked' outfit is no longer broken.
    • -
    -

    Ghommie updated:

    -
      -
    • fixed cremator trays, paleness examination strings, chat message for stamping paper, looping sounds, load away missions/VR admin verb, access requirements for using the sechuds.
    • -
    • Alt-Clicking a cigarette packet should pull the lighter out first if present, then cigarettes.
    • -
    -

    Hatterhat updated:

    -
      -
    • Directional windows can now be rotated counterclockwise properly again.
    • -
    -

    NecromancerAnne, Sirich96 updated:

    -
      -
    • Stunbaton sprites by Sirich96.
    • -
    • New sprites for the stunsword.
    • -
    -

    necromanceranne updated:

    -
      -
    • Adds some in-hands for the rapier sheath.
    • -
    -

    timothyteakettle updated:

    -
      -
    • tail wagging should work in all cases now
    • -
    • bluespace jars work as intended now
    • -
    • aliens can remove embeds now
    • -
    • bloodsuckers are not affected by bloodloss
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • Flannel jackets and bartender winter coat
    • -
    - -

    28 July 2020

    -

    Cacogen updated:

    -
      -
    • OSHA has more pull than anyone could have expected. All armor provided by Nanotrasen and the syndicate now have tags that accurately lists defenses and resistances of a piece of clothing.
    • -
    -

    CameronWoof updated:

    -
      -
    • Exotic seed crates now contain a spaceman's trumpet seed packet.
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • Renovates Snow Taxi's northeast bathroom to have multiple non-urinal toilets and showers
    • -
    • Adds signage/labeling to improve map readability
    • -
    • Adds a bathroom to the northwest station
    • -
    • Adds a filing cabinet to the cargo department
    • -
    • Area designation adjustments to account for the above changes
    • -
    • Adds a missing airlock cyclelink near medical
    • -
    -

    Ludox235 updated:

    -
      -
    • Makes the flavour text that appears when you become a zombie tell you to act like one.
    • -
    -

    MrJWhit updated:

    -
      -
    • Decluttered toxins and hid the yellow mix line in atmos, for metastation
    • -
    -

    SiliconMain updated:

    -
      -
    • Paramedic heirloom is now a zippo
    • -
    • Durathread belts now protect their contents from radiation, and can hold full sized extinguishers
    • -
    -

    Sishen1542 updated:

    -
      -
    • removed zoomba
    • -
    -

    dapnee updated:

    -
      -
    • added a fan to the listening outpost
    • -
    • added two missing r-walls near the SM, removed random light and wire node below the engine, and fixed the missing cable in the courtroom on Kilo
    • -
    -

    kappa-sama updated:

    -
      -
    • Stimpaks cost 5tc once more, up from 3tc.
    • -
    -

    silicons updated:

    -
      -
    • polychromatic cloaks to loadout
    • -
    • no more self healing with medibeam guns
    • -
    • oh no, taser buff. alt fire delay dropped to 0.4 seconds.
    • -
    • you can now shoot yourself by disarm-intenting yourself with a gun.
    • -
    -

    timothyteakettle updated:

    -
      -
    • species code is now slightly less messy
    • -
    • slight tweak to how material crafting works
    • -
    • changed up pet carriers / bluespace jars a bit so you can't fit certain things inside them and also the text shown for resist times is accurate
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • Black Box theft objective
    • -
    - -

    27 July 2020

    -

    Hatterhat updated:

    -
      -
    • Training bokkens! Make 'em from wood, use 'em in-hand to toggle between harmful and not-so-harmful, practice your parrying with them!
    • -
    • Marker beacons should have a sprite again.
    • -
    -

    silicons updated:

    -
      -
    • clownops and clown mobs now share the same faction. HONK!
    • -
    -

    timothyteakettle updated:

    -
      -
    • modern pickle technology now allows people who have been turned into pickles, to be retrieved through the medical course of dying
    • -
    - -

    26 July 2020

    -

    DeltaFire15 updated:

    -
      -
    • Organs now decay again.
    • -
    -

    Iatots updated:

    -
      -
    • Licking wounds now may cause you to spit out a hairball once in a while!
    • -
    • You can now craft a catgirl plushie with 3 of a new ingredient occasionally found in medbay!
    • -
    -

    dapnee updated:

    -
      -
    • removed legacy public mining shuttle area and remade lounge
    • -
    - -

    25 July 2020

    -

    CameronWoof updated:

    -
      -
    • Aloe now has an icon.
    • -
    -

    timothyteakettle updated:

    -
      -
    • beepsky replaces the word THREAT_LEVEL with the actual threat level
    • -
    - -

    24 July 2020

    -

    EmeraldSundisk updated:

    -
      -
    • Adds a CMO office, along with Virology and Genetics labs to Omega Station
    • -
    • Adds a second chemistry station to the chemistry lab
    • -
    • Adjusts the locations of some objects in medical to accommodate these new additions
    • -
    • Relocates the morgue
    • -
    • Relocates items in impacted areas of maintenance as well as the library
    • -
    • Fixes an air line Bartholomew somehow knocked out
    • -
    -

    Linzolle updated:

    -
      -
    • wounds now have a description on examine
    • -
    -

    Owai-Seek updated:

    -
      -
    • Meatball Sub, Meatloaf + Meatloaf Slices, Bear Chili, Mashed Potatoes
    • -
    • Buttered Potatoes, Fancy Cracker Pack, Spiral Soup, Sweet and Sour Chicken
    • -
    • Organised the Food DMI a bit.
    • -
    • Deleted some stray pixels on some sprites.
    • -
    • Nuggie boxes are now centered correctly.
    • -
    • Icons for the the food items in this PR.
    • -
    -

    Sneakyrat6 updated:

    -
      -
    • Fixes dressers not giving you undies
    • -
    • Fixes Snaxi not loading properly because of typos
    • -
    • You can now burn photos
    • -
    -

    Zandario updated:

    -
      -
    • Murdered **tipes** and gave birth to **is**.
    • -
    -

    silicons updated:

    -
      -
    • sanitization now doesn't cut off 15.7 or something million possible colors from character preferences (instead of only allowing 16 values for R G and B, it now allows 256 each)
    • -
    • projectiles are by default 17.5 tiles per second instead of 12.5
    • -
    -

    timothyteakettle updated:

    -
      -
    • due to recent innovative research in the medical field, you now have bones
    • -
    • zombie claws are now sharp and do less damage, but can destroy non-lifeforms far faster
    • -
    • zombies now take less stamina damage
    • -
    • beepsky can now wear hats
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • rad and kravglove sprites
    • -
    - -

    23 July 2020

    -

    DeltaFire15 updated:

    -
      -
    • Traits are no longer fucked
    • -
    -

    Putnam3145 updated:

    -
      -
    • Slight optimization in chat code.
    • -
    -

    kappa-sama updated:

    -
      -
    • tendril chests being empty
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • fetish content
    • -
    - -

    22 July 2020

    -

    Ludox updated:

    -
      -
    • You can no longer be brainwashed into giving birth to a fake baby
    • -
    -

    kappa-sama updated:

    -
      -
    • brainwashing disk has lost its cost buffs (3->5) and is role restricted once more (medical doctor/roboticist)
    • -
    - -

    21 July 2020

    -

    Arturlang updated:

    -
      -
    • Decal painter ui now works, yay?
    • -
    -

    CameronWoof updated:

    -
      -
    • Adds aloe, a new growable plant
    • -
    • Adds medicated sutures and advanced regenerative meshes
    • -
    • Polypyrylium oligomers and liquid electricity now correctly populate
    • -
    -

    Chiirno updated:

    -
      -
    • Alt-click pill bottles places top-most pill into active hand.
    • -
    • Moved dice bags from pill_bottle/dice to box/dice to avoid dice bags being affected from medical specific pill bottle changes.
    • -
    -

    DeltaFire15 updated:

    -
      -
    • Swarmers can once again eat items as long as there's nothing living in them.
    • -
    -

    Funce updated:

    -
      -
    • Genetics spiderwebs are no longer impassable walls
    • -
    -

    Kraseo updated:

    -
      -
    • Damp rags no longer instantly apply their chemicals onto someone.
    • -
    -

    SiliconMain updated:

    -
      -
    • Geigers can no longer be contaminated
    • -
    -

    TheSpaghetti updated:

    -
      -
    • new snowflake trait
    • -
    -

    kappa-sama updated:

    -
      -
    • advanced surgery duffel bag no longer comes with a nukie medkit. it costs 4 less telecrystals to make up for this colossal nerf.
    • -
    • quartered the weight of the stray cargo pod event from 2x normal to 1/2 normal
    • -
    -

    silicons updated:

    -
      -
    • survivalists (from summon guns/magic) are proper objective'd pseudoantagonists again
    • -
    • summon guns/magic can only be used once each
    • -
    • summon guns/magic now only cost one point each
    • -
    • :dsmile: :dfrown: :dhsmile: :dpog: :dneutral:
    • -
    • gravity should update for mobs a fair bit faster
    • -
    • voting can now be done from the stat panel if the system is plurality and approval
    • -
    -

    timothyteakettle updated:

    -
      -
    • new fried component used for frying objects
    • -
    • various frying bugs fixed such as being able to unfry items and frying turfs with cold cooking oil
    • -
    - -

    20 July 2020

    -

    lolman360 updated:

    -
      -
    • Service borgs now have synthesizers instead of a violin and guitar.
    • -
    • borg RSF
    • -
    - -

    19 July 2020

    -

    Arturlang updated:

    -
      -
    • TGUI 3.0 and enables all the UIs, plus the smart asset cache, and all the things required for them
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • Adds a pool to Delta Station
    • -
    • Adds light fixtures to specified areas
    • -
    • Relocates objects in impacted areas of Delta's starboard maintenance
    • -
    -

    MrJWhit updated:

    -
      -
    • Adds a small light next to the kitchen counter
    • -
    -

    Putnam3145 updated:

    -
      -
    • Pen uplinks no longer broken
    • -
    -

    TheObserver-sys updated:

    -
      -
    • Adds a new reaction: Slime Extractification. Take 30u Slime Jelly, 5u Frost Oil, and 5u plasma to generate a fresh grey slime extract.
    • -
    -

    Yakumo Chen updated:

    -
      -
    • Hierophant club now checks for friendly fire by default.
    • -
    -

    b1tt3r1n0 updated:

    -
      -
    • Added the updated circle game
    • -
    -

    silicons updated:

    -
      -
    • Unarmed parry is now a thing.
    • -
    -

    timothyteakettle updated:

    -
      -
    • plushies in the loadout have been replaced with a box that lets you choose one instead
    • -
    • wrestling should no longer have the ability to permanently rotate people
    • -
    • you can now select to wear a snail shell as your backpack in the customization menu
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • martial arts twenty minpop
    • -
    • records
    • -
    - -

    17 July 2020

    -

    ShizCalev, Fikou updated:

    -
      -
    • Added some sanity checking for varedit values.
    • -
    • Fixed an exploit involving coins and mints that could crash the server.
    • -
    • Fixed an exploit that would allow you to destroy round-critical / indestructible items with folders.
    • -
    • Swarmers can no longer cut power lines by deconstructing catwalks underneath them.
    • -
    • Fixed a scenario that allowed infinite resource generation via ore machines.
    • -
    • you can no longer inject html in ahelps
    • -
    • you cant either, jannies
    • -
    -

    timothyteakettle updated:

    -
      -
    • fixes a small pickle related issue
    • -
    • recent culinary and scientific advancements have brought forth new pickle related technologies
    • -
    - -

    16 July 2020

    -

    DeltaFire15 updated:

    -
      -
    • Fixes a zeolite runtime caused by a missing check.
    • -
    -

    Sneakyrat6 updated:

    -
      -
    • Fixes being able to meta people real name with OOC Notes
    • -
    -

    timothyteakettle updated:

    -
      -
    • travelling traders from another dimension can now visit the station in search of something specific, and reward you for giving it to them
    • -
    • small error with pet carrier logic fixed and also making sure simple mobs are catered for properly inside bluespace jars
    • -
    • fixes coin related issue
    • -
    - -

    15 July 2020

    -

    Sonic121x updated:

    -
      -
    • Paramedic jumpsuit
    • -
    - -

    14 July 2020

    -

    silicons updated:

    -
      -
    • chemical reactions now are sorted by priority first and temperature second.
    • -
    • sec and medical records have been added to character setup.
    • -
    • circuit reagent heaters are now sanitized for temperature from 2.7 to 1000.
    • -
    -

    timothyteakettle updated:

    -
      -
    • ports a money bag exploit
    • -
    - -

    13 July 2020

    -

    Linzolle updated:

    -
      -
    • you can no longer vore and digest people regardless of vore preferences
    • -
    -

    Owai-Seek updated:

    -
      -
    • Trashbags can now hold most shoes, and organs.
    • -
    • You can no longer nest nuke disks or hold brains in the trash.
    • -
    - -

    12 July 2020

    -

    DeltaFire15 updated:

    -
      -
    • Sentinels compromise now heals augmented bodyparts.
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • Adds turnstiles to CogStation's security wing
    • -
    • Readds robotics to the Corpse Disposal Network
    • -
    • Readds chemistry's ability to send items directly to the experimentation lab
    • -
    • Visual renovation and slight adjustments to CogStation's robotics lab
    • -
    • Slight visual adjustments elsewhere (the library)
    • -
    • CogStation's mail and disposal pipes are once again complete
    • -
    • CogStation's robotics lab now has spawners, lights, and other room essentials
    • -
    -

    HeroWithYay updated:

    -
      -
    • Added Telecrystal Dust
    • -
    • Telecrystals can be sold at cargo
    • -
    -

    LetterN updated:

    -
      -
    • Added d[thing] emojis
    • -
    • bye xss
    • -
    -

    MrJWhit updated:

    -
      -
    • Removes northern tunnel to the monastery on Pubby
    • -
    -

    Yakumo Chen updated:

    -
      -
    • Adds a wedding crate to cargo full of wedding attire.
    • -
    -

    kappa-sama updated:

    -
      -
    • wisdom cow is half as common and is wise enough to lag the server 66% less
    • -
    -

    silicons updated:

    -
      -
    • policy configuration added, plus support hooks for assisting enforcement of clone memory disorder. logging: added logging of revival by defib, cloning, strangereagent, and revival surgery
    • -
    • You can now "audibly emote" by having ! at the start of a sentence.
    • -
    -

    timothyteakettle updated:

    -
      -
    • due to recent biological advancements, you can now make eye contact with people.
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • a singular stray pixel
    • -
    - -

    11 July 2020

    -

    Putnam3145 updated:

    -
      -
    • Gas mixtures now live entirely in a DLL.
    • -
    - -

    10 July 2020

    -

    Chiirno updated:

    -
      -
    • Gave jellypeople a unique brain object /obj/item/organ/brain/jelly
    • -
    • added an icon for jellypeople brains.
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • Adds a pool to PubbyStation
    • -
    • Slight adjustments to the surrounding area as to fit said pool
    • -
    -

    Sneakyrat6 updated:

    -
      -
    • Fixes hair falling out of hoodies.
    • -
    -

    TheObserver-sys updated:

    -
      -
    • Actually adds the juice reagent to make laugh peas donuts.
    • -
    - -

    09 July 2020

    -

    timothyteakettle updated:

    -
      -
    • bluespace tray added, allowing twice as many items as the regular tray, printable at the service lathe, researched through science
    • -
    • bluespace jar added, a kind of pet carrier that allows human sized mobs inside, and smashes when thrown, researched and printed through science
    • -
    - -

    08 July 2020

    -

    DeltaFire15 updated:

    -
      -
    • The kill-once objective now works properly.
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • CogStation now has an apothecary
    • -
    • Removes an outdated note on sleepers
    • -
    • Readjusts CogStation's chemistry lab
    • -
    • Slight area designation adjustments for Robotics
    • -
    • The arrivals plaque should be readable now
    • -
    -

    Owai-Seek updated:

    -
      -
    • Margarine, Chili Cheese Fries.
    • -
    • Egg Wraps are now categorized under egg foods.
    • -
    • Tuna Sandwich crafting/sprite is now visible.
    • -
    • Icons for chicken, cooked chicken, steak, grilled carp, corndogs
    • -
    • Icons for chili cheese fries, margarine, BLT sandwich
    • -
    • (Unused) icons for raw meatballs, and lard
    • -
    - -

    07 July 2020

    -

    KasparoVy updated:

    -
      -
    • Fixes misaligned south-facing silver legwraps sprite.
    • -
    -

    Owai-Seek updated:

    -
      -
    • Bee Balm is now visible.
    • -
    -

    Weblure updated:

    -
      -
    • Fixed the slowdown formula for small character sprites; you guys don't use custom sprite sizes so just ignore these changes.
    • -
    • Fixed the "Move it to the threshold" button; it now does what it says.
    • -
    • Reworded some text to be clearer.
    • -
    - -

    05 July 2020

    -

    Ghommie updated:

    -
      -
    • You can now actually gain wiring experience from using cable coils.
    • -
    • Opening the View Skill Panel shouldn't trigger messages about insufficient admin priviledges anymore.
    • -
    -

    Yakumo Chen, kappa-sama updated:

    -
      -
    • Removes improvised handguns
    • -
    • removed handsaws, improvised gun barrels (you can use atmos pipes again)
    • -
    • Guncrafting is less time and resource intensive
    • -
    • Item names in guncrafting are user-friendly.
    • -
    -

    kappa-sama updated:

    -
      -
    • cloth string to replace durathread string
    • -
    • durathread string
    • -
    • All bows and arrows have had crafting times significantly reduced, coming out at up to 6 times faster crafting speeds. Improvised bows no longer require durathread; instead, they use cloth materials.
    • -
    -

    silicons updated:

    -
      -
    • active blocking now has a toggle keybind
    • -
    • auto bunker override verb has been added
    • -
    • shields take 2.5 stam instead of 3.5 stam per second to maintain block
    • -
    • Cybernetic implant shields will auto-extend and be used to block if the user has no item to block with
    • -
    -

    timothyteakettle updated:

    -
      -
    • cooking oil is now far less lethal, requiring a higher volume of the reagent to deal more damage
    • -
    - -

    04 July 2020

    -

    Sonic121x updated:

    -
      -
    • crushed Soldry sodacan
    • -
    • digitigrade version of chief medical officer's turtleneck and captain's female formal outfit.
    • -
    -

    silicons updated:

    -
      -
    • blood_DNA["color"] is now a single variable instead of a list
    • -
    - -

    03 July 2020

    -

    Arturlang updated:

    -
      -
    • You can now toggle hardsuit helmets from the strip menu
    • -
    -

    Ghommie updated:

    -
      -
    • fixed custom speech/tongue stuff.
    • -
    • Lowered shaft miners' paycheck, they have other ways to make cash.
    • -
    • You can't (un)equip garments on/from obscured inventory slots anymore.
    • -
    • The stamina cost multiplier for swinging melee weapons against mobs has been brought back to 1 from 0.8
    • -
    • The stamina cost for throwing mobs now scales with their mob size variable.
    • -
    -

    LetterN updated:

    -
      -
    • Ported some tags from tgui-3.0 to Vending.js
    • -
    • vending icons
    • -
    • r&d icons
    • -
    • chem master icons
    • -
    -

    Onule updated:

    -
      -
    • titanium wall man good
    • -
    -

    Sonic121x updated:

    -
      -
    • Bringback the ChemMaster pill type button.
    • -
    • Fix Technode icon.
    • -
    -

    bunny232 updated:

    -
      -
    • Witchhunter hat no longer obscures mask ears ,eyes, face and mouth
    • -
    -

    timothyteakettle updated:

    -
      -
    • bloodpacks initialise correctly now
    • -
    - -

    02 July 2020

    -

    Ghommie updated:

    -
      -
    • Fixing a few issues with twohanded items.
    • -
    • Unum decks now work correctly.
    • -
    • Abductor walls are once again buildable with alien alloy.
    • -
    -

    Trilbyspaceclone updated:

    -
      -
    • Makes pride and envy ruin a bit smaller!
    • -
    • Pride now has rings, lipstick wigs and silver walls/door making a nice and polished look then cyan blue walls.
    • -
    • more trash and better dagger placement on food ruin
    • -
    • Snowboim now has snowballs and toy gifts for the two skeles daw!
    • -
    • Beach boim now has carp light branding beer, as well as soap!
    • -
    • Greed ruin now uses nice slick walls and carpet!
    • -
    • Founten ruin looks a lot better with its carpets and well maintained fluff things, but walls suffered and no longer can salvage ruined metal...
    • -
    • Alien nest has a bit more glowy floors of resin looking a bit more lived in by the drones. As well as the "door" now being see through resin rather then the thicker stuff that you cant see through
    • -
    • Pizza party has a few more gifts, some candy and snap pops yay!
    • -
    • Sloth ruin is about 15~ tiles shorter, has and has more fruit for a bowl. How lazy!
    • -
    -

    silicons updated:

    -
      -
    • bohbombing is a thing now
    • -
    - -

    30 June 2020

    -

    Fikou updated:

    -
      -
    • spray cans, airlock painters, and decal painters added to engineering/service/autolathe (where applicable)
    • -
    -

    Ghommie updated:

    -
      -
    • Fixed a gap on the male insect anthro torso sprite when facing south.
    • -
    • Fixed mecha ID access not being removable.
    • -
    • Fixed a peeve with the hypno trance status effect not sanitizing some heard hypnosis inputs (i.e. custom say messages like say"honks*clownem ipsum dolor")
    • -
    • fixed an issue about using stacks with only 1 amount left.
    • -
    • Fixed a peeve on attack messages against carbons/humans.
    • -
    • Fixed missing hypnochair board.
    • -
    • Fixed material walls and tiles. My bad on that port.
    • -
    -

    Ghommie (inspired by MrDoomBringer's work on tgstation) updated:

    -
      -
    • New check skills UI.
    • -
    -

    Ghommie (porting PRs by XTDM, coiax, MrDoomBringer) updated:

    -
      -
    • Random Events now have a follow link for ghosts!
    • -
    • Adds the Spontaneous Brain Trauma to the event pool. Sometimes your brain just goes a little wrong.
    • -
    • Sometimes a low level cloning pod will make errors in replicating your brain, leaving you with a mild brain trauma.
    • -
    • When a person is cloned, any mental traumas are cloned as well.
    • -
    • The wizard federation announces that the Curse of Madness is out of beta and is now available for purchase for 4 points. It causes long-lasting brain traumas to all inhabitants of a target space station.
    • -
    • The wizard federation declines responsibility for any self-harm caused by curses cast while inside the targeted station.
    • -
    • Due to the extensive testing of the Curse of Madness some unique new trauma types have appeared across Nanotrasen-controlled space.
    • -
    • Curse of Madness can now be triggered by a wizard's Summon Events, at the same chance as Summon Guns or Summon Magic.
    • -
    • When an admin triggers Curse of Madness manually, they can specify their own dark truth to horrify the station with.
    • -
    -

    nightred updated:

    -
      -
    • Created two_handed component
    • -
    • Updated all existing two handed items to use the new component
    • -
    -

    silicons updated:

    -
      -
    • typing indicators no longer generates duplicate message boxes.
    • -
    • config errors now have line numbers.
    • -
    • outgoing mentorpms are now blue instead of green for the sender.
    • -
    • *squish
    • -
    -

    timothyteakettle updated:

    -
      -
    • you can now select your tongue and speech verb in the character customization menu!
    • -
    • skeleton is now split into two more types, greater and lesser
    • -
    • non-carbon blood is now not white
    • -
    • fixed a bunch of grammar/spelling mistakes
    • -
    - -

    29 June 2020

    -

    b1tt3r1n0 updated:

    -
      -
    • Made teratomas from sdgf less powergame
    • -
    -

    timothyteakettle updated:

    -
      -
    • slimes no longer have white blood by default
    • -
    - -

    28 June 2020

    -

    Detective-Google updated:

    -
      -
    • cog is less the suck
    • -
    • piggybacking is no longer absolutely inferior
    • -
    -

    Ghommie updated:

    -
      -
    • Fixing windows interaction with spraycans.
    • -
    • Fixing kinetic accelerator guns not working well with gun circuitries.
    • -
    • Fixing Zoomba borgs lights overlays.
    • -
    • Fixing the "absorb another ling" and "absorb the most dna" objectives rolling when no other changeling is around.
    • -
    • Clarified a pet peeve about the spread infestation ability.
    • -
    • BEPIS nodes won't show up anymore in the expert mode ui of the r&d console anymore (good thing they weren't researchable).
    • -
    • Hopefully fixing sound loop edge cases.
    • -
    • Fixing pAI radios being permanently disabled by EMPs at times.
    • -
    • Windoors can now be obscured with spraycans just like windows.
    • -
    -

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

    -
      -
    • Fixes a material duplication bug.
    • -
    • unique combinations of custom_materials lists are now shared between objects
    • -
    • meat material. yes.
    • -
    • materials can now be used to build walls/floors. meat house
    • -
    • edible component now does not try to attack if you eat something with it
    • -
    • Texture support for mat datums with thanks to 4DPlanner!
    • -
    • you no longer hit yourself with organs when eating
    • -
    • A whole bunch of materials are now datumised! Check out bronze, runed metal, sand, sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. Yes, pizza.
    • -
    • Buffs material floor tiles' throwforces from 1 to 10 (same as iron) to better showcase the effect of different materials (e.g. meat vs. titanium)
    • -
    • Radioactive items no longer output a single . when examined at a distance
    • -
    -

    MrJWhit updated:

    -
      -
    • Removed air alarm in Snow Snaxi in Tcomms Sat
    • -
    • Removed trash bins in genetics and mining
    • -
    • Gives cargo techs a cargolathe
    • -
    -

    Putnam3145 updated:

    -
      -
    • lost my mind just a couple of times
    • -
    -

    b1tt3r1n0 updated:

    -
      -
    • pouches, again, and and material pouches.
    • -
    -

    timothyteakettle updated:

    -
      -
    • support for custom blood colours implemented, slimes blood colour now equivalent to their body colour
    • -
    - -

    27 June 2020

    -

    Detective-Google updated:

    -
      -
    • Lying down is better
    • -
    -

    timothyteakettle updated:

    -
      -
    • felinids now nya when tabled
    • -
    - -

    26 June 2020

    -

    Ghommie updated:

    -
      -
    • Snore spam.
    • -
    • Hostile mobs shouldn't hit their original spawner structures or thoses of the same faction.
    • -
    -

    silicons updated:

    -
      -
    • soap cleans blood again
    • -
    - -

    25 June 2020

    -

    Anonymous updated:

    -
      -
    • Added kepi and orvilike kepi. Available through loadout.
    • -
    -

    Detective Google updated:

    -
      -
    • Medigygax
    • -
    -

    Detective-Google updated:

    -
      -
    • malf AIs can no longer yeet the station while shunted
    • -
    • SMESes can now properly use self charging cells
    • -
    • ghosts now show up when the round ends
    • -
    • away missions
    • -
    -

    Funce updated:

    -
      -
    • Mentor SQL queries are now deleted properly.
    • -
    -

    Linzolle updated:

    -
      -
    • analyze function on chem master is no longer broken
    • -
    • organs now decay inside dead bodies again
    • -
    -

    dapnee updated:

    -
      -
    • wataur bottle item
    • -
    • wataur bottle and overlay
    • -
    - -

    24 June 2020

    -

    DeltaFire15 updated:

    -
      -
    • Choosing a random item in your uplink will no longer sometimes reroll your contract.
    • -
    • Syndicate crate event cannot fire as a random event anymore.
    • -
    -

    Detective-Google updated:

    -
      -
    • singulos no longer succ infinite rods out of the ice
    • -
    • one of the directions for the diag hudpatch was blu instead of orang
    • -
    -

    timothyteakettle updated:

    -
      -
    • bonfires/grills no longer produce infinite quantities of food
    • -
    • slime's alter form ability now updates their hair colour when changing their body colour
    • -
    - -

    22 June 2020

    -

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

    -
      -
    • Certain small items purchased through cargo now get grouped into a single box. They also are immune to the 10% private account fee.
    • -
    • Added single-order options for several existing products in the Cargo Catalog.
    • -
    • Medkit listings are now single-pack items, and considered small items that get grouped into single boxes. Price for medkits is as close to unchanged as is reasonable.
    • -
    • You can now beat on vending machines to try and knock loose free stuff! You can also almost kill yourself doing it, so it's your call if your life is worth ten bucks.
    • -
    • Cigarette packets now have coupons on the back for small cargo items! Smoking DOES pay!
    • -
    • Some single/small items in cargo have been rebranded as goodies, come in lockboxes rather than crates, and can only be purchased with private accounts.
    • -
    -

    kevinz000 updated:

    -
      -
    • Life() is split into BiologicalLife() and PhysicalLife. A component signal has been added that can prevent either from ticking.
    • -
    -

    shellspeed1 updated:

    -
      -
    • Adds IV bags.
    • -
    GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index d4243a01ec..99ffc455c3 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -27060,3 +27060,467 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: suiciding with the temporal katana omae wa mou shinderius you into the shadow realm - soundadd: twilight isnt earrape +2020-08-24: + MrJWhit: + - bugfix: Fixes areas on expanded airlocks + silicons: + - bugfix: wormhole jaunters work + - tweak: wormhole jaunters no longer get interference from bags of holding + - bugfix: airlocks now only shock on pulse/wirecutters instead of on tgui panel + open. + timothyteakettle: + - rscadd: three new items are in the loadout for all donators + zeroisthebiggay: + - rscadd: contraband black evening gloves in kinkvend +2020-08-25: + Hatterhat: + - rscadd: Insidious combat gloves have been replaced by insidious guerilla gloves. + They're generally the same, except now you can tackle with them. + Literallynotpickles: + - tweak: You can now equip handheld crew monitors on all medical-related winter + coats. + Putnam3145: + - tweak: vore now ejects occupants on death + raspy-on-osu: + - tweak: Thermoelectric Generator power output + timothyteakettle: + - tweak: I.P.Cs now short their circuits when expressing emotion, causing sparks + to appear around them. +2020-08-26: + ancientpower: + - tweak: Ghosts can read newscasters by clicking on them. + silicons: + - balance: hierophant vortex blasts now have 50% armor penetration vs mecha + - balance: ventcrawling now kicks off every attached/buckled mob, even for non humans. +2020-08-27: + silicons: + - tweak: eyebeam lighting can only have 128 maximum HSV saturation now. + - balance: no more shotgun stripper clips in boxes. + - balance: goliath tentacles now do 20 damage to mechs at 25% ap + timothyteakettle: + - tweak: changing your character's gender won't randomize its hairstyle and facial + hairstyle now +2020-08-28: + EmeraldSundisk: + - rscadd: Adds more paper to the library + - rscadd: The law office now has a desk window + - tweak: Expands most of CogStation's exterior airlocks. Slightly adjusts surrounding + areas to accommodate this. + - tweak: Updates some of CogStation's paperwork + - tweak: The rat in the morgue turned themselves into a possum. Funniest shit I've + ever seen. + - bugfix: Adjusts some area designations so cameras should receive power properly + - bugfix: Cleans up an errant decal + Hatterhat: + - tweak: Traitor holoparasites can now only be bought once, because apparently you + can only have one active holopara. + - balance: PDA bombs can now only be bought once per uplink. + lolman360: + - rscadd: atmos = radiation = chemistry. + shellspeed1: + - rscadd: Adds slow mode for iv drips + timothyteakettle: + - rscadd: an ancient game over a thousand years old has re-emerged among crewmembers + - rock paper scissors + - tweak: customization features appear in alphabetical order where necessary + - tweak: bokken do two more stamina damage now + - rscadd: you can now choose a body sprite as an anthromorph or anthromorphic insect, + and can choose from aquatic/avian and apid respectively (and obviously back + to the defaults too) +2020-08-30: + raspy-on-osu: + - rscadd: new explosion echoes + - tweak: explosion echo range + - soundadd: 5 new explosion related sounds +2020-08-31: + Arturlang: + - tweak: Slimes can now damage structures, don't leave them unfed! + Chiirno: + - bugfix: Moves pill_bottles/dice to box/dice on CogStation. + Couls, ported by NecromancerAnne: + - code_imp: cleans up mech backstabbing code + DeltaFire15: + - rscdel: teleport-to-ark ability of the eminence, commented out + - rscadd: teleport-to-obelisk ability for the eminence + Detective-Google: + - tweak: plasmamen have no more slowdown + - rscadd: object reskins now use very nice and cool radials + EmeraldSundisk: + - rscadd: Adds a pool to MetaStation + - tweak: Slight readjustments to the surrounding area + - bugfix: Fixes a handful of external airlocks + ForrestWick: + - balance: removes wall walking boots from nukie uplink + - tweak: removes wall walking boots from nukie uplink + Ghommie: + - bugfix: e-gun overlays and some floor decals should have been fixed. + LetterN: + - rscadd: tgchat + Lynxless: + - tweak: Changed anatomic panacea into a direct buff, instead of a chem injection + - balance: Changed the values of anatomic panacea + - imageadd: Added a new icon for panacea's buff alert + Putnam3145: + - tweak: Pref for genital/vore examine text + - bugfix: Fixed a couple events having ghost roles eligible. + - balance: 'Buffed slaughter demon: gets stronger as it eats people' + - balance: 'Nerfed slaughter demon: no longer permanently round-removes all who + are eaten by it, instead releasing their now-heartless bodies' + - bugfix: Dynamic storytellers now calculate property weights properly. + Sonic121x: + - bugfix: Fix the four type of new tea that will stuck inside your vein. + - rscadd: drinking glass sprite for those tea. + kappa-sama: + - balance: miners can no longer acquire funny antag item + lolman360: + - bugfix: shuttle engine/heater sprites now face the right way + raspy-on-osu: + - tweak: TEG power output + - tweak: tesla movement priorities + - rscadd: tesla counterplay + - rscadd: tesla containment check (containment variable now usable) + silicons: + - bugfix: brooms now sweep objects on MOVABLE_PRE_MOVE rather than MOVABLE_MOVED + - balance: firedoors no longer automatically open on touch when there's no pressure + differences. + timothyteakettle: + - tweak: buzz, buzz2 and ping are now all unrestricted emotes and can be used by + anyone + - imagedel: the drake credit and pickle credit sprites have been removed + - refactor: tongue speech handling is now done by accent datums + zeroisthebiggay: + - rscdel: waffleco +2020-09-01: + BlueWildrose: + - bugfix: fixed slimes starting off hungry +2020-09-02: + Putnam3145: + - code_imp: Added a unit test for character saving. + - balance: Plastitanium rapier no longer silently sleeps with no chance at counterplay + when used by pacifists. + - bugfix: Fusion scan is now actually useful. + Tupinambis: + - tweak: moved the dakis, genital growth pills, and genital autosurgeons out of + the maintenance loot table and into kinkmates. + raspy-on-osu: + - bugfix: pyroclastic anomaly client spam + timothyteakettle: + - rscadd: you can hide your ckey now from the roundend report +2020-09-03: + Ghommie: + - bugfix: Jaunters should now work with magic mirror chasming. + - bugfix: The photocopier can now print more than one copy at a time. + - bugfix: Alkali perspiration infos don't crash the Pandemic UI anymore. + - bugfix: Windoors can be actually tinted now. +2020-09-04: + timothyteakettle: + - bugfix: ipcs can speak +2020-09-05: + Bhijn: + - rscadd: Readded the old method of temperature notifications in the form of a new + pair of shivering/sweating notifications. + Putnam3145: + - tweak: Hilbert hotel flavor text for one particular snowflake hotel changed. + - admin: admins can now actually reduce threat level in dynamic + - tweak: Made owo.ogg smaller. + - tweak: Character saving unit test is now more verbose on failure. + - refactor: Added an extools proc hook alternative to rust_g logging. + raspy-on-osu: + - tweak: supermatter shard examine text + - tweak: protolathe item categories +2020-09-06: + Putnam3145: + - rscdel: Dynamic no longer pushes events. + - balance: Made spontaneous brain trauma a good deal less annoying. + lolman360, NecromancerAnne: + - rscadd: The ancient art of blacksmithing, now in pixels. + - imageadd: cool swords and shit (thanks anne) + raspy-on-osu: + - tweak: thermomachine examine text +2020-09-07: + DeltaFire15: + - spellcheck: fixed a typo causing a span not to show. + Putnam for debugging ammo loading! Thx!!: + - rscdel: Removed spell blade, diamond picaxe, and fire wand from lava land loot + tables + - tweak: Each mini boss now has its own type of crate. + - tweak: Each spike has its own type of crate that it pulls its now smaller loot + table from + - balance: Moved god eye from spike loot table to hard spawn collosses fight + - balance: Moved holoparasight from spike loot table to bubble gum + - balance: Moved magic meat hook from spike loot table to drake + - rscadd: 2 more crates to Arena Shuttle as well as 4-4-4 of each new type of chest + - balance: Replaced the diamond pick loot with a better one + - tweak: Replaced the cursted katana with a non cursted verson that deals half the + damage and has less block! + - rscadd: Three new potions, blue heals the mind like a mama potion, Green heals + the soul aka the organs! Lastly Red heals the body, by 100 damage of each main + types. Best not to waste them! + - rscadd: Four more "wands" Spellbooks! These fun little guys shoot out its own + pages to do the affect, one will set the target on fire like a bullet, one will + harm them a bit, one will heal the target a small bit - How nice! Last one will + give them a few statis affects like a taser bolt but without as much power or + tasing affect +2020-09-08: + Ghommie: + - spellcheck: fixed names of the Electrical Toolbox goodie pack and green croptop + christmas suit. + - bugfix: Fixed turf visuals for real. Original PR by AnturK on tgstation. + KeRSedChaplain: + - soundadd: added borg_deathsound.ogg and android_scream.ogg + silicons: + - balance: meteor waves now have a static 5 minute timer. +2020-09-09: + Putnam3145: + - bugfix: Made superconductivity work for the first time literally ever. + timothyteakettle: + - bugfix: accents work better +2020-09-11: + Putnam3145: + - balance: Superconducting turfs now can't go below 0 celsius. +2020-09-12: + BlueWildrose: + - bugfix: The Polychromic winter coat's hoodie will now polychrome, alongside any + other new polychromic items with toggleable headwear. + - bugfix: Minesweeper will no longer blow up the player's ears when they select + "Play on the same board" + - rscadd: Slimepeople will find warm donk pockets among other toxin healing items + even more repulsive, as they are anti-toxic. + - tweak: Slimepeople are now neutral to gross foods. + DeltaFire15: + - balance: AIs can no longer qdel() the gravity generator + Putnam3145: + - code_imp: Added some unit tests for reactions. + - refactor: replaced handle_changeling and handle_bloodsucker with signal registration + Sonic121x: + - bugfix: Fixed pill button on chemical press + TheObserver-sys: + - rscadd: Brass now has a proper datum. Aspiring Forgetenders rejoice! + Trilbyspaceclone: + - bugfix: Race based drinks will no longer stay inside your blood for ever. + Tupinambis: + - tweak: Redid Cogstation atmos pipes to make it less cluttered. + - tweak: Removed a few doors from the main hallway to mitigate chokepoint issues + - bugfix: All belt hell conveyers are now on by default, so that belt hell actually + works. + - bugfix: IDs for poddoors and belts and the like. Everything is now properly hooked + and should work as expected (except for the pressure triggered mass drivers) + - bugfix: addresses most if not all roundstart active turfs. + - bugfix: Issue where wires were connected to the SMES improperly, and SMES were + not properly precharged, resulting in power failure earlier than intended. + - bugfix: various rogue turfs and wirings. + - bugfix: security office APC being hooked to maintenance for some reason. + - bugfix: TEG is now directly wired to the SMES. + - code_imp: 'adds a subtype of mass drivers that is triggered by things being on + it. TODO: Make these mass drivers trigger poddoors, to make belt hell fully + functional.' + lolman360: + - bugfix: glaives now work again + zeroisthebiggay: + - balance: Revolver is now poplocked down to fifteen people. +2020-09-16: + timothyteakettle: + - tweak: fixed an icon path +2020-09-17: + DeltaFire15: + - rscadd: Failing the plushmium reaction can now create peculiar plushies, depending + on reaction volume. + - bugfix: The mood-buff from petting a plushie now works properly again. + - bugfix: Fixed wacky necropolis loot chest behavior + EmeraldSundisk: + - rscadd: Adds the Research Director's office to Omega Station + - rscadd: Adds 2 new solar arrays (and control rooms) + - rscadd: Adds some action figures that weren't there previously + - rscadd: The CMO's office now has a light switch + - tweak: Slight readjustments to impacted areas + - tweak: Readjusts the toxins air supply line to (ideally) be easier to service + - bugfix: Department camera consoles should now be able to actually check appropriate + cameras + - bugfix: Xenobiology can now be locked down (by the Research Director) + MrJWhit: + - rscadd: Adds a brain damage line + Putnam3145: + - bugfix: Your balls finally feel full, again. + timothyteakettle: + - rscadd: due to changes in policy, and several lawsuits, Nanotrasen has been forced + to allow disabled people to sign up +2020-09-20: + DeltaFire15: + - bugfix: Sutures work on simplemobs again. + - bugfix: Attacking dismembered bodyparts now targets the chest instead, for weapons + aswell as unarmed attacks. + MrJWhit: + - rscadd: New sprites for chess pieces! You can craft them in-game with metal sheets. + silicons: + - balance: hulks can smash again (walls no longer break their hands) + - rscdel: acid no longer degrades armor +2020-09-22: + Arturlang: + - rscadd: TGUI Statpanel + YakumoChen: + - imageadd: Mechsuits, robotics jumpsuits added to RoboDrobe + timothyteakettle: + - tweak: character previews should be more consistent now +2020-09-24: + Putnam3145: + - refactor: Atmos is free. +2020-09-25: + Putnam3145: + - bugfix: Removed a non-working proc that already had its functionality implemented + in another proc in the same file. +2020-09-26: + CoreFlare: + - rscadd: IPC's can have hair. Why wasn't this added earlier. Use the bald hairstyle + for no hair. +2020-09-27: + SiliconMain: + - tweak: Holograms made from projectors (atmos, engi, sec, medical, ect...) can + no longer be contaminated by radiation +2020-09-28: + ArchieBeepBoop: + - rscadd: Craftable Micro Powered Fans + Degirin2120: + - rscadd: Added engineering hazard jumpsuits, can be found in the engidrobe, comes + in 3 varieties. + Putnam3145: + - tweak: Added a brute-force check-every-single-tile step to SSair when it has enough + time to run. + - balance: G fuid production is now much lower. + - rscdel: Supermatter sabotage objective's gone. + - balance: Subterfuge objectives are now all equally likely. + - spellcheck: Replaced a "(hopefully) 1" with a "2" + - tweak: Cryoing no longer unwins already-won objectives. + SiliconMain: + - tweak: Minor adjustment to material cost of long range atmos analyzer + Trilbyspaceclone: + - tweak: Most drinks now have some animation in them, from basic soda bubbles fizzing + around to ice cubes bobbing just a bit. + Tupinambis: + - bugfix: Ghost poly's color value is now a hex value instead of an oct value. This + has been a thing for OVER FIVE YEARS + - imageadd: Updates TEG, Antimatter, Jetpack sprites (CO2 and Oxy from Eris). + - imageadd: Replaced old chair sprites with new ones ported and modified from eris. + - tweak: Beds can now be placed both right and left. + - tweak: Subtle changes to stool legs to give them more of a shine. + raspy-on-osu: + - tweak: TEG power generation + thakyZ: + - rscadd: Added the ability to print the Light Replacer at the Engineering Protolathe + timothyteakettle: + - bugfix: turrets can once again be broken + - rscadd: you can now have heterochromia and select individual eye colours +2020-09-29: + timothyteakettle: + - bugfix: fixed a typo causing your right eye colour to save as the left eye colour +2020-10-01: + BlueWildrose: + - soundadd: Slimepeople are given unique laughs and screams. + - tweak: Adds "warbles", "chimpers", and "puffs" to the customizable speech verbs + for character. +2020-10-02: + ArcaneMusic, with minor tweaks by TheObserver-sys: + - rscadd: Adds and modifies fertilizers, as well as a new stat, Instability. + - rscdel: Removes the rather disused functionality of irrigation hoses, temporarily + disables circuit use on hydroponics trays. + - tweak: Plant Analyzer have been upgraded. Using one in hand will now switch between + a stat view of your plant, and a chemical view of your plant. tweak:Trays now + accept and store reagents, as well as coming with an autogrow mode. However, + these upgrades came at the cost of old self sufficiency, meaning you must attend + to your plants a bit more often. + - tweak: Earthsblood, while not being able to gild trays anymore, has been found + to still be quite powerful as a fertilizer. + CoreFlare: + - rscadd: Altcloaks! Available in loadout. + Detective-Google: + - rscadd: a smattering of clothes from the RP server + - rscadd: detective wardrobe + EmeraldSundisk: + - rscadd: Adds the "Skelter" space ruin + - code_imp: Creates a few new area designations for the Skelter + - rscadd: Cargo techs now have access to a "long pants" variant of their standard + work uniform + - rscadd: Adds said uniform to CargoDrobes and the loadout menu + ItzGabby: + - rscadd: Three new turf tiles. + - imageadd: Turf icons with multiple damage icons, with in-hand icons for each tile. + - spellcheck: Edited the name and description to wooden. + LetterN: + - rscadd: craftable railings + - code_imp: ports robust savefiles + MrJWhit: + - tweak: tweaked heavy suit dmi + - bugfix: Fixes drones not being able to quickslot items + Putnam3145: + - rscadd: New policy config for pyroclastic slimes. + - tweak: SDGF clones now naked. + - balance: SDGF is now way more likely to make a clone that will align with the + creator's goals, with purity, making it a better antagging tool. + - bugfix: SDGF clones now have the same traits as the original. + - bugfix: transfer_ckey now resets view, preventing things like SDGF clones with + much larger view range. + - config: 'Policy configs have been added for SDGF, currently unused: SDGF, SDGF_ALIGNED, + SDGF_UNALIGNED.' + - bugfix: Shivering now has thresholds and fever's thresholds now work. + - bugfix: Made allturfs setup actually set up all turfs. + - balance: Dynamic is now more aggressive with adding antags. + - bugfix: Fixes vore pref saving. + SandPoot: + - bugfix: Fixes headslugs being unable to recover their human form. + Tupinambis: + - rscadd: Adds methane and methyl bromide gases. + - tweak: Minor gas name/desc changes to improve consistency + - imageadd: Ports the methyl bromide tank from bay. Adds two new canister sprites + for the new gases and CH4 screen alerts. + - bugfix: fixed a mispelling in the wound armor value for the bounty hunter suit + dapnee: + - rscadd: atrium, clinic, an extra office, a pseudo public mining area, two more + deluxe dorms, micro beach, aux bathroom, two construction areas, mass driver, + more intercoms + - tweak: moved all of service, chapel, dorms, garden, holodeck to a different z-level, + RnD is more open, maintenance is a bit more random, more firelocks, added more + mine-able rock + - bugfix: fixed the buttons in xenobio, gave shutters to cargo's storage area, fixed + holodeck so it works now, fixed some techfabs being lathes, added sensors to + atmos tanks, more decals, couple more signs, little floral areas and sitting + areas added to break up hallway monotony, mech chargers are no longer missing + their consoles, whiteship won't crash into arrivals anymore while the area it + takes up is more telegraphed, APC placement on AI sat entrance, missing wire + node for the outer portion of the AI sat, civilian level now has a telecom relay + lolman360: + - bugfix: smonk machine runtimes + - bugfix: automatic hydro tray has a unique sprite now (fancy robot arm) + timothyteakettle: + - rscadd: added luminescent and stargazer sprites as selectable body sprites for + slimes + - tweak: wound exponent lowered slightly from 1.225 to 1.2 + - config: wound exponent and limb damage multiplier are now config values + - rscadd: ipcs and synthlizards are now treated as actual robots, with robotic limbs, + an extra organ, and better emp acts + - rscadd: surgeries for healing robotic limbs, and brain surgery for robotic heads + - bugfix: androids limbs now show up as intended + - refactor: emps now work from 1-100 severity instead of 1/2 and the severity reduces + as you move from the epicentre + zeroisthebiggay: + - rscadd: ratvar gf is complete +2020-10-04: + DeltaFire15: + - bugfix: Synths / IPCs are no longer wound immune. + - bugfix: Husked IPCs / Synths should now be rendered correctly. + - bugfix: Falling vendors now squish synths / IPCs' limbs again. + - bugfix: Synths and IPCs now do not have some fun roundstart oversights anymore. + - bugfix: Regenerate_limbs now works for carbons with the ROBOTIC_LIMBS trait. + - bugfix: Pacifists no longer counterattack on parries if that attack would be harmful. + - tweak: Heretic sacrifices now husk with the reason of burn, and deal some additional + damage. + - bugfix: Neovgre can no longer become invincible on clock tiles. + - bugfix: Plushlings no longer break when absorbing snowflake plushies. + Detective-Google: + - bugfix: the snow cabin doors actually bolt now + Putnam3145: + - bugfix: Ghosts are no longer incapable of going away. + monster860: + - tweak: The slimeperson swap-body UI stays open when you switch bodies + timothyteakettle: + - bugfix: limb id entry in mutant bodyparts now supports switching to/from species + with gendered body parts + - tweak: the minimum brightness of mutant parts is now a define diff --git a/html/changelogs/AutoChangeLog-pr-13204.yml b/html/changelogs/AutoChangeLog-pr-13204.yml deleted file mode 100644 index e9033c299d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13204.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "three new items are in the loadout for all donators" diff --git a/html/changelogs/AutoChangeLog-pr-13239.yml b/html/changelogs/AutoChangeLog-pr-13239.yml deleted file mode 100644 index 0f01f680c6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13239.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "contraband black evening gloves in kinkvend" diff --git a/html/changelogs/AutoChangeLog-pr-13243.yml b/html/changelogs/AutoChangeLog-pr-13243.yml deleted file mode 100644 index a09ae5d607..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13243.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - bugfix: "Fixes areas on expanded airlocks" diff --git a/code/modules/goonchat/browserassets/js/jquery.min.js b/html/jquery.min.js similarity index 100% rename from code/modules/goonchat/browserassets/js/jquery.min.js rename to html/jquery.min.js diff --git a/html/statbrowser.html b/html/statbrowser.html new file mode 100644 index 0000000000..fbdbb61449 --- /dev/null +++ b/html/statbrowser.html @@ -0,0 +1,1004 @@ + + + +Stat Browser + + + + + + + + +
    +
    + + + diff --git a/icons/effects/mouse_pointers/mute_target.dmi b/icons/effects/mouse_pointers/mute_target.dmi new file mode 100644 index 0000000000..8e3c278d3b Binary files /dev/null and b/icons/effects/mouse_pointers/mute_target.dmi differ diff --git a/icons/mob/actions/actions_ecult.dmi b/icons/mob/actions/actions_ecult.dmi index 0a130f006e..d083206454 100644 Binary files a/icons/mob/actions/actions_ecult.dmi and b/icons/mob/actions/actions_ecult.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/bishop.dmi b/icons/mob/augmentation/cosmetic_prosthetic/bishop.dmi new file mode 100644 index 0000000000..8641ef2d3c Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/bishop.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/cybersolutions.dmi b/icons/mob/augmentation/cosmetic_prosthetic/cybersolutions.dmi new file mode 100644 index 0000000000..eeed0d0c01 Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/cybersolutions.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/grayson.dmi b/icons/mob/augmentation/cosmetic_prosthetic/grayson.dmi new file mode 100644 index 0000000000..9ed6c5f06f Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/grayson.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/hephaestus.dmi b/icons/mob/augmentation/cosmetic_prosthetic/hephaestus.dmi new file mode 100644 index 0000000000..4bb6b72fd0 Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/hephaestus.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/nanotrasen.dmi b/icons/mob/augmentation/cosmetic_prosthetic/nanotrasen.dmi new file mode 100644 index 0000000000..18c7738ba3 Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/nanotrasen.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/talon.dmi b/icons/mob/augmentation/cosmetic_prosthetic/talon.dmi new file mode 100644 index 0000000000..9e4b93fb54 Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/talon.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/ward.dmi b/icons/mob/augmentation/cosmetic_prosthetic/ward.dmi new file mode 100644 index 0000000000..b2622ef6a1 Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/ward.dmi differ diff --git a/icons/mob/augmentation/cosmetic_prosthetic/xion.dmi b/icons/mob/augmentation/cosmetic_prosthetic/xion.dmi new file mode 100644 index 0000000000..823205742a Binary files /dev/null and b/icons/mob/augmentation/cosmetic_prosthetic/xion.dmi differ diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi index c13b6a50bc..743ed03f48 100644 Binary files a/icons/mob/clothing/accessories.dmi and b/icons/mob/clothing/accessories.dmi differ diff --git a/icons/mob/clothing/custom_w.dmi b/icons/mob/clothing/custom_w.dmi index 7452d63134..18e07f41ed 100644 Binary files a/icons/mob/clothing/custom_w.dmi and b/icons/mob/clothing/custom_w.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 2b28d06976..67d1849ef6 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 7bfecb4158..276b5c9458 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 08d276a484..d4bb1224cc 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/suit_digi.dmi b/icons/mob/clothing/suit_digi.dmi index dd00713770..8f3c48396a 100644 Binary files a/icons/mob/clothing/suit_digi.dmi and b/icons/mob/clothing/suit_digi.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 3d24a9addd..ffbb8b8b5b 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi index bcb894033e..43b73f03d0 100644 Binary files a/icons/mob/clothing/uniform_digi.dmi and b/icons/mob/clothing/uniform_digi.dmi differ diff --git a/icons/mob/cyborg/Drakeborg-licensing.txt b/icons/mob/cyborg/Drakeborg-licensing.txt deleted file mode 100644 index f2d3ca925c..0000000000 --- a/icons/mob/cyborg/Drakeborg-licensing.txt +++ /dev/null @@ -1,69 +0,0 @@ -Drakeborg & drakeplushies are created by deviantart.com/mizartz - -https://creativecommons.org/licenses/by-nc-sa/3.0/ -Attribution-NonCommercial-ShareAlike 3.0 Unported - -CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. -License -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - -"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. -"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(g) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. -"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. -"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, Noncommercial, ShareAlike. -"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. -"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. -"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. -"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. -"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. -"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. -2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: - -to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; -to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; -to Distribute and Publicly Perform the Work including as incorporated in Collections; and, -to Distribute and Publicly Perform Adaptations. -The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights described in Section 4(e). - -4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: - -You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(d), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(d), as requested. -You may Distribute or Publicly Perform an Adaptation only under: (i) the terms of this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). You must include a copy of, or the URI, for Applicable License with every copy of each Adaptation You Distribute or Publicly Perform. You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License. You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. -You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in con-nection with the exchange of copyrighted works. -If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(d) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. -For the avoidance of doubt: - -Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; -Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, -Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c). -Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING AND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THIS EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - -This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. -Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. -8. Miscellaneous - -Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. -Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. -If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. -No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. -This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. -The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. -Creative Commons Notice -Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. - -Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License. - -Creative Commons may be contacted at https://creativecommons.org/. \ No newline at end of file diff --git a/icons/mob/cyborg/drakemech.dmi b/icons/mob/cyborg/drakemech.dmi deleted file mode 100644 index 6a4845d983..0000000000 Binary files a/icons/mob/cyborg/drakemech.dmi and /dev/null differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 8055233ea7..1e67d7baba 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index 916686e63f..60978d55a2 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 989ec8049c..794074bfe4 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 315ca5e924..0a82845910 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 6af883f2e8..abfbb18f84 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 30c23601a5..75ee2b35e6 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/mob/wings.dmi b/icons/mob/wings.dmi index ace37b1f17..4523403344 100644 Binary files a/icons/mob/wings.dmi and b/icons/mob/wings.dmi differ diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index 644c32fe30..719ed72226 100644 Binary files a/icons/obj/atmos.dmi and b/icons/obj/atmos.dmi differ diff --git a/icons/obj/bedsheets.dmi b/icons/obj/bedsheets.dmi index 1cc99e09e9..05535334cf 100644 Binary files a/icons/obj/bedsheets.dmi and b/icons/obj/bedsheets.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 95ae326f1e..b778a9d1a2 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index 1c09cf94dc..847d0187c5 100644 Binary files a/icons/obj/chairs.dmi and b/icons/obj/chairs.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index cd12f4a457..14eb973e25 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/chess.dmi b/icons/obj/chess.dmi index 09d9c766fd..ec9415eab4 100644 Binary files a/icons/obj/chess.dmi and b/icons/obj/chess.dmi differ diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index 7d13e3f802..510adc97b4 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index c106bd12fc..1a98872463 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi index 6f4de62cc0..cc5f4f3392 100644 Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index f23cdaee46..d3e4c0f7e9 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 3476b16258..c12720bc8b 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 76f5722c8b..a566a05591 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi index a1bc443efb..9b42188f5e 100644 Binary files a/icons/obj/crates.dmi and b/icons/obj/crates.dmi differ diff --git a/icons/obj/custom.dmi b/icons/obj/custom.dmi index d0be1113ee..50f536d1d3 100644 Binary files a/icons/obj/custom.dmi and b/icons/obj/custom.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 5962e7522d..1b28b910c1 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/eldritch.dmi b/icons/obj/eldritch.dmi index 50c2913708..294deda628 100644 Binary files a/icons/obj/eldritch.dmi and b/icons/obj/eldritch.dmi differ diff --git a/icons/obj/hydroponics/equipment.dmi b/icons/obj/hydroponics/equipment.dmi index 37adf54711..0f6510fe43 100644 Binary files a/icons/obj/hydroponics/equipment.dmi and b/icons/obj/hydroponics/equipment.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 727d69b1e3..6e14c4c6ca 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/license.txt b/icons/obj/license.txt deleted file mode 100644 index 2e27ba80f2..0000000000 --- a/icons/obj/license.txt +++ /dev/null @@ -1,3 +0,0 @@ -icons/obj/plushies.dmi's icon state of secdrake and meddrake by Mizartz. It has been licensed under the CC BY-NC-SA 3.0 license. - -CC BY-NC-SA 3.0 https://creativecommons.org/licenses/by-nc-sa/3.0/ \ No newline at end of file diff --git a/icons/obj/machines/antimatter.dmi b/icons/obj/machines/antimatter.dmi index dd71e80ccc..d54ecc21d0 100644 Binary files a/icons/obj/machines/antimatter.dmi and b/icons/obj/machines/antimatter.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index e7063b71db..400c5bdfa0 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index b93f878c9e..f14f77585b 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/plushes.dmi b/icons/obj/plushes.dmi index ac0c338016..11d02a46cc 100644 Binary files a/icons/obj/plushes.dmi and b/icons/obj/plushes.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index 1f84da44d4..9544ea77c0 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/poweredfans.dmi b/icons/obj/poweredfans.dmi new file mode 100644 index 0000000000..9df1a4f816 Binary files /dev/null and b/icons/obj/poweredfans.dmi differ diff --git a/icons/obj/smith.dmi b/icons/obj/smith.dmi new file mode 100644 index 0000000000..a40b9a2b19 Binary files /dev/null and b/icons/obj/smith.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 8db1156dea..454138a254 100755 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index 00855e6543..aa24883656 100644 Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 38d153e261..5f0fbb4104 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index b11e43d665..d8f5c1d334 100644 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/stamp_icons/font.png b/icons/stamp_icons/font.png new file mode 100644 index 0000000000..4297937696 Binary files /dev/null and b/icons/stamp_icons/font.png differ diff --git a/icons/stamp_icons/large_stamp-cap.png b/icons/stamp_icons/large_stamp-cap.png index 7f7ce460a4..19883563b2 100644 Binary files a/icons/stamp_icons/large_stamp-cap.png and b/icons/stamp_icons/large_stamp-cap.png differ diff --git a/icons/stamp_icons/large_stamp-ce.png b/icons/stamp_icons/large_stamp-ce.png index 189db310cf..d07f70c4d5 100644 Binary files a/icons/stamp_icons/large_stamp-ce.png and b/icons/stamp_icons/large_stamp-ce.png differ diff --git a/icons/stamp_icons/large_stamp-centcom.png b/icons/stamp_icons/large_stamp-centcom.png new file mode 100644 index 0000000000..6250cbff88 Binary files /dev/null and b/icons/stamp_icons/large_stamp-centcom.png differ diff --git a/icons/stamp_icons/large_stamp-chap.png b/icons/stamp_icons/large_stamp-chap.png new file mode 100644 index 0000000000..2586c13bad Binary files /dev/null and b/icons/stamp_icons/large_stamp-chap.png differ diff --git a/icons/stamp_icons/large_stamp-clown.png b/icons/stamp_icons/large_stamp-clown.png index 5abbff7113..d606870507 100644 Binary files a/icons/stamp_icons/large_stamp-clown.png and b/icons/stamp_icons/large_stamp-clown.png differ diff --git a/icons/stamp_icons/large_stamp-cmo.png b/icons/stamp_icons/large_stamp-cmo.png index eb004be621..bac4c7b2f9 100644 Binary files a/icons/stamp_icons/large_stamp-cmo.png and b/icons/stamp_icons/large_stamp-cmo.png differ diff --git a/icons/stamp_icons/large_stamp-deny.png b/icons/stamp_icons/large_stamp-deny.png index 7c216fce48..1c7f416597 100644 Binary files a/icons/stamp_icons/large_stamp-deny.png and b/icons/stamp_icons/large_stamp-deny.png differ diff --git a/icons/stamp_icons/large_stamp-hop.png b/icons/stamp_icons/large_stamp-hop.png index 3f9aa4a76f..1447d58a87 100644 Binary files a/icons/stamp_icons/large_stamp-hop.png and b/icons/stamp_icons/large_stamp-hop.png differ diff --git a/icons/stamp_icons/large_stamp-hos.png b/icons/stamp_icons/large_stamp-hos.png index 67b69d7503..bd59590975 100644 Binary files a/icons/stamp_icons/large_stamp-hos.png and b/icons/stamp_icons/large_stamp-hos.png differ diff --git a/icons/stamp_icons/large_stamp-law.png b/icons/stamp_icons/large_stamp-law.png index d6d77eee9b..aee5aa3fbc 100644 Binary files a/icons/stamp_icons/large_stamp-law.png and b/icons/stamp_icons/large_stamp-law.png differ diff --git a/icons/stamp_icons/large_stamp-mime.png b/icons/stamp_icons/large_stamp-mime.png new file mode 100644 index 0000000000..c9a0143439 Binary files /dev/null and b/icons/stamp_icons/large_stamp-mime.png differ diff --git a/icons/stamp_icons/large_stamp-ok.png b/icons/stamp_icons/large_stamp-ok.png index e568ae0921..b40d3e3f1b 100644 Binary files a/icons/stamp_icons/large_stamp-ok.png and b/icons/stamp_icons/large_stamp-ok.png differ diff --git a/icons/stamp_icons/large_stamp-qm.png b/icons/stamp_icons/large_stamp-qm.png index ea863078b4..4ba31b3741 100644 Binary files a/icons/stamp_icons/large_stamp-qm.png and b/icons/stamp_icons/large_stamp-qm.png differ diff --git a/icons/stamp_icons/large_stamp-rd.png b/icons/stamp_icons/large_stamp-rd.png index 35479e805f..a9e7ad040b 100644 Binary files a/icons/stamp_icons/large_stamp-rd.png and b/icons/stamp_icons/large_stamp-rd.png differ diff --git a/icons/stamp_icons/large_stamp-syndicate.png b/icons/stamp_icons/large_stamp-syndicate.png new file mode 100644 index 0000000000..68f17d8f5e Binary files /dev/null and b/icons/stamp_icons/large_stamp-syndicate.png differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index f2b84bbe03..65fba49309 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 985b9991a0..fbca824f47 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index 2b33ebb5e8..2aece7cb6c 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -71,7 +71,7 @@ return var/static/issue_template = file2text(".github/ISSUE_TEMPLATE.md") var/servername = CONFIG_GET(string/servername) - var/url_params = "Reporting client version: [byond_version]\n\n[issue_template]" + var/url_params = "Reporting client version: [byond_version].[byond_build]\n\n[issue_template]" if(GLOB.round_id || servername) url_params = "Issue reported from [GLOB.round_id ? " Round ID: [GLOB.round_id][servername ? " ([servername])" : ""]" : servername]\n\n[url_params]" DIRECT_OUTPUT(src, link("[githuburl]/issues/new?body=[url_encode(url_params)]")) @@ -79,151 +79,13 @@ to_chat(src, "The Github URL is not set in the server configuration.") return -/client/verb/hotkeys_help() - set name = "hotkeys-help" - set category = "OOC" - - var/adminhotkeys = {" -Admin: -\tF3 = asay -\tF5 = Aghost (admin-ghost) -\tF6 = player-panel -\tF7 = Buildmode -\tF8 = Invisimin -\tCtrl+F8 = Stealthmin -"} - - mob.hotkey_help() - - if(holder) - to_chat(src, adminhotkeys) - /client/verb/changelog() set name = "Changelog" set category = "OOC" - var/datum/asset/changelog = get_asset_datum(/datum/asset/simple/changelog) + var/datum/asset/simple/namespaced/changelog = get_asset_datum(/datum/asset/simple/namespaced/changelog) changelog.send(src) - src << browse('html/changelog.html', "window=changes;size=675x650") + src << browse(changelog.get_htmlloader("changelog.html"), "window=changes;size=675x650") if(prefs.lastchangelog != GLOB.changelog_hash) prefs.lastchangelog = GLOB.changelog_hash prefs.save_preferences() winset(src, "infowindow.changelog", "font-style=;") - - -/mob/proc/hotkey_help() - var/hotkey_mode = {" -Hotkey-Mode: (hotkey-mode must be on) -\tTAB = toggle hotkey-mode -\ta = left -\ts = down -\td = right -\tw = up -\tq = drop -\te = equip -\tr = throw -\tm = me -\tt = say -\to = OOC -\tb = resist -\tv = rest -\th = stop pulling -\tx = swap-hand -\tz = activate held object (or y) -\tShift+e = Put held item into belt or take out most recent item added to belt. -\tShift+b = Put held item into backpack or take out most recent item added to backpack. -\tf = cycle-intents-left -\tg = cycle-intents-right -\t1 = help-intent -\t2 = disarm-intent -\t3 = grab-intent -\t4 = harm-intent -\tNumpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) -\tAlt(HOLD) = Alter movement intent -"} - - var/other = {" -Any-Mode: (hotkey doesn't need to be on) -\tCtrl+a = left -\tCtrl+s = down -\tCtrl+d = right -\tCtrl+w = up -\tCtrl+q = drop -\tCtrl+e = equip -\tCtrl+r = throw -\tCtrl+b = resist -\tCtrl+h = stop pulling -\tCtrl+o = OOC -\tCtrl+x = swap-hand -\tCtrl+z = activate held object (or Ctrl+y) -\tCtrl+f = cycle-intents-left -\tCtrl+g = cycle-intents-right -\tCtrl+1 = help-intent -\tCtrl+2 = disarm-intent -\tCtrl+3 = grab-intent -\tCtrl+4 = harm-intent -\tCtrl+'+/-' OR -\tShift+Mousewheel = Ghost zoom in/out -\tDEL = stop pulling -\tINS = cycle-intents-right -\tHOME = drop -\tPGUP = swap-hand -\tPGDN = activate held object -\tEND = throw -\tCtrl+Numpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) -"} - - to_chat(src, hotkey_mode) - to_chat(src, other) - -/mob/living/silicon/robot/hotkey_help() - //h = talk-wheel has a nonsense tag in it because \th is an escape sequence in BYOND. - var/hotkey_mode = {" -Hotkey-Mode: (hotkey-mode must be on) -\tTAB = toggle hotkey-mode -\ta = left -\ts = down -\td = right -\tw = up -\tq = unequip active module -\tv = rest -\th = stop pulling -\tm = me -\tt = say -\to = OOC -\tx = cycle active modules -\tb = resist -\tz = activate held object (or y) -\tf = cycle-intents-left -\tg = cycle-intents-right -\t1 = activate module 1 -\t2 = activate module 2 -\t3 = activate module 3 -\t4 = toggle intents -"} - - var/other = {" -Any-Mode: (hotkey doesn't need to be on) -\tCtrl+a = left -\tCtrl+s = down -\tCtrl+d = right -\tCtrl+w = up -\tCtrl+q = unequip active module -\tCtrl+x = cycle active modules -\tCtrl+b = resist -\tCtrl+h = stop pulling -\tCtrl+o = OOC -\tCtrl+z = activate held object (or Ctrl+y) -\tCtrl+f = cycle-intents-left -\tCtrl+g = cycle-intents-right -\tCtrl+1 = activate module 1 -\tCtrl+2 = activate module 2 -\tCtrl+3 = activate module 3 -\tCtrl+4 = toggle intents -\tDEL = stop pulling -\tINS = toggle intents -\tPGUP = cycle active modules -\tPGDN = activate held object -"} - - to_chat(src, hotkey_mode) - to_chat(src, other) diff --git a/interface/menu.dm b/interface/menu.dm index 3c881656da..976abb16b3 100644 --- a/interface/menu.dm +++ b/interface/menu.dm @@ -63,7 +63,6 @@ GLOBAL_LIST_EMPTY(menulist) return M.Set_checked(src, verbpath) - /datum/verbs/menu/Icon/Load_checked(client/C) //So we can be lazy, we invoke the "checked" menu item on menu load. var/procpath/verbpath = Get_checked(C) if (!verbpath || !(verbpath in typesof("[type]/verb"))) @@ -115,4 +114,3 @@ GLOBAL_LIST_EMPTY(menulist) /datum/verbs/menu/Icon/Scaling/verb/BL() set name = "@.winset \"mapwindow.map.zoom-mode=blur\"" set desc = "Bilinear" - diff --git a/interface/skin.dmf b/interface/skin.dmf index cf49f0f30f..ccfcd76571 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1,320 +1,289 @@ -macro "default" - - -menu "menu" - elem - name = "&File" - command = "" - saved-params = "is-checked" - elem - name = "&Quick screenshot\tF2" - command = ".screenshot auto" - category = "&File" - saved-params = "is-checked" - elem - name = "&Save screenshot as...\tShift+F2" - command = ".screenshot" - category = "&File" - saved-params = "is-checked" - elem - name = "" - command = "" - category = "&File" - saved-params = "is-checked" - elem "reconnectbutton" - name = "&Reconnect" - command = ".reconnect" - category = "&File" - saved-params = "is-checked" - elem - name = "&Quit\tAlt-F4" - command = ".quit" - category = "&File" - saved-params = "is-checked" - elem - name = "&Help" - command = "" - saved-params = "is-checked" - elem - name = "&Admin Help\tF1" - command = "adminhelp" - category = "&Help" - saved-params = "is-checked" - elem - name = "&Hotkeys" - command = "hotkeys-help" - category = "&Help" - saved-params = "is-checked" - - -window "mainwindow" - elem "mainwindow" - type = MAIN - pos = 0,0 - size = 640x440 - anchor1 = none - anchor2 = none - background-color = #242424 - is-default = true - saved-params = "pos;size;is-minimized;is-maximized" - icon = 'icons\\ss13_64.png' - macro = "default" - menu = "menu" - elem "split" - type = CHILD - pos = 0,0 - size = 637x440 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - saved-params = "splitter" - left = "mapwindow" - right = "infowindow" - is-vert = true - splitter = 75 - elem "asset_cache_browser" - type = BROWSER - pos = 0,0 - size = 200x200 - anchor1 = none - anchor2 = none - background-color = #272727 - is-visible = false - auto-format = false - saved-params = "" - elem "tooltip" - type = BROWSER - pos = 0,0 - size = 999x999 - anchor1 = none - anchor2 = none - background-color = #272727 - is-visible = false - saved-params = "" - -window "mapwindow" - elem "mapwindow" - type = MAIN - pos = 418,0 - size = 1024x1024 - anchor1 = none - anchor2 = none - background-color = none - saved-params = "pos;size;is-minimized;is-maximized" - statusbar = false - is-pane = true - outer-size = 684x617 - inner-size = 662x561 - elem "map" - type = MAP - pos = 0,0 - size = 1024x1024 - anchor1 = 0,0 - anchor2 = 100,100 - font-family = "Arial" - font-size = 7 - is-default = true - saved-params = "icon-size" - zoom-mode = distort - style = ".center { text-align: center; }\n.maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; }\n.command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; }\n.big { font-size: 8px; }\n.reallybig { font-size: 8px; }\n.extremelybig { font-size: 8px; }\n.greentext { color: #00ff00; font-size: 7px; }\n.redtext { color: #ff0000; font-size: 7px; }\n.clown { color: #ff69bf; font-size: 7px; font-weight: bold; }\n.his_grace { color: #15d512; }\n.hypnophrase { color: #0d0d0d; font-weight: bold; }\n.yell { font-weight: bold; }\n.italics { font-size: 6px; }" - -window "infowindow" - elem "infowindow" - type = MAIN - pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #242424 - saved-params = "pos;size;is-minimized;is-maximized" - is-pane = true - elem "info" - type = CHILD - pos = 0,30 - size = 640x445 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - saved-params = "splitter" - left = "statwindow" - right = "outputwindow" - is-vert = false - elem "changelog" - type = BUTTON - pos = 16,5 - size = 104x20 - anchor1 = 3,0 - anchor2 = 19,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Changelog" - command = "changelog" - elem "rules" - type = BUTTON - pos = 120,5 - size = 100x20 - anchor1 = 19,0 - anchor2 = 34,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Rules" - command = "rules" - elem "wiki" - type = BUTTON - pos = 220,5 - size = 100x20 - anchor1 = 34,0 - anchor2 = 50,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Wiki" - command = "wiki" - elem "forum" - type = BUTTON - pos = 320,5 - size = 100x20 - anchor1 = 50,0 - anchor2 = 66,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Forum" - command = "forum" - elem "github" - type = BUTTON - pos = 420,5 - size = 100x20 - anchor1 = 66,0 - anchor2 = 81,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "GitHub" - command = "github" - elem "report-issue" - type = BUTTON - pos = 520,5 - size = 100x20 - anchor1 = 81,0 - anchor2 = 97,0 - font-size = 8 - text-color = #e0e0e0 - background-color = #a92c2c - saved-params = "is-checked" - text = "Report Issue" - command = "report-issue" - -window "outputwindow" - elem "outputwindow" - type = MAIN - pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #272727 - saved-params = "pos;size;is-minimized;is-maximized" - titlebar = false - statusbar = false - can-close = false - can-minimize = false - can-resize = false - is-pane = true - elem "input" - type = INPUT - pos = 2,460 - size = 595x20 - anchor1 = 0,100 - anchor2 = 100,100 - background-color = #d3b5b5 - is-default = true - border = sunken - saved-params = "command" - elem "say" - type = BUTTON - pos = 600,460 - size = 37x20 - anchor1 = 100,100 - anchor2 = none - text-color = #e0e0e0 - background-color = #272727 - saved-params = "is-checked" - text = "Chat" - command = ".winset \"say.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"" - is-flat = true - button-type = pushbox - elem "browseroutput" - type = BROWSER - pos = 0,0 - size = 640x456 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - is-visible = false - is-disabled = true - saved-params = "" - auto-format = false - elem "output" - type = OUTPUT - pos = 0,0 - size = 640x456 - anchor1 = 0,0 - anchor2 = 100,100 - text-color = #e0e0e0 - background-color = #272727 - is-default = true - saved-params = "" - -window "statwindow" - elem "statwindow" - type = MAIN - pos = 281,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #242424 - saved-params = "pos;size;is-minimized;is-maximized" - is-pane = true - elem "stat" - type = INFO - pos = 0,0 - size = 640x480 - anchor1 = 0,0 - anchor2 = 100,100 - text-color = #e0e0e0 - background-color = #272727 - is-default = true - saved-params = "" - tab-text-color = #e0e0e0 - tab-background-color = #242424 - prefix-color = #e0e0e0 - suffix-color = #e0e0e0 - -window "preferences_window" - elem "preferences_window" - type = MAIN - pos = 372,0 - size = 1280x1000 - anchor1 = none - anchor2 = none - is-visible = false - saved-params = "pos;size;is-minimized;is-maximized" - statusbar = false - elem "preferences_browser" - type = BROWSER - pos = 0,0 - size = 960x1000 - anchor1 = 0,0 - anchor2 = 75,100 - saved-params = "" - elem "character_preview_map" - type = MAP - pos = 960,0 - size = 320x1000 - anchor1 = 75,0 - anchor2 = 100,100 - right-click = true - saved-params = "zoom;letterbox;zoom-mode" - +macro "default" + + +menu "menu" + elem + name = "&File" + command = "" + saved-params = "is-checked" + elem + name = "&Quick screenshot\tF2" + command = ".screenshot auto" + category = "&File" + saved-params = "is-checked" + elem + name = "&Save screenshot as...\tShift+F2" + command = ".screenshot" + category = "&File" + saved-params = "is-checked" + elem + name = "" + command = "" + category = "&File" + saved-params = "is-checked" + elem "reconnectbutton" + name = "&Reconnect" + command = ".reconnect" + category = "&File" + saved-params = "is-checked" + elem + name = "&Quit\tAlt-F4" + command = ".quit" + category = "&File" + saved-params = "is-checked" + elem + name = "&Help" + command = "" + saved-params = "is-checked" + elem + name = "&Admin Help\tF1" + command = "adminhelp" + category = "&Help" + saved-params = "is-checked" + elem + name = "&Hotkeys" + command = "hotkeys-help" + category = "&Help" + saved-params = "is-checked" + + +window "mainwindow" + elem "mainwindow" + type = MAIN + pos = 0,0 + size = 640x440 + anchor1 = none + anchor2 = none + is-default = true + saved-params = "pos;size;is-minimized;is-maximized" + icon = 'icons\\ss13_64.png' + macro = "default" + menu = "menu" + elem "split" + type = CHILD + pos = 3,0 + size = 637x440 + anchor1 = 0,0 + anchor2 = 100,100 + saved-params = "splitter" + left = "mapwindow" + right = "infowindow" + is-vert = true + elem "asset_cache_browser" + type = BROWSER + pos = 0,0 + size = 200x200 + anchor1 = none + anchor2 = none + is-visible = false + saved-params = "" + elem "tooltip" + type = BROWSER + pos = 0,0 + size = 999x999 + anchor1 = none + anchor2 = none + is-visible = false + saved-params = "" + +window "mapwindow" + elem "mapwindow" + type = MAIN + pos = 0,0 + size = 1024x1024 + anchor1 = none + anchor2 = none + saved-params = "pos;size;is-minimized;is-maximized" + is-pane = true + elem "map" + type = MAP + pos = 0,0 + size = 1024x1024 + anchor1 = 0,0 + anchor2 = 100,100 + font-family = "Arial" + font-size = 7 + text-color = none + is-default = true + saved-params = "zoom;letterbox;zoom-mode" + style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .greentext { color: #00FF00; font-size: 7px; } .redtext { color: #FF0000; font-size: 7px; } .clown { color: #FF69Bf; font-size: 7px; font-weight: bold; } .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; } .italics { font-size: 6px; }" + +window "infowindow" + elem "infowindow" + type = MAIN + pos = 0,0 + size = 640x480 + anchor1 = none + anchor2 = none + saved-params = "pos;size;is-minimized;is-maximized" + is-pane = true + elem "info" + type = CHILD + pos = 0,30 + size = 640x445 + anchor1 = 0,0 + anchor2 = 100,100 + saved-params = "splitter" + left = "statwindow" + right = "outputwindow" + is-vert = false + elem "changelog" + type = BUTTON + pos = 16,5 + size = 104x20 + anchor1 = 3,0 + anchor2 = 19,0 + saved-params = "is-checked" + text = "Changelog" + command = "changelog" + elem "rules" + type = BUTTON + pos = 120,5 + size = 100x20 + anchor1 = 19,0 + anchor2 = 34,0 + saved-params = "is-checked" + text = "Rules" + command = "rules" + elem "wiki" + type = BUTTON + pos = 220,5 + size = 100x20 + anchor1 = 34,0 + anchor2 = 50,0 + saved-params = "is-checked" + text = "Wiki" + command = "wiki" + elem "forum" + type = BUTTON + pos = 320,5 + size = 100x20 + anchor1 = 50,0 + anchor2 = 66,0 + saved-params = "is-checked" + text = "Forum" + command = "forum" + elem "github" + type = BUTTON + pos = 420,5 + size = 100x20 + anchor1 = 66,0 + anchor2 = 81,0 + saved-params = "is-checked" + text = "Github" + command = "github" + elem "report-issue" + type = BUTTON + pos = 520,5 + size = 100x20 + anchor1 = 81,0 + anchor2 = 97,0 + saved-params = "is-checked" + text = "Report Issue" + command = "report-issue" + +window "outputwindow" + elem "outputwindow" + type = MAIN + pos = 0,0 + size = 640x480 + anchor1 = none + anchor2 = none + saved-params = "pos;size;is-minimized;is-maximized" + is-pane = true + elem "input" + type = INPUT + pos = 2,460 + size = 595x20 + anchor1 = 0,100 + anchor2 = 100,100 + background-color = #d3b5b5 + is-default = true + border = sunken + saved-params = "command" + elem "saybutton" + type = BUTTON + pos = 600,460 + size = 37x20 + anchor1 = 100,100 + anchor2 = none + saved-params = "is-checked" + text = "Chat" + command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"" + is-flat = true + button-type = pushbox + elem "browseroutput" + type = BROWSER + pos = 0,0 + size = 640x456 + anchor1 = 0,0 + anchor2 = 100,100 + background-color = #ffffff + is-visible = false + is-disabled = true + saved-params = "" + elem "output" + type = OUTPUT + pos = 0,0 + size = 640x456 + anchor1 = 0,0 + anchor2 = 100,100 + is-default = true + saved-params = "" + +window "popupwindow" + elem "popupwindow" + type = MAIN + pos = 281,0 + size = 120x120 + anchor1 = none + anchor2 = none + is-visible = false + saved-params = "pos;size;is-minimized;is-maximized" + statusbar = false + can-resize = false + +window "preferences_window" + elem "preferences_window" + type = MAIN + pos = 281,0 + size = 1280x1000 + anchor1 = none + anchor2 = none + is-visible = false + saved-params = "pos;size;is-minimized;is-maximized" + statusbar = false + elem "preferences_browser" + type = BROWSER + pos = 0,0 + size = 960x1000 + anchor1 = 0,0 + anchor2 = 75,100 + saved-params = "" + elem "character_preview_map" + type = MAP + pos = 960,0 + size = 320x1000 + anchor1 = 75,0 + anchor2 = 100,100 + right-click = true + saved-params = "zoom;letterbox;zoom-mode" + +window "statwindow" + elem "statwindow" + type = MAIN + pos = 372,0 + size = 640x480 + anchor1 = none + anchor2 = none + saved-params = "pos;size;is-minimized;is-maximized" + is-pane = true + elem "statbrowser" + type = BROWSER + pos = 0,0 + size = 640x480 + anchor1 = 0,0 + anchor2 = 100,100 + is-visible = false + saved-params = "" + diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index 9c35ddb75f..f375fea88f 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -2,7 +2,7 @@ /// !!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -// If you modify this file you ALSO need to modify code/modules/goonchat/browserAssets/browserOutput.css +// If you modify this file you ALSO need to modify code/modules/goonchat/browserAssets/browserOutput.css and browserOutput_white.css // BUT you have to use PX font sizes with are on a x8 scale of these font sizes // Sample font-size: DM: 8 CSS: 64px @@ -26,18 +26,24 @@ em {font-style: normal; font-weight: bold;} .prefix { font-weight: bold;} .ooc { font-weight: bold;} +.looc {color: #6699CC; font-weight: bold;} +.antagooc {color: #b8002e; font-weight: bold;} .adminobserverooc {color: #0099cc; font-weight: bold;} .adminooc {color: #700038; font-weight: bold;} .adminobserver {color: #996600; font-weight: bold;} +.adminsay {color: #FF4500; font-weight: bold;} .admin {color: #386aff; font-weight: bold;} +.mentorsay {color: #E236D8; font-weight: bold;} +.mentorsay_admin {color: #8A2BE2; font-weight: bold;} + .name { font-weight: bold;} .say {} .deadsay {color: #5c00e6;} -.binarysay {color: #20c20e; background-color: #000000; display: block;} -.binarysay a {color: #00ff00;} +.binarysay {color: #20c20e; background-color: #000000; display: block;} +.binarysay a {color: #00ff00;} .binarysay a:active, .binarysay a:visited {color: #88ff88;} .radio {color: #008000;} .sciradio {color: #993399;} @@ -50,8 +56,8 @@ em {font-style: normal; font-weight: bold;} .syndradio {color: #6d3f40;} .centcomradio {color: #686868;} .aiprivradio {color: #ff00ff;} -.redteamradio {color: #ff0000;} -.blueteamradio {color: #0000ff;} +.redteamradio {color: #ff0000;} +.blueteamradio {color: #0000ff;} .yell { font-weight: bold;} @@ -65,13 +71,13 @@ h1.alert, h2.alert {color: #000000;} .disarm {color: #990000;} .passive {color: #660000;} -.userdanger {color: #ff0000; font-weight: bold; font-size: 3;} +.userdanger {color: #ff0000; font-weight: bold; font-size: 3;} .danger {color: #ff0000; font-weight: bold;} .tinydanger {color: #ff0000; font-size: 85%;} .smalldanger {color: #ff0000; font-size: 90%;} .warning {color: #ff0000; font-style: italic;} .boldwarning {color: #ff0000; font-style: italic; font-weight: bold} -.announce {color: #228b22; font-weight: bold;} +.announce {color: #228b22; font-weight: bold;} .boldannounce {color: #ff0000; font-weight: bold;} .greenannounce {color: #00ff00; font-weight: bold;} .rose {color: #ff5050;} @@ -81,29 +87,31 @@ h1.alert, h2.alert {color: #000000;} .smallnotice {color: #000099; font-size: 90%;} .smallnoticeital {color: #000099; font-style: italic; font-size: 90%;} .boldnotice {color: #000099; font-weight: bold;} +.hear {color: #000099; font-style: italic;} .adminnotice {color: #0000ff;} -.adminhelp {color: #ff0000; font-weight: bold;} +.adminhelp {color: #ff0000; font-weight: bold;} .unconscious {color: #0000ff; font-weight: bold;} .suicide {color: #ff5050; font-style: italic;} .green {color: #03ff39;} -.nicegreen {color: #14a833;} +.nicegreen {color: #14a833;} .shadowling {color: #3b2769;} .cult {color: #960000;} -.cultlarge {color: #960000; font-weight: bold; font-size: 3;} -.narsie {color: #960000; font-weight: bold; font-size: 15;} -.narsiesmall {color: #960000; font-weight: bold; font-size: 6;} -.colossus {color: #7F282A; font-size: 5;} -.hierophant {color: #660099; font-weight: bold; font-style: italic;} -.hierophant_warning {color: #660099; font-style: italic;} +.cultlarge {color: #960000; font-weight: bold; font-size: 3;} +.narsie {color: #960000; font-weight: bold; font-size: 15;} +.narsiesmall {color: #960000; font-weight: bold; font-size: 6;} +.colossus {color: #7F282A; font-size: 5;} +.hierophant {color: #660099; font-weight: bold; font-style: italic;} +.hierophant_warning {color: #660099; font-style: italic;} .purple {color: #5e2d79;} .holoparasite {color: #35333a;} +.bounty {color: #ab6613; font-style: italic;} .revennotice {color: #1d2953;} .revenboldnotice {color: #1d2953; font-weight: bold;} -.revenbignotice {color: #1d2953; font-weight: bold; font-size: 3;} +.revenbignotice {color: #1d2953; font-weight: bold; font-size: 3;} .revenminor {color: #823abb} .revenwarning {color: #760fbb; font-style: italic;} -.revendanger {color: #760fbb; font-weight: bold; font-size: 3;} +.revendanger {color: #760fbb; font-weight: bold; font-size: 3;} .umbra {color: #5000A0;} .umbra_emphasis {color: #5000A0; font-weight: bold; font-style: italic;} .umbra_large {color: #5000A0; font-size: 3; font-weight: bold; font-style: italic;} @@ -133,8 +141,7 @@ h1.alert, h2.alert {color: #000000;} .neovgre {color: #6E001A; font-weight: bold; font-style: italic;} .neovgre_small {color: #6E001A;} -.newscaster {color: #800000;} -.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;} +.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;} .alien {color: #543354;} .noticealien {color: #00c000;} @@ -149,7 +156,7 @@ h1.alert, h2.alert {color: #000000;} .papyrus {font-family: "Papyrus", cursive, sans-serif;} .robot {font-family: "Courier New", cursive, sans-serif;} -.command_headset {font-weight: bold; font-size: 3;} +.command_headset {font-weight: bold; font-size: 3;} .small {font-size: 1;} .big {font-size: 3;} .reallybig {font-size: 4;} @@ -157,9 +164,9 @@ h1.alert, h2.alert {color: #000000;} .greentext {color: #00FF00; font-size: 3;} .redtext {color: #FF0000; font-size: 3;} .yellowtext {color: #FFCC00; font-size: 3;} -.clown {color: #FF69Bf; font-size: 3; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} -.his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} -.spooky {color: #FF9100;} +.clown {color: #FF69Bf; font-size: 3; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} +.singing {font-family: "Trebuchet MS", cursive, sans-serif; font-style: italic;} +.his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} .velvet {color: #660015; font-weight: bold; animation: velvet 5000ms infinite;} @keyframes velvet { 0% { color: #400020; } @@ -169,28 +176,29 @@ h1.alert, h2.alert {color: #000000;} 100% { color: #400020; } } -.hypnophrase {color: #3bb5d3; font-weight: bold; animation: hypnocolor 1500ms infinite;} -@keyframes hypnocolor { - 0% { color: #0d0d0d; } - 25% { color: #410194; } - 50% { color: #7f17d8; } - 75% { color: #410194; } - 100% { color: #3bb5d3; } +.hypnophrase {color: #3bb5d3; font-weight: bold; animation: hypnocolor 1500ms infinite; animation-direction: alternate;} + @keyframes hypnocolor { + 0% {color: #0d0d0d;} + 25% {color: #410194;} + 50% {color: #7f17d8;} + 75% {color: #410194;} + 100% {color: #3bb5d3;} } -.phobia {color: #dd0000; font-weight: bold; animation: phobia 750ms infinite;} + +.phobia {color: #dd0000; font-weight: bold; animation: phobia 750ms infinite;} @keyframes phobia { - 0% { color: #0d0d0d; } - 50% { color: #dd0000; } - 100% { color: #0d0d0d; } + 0% {color: #0d0d0d;} + 50% {color: #dd0000;} + 100% {color: #0d0d0d;} } -.icon {height: 1em; width: auto;} +.icon {height: 1em; width: auto;} .memo {color: #638500; text-align: center;} .memoedit {text-align: center; font-size: 2;} -.abductor {color: #800080; font-style: italic;} -.mind_control {color: #A00D6F; font-size: 3; font-weight: bold; font-style: italic;} +.abductor {color: #800080; font-style: italic;} +.mind_control {color: #A00D6F; font-size: 3; font-weight: bold; font-style: italic;} .slime {color: #00CED1;} .drone {color: #848482;} .monkey {color: #975032;} diff --git a/libbyond-extools.so b/libbyond-extools.so index 8e17f952f2..bdae36893f 100644 Binary files a/libbyond-extools.so and b/libbyond-extools.so differ diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 06783df03d..bb9162789e 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -40,12 +40,6 @@ path = /obj/item/bikehorn/airhorn ckeywhitelist = list("kevinz000") -/datum/gear/donator/cebusoap - name = "Cebutris' soap" - slot = SLOT_IN_BACKPACK - path = /obj/item/custom/ceb_soap - ckeywhitelist = list("cebutris") - /datum/gear/donator/kiaracloak name = "Kiara's cloak" slot = SLOT_NECK @@ -516,3 +510,15 @@ slot = SLOT_IN_BACKPACK path = /obj/item/bedsheet/cosmos ckeywhitelist = list("grunnyyy") + +/datum/gear/donator/customskirt + name = "custom atmos skirt" + slot = SLOT_IN_BACKPACK + path = /obj/item/clothing/under/custom/customskirt + ckeywhitelist = list("thakyz") + +/datum/gear/donator/hisakaki + name = "halo" + slot = SLOT_HEAD + path = /obj/item/clothing/head/halo + ckeywhitelist = list("hisakaki") diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm index 19311f703a..c7eff6ce78 100644 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -86,3 +86,7 @@ /datum/gear/neck/polycloak name = "Polychromatic Cloak" path = /obj/item/clothing/neck/cloak/polychromic + +/datum/gear/neck/altpolycloak + name = "Alternate Cloak" + path = /obj/item/clothing/neck/cloak/alt/polychromic diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 5ce73d1cfd..45d8fc1ef1 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -211,6 +211,14 @@ name = "Keyhole Sweater" path = /obj/item/clothing/under/misc/keyholesweater +/datum/gear/uniform/tealturtle + name = "Teal Turtleneck" + path = /obj/item/clothing/under/suit/turtle/teal + +/datum/gear/uniform/greyturtle + name = "Grey Turtleneck" + path = /obj/item/clothing/under/suit/turtle/grey + /datum/gear/uniform/polyjump name = "Polychromic Jumpsuit" path = /obj/item/clothing/under/misc/polyjumpsuit @@ -246,6 +254,127 @@ path = /obj/item/clothing/under/shorts/polychromic cost = 2 +/datum/gear/uniform/hopcasual + name = "Casual Head of Personnel's uniform" + path = /obj/item/clothing/under/rank/civilian/head_of_personnel/whimsy + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Head of Personnel" + restricted_roles = list("Head of Personnel") + +/datum/gear/uniform/robosleek + name = "Sleek roboticist's jumpsuit" + path = /obj/item/clothing/under/rank/rnd/roboticist/sleek + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Roboticist" + restricted_roles = list("Roboticist") + +/datum/gear/uniform/seccorp + name = "Corporate Security Uniform" + path = /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Security Officer" + restricted_roles = list("Security Officer") + +/datum/gear/uniform/wardencorp + name = "Corporate Warden's Uniform" + path = /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/wardencorp + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Warden" + restricted_roles = list("Warden") + +/datum/gear/uniform/hoscorp + name = "Corporate Head of Security's Uniform" + path = /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/hoscorp + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Head Of Security" + restricted_roles = list("Head Of Security") + +/datum/gear/uniform/detcorp + name = "Corporate Detective's Uniform" + path = /obj/item/clothing/under/rank/security/officer/blueshirt/seccorp/detcorp + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Detective" + restricted_roles = list("Detective") + +/datum/gear/uniform/detbrown + name = "Brown Worn Suit" + path = /obj/item/clothing/under/rank/security/detective/brown + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Detective" + restricted_roles = list("Detective") + +/datum/gear/uniform/detbrown/detbrown2 + name = "Padded Worn Suit" + path = /obj/item/clothing/under/rank/security/detective/brown/brown2 + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Detective" + restricted_roles = list("Detective") + + +// Grey utility + +/datum/gear/uniform/grey + name = "Grey Uniform" + path = /obj/item/clothing/under/rank/civilian/util/greyshirt + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_GENERAL + +/datum/gear/uniform/grey/util + name = "Grey Utility Uniform" + path = /obj/item/clothing/under/rank/civilian/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_GENERAL + +/datum/gear/uniform/grey/sec + name = "Security Utility Uniform" + path = /obj/item/clothing/under/rank/security/officer/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Security" + restricted_roles = list("Detective", "Security Officer", "Warden", "Head of Security") + +/datum/gear/uniform/grey/sci + name = "Science Utility Uniform" + path = /obj/item/clothing/under/rank/rnd/scientist/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Science" + restricted_roles = list("Scientist", "Roboticist", "Research Director", "Geneticist") + +/datum/gear/uniform/grey/med + name = "Medical Utility Uniform" + path = /obj/item/clothing/under/rank/medical/doctor/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Medical" + restricted_roles = list("Medical Doctor", "Virologist", "Chemist", "Geneticist", "Paramedic") + +/datum/gear/uniform/grey/eng + name = "Engineering Utility Uniform" + path = /obj/item/clothing/under/rank/engineering/engineer/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Engineering" + restricted_roles = list("Station Engineer", "Atmospheric Technician", "Chief Engineer") + +/datum/gear/uniform/grey/supply + name = "Supply Utility Uniform" + path = /obj/item/clothing/under/rank/cargo/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Supply" + restricted_roles = list("Shaft Miner", "Cargo Technician", "Quartermaster") + +/datum/gear/uniform/grey/com + name = "Command Utility Uniform" + path = /obj/item/clothing/under/rank/captain/util + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_desc = "Command" + restricted_roles = list("Quartermaster", "Research Director", "Chief Medical Officer", "Head Of Security", "Head Of Personnel", "Captain") + +/datum/gear/uniform/grey/eng/mech + name = "Mechanic's Uniform" + path = /obj/item/clothing/under/rank/engineering/engineer/mechanic + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + +/datum/gear/unifrom/grey/med/red + name = "Red Paramedic's Uniform" + path = /obj/item/clothing/under/rank/medical/paramedic/red + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + // Trekie things //TOS /datum/gear/uniform/trekcmdtos @@ -540,3 +669,9 @@ /datum/gear/uniform/kimono/sakura name = "Sakura kimono" path = /obj/item/clothing/under/costume/kimono/sakura + +/datum/gear/uniform/ctlong + name = "cargo tech's jumpsuit (long pants)" + path = /obj/item/clothing/under/rank/cargo/tech/long + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_roles = list("Cargo Technician") diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index bd377d6081..bc9f8bce49 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -1,26 +1,8 @@ - //For custom items. // Unless there's a digitigrade version make sure you add mutantrace_variation = NONE to all clothing/under and shoes - Pooj // Digitigrade stuff is uniform_digi.dmi and digishoes.dmi in icons/mob -/obj/item/custom/ceb_soap - name = "Cebutris' Soap" - desc = "A generic bar of soap that doesn't really seem to work right." - gender = PLURAL - icon = 'icons/obj/custom.dmi' - icon_state = "cebu" - w_class = WEIGHT_CLASS_TINY - item_flags = NOBLUDGEON - -/obj/item/soap/cebu //real versions, for admin shenanigans. Adminspawn only - desc = "A bright blue bar of soap that smells of wolves" - icon = 'icons/obj/custom.dmi' - icon_state = "cebu" - -/obj/item/soap/cebu/fast //speedyquick cleaning version. Still not as fast as Syndiesoap. Adminspawn only. - cleanspeed = 15 - /obj/item/clothing/neck/cloak/inferno name = "Kiara's Cloak" desc = "The design on this seems a little too familiar." @@ -316,7 +298,7 @@ /obj/item/clothing/neck/petcollar/naomi name = "worn pet collar" - desc = "a pet collar that looks well used." + desc = "A pet collar that looks well used." /obj/item/clothing/neck/cloak/green name = "Generic Green Cloak" @@ -568,3 +550,21 @@ desc = "A fancy cloak embroidered with polychromatic thread in a pattern that reminds one of the wielders of unlimited power." icon_state = "polyce" poly_colors = list("#808080", "#8CC6FF", "#FF3535") + +/obj/item/clothing/under/custom/customskirt + name = "unzipped atmos skirt" + desc = "atmos jumpsuit skirt with the top half zipped down and wrapped around the waist." + icon_state = "atmos_skirt" + item_state = "atmos_skirt" + icon = 'icons/obj/custom.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' + +/obj/item/clothing/head/halo + name = "transdimensional halo" + desc = "An oddly shaped halo that magically hovers above the head." + icon_state = "halo" + item_state = "halo" + icon = 'icons/mob/clothing/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' + dynamic_hair_suffix = "" + diff --git a/modular_citadel/code/modules/mentor/dementor.dm b/modular_citadel/code/modules/mentor/dementor.dm index 8acd07f9a3..0587c9dbe0 100644 --- a/modular_citadel/code/modules/mentor/dementor.dm +++ b/modular_citadel/code/modules/mentor/dementor.dm @@ -7,7 +7,7 @@ if (/client/proc/mentor_unfollow in verbs) mentor_unfollow() GLOB.mentors -= src - verbs += /client/proc/cmd_mentor_rementor + add_verb(src, /client/proc/cmd_mentor_rementor) /client/proc/cmd_mentor_rementor() set category = "Mentor" @@ -16,4 +16,4 @@ return add_mentor_verbs() GLOB.mentors += src - verbs -= /client/proc/cmd_mentor_rementor + remove_verb(src, /client/proc/cmd_mentor_rementor) diff --git a/modular_citadel/code/modules/mentor/follow.dm b/modular_citadel/code/modules/mentor/follow.dm index 5da3ce4726..9e86e5ec49 100644 --- a/modular_citadel/code/modules/mentor/follow.dm +++ b/modular_citadel/code/modules/mentor/follow.dm @@ -5,7 +5,7 @@ if(!isobserver(usr)) mentor_datum.following = M usr.reset_perspective(M) - verbs += /client/proc/mentor_unfollow + add_verb(usr, /client/proc/mentor_unfollow) to_chat(usr, "Click the \"Stop Following\" button here or in the Mentor tab to stop following [key_name(M)].") orbiting = FALSE else @@ -22,7 +22,7 @@ if(!is_mentor()) return usr.reset_perspective() - verbs -= /client/proc/mentor_unfollow + remove_verb(usr, /client/proc/mentor_unfollow) to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)].") log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)].") - mentor_datum.following = null \ No newline at end of file + mentor_datum.following = null diff --git a/modular_citadel/code/modules/mentor/mentor_verbs.dm b/modular_citadel/code/modules/mentor/mentor_verbs.dm index 534b877399..460a79bcf9 100644 --- a/modular_citadel/code/modules/mentor/mentor_verbs.dm +++ b/modular_citadel/code/modules/mentor/mentor_verbs.dm @@ -7,7 +7,7 @@ GLOBAL_PROTECT(mentor_verbs) /client/proc/add_mentor_verbs() if(mentor_datum) - verbs += GLOB.mentor_verbs + add_verb(src, GLOB.mentor_verbs) /client/proc/remove_mentor_verbs() - verbs -= GLOB.mentor_verbs \ No newline at end of file + remove_verb(src, GLOB.mentor_verbs) diff --git a/modular_citadel/code/modules/mentor/mentorhelp.dm b/modular_citadel/code/modules/mentor/mentorhelp.dm index d056c03f49..54d63402db 100644 --- a/modular_citadel/code/modules/mentor/mentorhelp.dm +++ b/modular_citadel/code/modules/mentor/mentorhelp.dm @@ -3,12 +3,12 @@ set name = "Mentorhelp" //clean the input msg - if(!msg) return + if(!msg) + return //remove out mentorhelp verb temporarily to prevent spamming of mentors. - verbs -= /client/verb/mentorhelp - spawn(300) - verbs += /client/verb/mentorhelp // 30 second cool-down for mentorhelp + remove_verb(src, /client/verb/mentorhelp) + addtimer(CALLBACK(GLOBAL_PROC, /proc/add_verb, src, /client/verb/mentorhelp), 30 SECONDS) msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) if(!msg || !mob) @@ -95,4 +95,4 @@ if(include_follow) . += " (F)" - return . \ No newline at end of file + return . diff --git a/modular_citadel/code/modules/mentor/mentorsay.dm b/modular_citadel/code/modules/mentor/mentorsay.dm index c13e3c6ef3..dc1281abe0 100644 --- a/modular_citadel/code/modules/mentor/mentorsay.dm +++ b/modular_citadel/code/modules/mentor/mentorsay.dm @@ -13,7 +13,7 @@ log_mentor("MSAY: [key_name(src)] : [msg]") if(check_rights_for(src, R_ADMIN,0)) - msg = "MENTOR: [key_name(src, 0, 0)]: [msg]" + msg = "MENTOR: [key_name(src, 0, 0)]: [msg]" else - msg = "MENTOR: [key_name(src, 0, 0)]: [msg]" - to_chat(GLOB.admins | GLOB.mentors, msg) \ No newline at end of file + msg = "MENTOR: [key_name(src, 0, 0)]: [msg]" + to_chat(GLOB.admins | GLOB.mentors, msg, confidential = TRUE) diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index e58c6bda30..28c3f7ea99 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -3,10 +3,6 @@ /mob var/nextsoundemote = 1 -//Disables the custom emote blacklist from TG that normally applies to slimes. -/datum/emote/living/custom - mob_type_blacklist_typecache = list(/mob/living/brain) - /datum/emote/living/insult key = "insult" key_third_person = "insults" @@ -46,6 +42,11 @@ sound = pick('modular_citadel/sound/voice/scream_m1.ogg', 'modular_citadel/sound/voice/scream_m2.ogg') if(user.gender == FEMALE) sound = pick('modular_citadel/sound/voice/scream_f1.ogg', 'modular_citadel/sound/voice/scream_f2.ogg') + if(is_species(user, /datum/species/jelly)) + if(user.gender == FEMALE) + sound = pick('modular_citadel/sound/voice/scream_jelly_f1.ogg', 'modular_citadel/sound/voice/scream_jelly_f2.ogg') + else + sound = pick('modular_citadel/sound/voice/scream_jelly_m1.ogg', 'modular_citadel/sound/voice/scream_jelly_m2.ogg') if(is_species(user, /datum/species/android) || is_species(user, /datum/species/synth) || is_species(user, /datum/species/ipc)) sound = 'modular_citadel/sound/voice/scream_silicon.ogg' if(is_species(user, /datum/species/lizard)) @@ -74,7 +75,6 @@ emote_type = EMOTE_AUDIBLE muzzle_ignore = TRUE restraint_check = TRUE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/snap/run_emote(mob/living/user, params) if(!(. = ..())) @@ -91,7 +91,6 @@ emote_type = EMOTE_AUDIBLE muzzle_ignore = TRUE restraint_check = TRUE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/snap2/run_emote(mob/living/user, params) if(!(. = ..())) @@ -108,7 +107,6 @@ emote_type = EMOTE_AUDIBLE muzzle_ignore = TRUE restraint_check = TRUE - mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) /datum/emote/living/snap3/run_emote(mob/living/user, params) if(!(. = ..())) @@ -125,7 +123,6 @@ 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/awoo/run_emote(mob/living/user, params) if(!(. = ..())) @@ -142,7 +139,6 @@ 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/nya/run_emote(mob/living/user, params) if(!(. = ..())) @@ -159,7 +155,6 @@ 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/weh/run_emote(mob/living/user, params) if(!(. = ..())) @@ -176,7 +171,6 @@ 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/peep/run_emote(mob/living/user, params) if(!(. = ..())) @@ -200,7 +194,6 @@ 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/mothsqueak/run_emote(mob/living/user, params) if(!(. = ..())) @@ -217,7 +210,6 @@ 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/merp/run_emote(mob/living/user, params) if(!(. = ..())) @@ -234,7 +226,6 @@ 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/bark/run_emote(mob/living/user, params) if(!(. = ..())) @@ -252,7 +243,6 @@ 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/squish/run_emote(mob/living/user, params) if(!(. = ..())) diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index e81c7c18d3..d7212f61d2 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -11,7 +11,7 @@ var/recentpump = 0 // to prevent spammage /obj/item/gun/energy/pumpaction/emp_act(severity) //makes it not rack itself when emp'd - cell.use(round(cell.charge / severity)) + cell.use(round(cell.charge * severity/100)) chambered = null //we empty the chamber update_icon() diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm index f3059a480a..60c009bc29 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm @@ -36,6 +36,11 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING 6. Giving this to someone without concent is against space law and gets you sent to gulag. */ +#define POLICYCONFIG_SDGF "SDGF" +#define POLICYCONFIG_SDGF_GOOD "SDGF_ALIGNED" +#define POLICYCONFIG_SDGF_BAD "SDGF_UNALIGNED" + + //Clone serum #chemClone /datum/reagent/fermi/SDGF //vars, mostly only care about keeping track if there's a player in the clone or not. name = "synthetic-derived growth factor" @@ -45,7 +50,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING var/unitCheck = FALSE metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "a weird chemical fleshy flavour" - var/list/candies = list() + var/list/ghosts = list() var/pollStarted = FALSE var/startHunger impure_chem = /datum/reagent/impure/SDGFtox @@ -63,10 +68,11 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING startHunger = M.nutrition if(pollStarted == FALSE) pollStarted = TRUE - candies = pollGhostCandidates("Do you want to play as [M]'s defective clone? (Don't ERP without permission from the original)", ignore_category = POLL_IGNORE_CLONE) + ghosts = pollGhostCandidates("Do you want to play as [M]'s SDGF clone? (Don't ERP without permission from the original, and respect their character.)", ignore_category = POLL_IGNORE_CLONE) log_reagent("FERMICHEM: [M] ckey: [M.key] has taken SDGF, and ghosts have been polled.") + to_chat(M,"If a ghost takes your clone, they will be identical to you. You may wish to add note (IC tab) to help them play your character better, and keep them up on the situation.") if(20 to INFINITY) - if(LAZYLEN(candies) && playerClone == FALSE) //If there's candidates, clone the person and put them in there! + if(LAZYLEN(ghosts) && playerClone == FALSE) //If there's candidates, clone the person and put them in there! to_chat(M, "The cells reach a critical micelle concentration, nucleating rapidly within your body!") var/typepath = M.type var/mob/living/carbon/human/fermi_Gclone = new typepath(M.loc) @@ -74,18 +80,22 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING if(istype(SM) && istype(M)) SM.real_name = M.real_name M.dna.transfer_identity(SM) + SM.underwear = "nude" + SM.socks = "nude" + SM.undershirt = "nude" + M.transfer_trait_datums(SM) SM.updateappearance(mutcolor_update=1) //Process the willing ghosts, and make sure they're actually in the body when they're moved into it! - candies = shuffle(candies)//Shake those ghosts up! - for(var/mob/dead/observer/C2 in candies) + ghosts = shuffle(ghosts)//Shake those ghosts up! + for(var/mob/dead/observer/C2 in ghosts) if(C2.key && C2) C2.transfer_ckey(SM, FALSE) message_admins("Ghost candidate found! [C2] key [C2.key] is becoming a clone of [M] key: [M.key] (They agreed to respect the character they're becoming, and agreed to not ERP without express permission from the original.)") log_reagent("FERMICHEM: [M] ckey: [M.key] is creating a clone, controlled by [C2]") break else - candies -= C2 + ghosts -= C2 if(!SM.mind) //Something went wrong, use alt mechanics return ..() SM.mind.enslave_mind_to_creator(M) @@ -99,16 +109,28 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING ZI.Insert(SM) log_reagent("FERMICHEM: [M] ckey: [M.key]'s zombie_infection has been transferred to their clone") - to_chat(SM, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with your original, a perfect clone of your origin.") - - if(prob(50)) - to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original.") - log_reagent("FERMICHEM: [SM] ckey: [SM.key]'s is not bound by [M] ckey [M.key]'s will, and is free to determine their own goals, while respecting and acting as their origin.") - else - to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.") + var/list/policies = CONFIG_GET(keyed_list/policyconfig) + var/policy = policies[POLICYCONFIG_SDGF] + if(policy) + to_chat(SM,policy) + if(prob((purity**3) * 80)) // 80% chance at 100% purity, 0% chance at 0 purity + policy = policies[POLICYCONFIG_SDGF_GOOD] + if(policy) + to_chat(SM,policy) + else + to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.") log_reagent("FERMICHEM: [SM] ckey: [SM.key]'s is bound by [M] ckey [M.key]'s objectives, and is encouraged to help them complete them.") - - to_chat(M, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.") + else + policy = policies[POLICYCONFIG_SDGF_BAD] + if(policy) + to_chat(SM,policy) + else + to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original.") + log_reagent("FERMICHEM: [SM] ckey: [SM.key]'s is not bound by [M] ckey [M.key]'s will, and is free to determine their own goals, while respecting and acting as their origin.") + + to_chat(SM, "You feel a strange sensation building in your mind as you realise there's two of you. Before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with your original, a perfect clone of your origin.") + SM.client?.change_view(CONFIG_GET(string/default_view)) + to_chat(M, "You feel a strange sensation building in your mind as you realise there's two of you. Before you get a chance to think about it, a mass splits from you, and find yourself face to face with yourself.") M.visible_message("[M] suddenly shudders, and splits into two identical twins!") SM.copy_languages(M, LANGUAGE_MIND) playerClone = TRUE @@ -170,18 +192,22 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING //clone var/typepath = M.type var/mob/living/fermi_Clone = new typepath(M.loc) - var/mob/living/carbon/C = fermi_Clone + var/mob/living/carbon/human/SM = fermi_Clone - if(istype(C) && istype(M)) - C.real_name = M.real_name - M.dna.transfer_identity(C, transfer_SE=1) - C.updateappearance(mutcolor_update=1) - C.apply_status_effect(/datum/status_effect/chem/SGDF) - var/datum/status_effect/chem/SGDF/S = C.has_status_effect(/datum/status_effect/chem/SGDF) + if(istype(SM) && istype(M)) + SM.real_name = M.real_name + M.dna.transfer_identity(SM, transfer_SE=1) + SM.underwear = "nude" + SM.socks = "nude" + SM.undershirt = "nude" + SM.updateappearance(mutcolor_update=1) + M.transfer_trait_datums(SM) + SM.real_name = M.real_name + SM.apply_status_effect(/datum/status_effect/chem/SGDF) + var/datum/status_effect/chem/SGDF/S = SM.has_status_effect(/datum/status_effect/chem/SGDF) S.original = M S.originalmind = M.mind S.status_set = TRUE - log_reagent("FERMICHEM: [M] ckey: [M.key] has created a mindless clone of themselves") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Braindead clones made") if(87 to INFINITY) @@ -236,6 +262,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING SM.real_name = M.real_name M.dna.transfer_identity(SM) SM.updateappearance(mutcolor_update=1) + M.transfer_trait_datums(SM) M.mind.transfer_to(SM) M.visible_message("[M]'s body shudders, the growth factor rapidly splitting into a new clone of [M].") diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 56ad24c599..3ad24ba399 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -221,7 +221,7 @@ C.electrocute_act(10, (get_turf(C)), 1, SHOCK_ILLUSION) if(prob(10)) var/atom/T = C - T.emp_act(EMP_HEAVY) + T.emp_act(80) to_chat(C, "You feel a strange tingling sensation come from your core.") if(isnull(N)) return ..() @@ -233,7 +233,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(O == active_obj) return react_objs += O - O.emp_act(EMP_HEAVY) + O.emp_act(80) /datum/reagent/fermi/nanite_b_goneTox name = "Electromagnetic crystals" @@ -248,7 +248,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) C.electrocute_act(10, (get_turf(C)), 1, SHOCK_ILLUSION) if(prob(50)) var/atom/T = C - T.emp_act(EMP_HEAVY) + T.emp_act(80) to_chat(C, "You feel your hair stand on end as you glow brightly for a moment!") ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 39ba69bd61..da9fd34cd6 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -95,8 +95,7 @@ if(!ImpureTot == 0) //If impure, v.small emp (0.6 or less) ImpureTot *= volume - var/empVol = clamp(volume/10, 0, 15) - empulse(T, empVol, ImpureTot/10, 1) + empulse(T, volume, 1) my_atom.reagents.clear_reagents() //just in case return @@ -253,6 +252,7 @@ holder.remove_reagent(type, cached_volume) holder.add_reagent(/datum/reagent/fermi/PEsmaller, cached_volume) +/* /datum/chemical_reaction/fermi/astral name = "Astrogen" id = /datum/reagent/fermi/astral @@ -274,7 +274,7 @@ FermiChem = TRUE FermiExplode = TRUE PurityMin = 0.25 - +*/ /datum/chemical_reaction/fermi/enthrall //check this name = "MKUltra" @@ -500,7 +500,10 @@ PurityMin = 0.6 /datum/chemical_reaction/fermi/plushmium/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) - new /obj/item/toy/plush/random(get_turf(my_atom)) + if(volume < 20) //It creates a normal plush at low volume.. at higher amounts, things get slightly more interesting. + new /obj/item/toy/plush/random(get_turf(my_atom)) + else + new /obj/item/toy/plush/plushling(get_turf(my_atom)) my_atom.visible_message("The reaction suddenly zaps, creating a plushie!") my_atom.reagents.clear_reagents() diff --git a/modular_citadel/icons/mob/citadel_refs/furry_parts_greyscale.dmi b/modular_citadel/icons/mob/citadel_refs/furry_parts_greyscale.dmi deleted file mode 100644 index c8d5ceb0a6..0000000000 Binary files a/modular_citadel/icons/mob/citadel_refs/furry_parts_greyscale.dmi and /dev/null differ diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi deleted file mode 100644 index 6098dd3567..0000000000 Binary files a/modular_citadel/icons/mob/mutant_bodyparts.dmi and /dev/null differ diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi index 29eb35c715..50c29bb75f 100644 Binary files a/modular_citadel/icons/mob/widerobot.dmi and b/modular_citadel/icons/mob/widerobot.dmi differ diff --git a/modular_citadel/sound/voice/scream_jelly_f1.ogg b/modular_citadel/sound/voice/scream_jelly_f1.ogg new file mode 100644 index 0000000000..6bbe8d2811 Binary files /dev/null and b/modular_citadel/sound/voice/scream_jelly_f1.ogg differ diff --git a/modular_citadel/sound/voice/scream_jelly_f2.ogg b/modular_citadel/sound/voice/scream_jelly_f2.ogg new file mode 100644 index 0000000000..03bd62728a Binary files /dev/null and b/modular_citadel/sound/voice/scream_jelly_f2.ogg differ diff --git a/modular_citadel/sound/voice/scream_jelly_m1.ogg b/modular_citadel/sound/voice/scream_jelly_m1.ogg new file mode 100644 index 0000000000..496d5b1719 Binary files /dev/null and b/modular_citadel/sound/voice/scream_jelly_m1.ogg differ diff --git a/modular_citadel/sound/voice/scream_jelly_m2.ogg b/modular_citadel/sound/voice/scream_jelly_m2.ogg new file mode 100644 index 0000000000..2a70ae29fe Binary files /dev/null and b/modular_citadel/sound/voice/scream_jelly_m2.ogg differ diff --git a/sound/effects/creak1.ogg b/sound/effects/creak1.ogg new file mode 100644 index 0000000000..0cad4802ff Binary files /dev/null and b/sound/effects/creak1.ogg differ diff --git a/sound/effects/creak2.ogg b/sound/effects/creak2.ogg new file mode 100644 index 0000000000..707bf39e33 Binary files /dev/null and b/sound/effects/creak2.ogg differ diff --git a/sound/effects/creak3.ogg b/sound/effects/creak3.ogg new file mode 100644 index 0000000000..88ff37a339 Binary files /dev/null and b/sound/effects/creak3.ogg differ diff --git a/sound/effects/explosioncreak1.ogg b/sound/effects/explosioncreak1.ogg new file mode 100644 index 0000000000..474f5febb5 Binary files /dev/null and b/sound/effects/explosioncreak1.ogg differ diff --git a/sound/effects/explosioncreak2.ogg b/sound/effects/explosioncreak2.ogg new file mode 100644 index 0000000000..75d323eb06 Binary files /dev/null and b/sound/effects/explosioncreak2.ogg differ diff --git a/sound/machines/card_slide.ogg b/sound/machines/card_slide.ogg new file mode 100644 index 0000000000..f97ed15fbf Binary files /dev/null and b/sound/machines/card_slide.ogg differ diff --git a/sound/machines/twobeep_high.ogg b/sound/machines/twobeep_high.ogg new file mode 100644 index 0000000000..b97b39a4f0 Binary files /dev/null and b/sound/machines/twobeep_high.ogg differ diff --git a/sound/voice/borg_deathsound.ogg b/sound/voice/borg_deathsound.ogg new file mode 100644 index 0000000000..bb11022abe Binary files /dev/null and b/sound/voice/borg_deathsound.ogg differ diff --git a/sound/voice/jelly/manlaugh1.ogg b/sound/voice/jelly/manlaugh1.ogg new file mode 100644 index 0000000000..665c8df908 Binary files /dev/null and b/sound/voice/jelly/manlaugh1.ogg differ diff --git a/sound/voice/jelly/manlaugh2.ogg b/sound/voice/jelly/manlaugh2.ogg new file mode 100644 index 0000000000..ec1b5eaf55 Binary files /dev/null and b/sound/voice/jelly/manlaugh2.ogg differ diff --git a/sound/voice/jelly/nyaha.ogg b/sound/voice/jelly/nyaha.ogg new file mode 100644 index 0000000000..3369995a3d Binary files /dev/null and b/sound/voice/jelly/nyaha.ogg differ diff --git a/sound/voice/jelly/nyahaha1.ogg b/sound/voice/jelly/nyahaha1.ogg new file mode 100644 index 0000000000..c74a038dae Binary files /dev/null and b/sound/voice/jelly/nyahaha1.ogg differ diff --git a/sound/voice/jelly/nyahaha2.ogg b/sound/voice/jelly/nyahaha2.ogg new file mode 100644 index 0000000000..7eaa1aeebe Binary files /dev/null and b/sound/voice/jelly/nyahaha2.ogg differ diff --git a/sound/voice/jelly/nyahehe.ogg b/sound/voice/jelly/nyahehe.ogg new file mode 100644 index 0000000000..eb1d2d3c90 Binary files /dev/null and b/sound/voice/jelly/nyahehe.ogg differ diff --git a/sound/voice/jelly/womanlaugh.ogg b/sound/voice/jelly/womanlaugh.ogg new file mode 100644 index 0000000000..bafe1b0292 Binary files /dev/null and b/sound/voice/jelly/womanlaugh.ogg differ diff --git a/sound/voice/medbot/owo.ogg b/sound/voice/medbot/owo.ogg index 0fdaa9d483..5eeb502c88 100644 Binary files a/sound/voice/medbot/owo.ogg and b/sound/voice/medbot/owo.ogg differ diff --git a/sound/voice/scream/android_scream.ogg b/sound/voice/scream/android_scream.ogg new file mode 100644 index 0000000000..d3f179a84a Binary files /dev/null and b/sound/voice/scream/android_scream.ogg differ diff --git a/strings/tips.txt b/strings/tips.txt index 5dc4e1b985..2039b30359 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -163,7 +163,7 @@ As a Botanist, you can mutate the plants growing in your hydroponics trays with As a Botanist, you should look into increasing the potency of your plants. This is shown by the size of the plant's sprite, and can increase the amount of chemicals, points gained from grinding them in the biogenerator, and lets people know you are a proficient botanist. As a Botanist, you can combine production trait chemicals and mix your own complex chemicals inside of the plants themselves using precursors. Chlorine (blumpkin) + radium and phosphorus (glowshrooms) equals unstable mutagen! As a Botanist, earthsblood is an incredibly powerful chemical found in Ambrosia Gaia, it heals all types of damages very rapidly but causes lingering brain damage and has a nasty overdose. You can combine the chemicals from watermelons (water), grass (hydrogen), and cherries (sugar) to mix mannitol in with your earthsblood to completely counteract its main drawback! -As a Botanist, Ambrosia Gaia is a plant mutated from Ambrosia Deus, which is a plant mutated from Ambrosia Vulgaris. The reagent contained within this plant known as earthsblood can make your trays and soil plots completely self sufficient when a plant containing such reagent is composted into them, meaning they won't need nutrients or water, and they'll automatically kill their own weeds and pests. +As a Botanist, Ambrosia Gaia is a plant mutated from Ambrosia Deus, which is a plant mutated from Ambrosia Vulgaris. The reagent contained within this plant known as earthsblood makes for a vastly superior fertilizer than most, giving decent stat boosts to most stats, and automatically killing weeds and pests! As a Cook, you can load your food into snack vending machines. As a Cook, you can rename your custom made food with a pen. As a Cook, any food you make will be much healthier than the junk food found in vendors. Having the crew routinely eating from you will provide minor buffs. diff --git a/strings/traumas.json b/strings/traumas.json index 58170bd55a..e5048d41b2 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -131,7 +131,9 @@ "@pick(semicolon)*weh", "@pick(semicolon)My balls finally feel full, again.", "@pick(semicolon)Assaltign a sec osficer aren't crime if ur @pick(roles)", - ";SEC I SPILED MU JICE HELELPH HELPJ JLEP HELP" + ";SEC I SPILED MU JICE HELELPH HELPJ JLEP HELP", + "@pick(semicolon) atmos is chemistyr is radation fast air is FASTER cheemsitry and FASTER RADIATION AND FASTER DEATH!!!", + "@pick(semicolon) FUC'KING MuNKEY WAch TALKN SHIT" ], "mutations": [ @@ -199,7 +201,7 @@ "abdoocters", "revinent" ], - + "bug": [ "", "IS TIS A BUG??", @@ -207,7 +209,7 @@ "BUG!!!", "HUE, FEATURE!!" ], - + "semicolon": [ "", ";", @@ -271,7 +273,7 @@ "arrdee", "sek" ], - + "cargo": [ "GUNS", "HATS", @@ -279,7 +281,7 @@ "MEMES", "GLOWY CYSTAL" ], - + "s_roles": [ "ert", "shadowlig", diff --git a/tgstation.dme b/tgstation.dme index 79c4274722..23f262d7a5 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -17,6 +17,7 @@ #include "_maps\_basemap.dm" #include "code\_compile_options.dm" #include "code\world.dm" +#include "code\__DEFINES\_extools.dm" #include "code\__DEFINES\_globals.dm" #include "code\__DEFINES\_protect.dm" #include "code\__DEFINES\_tick.dm" @@ -25,6 +26,7 @@ #include "code\__DEFINES\antagonists.dm" #include "code\__DEFINES\atmospherics.dm" #include "code\__DEFINES\atom_hud.dm" +#include "code\__DEFINES\botany.dm" #include "code\__DEFINES\bsql.config.dm" #include "code\__DEFINES\bsql.dm" #include "code\__DEFINES\callbacks.dm" @@ -96,6 +98,7 @@ #include "code\__DEFINES\reagents_specific_heat.dm" #include "code\__DEFINES\research.dm" #include "code\__DEFINES\robots.dm" +#include "code\__DEFINES\rockpaperscissors.dm" #include "code\__DEFINES\role_preferences.dm" #include "code\__DEFINES\rust_g.dm" #include "code\__DEFINES\say.dm" @@ -140,12 +143,14 @@ #include "code\__DEFINES\mapping\maploader.dm" #include "code\__DEFINES\material\worth.dm" #include "code\__DEFINES\mobs\slowdowns.dm" +#include "code\__DEFINES\research\anomalies.dm" #include "code\__DEFINES\research\stock_parts.dm" #include "code\__DEFINES\skills\defines.dm" #include "code\__DEFINES\skills\helpers.dm" #include "code\__DEFINES\storage\_storage.dm" #include "code\__DEFINES\storage\volumetrics.dm" #include "code\__HELPERS\_cit_helpers.dm" +#include "code\__HELPERS\_extools_api.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" #include "code\__HELPERS\_string_lists.dm" @@ -187,6 +192,7 @@ #include "code\__HELPERS\typelists.dm" #include "code\__HELPERS\unsorted.dm" #include "code\__HELPERS\vector.dm" +#include "code\__HELPERS\verbs.dm" #include "code\__HELPERS\view.dm" #include "code\__HELPERS\sorts\__main.dm" #include "code\__HELPERS\sorts\InsertSort.dm" @@ -284,6 +290,7 @@ #include "code\controllers\configuration\entries\general.dm" #include "code\controllers\configuration\entries\plushies.dm" #include "code\controllers\configuration\entries\policy.dm" +#include "code\controllers\configuration\entries\resources.dm" #include "code\controllers\subsystem\acid.dm" #include "code\controllers\subsystem\adjacent_air.dm" #include "code\controllers\subsystem\air.dm" @@ -327,7 +334,6 @@ #include "code\controllers\subsystem\parallax.dm" #include "code\controllers\subsystem\pathfinder.dm" #include "code\controllers\subsystem\persistence.dm" -#include "code\controllers\subsystem\ping.dm" #include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" @@ -336,6 +342,7 @@ #include "code\controllers\subsystem\shuttle.dm" #include "code\controllers\subsystem\sounds.dm" #include "code\controllers\subsystem\spacedrift.dm" +#include "code\controllers\subsystem\statpanel.dm" #include "code\controllers\subsystem\stickyban.dm" #include "code\controllers\subsystem\sun.dm" #include "code\controllers\subsystem\tgui.dm" @@ -363,6 +370,7 @@ #include "code\controllers\subsystem\processing\status_effects.dm" #include "code\controllers\subsystem\processing\weather.dm" #include "code\controllers\subsystem\processing\wet_floors.dm" +#include "code\datums\accents.dm" #include "code\datums\action.dm" #include "code\datums\ai_laws.dm" #include "code\datums\armor.dm" @@ -435,6 +443,7 @@ #include "code\datums\components\footstep.dm" #include "code\datums\components\fried.dm" #include "code\datums\components\gps.dm" +#include "code\datums\components\honkspam.dm" #include "code\datums\components\identification.dm" #include "code\datums\components\igniter.dm" #include "code\datums\components\infective.dm" @@ -442,6 +451,7 @@ #include "code\datums\components\killerqueen.dm" #include "code\datums\components\knockback.dm" #include "code\datums\components\knockoff.dm" +#include "code\datums\components\label.dm" #include "code\datums\components\lifesteal.dm" #include "code\datums\components\lockon_aiming.dm" #include "code\datums\components\magnetic_catch.dm" @@ -642,6 +652,7 @@ #include "code\datums\skills\_skill.dm" #include "code\datums\skills\_skill_holder.dm" #include "code\datums\skills\_skill_modifier.dm" +#include "code\datums\skills\blacksmithing.dm" #include "code\datums\skills\engineering.dm" #include "code\datums\skills\medical.dm" #include "code\datums\skills\modifiers\job.dm" @@ -731,7 +742,6 @@ #include "code\game\gamemodes\devil\devil agent\devil_agent.dm" #include "code\game\gamemodes\dynamic\dynamic.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_events.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" @@ -876,6 +886,8 @@ #include "code\game\machinery\porta_turret\portable_turret.dm" #include "code\game\machinery\porta_turret\portable_turret_construct.dm" #include "code\game\machinery\porta_turret\portable_turret_cover.dm" +#include "code\game\machinery\poweredfans\fan_assembly.dm" +#include "code\game\machinery\poweredfans\poweredfans.dm" #include "code\game\machinery\shuttle\custom_shuttle.dm" #include "code\game\machinery\shuttle\shuttle_engine.dm" #include "code\game\machinery\shuttle\shuttle_heater.dm" @@ -1095,6 +1107,7 @@ #include "code\game\objects\items\devices\paicard.dm" #include "code\game\objects\items\devices\pipe_painter.dm" #include "code\game\objects\items\devices\polycircuit.dm" +#include "code\game\objects\items\devices\portable_chem_mixer.dm" #include "code\game\objects\items\devices\powersink.dm" #include "code\game\objects\items\devices\pressureplates.dm" #include "code\game\objects\items\devices\quantum_keycard.dm" @@ -1241,6 +1254,7 @@ #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\petrified_statue.dm" #include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\railings.dm" #include "code\game\objects\structures\reflector.dm" #include "code\game\objects\structures\safe.dm" #include "code\game\objects\structures\showcase.dm" @@ -1706,11 +1720,12 @@ #include "code\modules\assembly\signaler.dm" #include "code\modules\assembly\timer.dm" #include "code\modules\assembly\voice.dm" -#include "code\modules\asset_cache\asset_cache.dm" #include "code\modules\asset_cache\asset_cache_client.dm" #include "code\modules\asset_cache\asset_cache_item.dm" #include "code\modules\asset_cache\asset_list.dm" #include "code\modules\asset_cache\asset_list_items.dm" +#include "code\modules\asset_cache\transports\asset_transport.dm" +#include "code\modules\asset_cache\transports\webroot_transport.dm" #include "code\modules\atmospherics\multiz.dm" #include "code\modules\atmospherics\environmental\LINDA_fire.dm" #include "code\modules\atmospherics\environmental\LINDA_system.dm" @@ -1857,7 +1872,6 @@ #include "code\modules\client\client_colour.dm" #include "code\modules\client\client_defines.dm" #include "code\modules\client\client_procs.dm" -#include "code\modules\client\darkmode.dm" #include "code\modules\client\message.dm" #include "code\modules\client\player_details.dm" #include "code\modules\client\preferences.dm" @@ -2105,7 +2119,6 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" #include "code\modules\games\cas.dm" #include "code\modules\games\unum.dm" -#include "code\modules\goonchat\browserOutput.dm" #include "code\modules\holiday\easter.dm" #include "code\modules\holiday\holidays.dm" #include "code\modules\holiday\halloween\bartholomew.dm" @@ -2123,6 +2136,7 @@ #include "code\modules\hydroponics\growninedible.dm" #include "code\modules\hydroponics\hydroitemdefines.dm" #include "code\modules\hydroponics\hydroponics.dm" +#include "code\modules\hydroponics\hydroponics_chemreact.dm" #include "code\modules\hydroponics\plant_genes.dm" #include "code\modules\hydroponics\sample.dm" #include "code\modules\hydroponics\seed_extractor.dm" @@ -2776,6 +2790,7 @@ #include "code\modules\modular_computers\file_system\programs\alarm.dm" #include "code\modules\modular_computers\file_system\programs\arcade.dm" #include "code\modules\modular_computers\file_system\programs\atmosscan.dm" +#include "code\modules\modular_computers\file_system\programs\borg_monitor.dm" #include "code\modules\modular_computers\file_system\programs\card.dm" #include "code\modules\modular_computers\file_system\programs\cargobounty.dm" #include "code\modules\modular_computers\file_system\programs\configurator.dm" @@ -2802,6 +2817,7 @@ #include "code\modules\modular_computers\hardware\portable_disk.dm" #include "code\modules\modular_computers\hardware\printer.dm" #include "code\modules\modular_computers\hardware\recharger.dm" +#include "code\modules\modular_computers\hardware\sensor_package.dm" #include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" #include "code\modules\movespeed\_movespeed_modifier.dm" #include "code\modules\movespeed\modifiers\components.dm" @@ -2846,6 +2862,7 @@ #include "code\modules\NTNet\network.dm" #include "code\modules\NTNet\relays.dm" #include "code\modules\NTNet\services\_service.dm" +#include "code\modules\paperwork\carbonpaper.dm" #include "code\modules\paperwork\clipboard.dm" #include "code\modules\paperwork\contract.dm" #include "code\modules\paperwork\filingcabinet.dm" @@ -2859,6 +2876,7 @@ #include "code\modules\paperwork\pen.dm" #include "code\modules\paperwork\photocopier.dm" #include "code\modules\paperwork\stamps.dm" +#include "code\modules\paperwork\ticketmachine.dm" #include "code\modules\photography\_pictures.dm" #include "code\modules\photography\camera\camera.dm" #include "code\modules\photography\camera\camera_image_capturing.dm" @@ -3015,6 +3033,7 @@ #include "code\modules\projectiles\guns\energy\pulse.dm" #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\magic\spell_book.dm" #include "code\modules\projectiles\guns\magic\staff.dm" #include "code\modules\projectiles\guns\magic\wand.dm" #include "code\modules\projectiles\guns\misc\beam_rifle.dm" @@ -3133,6 +3152,8 @@ #include "code\modules\research\server.dm" #include "code\modules\research\stock_parts.dm" #include "code\modules\research\anomaly\anomaly_core.dm" +#include "code\modules\research\anomaly\explosive_compressor.dm" +#include "code\modules\research\anomaly\raw_anomaly.dm" #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\autobotter_designs.dm" #include "code\modules\research\designs\autoylathe_designs.dm" @@ -3273,6 +3294,7 @@ #include "code\modules\ruins\spaceruin_code\whiteshipruin_box.dm" #include "code\modules\security_levels\keycard_authentication.dm" #include "code\modules\security_levels\security_levels.dm" +#include "code\modules\shielding\helpers.dm" #include "code\modules\shuttle\arrivals.dm" #include "code\modules\shuttle\assault_pod.dm" #include "code\modules\shuttle\computer.dm" @@ -3299,6 +3321,10 @@ #include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" #include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" #include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" +#include "code\modules\smithing\anvil.dm" +#include "code\modules\smithing\finished_items.dm" +#include "code\modules\smithing\furnace.dm" +#include "code\modules\smithing\smithed_items.dm" #include "code\modules\spells\spell.dm" #include "code\modules\spells\spell_types\aimed.dm" #include "code\modules\spells\spell_types\area_teleport.dm" @@ -3374,6 +3400,8 @@ #include "code\modules\surgery\prosthetic_replacement.dm" #include "code\modules\surgery\remove_embedded_object.dm" #include "code\modules\surgery\repair_puncture.dm" +#include "code\modules\surgery\robot_brain_surgery.dm" +#include "code\modules\surgery\robot_healing.dm" #include "code\modules\surgery\surgery.dm" #include "code\modules\surgery\surgery_step.dm" #include "code\modules\surgery\tools.dm" @@ -3415,6 +3443,8 @@ #include "code\modules\surgery\organs\tails.dm" #include "code\modules\surgery\organs\tongue.dm" #include "code\modules\surgery\organs\vocal_cords.dm" +#include "code\modules\tgchat\message.dm" +#include "code\modules\tgchat\to_chat.dm" #include "code\modules\tgs\includes.dm" #include "code\modules\tgui\external.dm" #include "code\modules\tgui\states.dm" @@ -3424,6 +3454,7 @@ #include "code\modules\tgui\states\always.dm" #include "code\modules\tgui\states\conscious.dm" #include "code\modules\tgui\states\contained.dm" +#include "code\modules\tgui\states\debug.dm" #include "code\modules\tgui\states\deep_inventory.dm" #include "code\modules\tgui\states\default.dm" #include "code\modules\tgui\states\hands.dm" @@ -3436,6 +3467,10 @@ #include "code\modules\tgui\states\physical.dm" #include "code\modules\tgui\states\self.dm" #include "code\modules\tgui\states\zlevel.dm" +#include "code\modules\tgui_panel\audio.dm" +#include "code\modules\tgui_panel\external.dm" +#include "code\modules\tgui_panel\telemetry.dm" +#include "code\modules\tgui_panel\tgui_panel.dm" #include "code\modules\tooltip\tooltip.dm" #include "code\modules\unit_tests\_unit_tests.dm" #include "code\modules\uplink\uplink_devices.dm" diff --git a/tgui/.eslintrc.yml b/tgui/.eslintrc.yml index 9fd4db9fd2..e3c3144e5b 100644 --- a/tgui/.eslintrc.yml +++ b/tgui/.eslintrc.yml @@ -114,7 +114,7 @@ rules: ## Require return statements to either always or never specify values # consistent-return: error ## Enforce consistent brace style for all control statements - curly: [error, all] + curly: [error, multi-line] ## Require default cases in switch statements # default-case: error ## Enforce default parameters to be last @@ -374,6 +374,7 @@ rules: ignorePattern: '^(import\s.+\sfrom\s|.*require\()', ignoreUrls: true, ignoreRegExpLiterals: true, + ignoreStrings: true, }] ## Enforce a maximum number of lines per file # max-lines: error diff --git a/tgui/.gitattributes b/tgui/.gitattributes index 9382416e69..d9cdc20fbd 100644 --- a/tgui/.gitattributes +++ b/tgui/.gitattributes @@ -17,3 +17,4 @@ bin/tgui text eol=lf ## Treat bundles as binary and ignore them during conflicts *.bundle.* binary merge=tgui-merge-bundle +*.chunk.* binary merge=tgui-merge-bundle diff --git a/tgui/.gitignore b/tgui/.gitignore index 416ca3768d..4dbb04220b 100644 --- a/tgui/.gitignore +++ b/tgui/.gitignore @@ -1,7 +1,23 @@ +## NPM garbage node_modules *.log package-lock.json +## Yarn stuff +/.pnp.* +/.yarn/* +!/.yarn/releases +!/.yarn/plugins +!/.yarn/sdks +!/.yarn/versions + +## Build artifacts +/public/.tmp/**/* +/public/**/*.hot-update.* +/public/**/*.map + +## Previously ignored locations that are kept to avoid confusing git +## while transitioning to a new project structure. /packages/tgui/public/.tmp/**/* /packages/tgui/public/**/*.hot-update.* /packages/tgui/public/**/*.map diff --git a/tgui/.yarn/releases/yarn-berry.js b/tgui/.yarn/releases/yarn-berry.js new file mode 100644 index 0000000000..5b20eeea99 --- /dev/null +++ b/tgui/.yarn/releases/yarn-berry.js @@ -0,0 +1,86 @@ +#!/usr/bin/env node +module.exports=(()=>{var __webpack_modules__={49775:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-compat"}')},35729:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-dlx"}')},37904:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-essentials"}')},17508:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-file"}')},84779:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-git"}')},88454:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-github"}')},91953:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-http"}')},63756:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-init"}')},23100:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-link"}')},47047:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-node-modules"}')},31880:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-npm-cli"}')},67310:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-npm"}')},74617:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-pack"}')},12437:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-patch"}')},8211:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-pnp"}')},80150:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(84132);const i={optional:!0},o=[["@samverschueren/stream-to-observable@*",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@*",{peerDependenciesMeta:{"supports-color":i}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":i,"postcss-jsx":i,"postcss-less":i,"postcss-markdown":i,"postcss-scss":i}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}]],s=r(78761).brotliDecompressSync(Buffer.from("G8EIABwHuTnyDkxeQiomXep01zJ90cJ3iFSgGcnN+dVTE5YC1CBsZn0bRMFnq2+/bPJOWLRlcCblbWaytN6yn94lDuHQVXEMzob/mhDOafB/uXcOjPnzEX5TF8I/4H+A7n4PCzSY0xTuWjDfxxV8F1neM4x7jymltl+dnYEp13SxCOpkQxUClagaNItavHVUdwD73pT3+c52oJFtOTmagkX/GAaKFyr1bLfAnKMY+OZmY+0YsC6Sci7AJQI2zADQHhdIcc03Dz+GOC05kpj3M0kiNKsdFu1U3ornmwco/hOeYDp3IUlCIQqaE6eg8ho+SQaBwAeE4PktvsKmDJJy8fXAx0jTz4Oj2wWKVgNnuMz/CR5AZNuo2eZk0HwujkkFQBytGPu+p1RoCpRBYVcTf7REjfuVBUIa+MgTpb+ZaKgASLlmw2dFNlIsdYEsSntc1vhEJfQLSkVdBXXK67OUoZjcjVu8DPd8oSwu1vK52tVmsLNeekvJW3ss4Z1+thxuul1A0bzLBLT7MQMQxaGNFQUpvaAsmmOVo1hZFKHViytsKRvkULx6+VpOghLO9W/tHqSTQkqQkLWIKtzBlsPNUviOym6eOz3jjDM43Jfi2pXbla5apaLf+jR3njZPcG1zp9bxgi6Acg2V4n8rU8+1ANM2CXkW5tkqS6QfhnL1z8/s5G8r/f4omOaXOkzbHh9HdPhfxz9Tftr698n6L7UYF/L089Ch+9QgeDSlUXdaBAyLU3G6bkC5ygWmNqZMBYJHB6iFj4uo0iI9yR5r3KUooI0Zg1IkiYsgqxR8jMug6VgwtyIaxNxP30CqZH3zo/g16/wof1VdCLhd+YIOeBHFhA/D2eAvyld7FIAT8EiOA1Msg41mq8UNYCwZt2Pc519uZYhp9gP6kOwhcU+Ydc0CsPIqfy0ZGgbIKNYGZ+RP4ESfRzdDW6vhSsXuu2VB29YEdri/7CbQ7XCsVevHtY2mms7dVEMb6Wa/Ln6ZokATZTjZ/kMMNoWEp0AqBKG0DaCyBxlBsylqymr/6xM+mxOAAVREIXXGnW4IXuQ5oSGimw0C7BKZb3ZDLEWtkWXM5FB7jjp37QA=","base64")).toString(),A=r(78761).brotliDecompressSync(Buffer.from("G1QTIIzURnVBnGa0VPvr81orV8AFIqdU0sqrdcVgCdukgAZwi8a50gLk9+19Z2NcUILjmzXkzt4dzm5a6Yoys+/9qnKiaApXukOiuoyUaMcynG4X7X4vBaIE/PL30gwG6HSGJkLxb9PnLjfMr+748n7sM6C/NycK6ber/bX1reVVxta6W/31tZIhfrS+upoE/TPRHj0S/l0T59gTGdtKOp1OmMOJt9rhfucDdLJ2tgyfnO+u4YMkQAcYq/nebTcDmbXhqhgo6iQA4M3m4xya4Cos3p6klmkmQT+S4DLDZfwfMF+sUCx36KleOtaHLQfEIz0Bmncj/Ngi3lqOl4391EWEfIss6gVp3oDUGwsSZJKeOVONJWZg+Mue3KUMV3aMqYJ+7b2219D+GFDi8EV5y/Y+5J+He0oNjKAgqLsJziEsS9uIaCu3BHBKSXxNKKa2ShbfglcWoiiVT2kfGI7Gw+YJ/Sqy1H6wdFWtyVUQIa82JPwbeV25YKLzc5ZIFM6GCPSA+J9dTvJbs5LuuKnLP3f09gCu2jxqsAv6CA+ZySVaUJr2d3A70BC/uBCKr2OVrWgC3fSwb7NlfkgSEEiejrMGvhya9lMbVI6lMsFKN330A1/FOaefHQdNGLEZ3IwFF87H3xVlM0Xxsmbi/7A60oymRcIe0tH90alG6ez/yA7jwYotxuHWZdR+1HlMcddGHAV6QD/gXYPV0wnNv47I+5FGevzZFMqWSO8GU4nQ3FjsdgdJcD+c1rvudERKuLyd7bxiBpnsMDHsvPP4nXdXkld/gUNks3GAE1Otmb90bavDyiw4Mrx496Iw+jbLTgsCZGZXSZ9vM55C7KGe4HyJAKXEk0iT/Cj/PFwLJBN7pcP7ZFfYtUApGTWKkYhI9IE2zt/5ByH72wdvH+88b71zuv/FMCX3w6x5nzhY44Cg5IYv9LeKwHuHIWgPbfgrAcUxOlKkPRdQOIDF/aBuLPJAXD+TgxCNXx4jQxeR/qlBWVikFPfEI4rXMUc4kZ2w9KbPKYRvFUag0dVlVoyUP4zfidbTXAdZF88jAckl+NHjLFCNdX7EQ1PbLSOl+P+MqgwEOCi6dxgWZ7NCwJBjWKpk1LaxwKrhZ4aEC/0lMPJYe5S8xAakDcmA2kSS86GjEMTrv3VEu0S0YGZcxToMV524G4WAc4CReePePdipvs4aXRL5p+aeN96yfMGjsiTbQNxgbdRKc+keQ+NxYIEm1mBtEO29WrcbrqNbQRMR66KpGG4aG0NtmRyZ2JhUvu0paCklRlID8PT3gSiwZrqr4XZXoBBzBMrveWCuOg7iTgGDXDdbGi8XHkQf5KXDGFUxWueu5wkSa6gMWY1599g2piQjwBKIAPt4N5cOZdFBidz2feGwEAy1j1UydGxDSCCUsh314cUIIRV/dWCheceubL2gU8CibewmP7UxmN5kN4I7zfQhPxkP0NCcei8GXQpw4c3krEzW7PR2hgi/hqqqR58UJ/ZVfWxfcH5ZKMo4itkmPK0FCGxzzIRP20lK/gz28Y03sY233KvSVWUKl9rcbX6MbHjpUG8MvNlw72p6FwTejv92zgpnCxVJnIHHZhCBxNcHF5RTveRp513hUtTHHq4BIndlytZT5xoTSYfHKqKNr4o9kcGINIz6tZSKRdtbON3Ydr9cgqxHIeisMNIsvPg/IFMZuBbSqqDLeSO5dak1cGr76FtH2PC7hs0S0Oq3GsmF1Ga4YABAMGcdPAWzTk26B7cKV91I2b0V/GYvnsEQ1YGntRqi5EQqTlgZszbV/32GuZtUF49JOA/r4jAdwUOsbPo6mNoBlJPYjM5axrZaWQf33bFsLWqiyvvDOM4x0Ng802T7cuP2a3q98GWq6yiq6q3M77hcZlOUnmryctRYmI4Hb2F5XixFohkBmySCjU+M7/WQVE5YAtnlxiUJDhFN0y1tNeMWY9E0MfZi2rQ4eC72WXjsAA==","base64")).toString(),a=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString(),c=new Map([[n.structUtils.makeIdent(null,"fsevents").identHash,s],[n.structUtils.makeIdent(null,"resolve").identHash,A],[n.structUtils.makeIdent(null,"typescript").identHash,a]]),u={hooks:{registerPackageExtensions:async(e,t)=>{for(const[e,r]of o)t(n.structUtils.parseDescriptor(e,!0),r)},getBuiltinPatch:async(e,t)=>{if(!t.startsWith("compat/"))return;const r=n.structUtils.parseIdent(t.slice("compat/".length)),i=c.get(r.identHash);return void 0!==i?i:null},reduceDependency:async(e,t,r,i)=>void 0===c.get(e.identHash)?e:n.structUtils.makeDescriptor(e,n.structUtils.makeRange({protocol:"patch:",source:n.structUtils.stringifyDescriptor(e),selector:`builtin`,params:null}))}}},10420:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>g});var n=r(36370),i=r(95397),o=r(84132),s=r(17278);class A extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){const e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");const t=o.structUtils.parseIdent(this.command),r=o.structUtils.makeIdent(t.scope,"create-"+t.name);return this.cli.run(["dlx",...e,o.structUtils.stringifyIdent(r),...this.args])}}(0,n.gn)([s.Command.String("-p,--package")],A.prototype,"pkg",void 0),(0,n.gn)([s.Command.Boolean("-q,--quiet")],A.prototype,"quiet",void 0),(0,n.gn)([s.Command.String()],A.prototype,"command",void 0),(0,n.gn)([s.Command.Proxy()],A.prototype,"args",void 0),(0,n.gn)([s.Command.Path("create")],A.prototype,"execute",null);var a=r(27122),c=r(40376),u=r(56537),l=r(46009);class h extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){return await u.xfs.mktempPromise(async e=>{const t=l.y1.join(e,"dlx-"+process.pid);await u.xfs.mkdirPromise(t),await u.xfs.writeFilePromise(l.y1.join(t,(0,l.Zu)("package.json")),"{}\n"),await u.xfs.writeFilePromise(l.y1.join(t,(0,l.Zu)("yarn.lock")),"");const r=l.y1.join(t,(0,l.Zu)(".yarnrc.yml")),n=await a.VK.findProjectCwd(this.context.cwd,l.QS.lockfile),s=null!==n?l.y1.join(n,(0,l.Zu)(".yarnrc.yml")):null;null!==s&&u.xfs.existsSync(s)?(await u.xfs.copyFilePromise(s,r),await a.VK.updateConfiguration(t,e=>void 0===e.plugins?{enableGlobalCache:!0}:{enableGlobalCache:!0,plugins:e.plugins.map(e=>{const t="string"==typeof e?e:e.path,r=l.cS.isAbsolute(t)?t:l.cS.resolve(l.cS.fromPortablePath(n),t);return"string"==typeof e?r:{path:r,spec:e.spec}})})):await u.xfs.writeFilePromise(r,"enableGlobalCache: true\n");const A=void 0!==this.pkg?[this.pkg]:[this.command],h=o.structUtils.parseDescriptor(this.command).name,g=await this.cli.run(["add","--",...A],{cwd:t,quiet:this.quiet});if(0!==g)return g;this.quiet||this.context.stdout.write("\n");const f=await a.VK.find(t,this.context.plugins),{project:p,workspace:d}=await c.I.find(f,t);if(null===d)throw new i.WorkspaceRequiredError(p.cwd,t);return await p.restoreInstallState(),await o.scriptUtils.executeWorkspaceAccessibleBinary(d,h,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}}h.usage=s.Command.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Also by default Yarn will print the full install logs when installing the given package. This behavior can be disabled by using the `-q,--quiet` flag which will instruct Yarn to only report critical errors.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"]]}),(0,n.gn)([s.Command.String("-p,--package")],h.prototype,"pkg",void 0),(0,n.gn)([s.Command.Boolean("-q,--quiet")],h.prototype,"quiet",void 0),(0,n.gn)([s.Command.String()],h.prototype,"command",void 0),(0,n.gn)([s.Command.Proxy()],h.prototype,"args",void 0),(0,n.gn)([s.Command.Path("dlx")],h.prototype,"execute",null);const g={commands:[A,h]}},72926:(e,t,r)=>{"use strict";r.r(t),r.d(t,{suggestUtils:()=>n,default:()=>Ke});var n={};r.r(n),r.d(n,{Modifier:()=>o,Strategy:()=>s,Target:()=>i,applyModifier:()=>b,extractDescriptorFromPath:()=>k,extractRangeModifier:()=>D,fetchDescriptorFrom:()=>F,findProjectDescriptors:()=>S,getModifier:()=>Q,getSuggestedDescriptors:()=>x});var i,o,s,A=r(27122),a=r(36370),c=r(95397),u=r(28148),l=r(62152),h=r(92659),g=r(40376),f=r(15815),p=r(84132),d=r(17278),C=r(9494),E=r.n(C),I=r(33720),m=r(46611),y=r(46009),w=r(53887),B=r.n(w);function Q(e,t){return e.exact?o.EXACT:e.caret?o.CARET:e.tilde?o.TILDE:t.configuration.get("defaultSemverRangePrefix")}!function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"}(i||(i={})),function(e){e.CARET="^",e.TILDE="~",e.EXACT=""}(o||(o={})),function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"}(s||(s={}));const v=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function D(e,{project:t}){const r=e.match(v);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function b(e,t){let{protocol:r,source:n,params:i,selector:o}=p.structUtils.parseRange(e.range);return B().valid(o)&&(o=`${t}${e.range}`),p.structUtils.makeDescriptor(e,p.structUtils.makeRange({protocol:r,source:n,params:i,selector:o}))}async function S(e,{project:t,target:r}){const n=new Map,o=e=>{let t=n.get(e.descriptorHash);return t||n.set(e.descriptorHash,t={descriptor:e,locators:[]}),t};for(const n of t.workspaces)if(r===i.PEER){const t=n.manifest.peerDependencies.get(e.identHash);void 0!==t&&o(t).locators.push(n.locator)}else{const t=n.manifest.dependencies.get(e.identHash),s=n.manifest.devDependencies.get(e.identHash);r===i.DEVELOPMENT?void 0!==s?o(s).locators.push(n.locator):void 0!==t&&o(t).locators.push(n.locator):void 0!==t?o(t).locators.push(n.locator):void 0!==s&&o(s).locators.push(n.locator)}return n}async function k(e,{cache:t,cwd:r,workspace:n}){y.y1.isAbsolute(e)||(e=y.y1.resolve(r,e));const i=n.project,o=await F(p.structUtils.makeIdent(null,"archive"),e,{project:n.project,cache:t});if(!o)throw new Error("Assertion failed: The descriptor should have been found");const s=new I.$,A=i.configuration.makeResolver(),a=i.configuration.makeFetcher(),c={checksums:i.storedChecksums,project:i,cache:t,fetcher:a,report:s,resolver:A},u=A.bindDescriptor(o,n.anchoredLocator,c),l=p.structUtils.convertDescriptorToLocator(u),h=await a.fetch(l,c),g=await m.G.find(h.prefixPath,{baseFs:h.packageFs});if(!g.name)throw new Error("Target path doesn't have a name");return p.structUtils.makeDescriptor(g.name,e)}async function x(e,{project:t,workspace:r,cache:n,target:o,modifier:A,strategies:a,maxResults:c=1/0}){if(!(c>=0))throw new Error(`Invalid maxResults (${c})`);if("unknown"!==e.range)return[{descriptor:e,reason:"Unambiguous explicit request"}];const u=null!=r&&r.manifest[o].get(e.identHash)||null,l=[];for(const h of a){if(l.length>=c)break;switch(h){case s.KEEP:if(u){const e=`Keep ${p.structUtils.prettyDescriptor(t.configuration,u)} (no changes)`;l.push({descriptor:u,reason:e})}break;case s.REUSE:for(const{descriptor:n,locators:i}of(await S(e,{project:t,target:o})).values()){if(1===i.length&&i[0].locatorHash===r.anchoredLocator.locatorHash&&a.includes(s.KEEP))continue;let e=`Reuse ${p.structUtils.prettyDescriptor(t.configuration,n)} (originally used by ${p.structUtils.prettyLocator(t.configuration,i[0])}`;e+=i.length>1?` and ${i.length-1} other${i.length>2?"s":""})`:")",l.push({descriptor:n,reason:e})}break;case s.CACHE:for(const r of t.storedDescriptors.values())if(r.identHash===e.identHash){const e=`Reuse ${p.structUtils.prettyDescriptor(t.configuration,r)} (already used somewhere in the lockfile)`;l.push({descriptor:r,reason:e})}break;case s.PROJECT:{if(null!==r.manifest.name&&e.identHash===r.manifest.name.identHash)continue;const n=t.tryWorkspaceByIdent(e);if(null===n)continue;const i=`Attach ${p.structUtils.prettyWorkspace(t.configuration,n)} (local workspace at ${n.cwd})`;l.push({descriptor:n.anchoredDescriptor,reason:i})}break;case s.LATEST:if("unknown"!==e.range){const r=`Use ${p.structUtils.prettyRange(t.configuration,e.range)} (explicit range requested)`;l.push({descriptor:e,reason:r})}else if(o===i.PEER){const t="Use * (catch-all peer dependency pattern)";l.push({descriptor:p.structUtils.makeDescriptor(e,"*"),reason:t})}else if(t.configuration.get("enableNetwork")){let r;try{r=await F(e,"latest",{project:t,cache:n,preserveModifier:!1})}catch(e){}if(r){r=b(r,A);const e=`Use ${p.structUtils.prettyDescriptor(t.configuration,r)} (resolved from latest)`;l.push({descriptor:r,reason:e})}}else{const e="Resolve from latest "+t.configuration.format("(unavailable because enableNetwork is toggled off)","grey");l.push({descriptor:null,reason:e})}}}return l.slice(0,c)}async function F(e,t,{project:r,cache:n,preserveModifier:i=!0}){const o=p.structUtils.makeDescriptor(e,t),s=new I.$,A=r.configuration.makeFetcher(),a=r.configuration.makeResolver(),c={checksums:r.storedChecksums,project:r,cache:n,fetcher:A,report:s,resolver:a};let u;try{u=await a.getCandidates(o,new Map,c)}catch(e){return null}if(0===u.length)return null;const l=u[0];let{protocol:h,source:g,params:f,selector:d}=p.structUtils.parseRange(p.structUtils.convertToManifestRange(l.reference));if(h===r.configuration.get("defaultProtocol")&&(h=null),B().valid(d)&&!1!==i){d=D("string"==typeof i?i:o.range,{project:r})+d}return p.structUtils.makeDescriptor(l,p.structUtils.makeRange({protocol:h,source:g,params:f,selector:d}))}class M extends c.BaseCommand{constructor(){super(...arguments),this.packages=[],this.json=!1,this.exact=!1,this.tilde=!1,this.caret=!1,this.dev=!1,this.peer=!1,this.optional=!1,this.preferDev=!1,this.interactive=!1,this.cached=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=E().createPromptModule({input:this.context.stdin,output:this.context.stdout}),a=Q(this,t),C=[...this.interactive?[s.REUSE]:[],s.PROJECT,...this.cached?[s.CACHE]:[],s.LATEST],I=this.interactive?1/0:1,m=await Promise.all(this.packages.map(async e=>{const o=e.match(/^\.{0,2}\//)?await k(e,{cache:n,cwd:this.context.cwd,workspace:r}):p.structUtils.parseDescriptor(e),s=function(e,t,{dev:r,peer:n,preferDev:o,optional:s}){const A=e.manifest[i.REGULAR].has(t.identHash),a=e.manifest[i.DEVELOPMENT].has(t.identHash),c=e.manifest[i.PEER].has(t.identHash);if((r||n)&&A)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&c)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!n&&c)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||o)&&s)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);return n?i.PEER:r||o?i.DEVELOPMENT:A?i.REGULAR:a?i.DEVELOPMENT:i.REGULAR}(r,o,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return[o,await x(o,{project:t,workspace:r,cache:n,target:s,modifier:a,strategies:C,maxResults:I}),s]})),y=await l.h.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async r=>{for(const[n,i]of m){0===i.filter(e=>null!==e.descriptor).length&&(t.configuration.get("enableNetwork")?r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range"):r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range (note: network resolution has been disabled)"))}});if(y.hasErrors())return y.exitCode();let w=!1;const B=[],v=[];for(const[,e,n]of m){let i;const s=e.filter(e=>null!==e.descriptor),A=s[0].descriptor,a=s.every(e=>p.structUtils.areDescriptorsEqual(e.descriptor,A));1===s.length||a?i=A:(w=!0,({answer:i}=await o({type:"list",name:"answer",message:"Which range do you want to use?",choices:e.map(({descriptor:e,reason:r})=>e?{name:r,value:e,short:p.structUtils.prettyDescriptor(t.configuration,e)}:{name:r,disabled:()=>!0})})));const c=r.manifest[n].get(i.identHash);void 0!==c&&c.descriptorHash===i.descriptorHash||(r.manifest[n].set(i.identHash,i),this.optional&&("dependencies"===n?r.manifest.ensureDependencyMeta({...i,range:"unknown"}).optional=!0:"peerDependencies"===n&&(r.manifest.ensurePeerDependencyMeta({...i,range:"unknown"}).optional=!0)),void 0===c?B.push([r,n,i,C]):v.push([r,n,c,i]))}await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyAddition,B),await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,v),w&&this.context.stdout.write("\n");return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}M.usage=d.Command.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `savePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a tag range (such as `latest` or `rc`), Yarn will resolve this tag to a semver version and use that in the resulting package.json entry (meaning that `yarn add foo@latest` will have exactly the same effect as `yarn add foo`).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: .\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]}),(0,a.gn)([d.Command.Rest()],M.prototype,"packages",void 0),(0,a.gn)([d.Command.Boolean("--json")],M.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact")],M.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde")],M.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret")],M.prototype,"caret",void 0),(0,a.gn)([d.Command.Boolean("-D,--dev")],M.prototype,"dev",void 0),(0,a.gn)([d.Command.Boolean("-P,--peer")],M.prototype,"peer",void 0),(0,a.gn)([d.Command.Boolean("-O,--optional")],M.prototype,"optional",void 0),(0,a.gn)([d.Command.Boolean("--prefer-dev")],M.prototype,"preferDev",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive")],M.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("--cached")],M.prototype,"cached",void 0),(0,a.gn)([d.Command.Path("add")],M.prototype,"execute",null);class N extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,locator:r}=await g.I.find(e,this.context.cwd);if(await t.restoreInstallState(),this.name){const n=(await p.scriptUtils.getPackageAccessibleBinaries(r,{project:t})).get(this.name);if(!n)throw new d.UsageError(`Couldn't find a binary named "${this.name}" for package "${p.structUtils.prettyLocator(e,r)}"`);const[,i]=n;return this.context.stdout.write(i+"\n"),0}return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{const i=await p.scriptUtils.getPackageAccessibleBinaries(r,{project:t}),o=Array.from(i.keys()).reduce((e,t)=>Math.max(e,t.length),0);for(const[e,[t,r]]of i)n.reportJson({name:e,source:p.structUtils.stringifyIdent(t),path:r});if(this.verbose)for(const[t,[r]]of i)n.reportInfo(null,`${t.padEnd(o," ")} ${p.structUtils.prettyLocator(e,r)}`);else for(const e of i.keys())n.reportInfo(null,e)})).exitCode()}}N.usage=d.Command.Usage({description:"get the path to a binary script",details:"\n When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the `-v,--verbose` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.\n\n When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n ",examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]}),(0,a.gn)([d.Command.String({required:!1})],N.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose")],N.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json")],N.prototype,"json",void 0),(0,a.gn)([d.Command.Path("bin")],N.prototype,"execute",null);var R=r(56537);class K extends c.BaseCommand{constructor(){super(...arguments),this.mirror=!1,this.all=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=await u.C.find(e);return(await f.P.start({configuration:e,stdout:this.context.stdout},async()=>{const e=(this.all||this.mirror)&&null!==t.mirrorCwd,r=!this.mirror;e&&await R.xfs.removePromise(t.mirrorCwd),r&&await R.xfs.removePromise(t.cwd)})).exitCode()}}K.usage=d.Command.Usage({description:"remove the shared cache files",details:"\n This command will remove all the files from the cache.\n\n By default only the local cache will be cleaned. This behavior can be disabled with the `--mirror`, which will lead to the removal of the global cache files instead, or `--all` (which will remove both the local and global caches for the current project).\n ",examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]}),(0,a.gn)([d.Command.Boolean("--mirror")],K.prototype,"mirror",void 0),(0,a.gn)([d.Command.Boolean("--all")],K.prototype,"all",void 0),(0,a.gn)([d.Command.Path("cache","clean")],K.prototype,"execute",null);var L=r(44674),T=r.n(L),P=r(31669);class U extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.unsafe=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=_(e.getSpecial(t,{hideSecrets:!this.unsafe,getNativePaths:!0})),i=r?T()(n,r):n,o=await f.P.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async e=>{e.reportJson(i)});if(!this.json){if("string"==typeof i)return this.context.stdout.write(i+"\n"),o.exitCode();P.inspect.styles.name="cyan",this.context.stdout.write((0,P.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n")}return o.exitCode()}}function _(e){if(e instanceof Map&&(e=Object.fromEntries(e)),"object"==typeof e&&null!==e)for(const t of Object.keys(e)){const r=e[t];"object"==typeof r&&null!==r&&(e[t]=_(r))}return e}U.usage=d.Command.Usage({description:"read a configuration settings",details:"\n This command will print a configuration setting.\n\n Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the `--no-redacted` to get the untransformed value.\n ",examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration","yarn config get 'npmScopes[\"my-company\"].npmRegistryServer'"],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]}),(0,a.gn)([d.Command.String()],U.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("--json")],U.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--no-redacted")],U.prototype,"unsafe",void 0),(0,a.gn)([d.Command.Path("config","get")],U.prototype,"execute",null);var O=r(82558),j=r.n(O),Y=r(81534),G=r.n(Y);class J extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);if(!e.projectCwd)throw new d.UsageError("This command must be run from within a project folder");const t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=this.json?JSON.parse(this.value):this.value;await A.VK.updateConfiguration(e.projectCwd,e=>{if(r){const t=j()(e);return G()(t,this.name,n),t}return{...e,[t]:n}});const i=_((await A.VK.find(this.context.cwd,this.context.plugins)).getSpecial(t,{hideSecrets:!0,getNativePaths:!0})),o=r?T()(i,r):i;return(await f.P.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async e=>{P.inspect.styles.name="cyan",e.reportInfo(h.b.UNNAMED,`Successfully set ${this.name} to ${(0,P.inspect)(o,{depth:1/0,colors:!0,compact:!1})}`)})).exitCode()}}J.usage=d.Command.Usage({description:"change a configuration settings",details:"\n This command will set a configuration setting.\n\n When used without the `--json` flag, it can only set a simple configuration setting (a string, a number, or a boolean).\n\n When used with the `--json` flag, it can set both simple and complex configuration settings, including Arrays and Objects.\n ",examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",'yarn config set unsafeHttpWhitelist --json \'["*.example.com", "example.com"]\''],["Set a complex configuration setting (an Object) using the `--json` flag",'yarn config set packageExtensions --json \'{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }\'']]}),(0,a.gn)([d.Command.String()],J.prototype,"name",void 0),(0,a.gn)([d.Command.String()],J.prototype,"value",void 0),(0,a.gn)([d.Command.Boolean("--json")],J.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config","set")],J.prototype,"execute",null);class H extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.why=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins,{strict:!1});return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{if(e.invalid.size>0&&!this.json){for(const[r,n]of e.invalid)t.reportError(h.b.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${r}" in ${n}`);t.reportSeparator()}if(this.json){const r=p.miscUtils.sortMap(e.settings.keys(),e=>e);for(const n of r){const r=e.settings.get(n),i=e.getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),o=e.sources.get(n);this.verbose?t.reportJson({key:n,effective:i,source:o}):t.reportJson({key:n,effective:i,source:o,...r})}}else{const r=p.miscUtils.sortMap(e.settings.keys(),e=>e),n=r.reduce((e,t)=>Math.max(e,t.length),0),i={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){const o=r.map(t=>{const r=e.settings.get(t);if(!r)throw new Error(`Assertion failed: This settings ("${t}") should have been registered`);return[t,this.why?e.sources.get(t)||"":r.description]}),s=o.reduce((e,[,t])=>Math.max(e,t.length),0);for(const[r,A]of o)t.reportInfo(null,`${r.padEnd(n," ")} ${A.padEnd(s," ")} ${(0,P.inspect)(e.getSpecial(r,{hideSecrets:!0,getNativePaths:!0}),i)}`)}else for(const o of r)t.reportInfo(null,`${o.padEnd(n," ")} ${(0,P.inspect)(e.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),i)}`)}})).exitCode()}}H.usage=d.Command.Usage({description:"display the current configuration",details:"\n This command prints the current active configuration settings.\n\n When used together with the `-v,--verbose` option, the output will contain the settings description on top of the regular key/value information.\n\n When used together with the `--why` flag, the output will also contain the reason why a settings is set a particular way.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n Note that the paths settings will be normalized - especially on Windows. It means that paths such as `C:\\project` will be transparently shown as `/mnt/c/project`.\n ",examples:[["Print the active configuration settings","$0 config"]]}),(0,a.gn)([d.Command.Boolean("-v,--verbose")],H.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--why")],H.prototype,"why",void 0),(0,a.gn)([d.Command.Boolean("--json")],H.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config")],H.prototype,"execute",null);class q extends d.Command{async execute(){const{plugins:e}=await A.VK.find(this.context.cwd,this.context.plugins),t=[];for(const r of e){const{commands:e}=r[1];if(e){const n=d.Cli.from(e).definitions();t.push([r[0],n])}}const n=this.cli.definitions(),i=r(60306)["@yarnpkg/builder"].bundles.standard;for(const e of t){const t=e[1];for(const r of t)n.find(e=>{return t=e.path,n=r.path,t.split(" ").slice(1).join()===n.split(" ").slice(1).join();var t,n}).plugin={name:e[0],isDefault:i.includes(e[0])}}this.context.stdout.write(JSON.stringify({commands:n},null,2)+"\n")}}(0,a.gn)([d.Command.Path("--clipanion=definitions")],q.prototype,"execute",null);class z extends d.Command{async execute(){this.context.stdout.write(this.cli.usage(null))}}(0,a.gn)([d.Command.Path("help"),d.Command.Path("--help"),d.Command.Path("-h")],z.prototype,"execute",null);class W extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!p.structUtils.tryParseIdent(this.leadingArgument)){const e=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}return await this.cli.run(["run",this.leadingArgument,...this.args])}}(0,a.gn)([d.Command.String()],W.prototype,"leadingArgument",void 0),(0,a.gn)([d.Command.Proxy()],W.prototype,"args",void 0);var V=r(59355);class X extends d.Command{async execute(){this.context.stdout.write((V.o||"")+"\n")}}(0,a.gn)([d.Command.Path("-v"),d.Command.Path("--version")],X.prototype,"execute",null);class Z extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return await R.xfs.mktempPromise(async e=>{const{code:r}=await p.execUtils.pipevp(this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await p.scriptUtils.makeScriptEnv({project:t,binFolder:e})});return r})}}Z.usage=d.Command.Usage({description:"execute a shell command",details:"\n This command simply executes a shell binary within the context of the root directory of the active workspace.\n\n It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n ",examples:[["Execute a shell command","$0 exec echo Hello World"]]}),(0,a.gn)([d.Command.String()],Z.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Z.prototype,"args",void 0),(0,a.gn)([d.Command.Path("exec")],Z.prototype,"execute",null);var $=r(35691),ee=r(55125);class te extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.checkCache=!1,this.silent=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);void 0!==this.inlineBuilds&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});const t=!!process.env.NOW_BUILDER,r=!!process.env.NETLIFY,n=async(t,{error:r})=>{const n=await f.P.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async e=>{r?e.reportError(h.b.DEPRECATED_CLI_SETTINGS,t):e.reportWarning(h.b.DEPRECATED_CLI_SETTINGS,t)});return n.hasErrors()?n.exitCode():null};if(void 0!==this.ignoreEngines){const e=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!t});if(null!==e)return e}if(void 0!==this.registry){const e=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(null!==e)return e}if(void 0!==this.preferOffline){const e=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!t});if(null!==e)return e}if(void 0!==this.frozenLockfile){const e=await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!0});if(null!==e)return e}if(void 0!==this.cacheFolder){const e=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!r});if(null!==e)return e}const i=void 0===this.immutable&&void 0===this.frozenLockfile?e.get("enableImmutableInstalls"):this.immutable||this.frozenLockfile;if(null!==e.projectCwd){const t=await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async t=>{await async function(e,t){if(!e.projectCwd)return!1;const r=y.y1.join(e.projectCwd,e.get("lockfileFilename"));if(!await R.xfs.existsPromise(r))return!1;const n=await R.xfs.readFilePromise(r,"utf8");if(!n.includes("<<<<<<<"))return!1;if(t)throw new $.lk(h.b.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");const[i,o]=function(e){const t=[[],[]],r=e.split(/\r?\n/g);let n=!1;for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith("<<<<<<<")){for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if("======="===e){n=!1;break}n||e.startsWith("|||||||")?n=!0:t[0].push(e)}for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith(">>>>>>>"))break;t[1].push(e)}}else t[0].push(e),t[1].push(e)}return[t[0].join("\n"),t[1].join("\n")]}(n);let s,A;try{s=(0,ee.parseSyml)(i),A=(0,ee.parseSyml)(o)}catch(e){throw new $.lk(h.b.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}const a={...s,...A};for(const[e,t]of Object.entries(a))"string"==typeof t&&delete a[e];return await R.xfs.changeFilePromise(r,(0,ee.stringifySyml)(a),{automaticNewlines:!0}),!0}(e,i)&&t.reportInfo(h.b.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts 👍")});if(t.hasErrors())return t.exitCode()}const{project:o,workspace:s}=await g.I.find(e,this.context.cwd),a=await u.C.find(e,{immutable:this.immutableCache,check:this.checkCache});if(!s)throw new c.WorkspaceRequiredError(o.cwd,this.context.cwd);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async e=>{await o.install({cache:a,report:e,immutable:i})})).exitCode()}}te.usage=d.Command.Usage({description:"install the project dependencies",details:"\n This command setup your project if needed. The installation is splitted in four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where are stored the cache files).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked from writing them on the disk in some form (for example by generating the .pnp.js file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.js file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set, Yarn will abort with an error exit code if anything in the install artifacts (`yarn.lock`, `.pnp.js`, ...) was to be modified. For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]}),(0,a.gn)([d.Command.Boolean("--json")],te.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--immutable")],te.prototype,"immutable",void 0),(0,a.gn)([d.Command.Boolean("--immutable-cache")],te.prototype,"immutableCache",void 0),(0,a.gn)([d.Command.Boolean("--check-cache")],te.prototype,"checkCache",void 0),(0,a.gn)([d.Command.Boolean("--frozen-lockfile",{hidden:!0})],te.prototype,"frozenLockfile",void 0),(0,a.gn)([d.Command.Boolean("--prefer-offline",{hidden:!0})],te.prototype,"preferOffline",void 0),(0,a.gn)([d.Command.Boolean("--ignore-engines",{hidden:!0})],te.prototype,"ignoreEngines",void 0),(0,a.gn)([d.Command.String("--registry",{hidden:!0})],te.prototype,"registry",void 0),(0,a.gn)([d.Command.Boolean("--inline-builds")],te.prototype,"inlineBuilds",void 0),(0,a.gn)([d.Command.String("--cache-folder",{hidden:!0})],te.prototype,"cacheFolder",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],te.prototype,"silent",void 0),(0,a.gn)([d.Command.Path(),d.Command.Path("install")],te.prototype,"execute",null);class re extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.private=!1,this.relative=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.destination)),o=await A.VK.find(i,this.context.plugins),{project:s,workspace:a}=await g.I.find(o,i);if(!a)throw new c.WorkspaceRequiredError(s.cwd,i);const l=t.topLevelWorkspace,h=[];if(this.all){for(const e of s.workspaces)!e.manifest.name||e.manifest.private&&!this.private||h.push(e);if(0===h.length)throw new d.UsageError("No workspace found to be linked in the target project")}else{if(!a.manifest.name)throw new d.UsageError("The target workspace doesn't have a name and thus cannot be linked");if(a.manifest.private&&!this.private)throw new d.UsageError("The target workspace is marked private - use the --private flag to link it anyway");h.push(a)}for(const e of h){const r=p.structUtils.stringifyIdent(e.locator),n=this.relative?y.y1.relative(t.cwd,e.cwd):e.cwd;l.manifest.resolutions.push({pattern:{descriptor:{fullName:r}},reference:"portal:"+n})}return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}re.usage=d.Command.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n\n If the `--all` option is set, all workspaces belonging to the target project will be linked to the current one.\n\n There is no `yarn unlink` command. To unlink the workspaces from the current project one must revert the changes made to the `resolutions` field.\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]}),(0,a.gn)([d.Command.String()],re.prototype,"destination",void 0),(0,a.gn)([d.Command.Boolean("--all")],re.prototype,"all",void 0),(0,a.gn)([d.Command.Boolean("-p,--private")],re.prototype,"private",void 0),(0,a.gn)([d.Command.Boolean("-r,--relative")],re.prototype,"relative",void 0),(0,a.gn)([d.Command.Path("link")],re.prototype,"execute",null);class ne extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){return this.cli.run(["exec","node",...this.args])}}ne.usage=d.Command.Usage({description:"run node with the hook already setup",details:"\n This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n\n The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.\n ",examples:[["Run a Node script","$0 node ./my-script.js"]]}),(0,a.gn)([d.Command.Proxy()],ne.prototype,"args",void 0),(0,a.gn)([d.Command.Path("node")],ne.prototype,"execute",null);var ie=r(12087),oe=r(85622),se=r.n(oe);class Ae extends c.BaseCommand{constructor(){super(...arguments),this.onlyIfNeeded=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let t;if("latest"===this.version||"berry"===this.version)t="https://github.com/yarnpkg/berry/raw/master/packages/yarnpkg-cli/bin/yarn.js";else if("classic"===this.version)t="https://nightly.yarnpkg.com/latest.js";else if(p.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))t=`https://github.com/yarnpkg/berry/raw/%40yarnpkg/cli/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else{if(!p.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))throw B().validRange(this.version)?new d.UsageError("Support for ranges got removed - please use the exact version you want to install, or 'latest' to get the latest build available"):new d.UsageError(`Invalid version descriptor "${this.version}"`);t=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`}return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{r.reportInfo(h.b.UNNAMED,"Downloading "+e.format(t,"green"));const n=await p.httpUtils.get(t,{configuration:e});await ae(e,null,n,{report:r})})).exitCode()}}async function ae(e,t,r,{report:n}){const i=e.projectCwd?e.projectCwd:e.startingCwd;null===t&&await R.xfs.mktempPromise(async e=>{const n=y.y1.join(e,"yarn.cjs");await R.xfs.writeFilePromise(n,r);const{stdout:o}=await p.execUtils.execvp(process.execPath,[y.cS.fromPortablePath(n),"--version"],{cwd:i,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(t=o.trim(),!B().valid(t))throw new Error("Invalid semver version")});const o=y.y1.resolve(i,".yarn/releases"),s=y.y1.resolve(o,`yarn-${t}.cjs`),a=y.y1.relative(e.startingCwd,s),c=y.y1.relative(i,s),u=e.get("yarnPath"),l=null===u||u.startsWith(o+"/");n.reportInfo(h.b.UNNAMED,"Saving the new release in "+e.format(a,"magenta")),await R.xfs.removePromise(y.y1.dirname(s)),await R.xfs.mkdirpPromise(y.y1.dirname(s)),await R.xfs.writeFilePromise(s,r),await R.xfs.chmodPromise(s,493),l&&await A.VK.updateConfiguration(i,{yarnPath:c})}Ae.usage=d.Command.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"]]}),(0,a.gn)([d.Command.Boolean("--only-if-needed")],Ae.prototype,"onlyIfNeeded",void 0),(0,a.gn)([d.Command.String()],Ae.prototype,"version",void 0),(0,a.gn)([d.Command.Path("policies","set-version"),d.Command.Path("set","version")],Ae.prototype,"execute",null);const ce=/^[0-9]+$/;function ue(e){return ce.test(e)?`pull/${e}/head`:e}class le extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.plugins=[],this.noMinify=!1,this.force=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.installPath)):y.y1.resolve(y.cS.toPortablePath((0,ie.tmpdir)()),"yarnpkg-sources",p.hashUtils.makeHash(this.repository).slice(0,6));return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{await ge(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(h.b.UNNAMED,"Building a fresh bundle"),r.reportSeparator(),await he((({plugins:e,noMinify:t},r)=>[["yarn","build:cli",...(new Array).concat(...e.map(e=>["--plugin",se().resolve(r,e)])),...t?["--no-minify"]:[],"|"]])(this,t),{configuration:e,context:this.context,target:t}),r.reportSeparator();const n=y.y1.resolve(t,"packages/yarnpkg-cli/bundles/yarn.js"),i=await R.xfs.readFilePromise(n);await ae(e,"sources",i,{report:r})})).exitCode()}}async function he(e,{configuration:t,context:r,target:n}){for(const[i,...o]of e){const e="|"===o[o.length-1];if(e&&o.pop(),e)await p.execUtils.pipevp(i,o,{cwd:n,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(t.format(" $ "+[i,...o].join(" "),"grey")+"\n");try{await p.execUtils.execvp(i,o,{cwd:n,strict:!0})}catch(e){throw r.stdout.write(e.stdout||e.stack),e}}}}async function ge(e,{configuration:t,report:r,target:n}){let i=!1;if(!e.force&&R.xfs.existsSync(y.y1.join(n,".git"))){r.reportInfo(h.b.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await he((({branch:e})=>[["git","fetch","origin",ue(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]])(e),{configuration:t,context:e.context,target:n}),i=!0}catch(e){r.reportSeparator(),r.reportWarning(h.b.UNNAMED,"Repository update failed; we'll try to regenerate it")}}i||(r.reportInfo(h.b.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await R.xfs.removePromise(n),await R.xfs.mkdirpPromise(n),await he((({repository:e,branch:t},r)=>[["git","init",y.cS.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin",ue(t)],["git","reset","--hard","FETCH_HEAD"]])(e,n),{configuration:t,context:e.context,target:n}))}le.usage=d.Command.Usage({description:"build Yarn from master",details:"\n This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.\n ",examples:[["Build Yarn from master","$0 set version from sources"]]}),(0,a.gn)([d.Command.String("--path")],le.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository")],le.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch")],le.prototype,"branch",void 0),(0,a.gn)([d.Command.Array("--plugin")],le.prototype,"plugins",void 0),(0,a.gn)([d.Command.Boolean("--no-minify")],le.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force")],le.prototype,"force",void 0),(0,a.gn)([d.Command.Path("set","version","from","sources")],le.prototype,"execute",null);var fe=r(92184);async function pe(e){const t=await p.httpUtils.get("https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml",{configuration:e});return(0,ee.parseSyml)(t.toString())}class de extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{const r=await pe(e);for(const[e,{experimental:n,...i}]of Object.entries(r)){let r=e;n&&(r+=" [experimental]"),t.reportJson({name:e,experimental:n,...i}),t.reportInfo(null,r)}})).exitCode()}}de.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]}),(0,a.gn)([d.Command.Boolean("--json")],de.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","list")],de.prototype,"execute",null);class Ce extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,stdout:this.context.stdout},async t=>{const{project:r}=await g.I.find(e,this.context.cwd);let n,i;if(this.name.match(/^\.{0,2}[\\/]/)||y.cS.isAbsolute(this.name)){const o=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.name));t.reportInfo(h.b.UNNAMED,"Reading "+e.format(o,"green")),n=y.y1.relative(r.cwd,o),i=await R.xfs.readFilePromise(o)}else{let r;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch(e){throw new $.lk(h.b.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}n=this.name,r=this.name}else{const t=p.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),i=p.structUtils.stringifyIdent(t),o=await pe(e);if(!Object.prototype.hasOwnProperty.call(o,i))throw new $.lk(h.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${i}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);n=i,r=o[i].url}t.reportInfo(h.b.UNNAMED,"Downloading "+e.format(r,"green")),i=await p.httpUtils.get(r,{configuration:e})}await Ee(n,i,{project:r,report:t})})).exitCode()}}async function Ee(e,t,{project:r,report:n}){const{configuration:i}=r,o={},s={exports:o};(0,fe.runInNewContext)(t.toString(),{module:s,exports:o});const a=s.exports.name,c=`.yarn/plugins/${a}.cjs`,u=y.y1.resolve(r.cwd,c);n.reportInfo(h.b.UNNAMED,"Saving the new plugin in "+i.format(c,"magenta")),await R.xfs.mkdirpPromise(y.y1.dirname(u)),await R.xfs.writeFilePromise(u,t);const l={path:c,spec:e};await A.VK.updateConfiguration(r.cwd,e=>{const t=[];let n=!1;for(const i of e.plugins||[]){const e="string"!=typeof i?i.path:i,o=y.y1.resolve(r.cwd,y.cS.toPortablePath(e)),{name:s}=p.miscUtils.dynamicRequire(y.cS.fromPortablePath(o));s!==a?t.push(i):(t.push(l),n=!0)}return n||t.push(l),{plugins:t}})}Ce.usage=d.Command.Usage({category:"Plugin-related commands",description:"download a plugin",details:"\n This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.\n\n Three types of plugin references are accepted:\n\n - If the plugin is stored within the Yarn repository, it can be referenced by name.\n - Third-party plugins can be referenced directly through their public urls.\n - Local plugins can be referenced by their path on the disk.\n\n Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the `@yarnpkg/builder` package).\n ",examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]}),(0,a.gn)([d.Command.String()],Ce.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","import")],Ce.prototype,"execute",null);class Ie extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.noMinify=!1,this.force=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.installPath)):y.y1.resolve(y.cS.toPortablePath((0,ie.tmpdir)()),"yarnpkg-sources",p.hashUtils.makeHash(this.repository).slice(0,6));return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{const{project:n}=await g.I.find(e,this.context.cwd),i=p.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),o=p.structUtils.stringifyIdent(i),s=await pe(e);if(!Object.prototype.hasOwnProperty.call(s,o))throw new $.lk(h.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${o}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);const A=o,a=A.replace(/@yarnpkg\//,"");await ge(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(h.b.UNNAMED,"Building a fresh "+a),r.reportSeparator(),await he((({pluginName:e,noMinify:t},r)=>[["yarn","build:"+e,...t?["--no-minify"]:[],"|"]])({pluginName:a,noMinify:this.noMinify}),{configuration:e,context:this.context,target:t}),r.reportSeparator();const c=y.y1.resolve(t,`packages/${a}/bundles/${A}.js`),u=await R.xfs.readFilePromise(c);await Ee(A,u,{project:n,report:r})})).exitCode()}}Ie.usage=d.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:"\n This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.\n\n The plugins can be referenced by their short name if sourced from the official Yarn repository.\n ",examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]}),(0,a.gn)([d.Command.String()],Ie.prototype,"name",void 0),(0,a.gn)([d.Command.String("--path")],Ie.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository")],Ie.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch")],Ie.prototype,"branch",void 0),(0,a.gn)([d.Command.Boolean("--no-minify")],Ie.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force")],Ie.prototype,"force",void 0),(0,a.gn)([d.Command.Path("plugin","import","from","sources")],Ie.prototype,"execute",null);class me extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{const n=this.name,i=p.structUtils.parseIdent(n);if(!e.plugins.has(n))throw new d.UsageError(p.structUtils.prettyIdent(e,i)+" isn't referenced by the current configuration");const o=`.yarn/plugins/${n}.cjs`,s=y.y1.resolve(t.cwd,o);R.xfs.existsSync(s)&&(r.reportInfo(h.b.UNNAMED,`Removing ${e.format(o,A.a5.PATH)}...`),await R.xfs.removePromise(s)),r.reportInfo(h.b.UNNAMED,"Updating the configuration..."),await A.VK.updateConfiguration(t.cwd,e=>{if(!Array.isArray(e.plugins))return{};return{plugins:e.plugins.filter(e=>e.path!==o)}})})).exitCode()}}me.usage=d.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:"\n This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.\n\n **Note:** The plugins have to be referenced by their name property, which can be obtained using the `yarn plugin runtime` command. Shorthands are not allowed.\n ",examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]}),(0,a.gn)([d.Command.String()],me.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","remove")],me.prototype,"execute",null);class ye extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{for(const r of e.plugins.keys()){const e=this.context.plugins.plugins.has(r);let n=r;e&&(n+=" [builtin]"),t.reportJson({name:r,builtin:e}),t.reportInfo(null,""+n)}})).exitCode()}}ye.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:"\n This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.\n ",examples:[["List the currently active plugins","$0 plugin runtime"]]}),(0,a.gn)([d.Command.Boolean("--json")],ye.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","runtime")],ye.prototype,"execute",null);class we extends c.BaseCommand{constructor(){super(...arguments),this.idents=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=new Set;for(const e of this.idents)i.add(p.structUtils.parseIdent(e).identHash);await t.resolveEverything({cache:n,report:new I.$});const o=e.get("bstatePath"),s=R.xfs.existsSync(o)?(0,ee.parseSyml)(await R.xfs.readFilePromise(o,"utf8")):{},a=new Map;for(const e of t.storedPackages.values()){if(!Object.prototype.hasOwnProperty.call(s,e.locatorHash))continue;if(0===i.size||i.has(e.identHash))continue;const t=s[e.locatorHash];a.set(e.locatorHash,t)}if(a.size>0){const r=e.get("bstatePath"),n=g.I.generateBuildStateFile(a,t.storedPackages);await R.xfs.mkdirpPromise(y.y1.dirname(r)),await R.xfs.changeFilePromise(r,n,{automaticNewlines:!0})}else await R.xfs.removePromise(o);return(await f.P.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}we.usage=d.Command.Usage({description:"rebuild the project's native packages",details:"\n This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.\n\n Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).\n\n By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.\n ",examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]}),(0,a.gn)([d.Command.Rest()],we.prototype,"idents",void 0),(0,a.gn)([d.Command.Path("rebuild")],we.prototype,"execute",null);var Be=r(2401),Qe=r.n(Be);class ve extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.patterns=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=this.all?t.workspaces:[r],s=[i.REGULAR,i.DEVELOPMENT,i.PEER],a=[];let l=!1;const h=[];for(const e of this.patterns){let t=!1;const r=p.structUtils.parseIdent(e);for(const n of o){const i=[...n.manifest.peerDependenciesMeta.keys()];for(const r of Qe()(i,e))n.manifest.peerDependenciesMeta.delete(r),l=!0,t=!0;for(const e of s){const i=n.manifest.getForScope(e),o=[...i.values()].map(e=>p.structUtils.stringifyIdent(e));for(const s of Qe()(o,p.structUtils.stringifyIdent(r))){const{identHash:r}=p.structUtils.parseIdent(s),o=i.get(r);if(void 0===o)throw new Error("Assertion failed: Expected the descriptor to be registered");n.manifest[e].delete(r),h.push([n,e,o]),l=!0,t=!0}}}t||a.push(e)}const C=a.length>1?"Patterns":"Pattern",E=a.length>1?"don't":"doesn't",I=this.all?"any":"this";if(a.length>0)throw new d.UsageError(`${C} ${a.join(", ")} ${E} match packages referenced by ${I} workspace`);if(l){await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyRemoval,h);return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}return 0}}ve.usage=d.Command.Usage({description:"remove dependencies from the project",details:"\n This command will remove the packages matching the specified patterns from the current workspace.\n\n If the `-A,--all` option is set, the operation will be applied to all workspaces from the current project.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n ",examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]}),(0,a.gn)([d.Command.Boolean("-A,--all")],ve.prototype,"all",void 0),(0,a.gn)([d.Command.Rest()],ve.prototype,"patterns",void 0),(0,a.gn)([d.Command.Path("remove")],ve.prototype,"execute",null);class De extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);return(await f.P.start({configuration:e,stdout:this.context.stdout},async t=>{const n=r.manifest.scripts,i=p.miscUtils.sortMap(n.keys(),e=>e),o={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},s=i.reduce((e,t)=>Math.max(e,t.length),0);for(const[e,r]of n.entries())t.reportInfo(null,`${e.padEnd(s," ")} ${(0,P.inspect)(r,o)}`)})).exitCode()}}(0,a.gn)([d.Command.Path("run")],De.prototype,"execute",null);const be=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["interactive-tools",[["upgrade-interactive"]]],["stage",[["stage"]]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","foreach"],["workspace"]]]]);class Se extends c.BaseCommand{constructor(){super(...arguments),this.inspect=!1,this.inspectBrk=!1,this.topLevel=!1,this.binariesOnly=!1,this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r,locator:n}=await g.I.find(e,this.context.cwd);await t.restoreInstallState();const i=this.topLevel?t.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await p.scriptUtils.hasPackageScript(i,this.scriptName,{project:t}))return await p.scriptUtils.executePackageScript(i,this.scriptName,this.args,{project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if((await p.scriptUtils.getPackageAccessibleBinaries(i,{project:t})).get(this.scriptName)){const e=[];return this.inspect&&("string"==typeof this.inspect?e.push("--inspect="+this.inspect):e.push("--inspect")),this.inspectBrk&&("string"==typeof this.inspectBrk?e.push("--inspect-brk="+this.inspectBrk):e.push("--inspect-brk")),await p.scriptUtils.executePackageAccessibleBinary(i,this.scriptName,this.args,{cwd:this.context.cwd,project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:e})}if(!this.topLevel&&!this.binariesOnly&&r&&this.scriptName.includes(":")){const e=(await Promise.all(t.workspaces.map(async e=>e.manifest.scripts.has(this.scriptName)?e:null))).filter(e=>null!==e);if(1===e.length)return await p.scriptUtils.executeWorkspaceScript(e[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw"node-gyp"===this.scriptName?new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${p.structUtils.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${p.structUtils.prettyLocator(e,n)}).`);{if("global"===this.scriptName)throw new d.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");const e=[this.scriptName].concat(this.args);for(const[t,r]of be)for(const n of r)if(e.length>=n.length&&JSON.stringify(e.slice(0,n.length))===JSON.stringify(n))throw new d.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${t} plugin. You can install it with "yarn plugin import ${t}".`);throw new d.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}}Se.usage=d.Command.Usage({description:"run a script defined in the package.json",details:"\n This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:\n\n - If the `scripts` field from your local package.json contains a matching script name, its definition will get executed.\n\n - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed (the `--inspect` and `--inspect-brk` options will then be forwarded to the underlying Node process).\n\n - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.\n\n Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).\n ",examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]}),(0,a.gn)([d.Command.String("--inspect",{tolerateBoolean:!0})],Se.prototype,"inspect",void 0),(0,a.gn)([d.Command.String("--inspect-brk",{tolerateBoolean:!0})],Se.prototype,"inspectBrk",void 0),(0,a.gn)([d.Command.Boolean("-T,--top-level",{hidden:!0})],Se.prototype,"topLevel",void 0),(0,a.gn)([d.Command.Boolean("-B,--binaries-only",{hidden:!0})],Se.prototype,"binariesOnly",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],Se.prototype,"silent",void 0),(0,a.gn)([d.Command.String()],Se.prototype,"scriptName",void 0),(0,a.gn)([d.Command.Proxy()],Se.prototype,"args",void 0),(0,a.gn)([d.Command.Path("run")],Se.prototype,"execute",null);class ke extends c.BaseCommand{constructor(){super(...arguments),this.save=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=p.structUtils.parseDescriptor(this.descriptor,!0),o=p.structUtils.makeDescriptor(i,this.resolution);t.storedDescriptors.set(i.descriptorHash,i),t.storedDescriptors.set(o.descriptorHash,o),t.resolutionAliases.set(i.descriptorHash,o.descriptorHash);return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}ke.usage=d.Command.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@^1.2.3 1.5.0"]]}),(0,a.gn)([d.Command.String()],ke.prototype,"descriptor",void 0),(0,a.gn)([d.Command.String()],ke.prototype,"resolution",void 0),(0,a.gn)([d.Command.Boolean("-s,--save")],ke.prototype,"save",void 0),(0,a.gn)([d.Command.Path("set","resolution")],ke.prototype,"execute",null);class xe extends c.BaseCommand{constructor(){super(...arguments),this.patterns=[],this.interactive=!1,this.verbose=!1,this.exact=!1,this.tilde=!1,this.caret=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=E().createPromptModule({input:this.context.stdin,output:this.context.stdout}),a=Q(this,t),C=this.interactive?[s.KEEP,s.REUSE,s.PROJECT,s.LATEST]:[s.PROJECT,s.LATEST],I=[],m=[];for(const e of this.patterns){let r=!1;const o=p.structUtils.parseDescriptor(e);for(const e of t.workspaces)for(const s of[i.REGULAR,i.DEVELOPMENT]){const i=[...e.manifest.getForScope(s).values()].map(e=>p.structUtils.stringifyIdent(e));for(const A of Qe()(i,p.structUtils.stringifyIdent(o))){const i=p.structUtils.parseIdent(A),c=e.manifest[s].get(i.identHash);if(void 0===c)throw new Error("Assertion failed: Expected the descriptor to be registered");const u=p.structUtils.makeDescriptor(i,o.range);I.push(Promise.resolve().then(async()=>[e,s,c,await x(u,{project:t,workspace:e,cache:n,target:s,modifier:a,strategies:C})])),r=!0}}r||m.push(e)}if(m.length>1)throw new d.UsageError(`Patterns ${m.join(", ")} don't match any packages referenced by any workspace`);if(m.length>0)throw new d.UsageError(`Pattern ${m[0]} doesn't match any packages referenced by any workspace`);const y=await Promise.all(I),w=await l.h.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async r=>{for(const[,,n,i]of y){const o=i.filter(e=>null!==e.descriptor);0===o.length?t.configuration.get("enableNetwork")?r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range"):r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range (note: network resolution has been disabled)"):o.length>1&&!this.interactive&&r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" has multiple possible upgrade strategies; use -i to disambiguate manually")}});if(w.hasErrors())return w.exitCode();let B=!1;const v=[];for(const[r,n,,i]of y){let s;const A=i.filter(e=>null!==e.descriptor),a=A[0].descriptor,c=A.every(e=>p.structUtils.areDescriptorsEqual(e.descriptor,a));1===A.length||c?s=a:(B=!0,({answer:s}=await o({type:"list",name:"answer",message:`Which range to you want to use in ${p.structUtils.prettyWorkspace(e,r)} ❯ ${n}?`,choices:i.map(({descriptor:e,reason:r})=>e?{name:r,value:e,short:p.structUtils.prettyDescriptor(t.configuration,e)}:{name:r,disabled:()=>!0})})));const u=r.manifest[n].get(s.identHash);if(void 0===u)throw new Error("Assertion failed: This descriptor should have a matching entry");if(u.descriptorHash!==s.descriptorHash)r.manifest[n].set(s.identHash,s),v.push([r,n,u,s]);else{const n=e.makeResolver(),i={project:t,resolver:n},o=n.bindDescriptor(u,r.anchoredLocator,i);t.forgetResolution(o)}}await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,v),B&&this.context.stdout.write("\n");return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}xe.usage=d.Command.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),(0,a.gn)([d.Command.Rest()],xe.prototype,"patterns",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive")],xe.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose")],xe.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact")],xe.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde")],xe.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret")],xe.prototype,"caret",void 0),(0,a.gn)([d.Command.Path("up")],xe.prototype,"execute",null);var Fe=r(94682);class Me extends c.BaseCommand{constructor(){super(...arguments),this.recursive=!1,this.peers=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const n=p.structUtils.parseIdent(this.package).identHash,i=this.recursive?function(e,t,{configuration:r,peers:n}){const i=p.miscUtils.sortMap(e.workspaces,e=>p.structUtils.stringifyLocator(e.anchoredLocator)),o=new Set,s=new Set,A=r=>{if(o.has(r.locatorHash))return s.has(r.locatorHash);if(o.add(r.locatorHash),r.identHash===t)return s.add(r.locatorHash),!0;let i=!1;r.identHash===t&&(i=!0);for(const t of r.dependencies.values()){if(!n&&r.peerDependencies.has(t.identHash))continue;const o=e.storedResolutions.get(t.descriptorHash);if(!o)throw new Error("Assertion failed: The resolution should have been registered");const s=e.storedPackages.get(o);if(!s)throw new Error("Assertion failed: The package should have been registered");A(s)&&(i=!0)}return i&&s.add(r.locatorHash),i};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");A(r)}const a=new Set,c={},u=(t,i,o)=>{if(!s.has(t.locatorHash))return;const A={};if(i[null!==o?`${p.structUtils.prettyLocator(r,t)} (via ${p.structUtils.prettyRange(r,o)})`:""+p.structUtils.prettyLocator(r,t)]=A,!a.has(t.locatorHash)&&(a.add(t.locatorHash),null===o||!e.tryWorkspaceByLocator(t)))for(const r of t.dependencies.values()){if(!n&&t.peerDependencies.has(r.identHash))continue;const i=e.storedResolutions.get(r.descriptorHash);if(!i)throw new Error("Assertion failed: The resolution should have been registered");const o=e.storedPackages.get(i);if(!o)throw new Error("Assertion failed: The package should have been registered");u(o,A,r.range)}};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");u(r,c,null)}return c}(t,n,{configuration:e,peers:this.peers}):function(e,t,{configuration:r,peers:n}){const i=p.miscUtils.sortMap(e.storedPackages.values(),e=>p.structUtils.stringifyLocator(e)),o={};for(const s of i){let i=null;for(const A of s.dependencies.values()){if(!n&&s.peerDependencies.has(A.identHash))continue;const a=e.storedResolutions.get(A.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");const c=e.storedPackages.get(a);if(!c)throw new Error("Assertion failed: The package should have been registered");if(c.identHash!==t)continue;if(null===i){i={};const e=""+p.structUtils.prettyLocator(r,s);o[e]=i}const u=`${p.structUtils.prettyLocator(r,c)} (via ${p.structUtils.prettyRange(r,A.range)})`;i[u]={}}}return o}(t,n,{configuration:e,peers:this.peers});!function(e,t){let r=(0,Fe.asTree)(t,!1,!1);r=r.replace(/^([├└]─)/gm,"│\n$1").replace(/^│\n/,""),e.write(r)}(this.context.stdout,i)}}Me.usage=d.Command.Usage({description:"display the reason why a package is needed",details:'\n This command prints the exact reasons why a package appears in the dependency tree.\n\n If `-R,--recursive` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.\n\n If `--peers` is set, the command will also print the peer dependencies that match the specified name.\n ',examples:[["Explain why lodash is used in your project","$0 why lodash"]]}),(0,a.gn)([d.Command.String()],Me.prototype,"package",void 0),(0,a.gn)([d.Command.Boolean("-R,--recursive")],Me.prototype,"recursive",void 0),(0,a.gn)([d.Command.Boolean("--peers")],Me.prototype,"peers",void 0),(0,a.gn)([d.Command.Path("why")],Me.prototype,"execute",null);class Ne extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async e=>{for(const r of t.workspaces){const{manifest:n}=r;let i;if(this.verbose){const e=new Set,r=new Set;for(const i of m.G.hardDependencies)for(const[o,s]of n.getForScope(i)){const n=t.tryWorkspaceByDescriptor(s);null===n?t.workspacesByIdent.has(o)&&r.add(s):e.add(n)}i={workspaceDependencies:Array.from(e).map(e=>e.relativeCwd),mismatchedWorkspaceDependencies:Array.from(r).map(e=>p.structUtils.stringifyDescriptor(e))}}e.reportInfo(null,""+r.relativeCwd),e.reportJson({location:r.relativeCwd,name:n.name?p.structUtils.stringifyIdent(n.name):null,...i})}})).exitCode()}}Ne.usage=d.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project. If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n "}),(0,a.gn)([d.Command.Boolean("-v,--verbose")],Ne.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json")],Ne.prototype,"json",void 0),(0,a.gn)([d.Command.Path("workspaces","list")],Ne.prototype,"execute",null);class Re extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const n=t.workspaces,i=new Map(n.map(e=>{const t=p.structUtils.convertToIdent(e.locator);return[p.structUtils.stringifyIdent(t),e]})),o=i.get(this.workspaceName);if(void 0===o){const e=Array.from(i.keys()).sort();throw new d.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:\n - ${e.join("\n - ")}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}}Re.usage=d.Command.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:"\n This command will run a given sub-command on a single workspace.\n ",examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]}),(0,a.gn)([d.Command.String()],Re.prototype,"workspaceName",void 0),(0,a.gn)([d.Command.String()],Re.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Re.prototype,"args",void 0),(0,a.gn)([d.Command.Path("workspace")],Re.prototype,"execute",null);const Ke={configuration:{enableImmutableInstalls:{description:"If true, prevents the install command from modifying the lockfile",type:A.a2.BOOLEAN,default:!1},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:A.a2.STRING,default:o.CARET}},commands:[K,U,J,ke,le,Ae,Ne,q,z,W,X,M,N,H,Z,te,re,ne,Ie,Ce,me,de,ye,we,ve,De,Se,xe,Me,Re]}},41466:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(84132),i=r(46009),o=r(75448);const s=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,A=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;var a=r(46611),c=r(32485);const u={fetchers:[class{supports(e,t){return!!A.test(e.reference)&&!!e.reference.startsWith("file:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromDisk(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),A=i.y1.isAbsolute(s)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),a=A.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,A.localPath)}:A;A!==a&&A.releaseFs&&A.releaseFs();const c=a.packageFs,u=i.y1.join(a.prefixPath,s),l=await c.readFilePromise(u);return await n.miscUtils.releaseAfterUseAsync(async()=>await n.tgzUtils.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1}),a.releaseFs)}},class{supports(e,t){return!!e.reference.startsWith("file:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async fetchFromDisk(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),A=i.y1.isAbsolute(s)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),a=A.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,A.localPath)}:A;A!==a&&A.releaseFs&&A.releaseFs();const c=a.packageFs,u=i.y1.join(a.prefixPath,s);return await n.miscUtils.releaseAfterUseAsync(async()=>await n.tgzUtils.makeArchiveFromDirectory(u,{baseFs:c,prefixPath:n.structUtils.getIdentVendorPath(e),compressionLevel:t.project.configuration.get("compressionLevel")}),a.releaseFs)}}],resolvers:[class{supportsDescriptor(e,t){return!!A.test(e.range)&&(!!e.range.startsWith("file:")||!!s.test(e.range))}supportsLocator(e,t){return!!A.test(e.reference)&&!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return s.test(e.range)&&(e=n.structUtils.makeDescriptor(e,"file:"+e.range)),n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let o=e.range;return o.startsWith("file:")&&(o=o.slice("file:".length)),[n.structUtils.makeLocator(e,"file:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await a.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:c.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}},class{supportsDescriptor(e,t){return!!e.range.match(s)||!!e.range.startsWith("file:")}supportsLocator(e,t){return!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return s.test(e.range)&&(e=n.structUtils.makeDescriptor(e,"file:"+e.range)),n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let o=e.range;return o.startsWith("file:")&&(o=o.slice("file:".length)),[n.structUtils.makeLocator(e,"file:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await a.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:c.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},10284:(e,t,r)=>{"use strict";r.r(t),r.d(t,{gitUtils:()=>n,default:()=>B});var n={};r.r(n),r.d(n,{TreeishProtocols:()=>g,clone:()=>m,isGitUrl:()=>f,lsRemote:()=>E,normalizeLocator:()=>C,normalizeRepoUrl:()=>d,resolveUrl:()=>I,splitRepoUrl:()=>p});var i=r(84132),o=r(46009),s=r(56537),A=r(71191),a=r.n(A),c=r(53887),u=r.n(c);function l(){return{...process.env,GIT_SSH_COMMAND:"ssh -o BatchMode=yes"}}const h=[/^ssh:/,/^git(?:\+ssh)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^(?:git\+)https?:[^#]+\/[^#]+(?:\.git)?(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/];var g;function f(e){return!!e&&h.some(t=>!!e.match(t))}function p(e){const t=(e=d(e)).indexOf("#");if(-1===t)return{repo:e,treeish:{protocol:g.Head,request:"master"},extra:{}};const r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){const e=a().parse(n);for(const[t,r]of Object.entries(e))if("string"!=typeof r)throw new Error(`Assertion failed: The ${t} parameter must be a literal string`);const t=Object.values(g).find(t=>Object.prototype.hasOwnProperty.call(e,t));let i,o;void 0!==t?(i=t,o=e[t]):(i=g.Head,o="master");for(const t of Object.values(g))delete e[t];return{repo:r,treeish:{protocol:i,request:o},extra:e}}{const e=n.indexOf(":");let t,i;return-1===e?(t=null,i=n):(t=n.slice(0,e),i=n.slice(e+1)),{repo:r,treeish:{protocol:t,request:i},extra:{}}}}function d(e){return e=(e=(e=e.replace(/^git\+https:/,"https:")).replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3")).replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3")}function C(e){return i.structUtils.makeLocator(e,d(e.reference))}async function E(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);let r;try{r=await i.execUtils.execvp("git",["ls-remote","--refs",d(e)],{cwd:t.startingCwd,env:l(),strict:!0})}catch(t){throw t.message=`Listing the refs for ${e} failed`,t}const n=new Map,o=/^([a-f0-9]{40})\t(refs\/[^\n]+)/gm;let s;for(;null!==(s=o.exec(r.stdout));)n.set(s[2],s[1]);return n}async function I(e,t){const{repo:r,treeish:{protocol:n,request:i},extra:o}=p(e),s=await E(r,t),A=(e,t)=>{switch(e){case g.Commit:if(!t.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return a().stringify({...o,commit:t});case g.Head:{const e=s.get("refs/heads/"+t);if(void 0===e)throw new Error(`Unknown head ("${t}")`);return a().stringify({...o,commit:e})}case g.Tag:{const e=s.get("refs/tags/"+t);if(void 0===e)throw new Error(`Unknown tag ("${t}")`);return a().stringify({...o,commit:e})}case g.Semver:{if(!u().validRange(t))throw new Error(`Invalid range ("${t}")`);const e=new Map([...s.entries()].filter(([e])=>e.startsWith("refs/tags/")).map(([e,t])=>[u().parse(e.slice(10)),t]).filter(e=>null!==e[0])),r=u().maxSatisfying([...e.keys()],t);if(null===r)throw new Error(`No matching range ("${t}")`);return a().stringify({...o,commit:e.get(r)})}case null:{let e;if(null!==(e=c(g.Commit,t)))return e;if(null!==(e=c(g.Tag,t)))return e;if(null!==(e=c(g.Head,t)))return e;throw t.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${e}")`)}},c=(e,t)=>{try{return A(e,t)}catch(e){return null}};return`${r}#${A(n,i)}`}async function m(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);const{repo:r,treeish:{protocol:n,request:A}}=p(e);if("commit"!==n)throw new Error("Invalid treeish protocol when cloning");const a=await s.xfs.mktempPromise(),c={cwd:a,env:l(),strict:!0};try{await i.execUtils.execvp("git",["clone","-c core.autocrlf=false",""+d(r),o.cS.fromPortablePath(a)],c),await i.execUtils.execvp("git",["checkout",""+A],c)}catch(e){throw e.message="Repository clone failed: "+e.message,e}return a}!function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"}(g||(g={}));var y=r(32485),w=r(46611);const B={fetchers:[class{supports(e,t){return f(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,n=C(e),o=new Map(t.checksums);o.set(n.locatorHash,r);const s={...t,checksums:o},A=await this.downloadHosted(n,s);if(null!==A)return A;const[a,c,u]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote repository"),loader:()=>this.cloneFromRemote(n,s),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:a,releaseFs:c,prefixPath:i.structUtils.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(e=>e.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){const r=await m(e.reference,t.project.configuration),n=p(e.reference),A=o.y1.join(r,"package.tgz");await i.scriptUtils.prepareExternalProject(r,A,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace});const a=await s.xfs.readFilePromise(A);return await i.miscUtils.releaseAfterUseAsync(async()=>await i.tgzUtils.convertToZip(a,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:i.structUtils.getIdentVendorPath(e),stripComponents:1}))}}],resolvers:[class{supportsDescriptor(e,t){return f(e.range)}supportsLocator(e,t){return f(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=await I(e.range,r.project.configuration);return[i.structUtils.makeLocator(e,n)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await i.miscUtils.releaseAfterUseAsync(async()=>await w.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:y.U.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}}]}},23599:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h});var n=r(84132),i=r(56537),o=r(75448),s=r(46009),A=r(10284),a=r(71191),c=r.n(a);const u=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];class l{supports(e,t){return!(!(r=e.reference)||!u.some(e=>!!r.match(e)));var r}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from GitHub"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await i.xfs.mktempPromise(async a=>{const c=new o.M(a);await n.tgzUtils.extractArchiveTo(r,c,{stripComponents:1});const u=A.gitUtils.splitRepoUrl(e.reference),l=s.y1.join(a,"package.tgz");await n.scriptUtils.prepareExternalProject(a,l,{configuration:t.project.configuration,report:t.report,workspace:u.extra.workspace});const h=await i.xfs.readFilePromise(l);return await n.tgzUtils.convertToZip(h,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){const{auth:r,username:n,reponame:i,treeish:o}=function(e){let t;for(const r of u)if(t=e.match(r),t)break;if(!t)throw new Error(`Input cannot be parsed as a valid GitHub URL ('${e}').`);let[,r,n,i,o="master"]=t;const{commit:s}=c().parse(o);return o=s||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:i,treeish:o}}(e.reference);return`https://${r?r+"@":""}github.com/${n}/${i}/archive/${o}.tar.gz`}}const h={hooks:{async fetchHostedRepository(e,t,r){if(null!==e)return e;const n=new l;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch(e){return null}}}}},21754:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var n=r(84132);const i=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,o=/^https?:/;var s=r(46611),A=r(32485);const a={fetchers:[class{supports(e,t){return!!i.test(e.reference)&&!!o.test(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(e.reference,{configuration:t.project.configuration});return await n.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})}}],resolvers:[class{supportsDescriptor(e,t){return!!i.test(e.range)&&!!o.test(e.range)}supportsLocator(e,t){return!!i.test(e.reference)&&!!o.test(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[n.structUtils.convertDescriptorToLocator(e)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await s.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:A.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},74230:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>p});var n=r(27122),i=r(36370),o=r(95397),s=r(46611),A=r(40376),a=r(84132),c=r(56537),u=r(46009),l=r(17278),h=r(7564),g=r(31669);class f extends o.BaseCommand{constructor(){super(...arguments),this.usev2=!1,this.assumeFreshProject=!1,this.yes=!1,this.private=!1,this.workspace=!1,this.install=!1}async execute(){if(c.xfs.existsSync(u.y1.join(this.context.cwd,s.G.fileName)))throw new l.UsageError("A package.json already exists in the specified directory");const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.install?!0===this.install?"latest":this.install:null;return null!==t?await this.executeProxy(e,t):await this.executeRegular(e)}async executeProxy(e,t){if(null!==e.get("yarnPath"))throw new l.UsageError(`Cannot use the --install flag when the current directory already uses yarnPath (from ${e.sources.get("yarnPath")})`);if(null!==e.projectCwd)throw new l.UsageError("Cannot use the --install flag when the current directory is already part of a project");c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirpPromise(this.context.cwd);const r=u.y1.join(this.context.cwd,e.get("lockfileFilename"));c.xfs.existsSync(r)||await c.xfs.writeFilePromise(r,"");const n=await this.cli.run(["set","version",t]);if(0!==n)return n;this.context.stdout.write("\n");const i=["--assume-fresh-project"];return this.private&&i.push("-p"),this.workspace&&i.push("-w"),this.yes&&i.push("-y"),await c.xfs.mktempPromise(async e=>{const{code:t}=await a.execUtils.pipevp("yarn",["init",...i],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await a.scriptUtils.makeScriptEnv({binFolder:e})});return t})}async executeRegular(e){let t=null;if(!this.assumeFreshProject)try{t=await A.I.find(e,this.context.cwd)}catch(e){t=null}c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirpPromise(this.context.cwd);const r=new s.G,n=Object.fromEntries(e.get("initFields").entries());r.load(n),r.name=a.structUtils.makeIdent(e.get("initScope"),u.y1.basename(this.context.cwd)),r.version=e.get("initVersion"),r.private=this.private||this.workspace,r.license=e.get("initLicense"),this.workspace&&(await c.xfs.mkdirpPromise(u.y1.join(this.context.cwd,"packages")),r.workspaceDefinitions=[{pattern:"packages/*"}]);const i={};r.exportTo(i),g.inspect.styles.name="cyan",this.context.stdout.write((0,g.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n");const o=u.y1.join(this.context.cwd,s.G.fileName);await c.xfs.changeFilePromise(o,JSON.stringify(i,null,2)+"\n");const l=u.y1.join(this.context.cwd,"README.md");if(c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,`# ${a.structUtils.stringifyIdent(r.name)}\n`),!t){const t=u.y1.join(this.context.cwd,u.QS.lockfile);await c.xfs.writeFilePromise(t,"");const r=["/.yarn/** linguist-vendored"].map(e=>e+"\n").join(""),n=u.y1.join(this.context.cwd,".gitattributes");c.xfs.existsSync(n)||await c.xfs.writeFilePromise(n,r);const i=["/.yarn/*","!/.yarn/releases","!/.yarn/plugins","!/.yarn/sdks","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!/.yarn/cache","#/.pnp.*"].map(e=>e+"\n").join(""),o=u.y1.join(this.context.cwd,".gitignore");c.xfs.existsSync(o)||await c.xfs.writeFilePromise(o,i);const s={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,.yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,h.merge)(s,e.get("initEditorConfig"));let A="root = true\n";for(const[e,t]of Object.entries(s)){A+=`\n[${e}]\n`;for(const[e,r]of Object.entries(t)){A+=`${e.replace(/[A-Z]/g,e=>"_"+e.toLowerCase())} = ${r}\n`}}const l=u.y1.join(this.context.cwd,".editorconfig");c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,A),await a.execUtils.execvp("git",["init"],{cwd:this.context.cwd})}}}f.usage=l.Command.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]}),(0,i.gn)([l.Command.Boolean("-2",{hidden:!0})],f.prototype,"usev2",void 0),(0,i.gn)([l.Command.Boolean("--assume-fresh-project",{hidden:!0})],f.prototype,"assumeFreshProject",void 0),(0,i.gn)([l.Command.Boolean("-y,--yes",{hidden:!0})],f.prototype,"yes",void 0),(0,i.gn)([l.Command.Boolean("-p,--private")],f.prototype,"private",void 0),(0,i.gn)([l.Command.Boolean("-w,--workspace")],f.prototype,"workspace",void 0),(0,i.gn)([l.Command.String("-i,--install",{tolerateBoolean:!0})],f.prototype,"install",void 0),(0,i.gn)([l.Command.Path("init")],f.prototype,"execute",null);const p={configuration:{initLicense:{description:"License used when creating packages via the init command",type:n.a2.STRING,default:null},initScope:{description:"Scope used when creating packages via the init command",type:n.a2.STRING,default:null},initVersion:{description:"Version used when creating packages via the init command",type:n.a2.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}}},commands:[f]}},86161:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>c});var n=r(84132),i=r(46009),o=r(75448),s=r(10489);var A=r(46611),a=r(32485);const c={fetchers:[class{supports(e,t){return!!e.reference.startsWith("link:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"}),a=i.y1.isAbsolute(A)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const u=c.packageFs,l=i.y1.join(c.prefixPath,A);return a.localPath?{packageFs:new o.M(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0,localPath:l}:{packageFs:new s.n(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0}}},class{supports(e,t){return!!e.reference.startsWith("portal:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"}),a=i.y1.isAbsolute(A)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const u=c.packageFs,l=i.y1.join(c.prefixPath,A);return a.localPath?{packageFs:new o.M(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,localPath:l}:{packageFs:new s.n(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot}}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("link:")}supportsLocator(e,t){return!!e.reference.startsWith("link:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const o=e.range.slice("link:".length);return[n.structUtils.makeLocator(e,"link:"+i.cS.toPortablePath(o))]}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("portal:")}supportsLocator(e,t){return!!e.reference.startsWith("portal:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const o=e.range.slice("portal:".length);return[n.structUtils.makeLocator(e,"portal:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await A.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map([...i.dependencies,...i.devDependencies]),peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},8149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>ee,default:()=>te});var n=r(46009),i=r(92659),o=r(32485),s=r(92409),A=r(84132),a=r(46611),c=r(35691),u=r(17674),l=r(53660),h=r(56537),g=r(29486),f=r(55125),p=r(5780);const d=(e,t)=>`${e}@${t}`,C=(e,t)=>{const r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return d(e,n)},E=(e,t={})=>{const r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),n={check:t.check||r>=9,debugLevel:r};n.debugLevel>=0&&console.time("hoist");const i=Q(e);if(m(i,i,new Set([i.locator]),n),n.debugLevel>=0&&console.timeEnd("hoist"),n.debugLevel>=1){const e=B(i);if(e)throw new Error(`${e}, after hoisting finished:\n${k(i)}`)}return n.debugLevel>=2&&console.log(k(i)),D(i)},I=(e,t)=>{if(t.decoupled)return t;const{name:r,references:n,ident:i,locator:o,dependencies:s,originalDependencies:A,hoistedDependencies:a,peerNames:c,reasons:u}=t,l={name:r,references:new Set(n),ident:i,locator:o,dependencies:new Map(s),originalDependencies:new Map(A),hoistedDependencies:new Map(a),peerNames:new Set(c),reasons:new Map(u),decoupled:!0},h=l.dependencies.get(r);return h&&h.ident==l.ident&&l.dependencies.set(r,l),e.dependencies.set(l.name,l),l},m=(e,t,r,n,i=new Set)=>{if(i.has(t))return;i.add(t);const o=((e,t)=>{const r=new Map([[e.name,[e.ident]]]);for(const t of e.dependencies.values())e.peerNames.has(t.name)||r.set(t.name,[t.ident]);const n=Array.from(t.keys());n.sort((e,r)=>t.get(r).size-t.get(e).size);for(const t of n){const n=t.substring(0,t.indexOf("@",1)),i=t.substring(n.length+1);if(!e.peerNames.has(n)){let e=r.get(n);e||(e=[],r.set(n,e)),e.indexOf(i)<0&&e.push(i)}}return r})(t,b(t)),s=new Set(Array.from(o.values()).map(e=>e[0])),A=t===e?new Map:(e=>{const t=new Map,r=new Set,n=i=>{if(!r.has(i)){r.add(i);for(const r of i.hoistedDependencies.values())e.dependencies.has(r.name)||t.set(r.name,r);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(e)}};return n(e),t})(t);let a;do{w(e,t,r,A,s,o,n),a=!1;for(const[e,r]of o)r.length>1&&!t.dependencies.has(e)&&(s.delete(r[0]),r.shift(),s.add(r[0]),a=!0)}while(a);for(const i of t.dependencies.values())t.peerNames.has(i.name)||r.has(i.locator)||(r.add(i.locator),m(e,i,r,n),r.delete(i.locator))},y=e=>{const t=new Set,r=(n,i=new Set)=>{if(!i.has(n)){i.add(n);for(const o of n.peerNames)if(!e.peerNames.has(o)){const n=e.dependencies.get(o);n&&!t.has(n)&&r(n,i)}t.add(n)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||r(t);return t},w=(e,t,r,n,i,o,s)=>{const A=new Set,a=(c,u,l,h)=>{if(A.has(l))return;let g,f;s.debugLevel>=2&&(g=""+Array.from(r).map(e=>S(e)).join("→"));let p=i.has(l.ident);if(s.debugLevel>=2&&!p&&(f=`- filled by: ${S(o.get(l.name)[0])} at ${g}`),p){let e=!0;const t=new Set(l.peerNames);for(let r=c.length-1;r>=1;r--){const n=c[r];for(const r of t){if(n.peerNames.has(r)&&n.originalDependencies.has(r))continue;const i=n.dependencies.get(r);if(i){s.debugLevel>=2&&(f=`- peer dependency ${S(i.locator)} from parent ${S(n.locator)} was not hoisted to ${g}`),e=!1;break}t.delete(r)}if(!e)break}p=e}if(p){let e=!1;const t=n.get(l.name);if(e=!t||t.ident===l.ident,s.debugLevel>=2&&!e&&(f=`- filled by: ${S(t.locator)} at ${g}`),e)for(let t=1;t=2&&(f=`- filled by: ${S(n.locator)} at ${S(r.locator)}`);break}}p=e}if(p){const r=c[c.length-1];r.dependencies.delete(l.name),r.hoistedDependencies.set(l.name,l),r.reasons.delete(l.name);const n=t.dependencies.get(l.name);if(n)for(const e of l.references)n.references.add(e);else t.ident!==l.ident&&(t.dependencies.set(l.name,l),h.add(l));if(s.check){const r=B(e);if(r)throw new Error(`${r}, after hoisting ${[t,...c,l].map(e=>S(e.locator)).join("→")}:\n${k(e)}`)}}else if(s.debugLevel>=2){c[c.length-1].reasons.set(l.name,f)}if(!p&&u.indexOf(l.locator)<0){const e=I(c[c.length-1],l);A.add(e);for(const t of y(l))a([...c,e],[...u,l.locator],t,h);A.delete(e)}};let c,u=new Set(t.dependencies.values());do{c=u,u=new Set;for(const e of c){if(t.peerNames.has(e.name)||e.locator===t.locator)continue;const r=I(t,e);A.add(r);for(const n of y(e))n.locator!==e.locator&&a([t,r],[t.locator,e.locator],n,u);A.delete(r)}}while(u.size>0)},B=e=>{const t=[],r=new Set,n=new Set,i=(e,o)=>{if(r.has(e))return;if(r.add(e),n.has(e))return;const s=new Map(o);for(const t of e.dependencies.values())e.peerNames.has(t.name)||s.set(t.name,t);for(const r of e.originalDependencies.values()){const i=s.get(r.name),A=()=>""+Array.from(n).concat([e]).map(e=>S(e.locator)).join("→");if(e.peerNames.has(r.name)){const e=o.get(r.name);e!==i&&t.push(`${A()} - broken peer promise: expected ${i.locator} but found ${e?e.locator:e}`)}else i?i.ident!==r.ident&&t.push(`${A()} - broken require promise for ${r.name}: expected ${r.ident}, but found: ${i.ident}`):t.push(`${A()} - broken require promise: no required dependency ${r.locator} found`)}n.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||i(t,s);n.delete(e)};return i(e,e.dependencies),t.join("\n")},Q=e=>{const{identName:t,name:r,reference:n,peerNames:i}=e,o={name:r,references:new Set([n]),locator:d(t,n),ident:C(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(i),reasons:new Map,decoupled:!0},s=new Map([[e,o]]),A=(e,t)=>{let r=s.get(e);const n=!!r;if(!r){const{name:t,identName:n,reference:i,peerNames:o}=e;r={name:t,references:new Set([i]),locator:d(n,i),ident:C(n,i),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0},s.set(e,r)}if(t.dependencies.set(e.name,r),t.originalDependencies.set(e.name,r),n){const e=new Set,t=r=>{if(!e.has(r)){e.add(r),r.decoupled=!1;for(const e of r.dependencies.values())r.peerNames.has(e.name)||t(e)}};t(r)}else for(const t of e.dependencies)A(t,r)};for(const t of e.dependencies)A(t,o);return o},v=e=>e.substring(0,e.indexOf("@",1)),D=e=>{const t={name:e.name,identName:v(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(e,t,i)=>{const o=r.has(e);let s;if(t===e)s=i;else{const{name:t,references:r,locator:n}=e;s={name:t,identName:v(n),references:r,dependencies:new Set}}if(i.dependencies.add(s),!o){r.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(t,e,s);r.delete(e)}};for(const r of e.dependencies.values())n(r,e,t);return t},b=e=>{const t=new Map,r=new Set([e]),n=(e,i)=>{const o=!!r.has(i),s=(e=>`${e.name}@${e.ident}`)(i);let A=t.get(s);if(A||(A=new Set,t.set(s,A)),A.add(e.ident),!o){r.add(i);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(i,e)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(e,t);return t},S=e=>{const t=e.indexOf("@",1),r=e.substring(0,t),n=e.substring(t+1);if("workspace:."===n)return".";if(n){const e=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")?`v:${r}@${e}`:`${r}@${e}`}return""+r},k=e=>{let t=0;const r=(e,n,i="")=>{if(t>5e4||n.has(e))return"";t++;const o=Array.from(e.dependencies.values());let s="";n.add(e);for(let t=0;t":"")+(c!==A.name?`a:${A.name}:`:"")+S(A.locator)+(a?" "+a:"")}\n`,s+=r(A,n,`${i}${t5e4?"\nTree is too large, part of the tree has been dunped\n":"")};var x;!function(e){e.HARD="HARD",e.SOFT="SOFT"}(x||(x={}));const F=(0,n.Zu)("node_modules"),M=(e,t)=>{const r=R(e,t),n=E(r);return K(e,n,t)},N=e=>`${e.name}@${e.reference}`;const R=(e,t)=>{const r=e.getDependencyTreeRoots(),n=e.getPackageInformation(e.topLevel);if(null===n)throw new Error("Assertion failed: Expected the top-level package to have been registered");const i=e.findPackageLocator(n.packageLocation);if(null===i)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");for(const e of r)e.name===i.name&&e.reference===i.reference||n.packageDependencies.set(e.name+"$wsroot$",e.reference);const o={name:i.name,identName:i.name,reference:i.reference,peerNames:n.packagePeers,dependencies:new Set},s=new Map,a=(r,n,c,u,l)=>{const h=((e,t)=>`${N(t)}:${e}`)(r,c);let g=s.get(h);const f=!!g;f||c.name!==i.name||c.reference!==i.reference||(g=o,s.set(h,o)),g||(g={name:r,identName:c.name,reference:c.reference,dependencies:new Set,peerNames:n.packagePeers},s.set(h,g)),u.dependencies.add(g);const p=t.pnpifyFs||!function(e){let t=A.structUtils.parseDescriptor(e);return A.structUtils.isVirtualDescriptor(t)&&(t=A.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("portal:")}(h);if(!f&&p)for(const[t,r]of n.packageDependencies)if(null!==r&&!g.peerNames.has(t)){const i=e.getLocator(t,r),o=e.getLocator(t.replace("$wsroot$",""),r),s=e.getPackageInformation(o);if(null===s)throw new Error("Assertion failed: Expected the package to have been registered");if(i.name===c.name&&i.reference===c.reference)continue;a(t,s,i,g,n)}};return a(i.name,n,i,o,n),o};const K=(e,t,r)=>{const i=new Map,o=(t,i)=>{const{linkType:o,target:s}=function(e,t,r){const i=t.getLocator(e.name.replace("$wsroot$",""),e.reference),o=t.getPackageInformation(i);if(null===o)throw new Error("Assertion failed: Expected the package to be registered");let s,A;if(r.pnpifyFs)A=n.cS.toPortablePath(o.packageLocation),s=x.SOFT;else{const r=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(o.packageLocation):o.packageLocation;A=n.cS.toPortablePath(r||o.packageLocation),s=o.linkType}return{linkType:s,target:A}}(t,e,r);return{locator:N(t),target:s,linkType:o,aliases:i}},s=e=>{const[t,r]=e.split("/");return r?{scope:(0,n.Zu)(t),name:(0,n.Zu)(r)}:{scope:null,name:(0,n.Zu)(t)}},a=new Set,c=(e,t)=>{if(!a.has(e)){a.add(e);for(const r of e.dependencies){if(r===e)continue;const a=Array.from(r.references).sort(),u={name:r.identName,reference:a[0]},{name:l,scope:h}=s(r.name),g=h?[h,l]:[l],f=n.y1.join(t,F),p=n.y1.join(f,...g),d=o(u,a.slice(1));if(!r.name.endsWith("$wsroot$")){const e=i.get(p);if(e){if(e.dirList)throw new Error(`Assertion failed: ${p} cannot merge dir node with leaf node`);{const t=A.structUtils.parseLocator(e.locator),r=A.structUtils.parseLocator(d.locator);if(e.linkType!==d.linkType)throw new Error(`Assertion failed: ${p} cannot merge nodes with different link types`);if(t.identHash!==r.identHash)throw new Error(`Assertion failed: ${p} cannot merge nodes with different idents ${A.structUtils.stringifyLocator(t)} and ${A.structUtils.stringifyLocator(r)}`);d.aliases=[...d.aliases,...e.aliases,A.structUtils.parseLocator(e.locator).reference]}}i.set(p,d);const t=p.split("/"),r=t.indexOf(F);let o=t.length-1;for(;r>=0&&o>r;){const e=n.cS.toPortablePath(t.slice(0,o).join(n.y1.sep)),r=(0,n.Zu)(t[o]),s=i.get(e);if(s){if(s.dirList){if(s.dirList.has(r))break;s.dirList.add(r)}}else i.set(e,{dirList:new Set([r])});o--}}c(r,d.linkType===x.SOFT?d.target:p)}}},u=o({name:t.name,reference:Array.from(t.references)[0]},[]),l=u.target;return i.set(l,u),c(t,l),i};var L=r(88563),T=r(58069),P=r.n(T),U=r(17278),_=r(35747),O=r.n(_);const j="node_modules";class Y extends p.AbstractPnpInstaller{constructor(){super(...arguments),this.manifestCache=new Map}async getBuildScripts(e,t,r){return[]}async transformPackage(e,t,r,n,i){return r.packageFs}async finalizeInstallWithPnp(e){if("node-modules"!==this.opts.project.configuration.get("nodeLinker"))return;const t=new u.p({baseFs:new l.A({libzip:await(0,g.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})});let r=await G(this.opts.project);if(null===r){const e=this.opts.project.configuration.get("bstatePath");await h.xfs.existsPromise(e)&&await h.xfs.unlinkPromise(e),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map}}const s=(0,L.oC)(e,this.opts.project.cwd,t),a=(e=>{const t=new Map;for(const[r,n]of e.entries())if(!n.dirList){let e=t.get(n.locator);e||(e={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,e)),e.locations.push(r)}for(const e of t.values())e.locations=e.locations.sort((e,t)=>{const r=e.split(n.y1.delimiter).length,i=t.split(n.y1.delimiter).length;return r!==i?i-r:t.localeCompare(e)});return t})(M(s,{pnpifyFs:!1}));await async function(e,t,{baseFs:r,project:i,report:s,loadManifest:A}){const a=n.y1.join(i.cwd,j),{locationTree:u,binSymlinks:l}=function(e,t){const r=new Map([...e]),i=new Map([...t]);for(const[t,r]of e){const e=n.y1.join(t,j);if(!h.xfs.existsSync(e)){r.children.delete(j);for(const t of i.keys())null!==n.y1.contains(e,t)&&i.delete(t)}}return{locationTree:r,binSymlinks:i}}(e.locationTree,e.binSymlinks),g=q(t,{skipPrefix:i.cwd}),f=[],p=async({srcDir:e,dstDir:t,linkType:i})=>{const s=(async()=>{try{i===o.U.SOFT?(await h.xfs.mkdirpPromise(n.y1.dirname(t)),await z(n.y1.resolve(e),t)):await W(t,e,{baseFs:r})}catch(r){throw r.message=`While persisting ${e} -> ${t} ${r.message}`,r}finally{m.tick()}})().then(()=>f.splice(f.indexOf(s),1));f.push(s),f.length>4&&await Promise.race(f)},d=async(e,t,r)=>{const i=(async()=>{const i=async(e,t,r)=>{try{r&&r.innerLoop||await h.xfs.mkdirpPromise(t);const o=await h.xfs.readdirPromise(e,{withFileTypes:!0});for(const s of o){if(!(r&&r.innerLoop||".bin"!==s.name))continue;const o=n.y1.join(e,s.name),A=n.y1.join(t,s.name);s.isDirectory()?(s.name!==j||r&&r.innerLoop)&&(await h.xfs.mkdirpPromise(A),await i(o,A,{innerLoop:!0})):await h.xfs.copyFilePromise(o,A,O().constants.COPYFILE_FICLONE)}}catch(n){throw r&&r.innerLoop||(n.message=`While cloning ${e} -> ${t} ${n.message}`),n}finally{r&&r.innerLoop||m.tick()}};await i(e,t,r)})().then(()=>f.splice(f.indexOf(i),1));f.push(i),f.length>4&&await Promise.race(f)},C=async(e,t,r)=>{if(r)for(const[i,o]of t.children){const t=r.children.get(i);await C(n.y1.join(e,i),o,t)}else t.children.has(j)&&await J(n.y1.join(e,j),{contentsOnly:!1}),await J(e,{contentsOnly:e===a})};for(const[e,t]of u){const r=g.get(e);for(const[i,o]of t.children){if("."===i)continue;const t=r?r.children.get(i):r;await C(n.y1.join(e,i),o,t)}}const E=async(e,t,r)=>{if(r){X(t.locator,r.locator)||await J(e,{contentsOnly:t.linkType===o.U.HARD});for(const[i,o]of t.children){const t=r.children.get(i);await E(n.y1.join(e,i),o,t)}}else t.children.has(j)&&await J(n.y1.join(e,j),{contentsOnly:!0}),await J(e,{contentsOnly:t.linkType===o.U.HARD})};for(const[e,t]of g){const r=u.get(e);for(const[i,o]of t.children){if("."===i)continue;const t=r?r.children.get(i):r;await E(n.y1.join(e,i),o,t)}}const I=[];for(const[r,{locations:o}]of e.locatorMap.entries())for(const e of o){const{locationRoot:o,segments:s}=H(e,{skipPrefix:i.cwd});let A=g.get(o),a=o;if(A){for(const e of s)if(a=n.y1.join(a,e),A=A.children.get(e),!A)break;if(A&&!X(A.locator,r)){const e=t.get(A.locator),r=e.target,n=a,i=e.linkType;r!==n&&I.push({srcDir:r,dstDir:n,linkType:i})}}}for(const[e,{locations:r}]of t.entries())for(const o of r){const{locationRoot:r,segments:s}=H(o,{skipPrefix:i.cwd});let A=u.get(r),a=g.get(r),c=r;const l=t.get(e),h=l.target,f=o;if(h===f)continue;const p=l.linkType;for(const e of s)a=a.children.get(e);if(A){for(const e of s)if(c=n.y1.join(c,e),A=A.children.get(e),!A){I.push({srcDir:h,dstDir:f,linkType:p});break}}else I.push({srcDir:h,dstDir:f,linkType:p})}const m=c.yG.progressViaCounter(I.length),y=s.reportProgress(m);try{const e=new Map;for(const t of I)t.linkType!==o.U.SOFT&&e.has(t.srcDir)||(e.set(t.srcDir,t.dstDir),await p({...t}));await Promise.all(f),f.length=0;for(const t of I){const r=e.get(t.srcDir);t.linkType!==o.U.SOFT&&t.dstDir!==r&&await d(r,t.dstDir)}await Promise.all(f),await h.xfs.mkdirpPromise(a);const r=await async function(e,t,r,{loadManifest:i}){const o=new Map;for(const[t,{locations:r}]of e){const e=V(t)?null:await i(r[0]),s=new Map;if(e)for(const[t,i]of e.bin){const e=n.y1.join(r[0],i);""!==i&&h.xfs.existsSync(e)&&s.set(t,i)}o.set(t,s)}const s=new Map,A=(e,t,i)=>{const a=new Map,c=n.y1.contains(r,e);if(i.locator&&null!==c){const t=o.get(i.locator);for(const[r,i]of t){const t=n.y1.join(e,n.cS.toPortablePath(i));a.set((0,n.Zu)(r),t)}for(const[t,r]of i.children){const i=n.y1.join(e,t),o=A(i,i,r);o.size>0&&s.set(e,new Map([...s.get(e)||new Map,...o]))}}else for(const[r,o]of i.children){const i=A(n.y1.join(e,r),t,o);for(const[e,t]of i)a.set(e,t)}return a};for(const[e,r]of t){const t=A(e,e,r);t.size>0&&s.set(e,new Map([...s.get(e)||new Map,...t]))}return s}(t,g,i.cwd,{loadManifest:A});await async function(e,t){for(const r of e.keys())if(!t.has(r)){const e=n.y1.join(r,j,".bin");await h.xfs.removePromise(e)}for(const[r,i]of t){const t=n.y1.join(r,j,".bin"),o=e.get(r)||new Map;await h.xfs.mkdirpPromise(t);for(const e of o.keys())i.has(e)||(await h.xfs.removePromise(n.y1.join(t,e)),"win32"===process.platform&&await h.xfs.removePromise(n.y1.join(t,(0,n.Zu)(e+".cmd"))));for(const[e,r]of i){const i=o.get(e),s=n.y1.join(t,e);i!==r&&("win32"===process.platform?await P()(n.cS.fromPortablePath(r),n.cS.fromPortablePath(s),{createPwshFile:!1}):(await h.xfs.removePromise(s),await z(r,s),await h.xfs.chmodPromise(r,493)))}}}(l,r),await async function(e,t,r){let i="";i+="# Warning: This file is automatically generated. Removing it is fine, but will\n",i+="# cause your node_modules installation to become invalidated.\n",i+="\n",i+="__metadata:\n",i+=" version: 1\n";const o=Array.from(t.keys()).sort();for(const s of o){const o=t.get(s);i+="\n",i+=JSON.stringify(s)+":\n",i+=" locations:\n";let A=!1;for(const t of o.locations){const r=n.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);i+=` - ${JSON.stringify(r)}\n`,t===e.cwd&&(A=!0)}if(o.aliases.length>0){i+=" aliases:\n";for(const e of o.aliases)i+=` - ${JSON.stringify(e)}\n`}if(A&&r.size>0){i+=" bin:\n";for(const[t,o]of r){const r=n.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);i+=` ${JSON.stringify(r)}:\n`;for(const[e,r]of o){const o=n.y1.relative(n.y1.join(t,j),r);i+=` ${JSON.stringify(e)}: ${JSON.stringify(o)}\n`}}}}const s=e.cwd,A=n.y1.join(s,j,".yarn-state.yml");await h.xfs.changeFilePromise(A,i,{automaticNewlines:!0})}(i,t,r)}finally{y.stop()}}(r,a,{baseFs:t,project:this.opts.project,report:this.opts.report,loadManifest:this.cachedManifestLoad.bind(this)});const f=[];for(const[e,t]of a.entries()){if(V(e))continue;const r=A.structUtils.parseLocator(e),a={name:A.structUtils.stringifyIdent(r),reference:r.reference};if(null===s.getPackageInformation(a))throw new Error(`Assertion failed: Expected the package to be registered (${A.structUtils.prettyLocator(this.opts.project.configuration,r)})`);const c=n.cS.toPortablePath(t.locations[0]),u=await this.cachedManifestLoad(c),l=await this.getSourceBuildScripts(c,u);l.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(i.b.DISABLED_BUILD_SCRIPTS,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but all build scripts have been disabled."),l.length=0),l.length>0&&t.linkType!==o.U.HARD&&!this.opts.project.tryWorkspaceByLocator(r)&&(this.opts.report.reportWarningOnce(i.b.SOFT_LINK_BUILD,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),l.length=0);const h=this.opts.project.getDependencyMeta(r,u.version);l.length>0&&h&&!1===h.built&&(this.opts.report.reportInfoOnce(i.b.BUILD_DISABLED,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but its build has been explicitly disabled through configuration."),l.length=0),l.length>0&&f.push({buildLocations:t.locations,locatorHash:r.locatorHash,buildDirective:l})}return f}async cachedManifestLoad(e){let t=this.manifestCache.get(e);if(t)return t;try{t=await a.G.find(e)}catch(t){throw t.message=`While loading ${e}: ${t.message}`,t}return this.manifestCache.set(e,t),t}async getSourceBuildScripts(e,t){const r=[],{scripts:i}=t;for(const e of["preinstall","install","postinstall"])i.has(e)&&r.push([s.k.SCRIPT,e]);const o=n.y1.resolve(e,(0,n.Zu)("binding.gyp"));return!i.has("install")&&h.xfs.existsSync(o)&&r.push([s.k.SHELLCODE,"node-gyp rebuild"]),r}}async function G(e,{unrollAliases:t=!1}={}){const r=e.cwd,i=n.y1.join(r,j,".yarn-state.yml");if(!h.xfs.existsSync(i))return null;const s=(0,f.parseSyml)(await h.xfs.readFilePromise(i,"utf8"));if(s.__metadata.version>1)return null;const a=new Map,c=new Map;delete s.__metadata;for(const[e,i]of Object.entries(s)){const s=i.locations.map(e=>n.y1.join(r,e)),u=i.bin;if(u)for(const[e,t]of Object.entries(u)){const i=n.y1.join(r,n.cS.toPortablePath(e)),o=A.miscUtils.getMapWithDefault(c,i);for(const[e,r]of Object.entries(t))o.set((0,n.Zu)(e),n.cS.toPortablePath([i,j,r].join(n.y1.delimiter)))}if(a.set(e,{target:n.LZ.dot,linkType:o.U.HARD,locations:s,aliases:i.aliases||[]}),t&&i.aliases)for(const t of i.aliases){const{scope:r,name:i}=A.structUtils.parseLocator(e),c=A.structUtils.makeLocator(A.structUtils.makeIdent(r,i),t),u=A.structUtils.stringifyLocator(c);a.set(u,{target:n.LZ.dot,linkType:o.U.HARD,locations:s,aliases:[]})}}return{locatorMap:a,binSymlinks:c,locationTree:q(a,{skipPrefix:e.cwd})}}const J=async(e,t)=>{if(e.split(n.y1.sep).indexOf(j)<0)throw new Error("Assertion failed: trying to remove dir that doesn't contain node_modules: "+e);try{if(!t.innerLoop){if((await h.xfs.lstatPromise(e)).isSymbolicLink())return void await h.xfs.unlinkPromise(e)}const r=await h.xfs.readdirPromise(e,{withFileTypes:!0});for(const i of r){const r=n.y1.join(e,(0,n.Zu)(i.name));i.isDirectory()?(i.name!==j||t&&t.innerLoop)&&await J(r,{innerLoop:!0,contentsOnly:!1}):await h.xfs.unlinkPromise(r)}t.contentsOnly||await h.xfs.rmdirPromise(e)}catch(e){if("ENOENT"!==e.code&&"ENOTEMPTY"!==e.code)throw e}},H=(e,{skipPrefix:t})=>{const r=n.y1.contains(t,e);if(null===r)throw new Error(`Assertion failed: Cannot process a path that isn't part of the requested prefix (${e} isn't within ${t})`);const i=r.split(n.y1.sep),o=i.indexOf(j),s=i.slice(0,o).join(n.y1.sep);return{locationRoot:n.y1.join(t,s),segments:i.slice(o)}},q=(e,{skipPrefix:t})=>{const r=new Map;if(null===e)return r;const i=()=>({children:new Map,linkType:o.U.HARD});for(const[s,a]of e.entries()){if(a.linkType===o.U.SOFT){if(null!==n.y1.contains(t,a.target)){const e=A.miscUtils.getFactoryWithDefault(r,a.target,i);e.locator=s,e.linkType=a.linkType}}for(const e of a.locations){const{locationRoot:n,segments:o}=H(e,{skipPrefix:t});let c=A.miscUtils.getFactoryWithDefault(r,n,i);for(let e=0;eh.xfs.symlinkPromise("win32"!==process.platform?n.y1.relative(n.y1.dirname(t),e):e,t,"win32"===process.platform?"junction":void 0),W=async(e,t,{baseFs:r,innerLoop:i})=>{await h.xfs.mkdirpPromise(e);const o=await r.readdirPromise(t,{withFileTypes:!0}),s=async(e,t,i)=>{if(i.isFile()){const n=await r.lstatPromise(t);await r.copyFilePromise(t,e);const i=511&n.mode;420!==i&&await h.xfs.chmodPromise(e,i)}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${await h.xfs.statSync(t).mode.toString(8).padStart(6,"0")})`);{const i=await r.readlinkPromise(t);await z(n.y1.resolve(t,i),e)}}};for(const A of o){const o=n.y1.join(t,(0,n.Zu)(A.name)),a=n.y1.join(e,(0,n.Zu)(A.name));A.isDirectory()?(A.name!==j||i)&&await W(a,o,{baseFs:r,innerLoop:!0}):await s(a,o,A)}};function V(e){let t=A.structUtils.parseDescriptor(e);return A.structUtils.isVirtualDescriptor(t)&&(t=A.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}const X=(e,t)=>{if(!e||!t)return e===t;let r=A.structUtils.parseLocator(e);A.structUtils.isVirtualLocator(r)&&(r=A.structUtils.devirtualizeLocator(r));let n=A.structUtils.parseLocator(t);return A.structUtils.isVirtualLocator(n)&&(n=A.structUtils.devirtualizeLocator(n)),A.structUtils.areLocatorsEqual(r,n)};class Z extends p.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(e){return new $(e)}}class $ extends p.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=new u.p({baseFs:new l.A({libzip:await(0,g.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})}),r=(0,L.oC)(e,this.opts.project.cwd,t),i=M(r,{pnpifyFs:!1}),o=new Map;e.fallbackPool=o;const s=(e,t)=>{const r=A.structUtils.parseLocator(t.locator),n=A.structUtils.stringifyIdent(r);n===e?o.set(e,r.reference):o.set(e,[n,r.reference])},a=n.y1.join(this.opts.project.cwd,n.QS.nodeModules),c=i.get(a);if(void 0===c)throw new Error("Assertion failed: Expected a root junction point");if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(const e of c.dirList){const t=n.y1.join(a,e),r=i.get(t);if(void 0===r)throw new Error("Assertion failed: Expected the child to have been registered");if("target"in r)s(e,r);else for(const o of r.dirList){const r=n.y1.join(t,o),A=i.get(r);if(void 0===A)throw new Error("Assertion failed: Expected the subchild to have been registered");if(!("target"in A))throw new Error("Assertion failed: Expected the leaf junction to be a package");s(`${e}/${o}`,A)}}return super.finalizeInstallWithPnp(e)}}const ee=e=>n.y1.join(e.cwd,".pnp.js"),te={linkers:[class{supportsPackage(e,t){return"node-modules"===t.project.configuration.get("nodeLinker")}async findPackageLocation(e,t){const r=t.project.tryWorkspaceByLocator(e);if(r)return r.cwd;const n=await G(t.project,{unrollAliases:!0});if(null===n)throw new U.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");const i=n.locatorMap.get(A.structUtils.stringifyLocator(e));if(!i)throw new U.UsageError(`Couldn't find ${A.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);return i.locations[0]}async findPackageLocator(e,t){const r=await G(t.project,{unrollAliases:!0});if(null===r)return null;const{locationRoot:i,segments:o}=H(n.y1.resolve(e),{skipPrefix:t.project.cwd});let s=r.locationTree.get(i);if(!s)return null;let a=s.locator;for(const e of o){if(s=s.children.get(e),!s)break;a=s.locator||a}return A.structUtils.parseLocator(a)}makeInstaller(e){return new Y({...e,skipIncompatiblePackageLinking:!0})}},Z]}},94573:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>F});var n=r(27122),i=r(36370),o=r(95397),s=r(40376),A=r(84132),a=r(35691),c=r(15815),u=r(92659),l=r(86717),h=r(17278),g=r(85622),f=r.n(g),p=r(53887),d=r.n(p),C=r(31669);class E extends o.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t}=await s.I.find(e,this.context.cwd),r=void 0!==this.fields?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,i=[];let o=!1;const g=await c.P.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async n=>{for(const s of this.packages){let c;if("."===s){const e=t.topLevelWorkspace;if(!e.manifest.name)throw new h.UsageError("Missing 'name' field in "+f().join(e.cwd,"package.json"));c=A.structUtils.makeDescriptor(e.manifest.name,"unknown")}else c=A.structUtils.parseDescriptor(s);const g=l.npmHttpUtils.getIdentUrl(c);let p;try{p=I(await l.npmHttpUtils.get(g,{configuration:e,ident:c,json:!0}))}catch(e){throw"HTTPError"!==e.name?e:404===e.response.statusCode?new a.lk(u.b.EXCEPTION,"Package not found"):new a.lk(u.b.EXCEPTION,e.toString())}const C=Object.keys(p.versions).sort(d().compareLoose);let E=p["dist-tags"].latest||C[C.length-1];if(d().validRange(c.range)){const t=d().maxSatisfying(C,c.range);null!==t?E=t:(n.reportWarning(u.b.UNNAMED,`Unmet range ${A.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),o=!0)}else"unknown"!==c.range&&(n.reportWarning(u.b.UNNAMED,`Invalid range ${A.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),o=!0);const m=p.versions[E],y={...p,...m,version:E,versions:C};let w;if(null!==r){w={};for(const t of r){const r=y[t];void 0!==r?w[t]=r:(n.reportWarning(u.b.EXCEPTION,`The '${t}' field doesn't exist inside ${A.structUtils.prettyIdent(e,c)}'s informations`),o=!0)}}else this.json||(delete y.dist,delete y.readme,delete y.users),w=y;n.reportJson(w),this.json||i.push(w)}});C.inspect.styles.name="cyan";for(const e of i)(e!==i[0]||o)&&this.context.stdout.write("\n"),this.context.stdout.write((0,C.inspect)(e,{depth:1/0,colors:!0,compact:!1})+"\n");return g.exitCode()}}function I(e){if(Array.isArray(e)){const t=[];for(let r of e)r=I(r),r&&t.push(r);return t}if("object"==typeof e&&null!==e){const t={};for(const r of Object.keys(e)){if(r.startsWith("_"))continue;const n=I(e[r]);n&&(t[r]=n)}return t}return e||null}E.usage=h.Command.Usage({description:"show information about a package",details:"\n This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]}),(0,i.gn)([h.Command.Rest()],E.prototype,"packages",void 0),(0,i.gn)([h.Command.String("-f,--fields")],E.prototype,"fields",void 0),(0,i.gn)([h.Command.Boolean("--json")],E.prototype,"json",void 0),(0,i.gn)([h.Command.Path("npm","info")],E.prototype,"execute",null);var m=r(9494),y=r.n(m);class w extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=y().createPromptModule({input:this.context.stdin,output:this.context.stdout}),r=await B({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.P.start({configuration:e,stdout:this.context.stdout},async i=>{const o=await async function(e,{registry:t,report:r}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};r.reportInfo(u.b.UNNAMED,"Logging in to "+t);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(u.b.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0);r.reportSeparator();const{username:i,password:o}=await e([{type:"input",name:"username",message:"Username:",validate:e=>Q(e,"Username")},{type:"password",name:"password",message:n?"Token:":"Password:",validate:e=>Q(e,"Password")}]);return r.reportSeparator(),{name:i,password:o}}(t,{registry:r,report:i}),s="/-/user/org.couchdb.user:"+encodeURIComponent(o.name),A=await l.npmHttpUtils.put(s,o,{attemptedAs:o.name,configuration:e,registry:r,json:!0,authType:l.npmHttpUtils.AuthType.NO_AUTH});return await async function(e,t,{configuration:r}){return await n.VK.updateHomeConfiguration({npmRegistries:(r={})=>({...r,[e]:{...r[e],npmAuthToken:t}})})}(r,A.token,{configuration:e}),i.reportInfo(u.b.UNNAMED,"Successfully logged in")})).exitCode()}}async function B({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?l.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?l.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?l.npmConfigUtils.getPublishRegistry((await(0,o.openWorkspace)(r,n)).manifest,{configuration:r}):l.npmConfigUtils.getDefaultRegistry({configuration:r})}function Q(e,t){return e.length>0||t+" is required"}w.usage=h.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]}),(0,i.gn)([h.Command.String("-s,--scope")],w.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],w.prototype,"publish",void 0),(0,i.gn)([h.Command.Path("npm","login")],w.prototype,"execute",null);class v extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1,this.all=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.all?null:await B({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.P.start({configuration:e,stdout:this.context.stdout},async e=>(await async function(e){return await n.VK.updateHomeConfiguration({npmRegistries:(t={})=>null===e?void 0:{...t,[e]:void 0}})}(t),e.reportInfo(u.b.UNNAMED,"Successfully logged out of "+(null===t?"all registries":t))))).exitCode()}}v.usage=h.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the registry linked to the @my-scope registry","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of the publish registry for the current package linked to the @my-scope registry","yarn npm logout --publish --scope my-scope"],["Logout of all registries","yarn npm logout --all"]]}),(0,i.gn)([h.Command.String("-s,--scope")],v.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],v.prototype,"publish",void 0),(0,i.gn)([h.Command.Boolean("-A,--all")],v.prototype,"all",void 0),(0,i.gn)([h.Command.Path("npm","logout")],v.prototype,"execute",null);var D=r(5973),b=r(76417),S=r(10129);class k extends o.BaseCommand{constructor(){super(...arguments),this.tag="latest",this.tolerateRepublish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await s.I.find(e,this.context.cwd);if(!r)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);if(r.manifest.private)throw new h.UsageError("Private workspaces cannot be published");if(null===r.manifest.name||null===r.manifest.version)throw new h.UsageError("Workspaces must have valid names and versions to be published on an external registry");await t.restoreInstallState();const i=r.manifest.name,g=r.manifest.version,f=l.npmConfigUtils.getPublishRegistry(r.manifest,{configuration:e});return(await c.P.start({configuration:e,stdout:this.context.stdout},async t=>{if(this.tolerateRepublish)try{const r=await l.npmHttpUtils.get(l.npmHttpUtils.getIdentUrl(i),{configuration:e,registry:f,ident:i,json:!0});if(!Object.prototype.hasOwnProperty.call(r,"versions"))throw new a.lk(u.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(r.versions,g))return void t.reportWarning(u.b.UNNAMED,`Registry already knows about version ${g}; skipping.`)}catch(e){if("HTTPError"!==e.name)throw e;if(404!==e.response.statusCode)throw new a.lk(u.b.NETWORK_ERROR,`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`)}await D.packUtils.prepareForPack(r,{report:t},async()=>{const n=await D.packUtils.genPackList(r);for(const e of n)t.reportInfo(null,e);const o=await D.packUtils.genPackStream(r,n),s=await A.miscUtils.bufferStream(o),a=await async function(e,t,{access:r,tag:n,registry:i}){const o=e.project.configuration,s=e.manifest.name,a=e.manifest.version,c=A.structUtils.stringifyIdent(s),u=(0,b.createHash)("sha1").update(t).digest("hex"),l=S.Sd(t).toString();void 0===r&&(r=e.manifest.publishConfig&&"string"==typeof e.manifest.publishConfig.access?e.manifest.publishConfig.access:null!==o.get("npmPublishAccess")?o.get("npmPublishAccess"):s.scope?"restricted":"public");const h=await D.packUtils.genPackageManifest(e),g=`${c}-${a}.tgz`,f=new URL(`${c}/-/${g}`,i);return{_id:c,_attachments:{[g]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}},name:c,access:r,"dist-tags":{[n]:a},versions:{[a]:{...h,_id:`${c}@${a}`,name:c,version:a,dist:{shasum:u,integrity:l,tarball:f.toString()}}}}}(r,s,{access:this.access,tag:this.tag,registry:f});try{await l.npmHttpUtils.put(l.npmHttpUtils.getIdentUrl(i),a,{configuration:e,registry:f,ident:i,json:!0})}catch(e){if("HTTPError"!==e.name)throw e;{const r=e.response.body&&e.response.body.error?e.response.body.error:`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`;t.reportError(u.b.NETWORK_ERROR,r)}}}),t.hasErrors()||t.reportInfo(u.b.UNNAMED,"Package archive published")})).exitCode()}}k.usage=h.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]}),(0,i.gn)([h.Command.String("--access")],k.prototype,"access",void 0),(0,i.gn)([h.Command.String("--tag")],k.prototype,"tag",void 0),(0,i.gn)([h.Command.Boolean("--tolerate-republish")],k.prototype,"tolerateRepublish",void 0),(0,i.gn)([h.Command.Path("npm","publish")],k.prototype,"execute",null);class x extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);let t;t=this.scope&&this.publish?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e}):this.publish?l.npmConfigUtils.getPublishRegistry((await(0,o.openWorkspace)(e,this.context.cwd)).manifest,{configuration:e}):l.npmConfigUtils.getDefaultRegistry({configuration:e});return(await c.P.start({configuration:e,stdout:this.context.stdout},async r=>{try{const n=await l.npmHttpUtils.get("/-/whoami",{configuration:e,registry:t,authType:l.npmHttpUtils.AuthType.ALWAYS_AUTH,json:!0});r.reportInfo(u.b.UNNAMED,n.username)}catch(e){if("HTTPError"!==e.name)throw e;401===e.response.statusCode||403===e.response.statusCode?r.reportError(u.b.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired"):r.reportError(u.b.AUTHENTICATION_INVALID,e.toString())}})).exitCode()}}x.usage=h.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]}),(0,i.gn)([h.Command.String("-s,--scope")],x.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],x.prototype,"publish",void 0),(0,i.gn)([h.Command.Path("npm","whoami")],x.prototype,"execute",null);const F={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:n.a2.STRING,default:null}},commands:[E,w,v,k,x]}},86717:(e,t,r)=>{"use strict";r.r(t),r.d(t,{npmConfigUtils:()=>n,npmHttpUtils:()=>i,default:()=>T});var n={};r.r(n),r.d(n,{RegistryType:()=>c,getAuthConfiguration:()=>y,getDefaultRegistry:()=>E,getPublishRegistry:()=>d,getRegistryConfiguration:()=>I,getScopeConfiguration:()=>m,getScopeRegistry:()=>C,normalizeRegistry:()=>p});var i={};r.r(i),r.d(i,{AuthType:()=>u,get:()=>B,getIdentUrl:()=>w,put:()=>Q});var o=r(27122),s=r(84132),A=r(53887),a=r.n(A);var c,u,l=r(35691),h=r(92659),g=r(9494),f=r.n(g);function p(e){return e.replace(/\/$/,"")}function d(e,{configuration:t}){return e.publishConfig&&e.publishConfig.registry?p(e.publishConfig.registry):e.name?C(e.name.scope,{configuration:t,type:c.PUBLISH_REGISTRY}):E({configuration:t,type:c.PUBLISH_REGISTRY})}function C(e,{configuration:t,type:r=c.FETCH_REGISTRY}){const n=m(e,{configuration:t});if(null===n)return E({configuration:t,type:r});const i=n.get(r);return null===i?E({configuration:t,type:r}):p(i)}function E({configuration:e,type:t=c.FETCH_REGISTRY}){const r=e.get(t);return p(null!==r?r:e.get(c.FETCH_REGISTRY))}function I(e,{configuration:t}){const r=t.get("npmRegistries"),n=r.get(e);if(void 0!==n)return n;const i=r.get(e.replace(/^[a-z]+:/,""));return void 0!==i?i:null}function m(e,{configuration:t}){if(null===e)return null;const r=t.get("npmScopes").get(e);return r||null}function y(e,{configuration:t,ident:r}){const n=r&&m(r.scope,{configuration:t});if((null==n?void 0:n.get("npmAuthIdent"))||(null==n?void 0:n.get("npmAuthToken")))return n;return I(e,{configuration:t})||t}function w(e){return e.scope?`/@${e.scope}%2f${e.name}`:"/"+e.name}async function B(e,{configuration:t,headers:r,ident:n,authType:i,registry:o,...A}){if(n&&void 0===o&&(o=C(n.scope,{configuration:t})),n&&n.scope&&void 0===i&&(i=u.BEST_EFFORT),"string"!=typeof o)throw new Error("Assertion failed: The registry should be a string");const a=v(o,{authType:i,configuration:t,ident:n});let c;a&&(r={...r,authorization:a});try{c=new URL(e)}catch(t){c=new URL(o+e)}try{return await s.httpUtils.get(c.href,{configuration:t,headers:r,...A})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (as ${await D(o,r,{configuration:t})})`)}}async function Q(e,t,{attemptedAs:r,configuration:n,headers:i,ident:o,authType:A=u.ALWAYS_AUTH,registry:a,...c}){if(o&&void 0===a&&(a=C(o.scope,{configuration:n})),"string"!=typeof a)throw new Error("Assertion failed: The registry should be a string");const g=v(a,{authType:A,configuration:n,ident:o});g&&(i={...i,authorization:g});try{return await s.httpUtils.put(a+e,t,{configuration:n,headers:i,...c})}catch(o){if(!function(e){if("HTTPError"!==e.name)return!1;try{return e.response.headers["www-authenticate"].split(/,\s*/).map(e=>e.toLowerCase()).includes("otp")}catch(e){return!1}}(o))throw"HTTPError"!==o.name||401!==o.response.statusCode&&403!==o.response.statusCode?o:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?"as "+await D(a,i,{configuration:n}):"attempted as "+r})`);const A=await async function(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";const e=f().createPromptModule(),{otp:t}=await e({type:"input",name:"otp",message:"One-time password:",validate:e=>e.length>0||"One-time password is required"});return t}(),u={...i,...b(A)};try{return await s.httpUtils.put(`${a}${e}`,t,{configuration:n,headers:u,...c})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?"as "+await D(a,u,{configuration:n}):"attempted as "+r})`)}}}function v(e,{authType:t=u.CONFIGURATION,configuration:r,ident:n}){const i=y(e,{configuration:r,ident:n}),o=function(e,t){switch(t){case u.CONFIGURATION:return e.get("npmAlwaysAuth");case u.BEST_EFFORT:case u.ALWAYS_AUTH:return!0;case u.NO_AUTH:return!1;default:throw new Error("Unreachable")}}(i,t);if(!o)return null;if(i.get("npmAuthToken"))return"Bearer "+i.get("npmAuthToken");if(i.get("npmAuthIdent"))return"Basic "+i.get("npmAuthIdent");if(o&&t!==u.BEST_EFFORT)throw new l.lk(h.b.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}async function D(e,t,{configuration:r}){if(void 0===t||void 0===t.authorization)return"an anonymous user";try{return(await s.httpUtils.get(new URL(e+"/-/whoami").href,{configuration:r,headers:t})).username}catch(e){return"an unknown user"}}function b(e){return{"npm-otp":e}}!function(e){e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"}(c||(c={})),function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"}(u||(u={}));var S=r(78835);class k{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const r=new S.URL(e.reference);return!!a().valid(r.pathname)&&!r.searchParams.has("__archiveUrl")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote registry"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let r;try{r=await B(k.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){r=await B(k.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await s.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:r}){let n=C(e.scope,{configuration:r});const i=k.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),(t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"))===n+i||t===n+i.replace(/%2f/g,"/")}static getLocatorUrl(e){const t=a().clean(e.reference.slice("npm:".length));if(null===t)throw new l.lk(h.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${w(e)}/-/${e.name}-${t}.tgz`}}var x=r(46611),F=r(32485);const M=s.structUtils.makeIdent(null,"node-gyp"),N=/\b(node-gyp|prebuild-install)\b/;var R=r(52779);const K={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.a2.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:o.a2.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:o.a2.SECRET,default:null}},L={npmPublishRegistry:{description:"Registry to push packages to",type:o.a2.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.a2.STRING,default:"https://registry.yarnpkg.com"}},T={configuration:{...K,...L,npmScopes:{description:"Settings per package scope",type:o.a2.MAP,valueDefinition:{description:"",type:o.a2.SHAPE,properties:{...K,...L}}},npmRegistries:{description:"Settings per registry",type:o.a2.MAP,normalizeKeys:p,valueDefinition:{description:"",type:o.a2.SHAPE,properties:{...K}}}},fetchers:[class{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r,params:n}=s.structUtils.parseRange(e.reference);return!!a().valid(r)&&(null!==n&&"string"==typeof n.__archiveUrl)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){const{params:r}=s.structUtils.parseRange(e.reference);if(null===r||"string"!=typeof r.__archiveUrl)throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");const n=await B(r.__archiveUrl,{configuration:t.project.configuration,ident:e});return await s.tgzUtils.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}},k],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!s.structUtils.tryParseDescriptor(e.range.slice("npm:".length),!0)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){const r=s.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return t.resolver.getResolutionDependencies(r,t)}async getCandidates(e,t,r){const n=s.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return await r.resolver.getCandidates(n,t,r)}resolve(e,t){throw new Error("Unreachable")}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!a().validRange(e.range.slice("npm:".length))}supportsLocator(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r}=s.structUtils.parseRange(e.reference);return!!a().valid(r)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await B(w(e),{configuration:r.project.configuration,ident:e,json:!0}),o=Object.keys(i.versions).filter(e=>a().satisfies(e,n));return o.sort((e,t)=>-a().compare(e,t)),o.map(t=>{const n=s.structUtils.makeLocator(e,"npm:"+t),o=i.versions[t].dist.tarball;return k.isConventionalTarballUrl(n,o,{configuration:r.project.configuration})?n:s.structUtils.bindLocator(n,{__archiveUrl:o})})}async resolve(e,t){const{selector:r}=s.structUtils.parseRange(e.reference),n=a().clean(r);if(null===n)throw new l.lk(h.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");const i=await B(w(e),{configuration:t.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"versions"))throw new l.lk(h.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(i.versions,n))throw new l.lk(h.b.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);const o=new x.G;if(o.load(i.versions[n]),!o.dependencies.has(M.identHash)&&!o.peerDependencies.has(M.identHash))for(const r of o.scripts.values())if(r.match(N)){o.dependencies.set(M.identHash,s.structUtils.makeDescriptor(M,"latest")),t.report.reportWarning(h.b.NODE_GYP_INJECTED,s.structUtils.prettyLocator(t.project.configuration,e)+": Implicit dependencies on node-gyp are discouraged");break}return"string"==typeof o.raw.deprecated&&t.report.reportWarning(h.b.DEPRECATED_PACKAGE,`${s.structUtils.prettyLocator(t.project.configuration,e)} is deprecated: ${o.raw.deprecated}`),{...e,version:n,languageName:"node",linkType:F.U.HARD,dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!R.c.test(e.range.slice("npm:".length))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await B(w(e),{configuration:r.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"dist-tags"))throw new l.lk(h.b.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');const o=i["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new l.lk(h.b.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);const A=o[n],a=s.structUtils.makeLocator(e,"npm:"+A),c=i.versions[A].dist.tarball;return k.isConventionalTarballUrl(a,c,{configuration:r.project.configuration})?[a]:[s.structUtils.bindLocator(a,{__archiveUrl:c})]}async resolve(e,t){throw new Error("Unreachable")}}]}},5973:(e,t,r)=>{"use strict";r.r(t),r.d(t,{packUtils:()=>n,default:()=>T});var n={};r.r(n),r.d(n,{genPackList:()=>k,genPackStream:()=>b,genPackageManifest:()=>S,hasPackScripts:()=>v,prepareForPack:()=>D});var i=r(84132),o=r(35691),s=r(92659),A=r(36370),a=r(95397),c=r(27122),u=r(40376),l=r(28148),h=r(33720),g=r(15815),f=r(46009),p=r(56537),d=r(17278),C=r(10489),E=r(2401),I=r.n(E),m=r(92413),y=r(59938),w=r(78761);const B=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],Q=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function v(e){return!!await i.scriptUtils.hasWorkspaceScript(e,"prepack")||!!await i.scriptUtils.hasWorkspaceScript(e,"postpack")}async function D(e,{report:t},r){const n=new m.PassThrough,A=new m.PassThrough;if(await i.scriptUtils.hasWorkspaceScript(e,"prepack")){t.reportInfo(s.b.LIFECYCLE_SCRIPT,'Calling the "prepack" lifecycle script');if(0!==await i.scriptUtils.executeWorkspaceScript(e,"prepack",[],{stdin:null,stdout:n,stderr:A}))throw new o.lk(s.b.LIFECYCLE_SCRIPT,'Prepack script failed; run "yarn prepack" to investigate')}try{await r()}finally{if(await i.scriptUtils.hasWorkspaceScript(e,"postpack")){t.reportInfo(s.b.LIFECYCLE_SCRIPT,'Calling the "postpack" lifecycle script');0!==await i.scriptUtils.executeWorkspaceScript(e,"postpack",[],{stdin:null,stdout:n,stderr:A})&&t.reportWarning(s.b.LIFECYCLE_SCRIPT,'Postpack script failed; run "yarn postpack" to investigate')}}}async function b(e,t){void 0===t&&(t=await k(e));const r=y.P();process.nextTick(async()=>{for(const n of t){const t=f.y1.resolve(e.cwd,n),i=f.y1.join("package",n),o=await p.xfs.lstatPromise(t),s={name:i,mtime:new Date(315532800)};let A,a;const c=new Promise((e,t)=>{A=e,a=t}),u=e=>{e?a(e):A()};if(o.isFile()){let i;i="package.json"===n?Buffer.from(JSON.stringify(await S(e),null,2)):await p.xfs.readFilePromise(t),r.entry({...s,type:"file"},i,u)}else o.isSymbolicLink()&&r.entry({...s,type:"symlink",linkname:await p.xfs.readlinkPromise(t)},u);await c}r.finalize()});const n=(0,w.createGzip)();return r.pipe(n),n}async function S(e){const t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(e=>e.beforeWorkspacePacking,e,t),t}async function k(e){const t=e.project,r=t.configuration,n={accept:[],reject:[]};for(const e of Q)n.reject.push(e);for(const e of B)n.accept.push(e);n.reject.push(r.get("rcFilename"));const i=t=>{if(null===t||!t.startsWith(e.cwd+"/"))return;const r=f.y1.relative(e.cwd,t),i=f.y1.resolve(f.LZ.root,r);n.reject.push(i)};i(f.y1.resolve(t.cwd,r.get("lockfileFilename"))),i(r.get("bstatePath")),i(r.get("cacheFolder")),i(r.get("globalFolder")),i(r.get("installStatePath")),i(r.get("virtualFolder")),i(r.get("yarnPath")),await r.triggerHook(e=>e.populateYarnPaths,t,e=>{i(e)});for(const r of t.workspaces){const t=f.y1.relative(e.cwd,r.cwd);""===t||t.match(/^(\.\.)?\//)||n.reject.push("/"+t)}const o={accept:[],reject:[]};e.manifest.publishConfig&&e.manifest.publishConfig.main?o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.publishConfig.main)):e.manifest.main&&o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.main)),e.manifest.publishConfig&&e.manifest.publishConfig.module?o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.publishConfig.module)):e.manifest.module&&o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.module));const s=null!==e.manifest.files;if(s){o.reject.push("/*");for(const t of e.manifest.files)F(o.accept,t,{cwd:f.LZ.root})}return await async function(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){const i=[],o=new C.n(e),s=[[f.LZ.root,[n]]];for(;s.length>0;){const[e,n]=s.pop(),A=await o.lstatPromise(e);if(!M(e,{globalList:r,ignoreLists:A.isDirectory()?null:n}))if(A.isDirectory()){const i=await o.readdirPromise(e);let A=!1,a=!1;if(!t||e!==f.LZ.root)for(const e of i)A=A||".gitignore"===e,a=a||".npmignore"===e;const c=a?await x(o,e,(0,f.Zu)(".npmignore")):A?await x(o,e,(0,f.Zu)(".gitignore")):null;let u=null!==c?[c].concat(n):n;M(e,{globalList:r,ignoreLists:n})&&(u=[...n,{accept:[],reject:["**/*"]}]);for(const t of i)s.push([f.y1.resolve(e,t),u])}else i.push(f.y1.relative(f.LZ.root,e))}return i.sort()}(e.cwd,{hasExplicitFileList:s,globalList:n,ignoreList:o})}async function x(e,t,r){const n={accept:[],reject:[]},i=await e.readFilePromise(f.y1.join(t,r),"utf8");for(const e of i.split(/\n/g))F(n.reject,e,{cwd:t});return n}function F(e,t,{cwd:r}){const n=t.trim();""!==n&&"#"!==n[0]&&e.push(function(e,{cwd:t}){const r="!"===e[0];return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=f.y1.resolve(t,e)),r&&(e="!"+e),e}(n,{cwd:r}))}function M(e,{globalList:t,ignoreLists:r}){if(N(e,t.accept))return!1;if(N(e,t.reject))return!0;if(null!==r)for(const t of r){if(N(e,t.accept))return!1;if(N(e,t.reject))return!0}return!1}function N(e,t){let r=t;const n=[];for(let e=0;e{await D(r,{report:t},async()=>{t.reportJson({base:r.cwd});const e=await k(r);for(const r of e)t.reportInfo(null,r),t.reportJson({location:r});if(!this.dryRun){const t=await b(r,e),i=p.xfs.createWriteStream(n);t.pipe(i),await new Promise(e=>{i.on("finish",e)})}}),this.dryRun||(t.reportInfo(s.b.UNNAMED,"Package archive generated in "+e.format(n,"magenta")),t.reportJson({output:n}))})).exitCode()}}K.usage=d.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `--install-if-needed` flag is set Yarn will run a preliminary `yarn install` if the package contains build scripts.\n\n If the `-n,--dry-run` flag is set the command will just print the file paths without actually generating the package archive.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]}),(0,A.gn)([d.Command.Boolean("--install-if-needed")],K.prototype,"installIfNeeded",void 0),(0,A.gn)([d.Command.Boolean("-n,--dry-run")],K.prototype,"dryRun",void 0),(0,A.gn)([d.Command.Boolean("--json")],K.prototype,"json",void 0),(0,A.gn)([d.Command.String("--filename",{hidden:!1}),d.Command.String("-o,--out")],K.prototype,"out",void 0),(0,A.gn)([d.Command.Path("pack")],K.prototype,"execute",null);const L=["dependencies","devDependencies","peerDependencies"],T={hooks:{beforeWorkspacePacking:(e,t)=>{t.publishConfig&&(t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));const r=e.project;for(const n of L)for(const A of e.manifest.getForScope(n).values()){const e=r.tryWorkspaceByDescriptor(A),a=i.structUtils.parseRange(A.range);if("workspace:"===a.protocol)if(null===e){if(null===r.tryWorkspaceByIdent(A))throw new o.lk(s.b.WORKSPACE_NOT_FOUND,i.structUtils.prettyDescriptor(r.configuration,A)+": No local workspace found for this range")}else{let r;r=i.structUtils.areDescriptorsEqual(A,e.anchoredDescriptor)||"*"===a.selector?e.manifest.version:a.selector,t[n][i.structUtils.stringifyIdent(A)]=r}}}},commands:[K]}},5698:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchUtils:()=>n,default:()=>q});var n={};r.r(n),r.d(n,{applyPatchFile:()=>g,diffFolders:()=>L,extractPackageToDisk:()=>K,isParentRequired:()=>N,loadPatchFiles:()=>R,makeDescriptor:()=>x,makeLocator:()=>F,parseDescriptor:()=>b,parseLocator:()=>S,parsePatchFile:()=>B});var i=r(84132),o=r(56537),s=r(46009),A=r(90739),a=r(75448),c=r(29486),u=r(33720),l=r(78420);async function h(e,t,r){const n=await e.lstatPromise(t),i=await r();if(void 0!==i&&(t=i),e.lutimesPromise)await e.lutimesPromise(t,n.atime,n.mtime);else{if(n.isSymbolicLink())throw new Error("Cannot preserve the time values of a symlink");await e.utimesPromise(t,n.atime,n.mtime)}}async function g(e,{baseFs:t=new l.S,dryRun:r=!1,version:n=null}={}){for(const o of e)if(null===o.semverExclusivity||null===n||i.semverUtils.satisfiesWithPrereleases(n,o.semverExclusivity))switch(o.type){case"file deletion":if(r){if(!t.existsSync(o.path))throw new Error("Trying to delete file that doesn't exist: "+o.path)}else await h(t,s.y1.dirname(o.path),async()=>{await t.unlinkPromise(o.path)});break;case"rename":if(r){if(!t.existsSync(o.fromPath))throw new Error("Trying to move file that doesn't exist: "+o.fromPath)}else await h(t,s.y1.dirname(o.fromPath),async()=>{await h(t,s.y1.dirname(o.toPath),async()=>{await h(t,o.fromPath,async()=>(await t.movePromise(o.fromPath,o.toPath),o.toPath))})});break;case"file creation":if(r){if(t.existsSync(o.path))throw new Error("Trying to create file that already exists: "+o.path)}else{const e=o.hunk?o.hunk.parts[0].lines.join("\n")+(o.hunk.parts[0].noNewlineAtEndOfFile?"":"\n"):"";await t.mkdirpPromise(s.y1.dirname(o.path),{chmod:493,utimes:[315532800,315532800]}),await t.writeFilePromise(o.path,e,{mode:o.mode}),await t.utimesPromise(o.path,315532800,315532800)}break;case"patch":await h(t,o.path,async()=>{await d(o,{baseFs:t,dryRun:r})});break;case"mode change":{const e=(await t.statPromise(o.path)).mode;if(f(o.newMode)!==f(e))continue;await h(t,o.path,async()=>{await t.chmodPromise(o.path,o.newMode)})}break;default:i.miscUtils.assertNever(o)}}function f(e){return(64&e)>0}function p(e){return e.replace(/\s+$/,"")}async function d({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){const o=await r.statSync(t).mode,s=(await r.readFileSync(t,"utf8")).split(/\n/),A=[];let a=0,c=0;for(const t of e){const r=Math.max(c,t.header.patched.start+a),n=Math.max(0,r-c),i=Math.max(0,s.length-r-t.header.original.length),o=Math.max(n,i);let u=0,l=0,h=null;for(;u<=o;){if(u<=n&&(l=r-u,h=C(t,s,l),null!==h)){u=-u;break}if(u<=i&&(l=r+u,h=C(t,s,l),null!==h))break;u+=1}if(null===h)throw new Error("Cannot apply hunk #"+(e.indexOf(t)+1));A.push(h),a+=u,c=l+t.header.original.length}if(n)return;let u=0;for(const e of A)for(const t of e)switch(t.type){case"splice":{const e=t.index+u;s.splice(e,t.numToDelete,...t.linesToInsert),u+=t.linesToInsert.length-t.numToDelete}break;case"pop":s.pop();break;case"push":s.push(t.line);break;default:i.miscUtils.assertNever(t)}await r.writeFilePromise(t,s.join("\n"),{mode:o})}function C(e,t,r){const n=[];for(const s of e.parts)switch(s.type){case"deletion":case"context":for(const e of s.lines){const n=t[r];if(null==n||(o=e,p(n)!==p(o)))return null;r+=1}"deletion"===s.type&&(n.push({type:"splice",index:r-s.lines.length,numToDelete:s.lines.length,linesToInsert:[]}),s.noNewlineAtEndOfFile&&n.push({type:"push",line:""}));break;case"insertion":n.push({type:"splice",index:r,numToDelete:0,linesToInsert:s.lines}),s.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:i.miscUtils.assertNever(s.type)}var o;return n}const E=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function I(e){return s.y1.relative(s.LZ.root,s.y1.resolve(s.LZ.root,s.cS.toPortablePath(e)))}function m(e){const t=e.trim().match(E);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}const y={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function w(e){const t=511&parseInt(e,8);if(420!==t&&493!==t)throw new Error("Unexpected file mode string: "+e);return t}function B(e){const t=e.split(/\n/g);return""===t[t.length-1]&&t.pop(),function(e){const t=[];for(const r of e){const{semverExclusivity:e,diffLineFromPath:n,diffLineToPath:o,oldMode:s,newMode:A,deletedFileMode:a,newFileMode:c,renameFrom:u,renameTo:l,beforeHash:h,afterHash:g,fromPath:f,toPath:p,hunks:d}=r,C=u?"rename":a?"file deletion":c?"file creation":d&&d.length>0?"patch":"mode change";let E=null;switch(C){case"rename":if(!u||!l)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:e,fromPath:I(u),toPath:I(l)}),E=l;break;case"file deletion":{const r=n||f;if(!r)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:e,hunk:d&&d[0]||null,path:I(r),mode:w(a),hash:h})}break;case"file creation":{const r=o||p;if(!r)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:e,hunk:d&&d[0]||null,path:I(r),mode:w(c),hash:g})}break;case"patch":case"mode change":E=p||o;break;default:i.miscUtils.assertNever(C)}E&&s&&A&&s!==A&&t.push({type:"mode change",semverExclusivity:e,path:I(E),oldMode:w(s),newMode:w(A)}),E&&d&&d.length&&t.push({type:"patch",semverExclusivity:e,path:I(E),hunks:d,beforeHash:h,afterHash:g})}return t}(function(e){const t=[];let r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null},n="parsing header",o=null,s=null;function A(){o&&(s&&(o.parts.push(s),s=null),r.hunks.push(o),o=null)}function a(){A(),t.push(r),r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}}for(let t=0;te<0?e:"+"+e;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}const v=/^builtin<([^>]+)>$/;function D(e,t){const{source:r,selector:n,params:o}=i.structUtils.parseRange(e);if(null===r)throw new Error("Patch locators must explicitly define their source");const A=n?n.split(/&/).map(e=>s.cS.toPortablePath(e)):[],a=o&&"string"==typeof o.locator?i.structUtils.parseLocator(o.locator):null,c=o&&"string"==typeof o.version?o.version:null;return{parentLocator:a,sourceItem:t(r),patchPaths:A,sourceVersion:c}}function b(e){const{sourceItem:t,...r}=D(e.range,i.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function S(e){const{sourceItem:t,...r}=D(e.reference,i.structUtils.parseLocator);return{...r,sourceLocator:t}}function k({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:o},s){const A=null!==e?{locator:i.structUtils.stringifyLocator(e)}:{},a=void 0!==n?{version:n}:{},c=void 0!==o?{hash:o}:{};return i.structUtils.makeRange({protocol:"patch:",source:s(t),selector:r.join("&"),params:{...a,...c,...A}})}function x(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return i.structUtils.makeLocator(e,k({parentLocator:t,sourceItem:r,patchPaths:n},i.structUtils.stringifyDescriptor))}function F(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:o}){return i.structUtils.makeLocator(e,k({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:o},i.structUtils.stringifyLocator))}function M({onAbsolute:e,onRelative:t,onBuiltin:r},n){const i=n.match(v);return null!==i?r(i[1]):s.y1.isAbsolute(n)?e(n):t(n)}function N(e){return M({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},e)}async function R(e,t,r){const n=null!==e?await r.fetcher.fetch(e,r):null,A=n&&n.localPath?{packageFs:new a.M(s.LZ.root),prefixPath:s.y1.relative(s.LZ.root,n.localPath)}:n;n&&n!==A&&n.releaseFs&&n.releaseFs();return(await i.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async e=>M({onAbsolute:async()=>await o.xfs.readFilePromise(e,"utf8"),onRelative:async()=>{if(null===n)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(e,"utf8")},onBuiltin:async e=>await r.project.configuration.firstHook(e=>e.getBuiltinPatch,r.project,e)},e))))).map(e=>"string"==typeof e?e.replace(/\r\n?/g,"\n"):e)}async function K(e,{cache:t,project:r}){const n=r.storedChecksums,A=new u.$,a=r.configuration.makeFetcher(),c=await a.fetch(e,{cache:t,project:r,fetcher:a,checksums:n,report:A}),l=await o.xfs.mktempPromise();return await o.xfs.copyPromise(l,c.prefixPath,{baseFs:c.packageFs}),await o.xfs.writeJsonPromise(s.y1.join(l,".yarn-patch.json"),{locator:i.structUtils.stringifyLocator(e)}),o.xfs.detachTemp(l),l}async function L(e,t){const r=s.cS.fromPortablePath(e).replace(/\\/g,"/"),n=s.cS.fromPortablePath(t).replace(/\\/g,"/"),{stdout:o}=await i.execUtils.execvp("git",["diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index",r,n],{cwd:s.cS.toPortablePath(process.cwd())}),A=r.startsWith("/")?e=>e.slice(1):e=>e;return o.replace(new RegExp(`(a|b)(${i.miscUtils.escapeRegExp(`/${A(r)}/`)})`,"g"),"$1/").replace(new RegExp("(a|b)"+i.miscUtils.escapeRegExp(`/${A(n)}/`),"g"),"$1/").replace(new RegExp(i.miscUtils.escapeRegExp(r+"/"),"g"),"").replace(new RegExp(i.miscUtils.escapeRegExp(n+"/"),"g"),"")}var T=r(36370),P=r(95397),U=r(27122),_=r(40376),O=r(28148),j=r(17278);class Y extends P.BaseCommand{async execute(){const e=await U.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await _.I.find(e,this.context.cwd),n=await O.C.find(e);if(!r)throw new P.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const A=s.y1.resolve(this.context.cwd,s.cS.toPortablePath(this.patchFolder)),a=s.y1.join(A,".yarn-patch.json");if(!o.xfs.existsSync(a))throw new j.UsageError("The argument folder didn't get created by 'yarn patch'");const c=await o.xfs.readJsonPromise(a),u=i.structUtils.parseLocator(c.locator,!0);if(!t.storedPackages.has(u.locatorHash))throw new j.UsageError("No package found in the project for the given locator");const l=await K(u,{cache:n,project:t});this.context.stdout.write(await L(l,A))}}Y.usage=j.Command.Usage({description:"\n This will turn the folder passed in parameter into a patchfile suitable for consumption with the `patch:` protocol.\n\n Only folders generated through `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "}),(0,T.gn)([j.Command.String()],Y.prototype,"patchFolder",void 0),(0,T.gn)([j.Command.Path("patch-commit")],Y.prototype,"execute",null);var G=r(15815),J=r(92659);class H extends P.BaseCommand{async execute(){const e=await U.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await _.I.find(e,this.context.cwd),n=await O.C.find(e);if(!r)throw new P.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();let o=i.structUtils.parseLocator(this.package);if("unknown"===o.reference){const r=i.miscUtils.mapAndFilter([...t.storedPackages.values()],e=>e.identHash!==o.identHash||i.structUtils.isVirtualLocator(e)?i.miscUtils.mapAndFilter.skip:e);if(0===r.length)throw new j.UsageError("No package found in the project for the given locator");if(r.length>1)throw new j.UsageError("Multiple candidate packages found; explicitly choose one of them (use `yarn why ` to get more information as to who depends on them):\n"+r.map(t=>"\n- "+i.structUtils.prettyLocator(e,t)).join(""));o=r[0]}if(!t.storedPackages.has(o.locatorHash))throw new j.UsageError("No package found in the project for the given locator");await G.P.start({configuration:e,stdout:this.context.stdout},async r=>{const A=await K(o,{cache:n,project:t});r.reportInfo(J.b.UNNAMED,`Package ${i.structUtils.prettyLocator(e,o)} got extracted with success!`),r.reportInfo(J.b.UNNAMED,"You can now edit the following folder: "+e.format(s.cS.fromPortablePath(A),"magenta")),r.reportInfo(J.b.UNNAMED,`Once you are done run ${e.format("yarn patch-commit "+s.cS.fromPortablePath(A),"cyan")} and Yarn will store a patchfile based on your changes.`)})}}H.usage=j.Command.Usage({description:'\n This command will cause a package to be extracted in a temporary directory (under a folder named "patch-workdir"). This folder will be editable at will; running `yarn patch` inside it will then cause Yarn to generate a patchfile and register it into your top-level manifest (cf the `patch:` protocol).\n '}),(0,T.gn)([j.Command.String()],H.prototype,"package",void 0),(0,T.gn)([j.Command.Path("patch")],H.prototype,"execute",null);const q={commands:[Y,H],fetchers:[class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:o,prefixPath:i.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async patchPackage(e,t){const{parentLocator:r,sourceLocator:n,sourceVersion:u,patchPaths:l}=S(e),h=await R(r,l,t),f=await o.xfs.mktempPromise(),p=s.y1.join(f,"patched.zip"),d=await t.fetcher.fetch(n,t),C=i.structUtils.getIdentVendorPath(e),E=await(0,c.getLibzipPromise)(),I=new A.d(p,{libzip:E,create:!0,level:t.project.configuration.get("compressionLevel")});await I.mkdirpPromise(C),await i.miscUtils.releaseAfterUseAsync(async()=>{await I.copyPromise(C,d.prefixPath,{baseFs:d.packageFs,stableSort:!0})},d.releaseFs),I.saveAndClose();const m=new A.d(p,{libzip:E,level:t.project.configuration.get("compressionLevel")}),y=new a.M(s.y1.resolve(s.LZ.root,C),{baseFs:m});for(const e of h)null!==e&&await g(B(e),{baseFs:y,version:u});return m}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){const{patchPaths:n}=b(e);return n.every(e=>!N(e))?e:i.structUtils.bindDescriptor(e,{locator:i.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){const{sourceDescriptor:r}=b(e);return[r]}async getCandidates(e,t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const{parentLocator:n,sourceDescriptor:o,patchPaths:s}=b(e),A=await R(n,s,r.fetchOptions),a=t.get(o.descriptorHash);if(void 0===a)throw new Error("Assertion failed: The dependency should have been resolved");return[F(e,{parentLocator:n,sourcePackage:a,patchPaths:s,patchHash:i.hashUtils.makeHash("2",...A).slice(0,6)})]}async resolve(e,t){const{sourceLocator:r}=S(e);return{...await t.resolver.resolve(r,t),...e}}}]}},5780:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>b,quotePathIfNeeded:()=>S,AbstractPnpInstaller:()=>d,PnpInstaller:()=>m,PnpLinker:()=>I,default:()=>k});var n=r(27122),i=r(46009),o=r(56537),s=r(53887),A=r.n(s),a=r(92659),c=r(92409),u=r(84132),l=r(75448),h=r(88563),g=r(17278),f=r(46611),p=r(32485);class d{constructor(e){this.opts=e,this.packageRegistry=new Map,this.blacklistedPaths=new Set,this.opts=e}checkAndReportManifestIncompatibility(e,t){return e&&!e.isCompatibleWithOS(process.platform)?(this.opts.report.reportWarningOnce(a.b.INCOMPATIBLE_OS,`${u.structUtils.prettyLocator(this.opts.project.configuration,t)} The platform ${process.platform} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1):!(e&&!e.isCompatibleWithCPU(process.arch))||(this.opts.report.reportWarningOnce(a.b.INCOMPATIBLE_CPU,`${u.structUtils.prettyLocator(this.opts.project.configuration,t)} The CPU architecture ${process.arch} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1)}async installPackage(e,t){const r=u.structUtils.requirableIdent(e),n=e.reference,o=e.peerDependencies.size>0&&!u.structUtils.isVirtualLocator(e)&&!this.opts.project.tryWorkspaceByLocator(e),s=!o||this.opts.skipIncompatiblePackageLinking?await f.G.tryFind(t.prefixPath,{baseFs:t.packageFs}):null,A=this.checkAndReportManifestIncompatibility(s,e);if(this.opts.skipIncompatiblePackageLinking&&!A)return{packageLocation:null,buildDirective:null};const c=o?[]:await this.getBuildScripts(e,s,t);c.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(a.b.DISABLED_BUILD_SCRIPTS,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but all build scripts have been disabled."),c.length=0),c.length>0&&e.linkType!==p.U.HARD&&!this.opts.project.tryWorkspaceByLocator(e)&&(this.opts.report.reportWarningOnce(a.b.SOFT_LINK_BUILD,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),c.length=0);const l=this.opts.project.getDependencyMeta(e,e.version);c.length>0&&l&&!1===l.built&&(this.opts.report.reportInfoOnce(a.b.BUILD_DISABLED,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but its build has been explicitly disabled through configuration."),c.length=0);const h=o||e.linkType===p.U.SOFT?t.packageFs:await this.transformPackage(e,s,t,l,{hasBuildScripts:c.length>0});if(i.y1.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);const g=i.y1.resolve(h.getRealPath(),t.prefixPath),d=this.normalizeDirectoryPath(g),C=new Map,E=new Set;if(u.structUtils.isVirtualLocator(e))for(const t of e.peerDependencies.values())C.set(u.structUtils.requirableIdent(t),null),E.add(u.structUtils.stringifyIdent(t));return u.miscUtils.getMapWithDefault(this.packageRegistry,r).set(n,{packageLocation:d,packageDependencies:C,packagePeers:E,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),o&&this.blacklistedPaths.add(d),{packageLocation:g,buildDirective:c.length>0&&A?c:null}}async attachInternalDependencies(e,t){const r=this.getPackageInformation(e);for(const[e,n]of t){const t=u.structUtils.areIdentsEqual(e,n)?n.reference:[u.structUtils.requirableIdent(n),n.reference];r.packageDependencies.set(u.structUtils.requirableIdent(e),t)}}async attachExternalDependents(e,t){for(const r of t){this.getDiskInformation(r).packageDependencies.set(u.structUtils.requirableIdent(e),e.reference)}}async finalizeInstall(){this.trimBlacklistedPackages(),this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));const e=this.opts.project.configuration.get("pnpFallbackMode"),t=this.blacklistedPaths,r=this.opts.project.workspaces.map(({anchoredLocator:e})=>({name:u.structUtils.requirableIdent(e),reference:e.reference})),n="none"!==e,i=[],o=this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator).packageDependencies,s=u.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),A=this.packageRegistry,a=this.opts.project.configuration.get("pnpShebang");if("dependencies-only"===e)for(const e of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(e)&&i.push({name:u.structUtils.requirableIdent(e),reference:e.reference});return await this.finalizeInstallWithPnp({blacklistedLocations:t,dependencyTreeRoots:r,enableTopLevelFallback:n,fallbackExclusionList:i,fallbackPool:o,ignorePattern:s,packageRegistry:A,shebang:a})}getPackageInformation(e){const t=u.structUtils.requirableIdent(e),r=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${u.structUtils.prettyIdent(this.opts.project.configuration,e)})`);const i=n.get(r);if(!i)throw new Error(`Assertion failed: The package information should have been available (for ${u.structUtils.prettyLocator(this.opts.project.configuration,e)})`);return i}getDiskInformation(e){const t=u.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),r=this.normalizeDirectoryPath(e);return u.miscUtils.getFactoryWithDefault(t,r,()=>({packageLocation:r,packageDependencies:new Map,packagePeers:new Set,linkType:p.U.SOFT,discardFromLookup:!1}))}trimBlacklistedPackages(){for(const e of this.packageRegistry.values())for(const[t,r]of e)r.packageLocation&&this.blacklistedPaths.has(r.packageLocation)&&e.delete(t)}normalizeDirectoryPath(e){let t=i.y1.relative(this.opts.project.cwd,e);return t.match(/^\.{0,2}\//)||(t="./"+t),t.replace(/\/?$/,"/")}}const C=new Set([u.structUtils.makeIdent(null,"nan").identHash,u.structUtils.makeIdent(null,"node-gyp").identHash,u.structUtils.makeIdent(null,"node-pre-gyp").identHash,u.structUtils.makeIdent(null,"node-addon-api").identHash,u.structUtils.makeIdent(null,"fsevents").identHash]),E=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);class I{constructor(){this.mode="strict"}supportsPackage(e,t){return"pnp"===t.project.configuration.get("nodeLinker")&&t.project.configuration.get("pnpMode")===this.mode}async findPackageLocation(e,t){const r=b(t.project).main;if(!o.xfs.existsSync(r))throw new g.UsageError(`The project in ${t.project.cwd}/package.json doesn't seem to have been installed - running an install there might help`);const n=u.miscUtils.dynamicRequireNoCache(r),s={name:u.structUtils.requirableIdent(e),reference:e.reference},A=n.getPackageInformation(s);if(!A)throw new g.UsageError(`Couldn't find ${u.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return i.cS.toPortablePath(A.packageLocation)}async findPackageLocator(e,t){const n=b(t.project).main;if(!o.xfs.existsSync(n))return null;const s=i.cS.fromPortablePath(n),A=u.miscUtils.dynamicRequire(s);delete r.c[s];const a=A.findPackageLocator(i.cS.fromPortablePath(e));return a?u.structUtils.makeLocator(u.structUtils.parseIdent(a.name),a.reference):null}makeInstaller(e){return new m(e)}}class m extends d{constructor(){super(...arguments),this.mode="strict",this.unpluggedPaths=new Set}async getBuildScripts(e,t,r){if(null===t)return[];const n=[];for(const e of["preinstall","install","postinstall"])t.scripts.has(e)&&n.push([c.k.SCRIPT,e]);const o=i.y1.join(r.prefixPath,(0,i.Zu)("binding.gyp"));return!t.scripts.has("install")&&r.packageFs.existsSync(o)&&n.push([c.k.SHELLCODE,"node-gyp rebuild"]),n}async transformPackage(e,t,r,n,{hasBuildScripts:i}){return this.isUnplugged(e,t,r,n,{hasBuildScripts:i})?this.unplugPackage(e,r.packageFs):r.packageFs}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=b(this.opts.project),r=this.opts.project.configuration.get("pnpDataPath");if(await o.xfs.removePromise(t.other),"pnp"!==this.opts.project.configuration.get("nodeLinker"))return await o.xfs.removePromise(t.main),void await o.xfs.removePromise(r);const n=await this.locateNodeModules();if(n.length>0){this.opts.report.reportWarning(a.b.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(const e of n)await o.xfs.removePromise(e)}if(this.opts.project.configuration.get("pnpEnableInlining")){const n=(0,h.gY)(e);await o.xfs.changeFilePromise(t.main,n,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.removePromise(r)}else{const n=i.y1.relative(i.y1.dirname(t.main),r),{dataFile:s,loaderFile:A}=(0,h.Q$)({...e,dataLocation:n});await o.xfs.changeFilePromise(t.main,A,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.changeFilePromise(r,s,{automaticNewlines:!0}),await o.xfs.chmodPromise(r,420)}const s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(0===this.unpluggedPaths.size)await o.xfs.removePromise(s);else for(const e of await o.xfs.readdirPromise(s)){const t=i.y1.resolve(s,e);this.unpluggedPaths.has(t)||await o.xfs.removePromise(t)}}async locateNodeModules(){const e=[];for(const t of this.opts.project.workspaces){const r=i.y1.join(t.cwd,(0,i.Zu)("node_modules"));if(!o.xfs.existsSync(r))continue;const n=await o.xfs.readdirPromise(r,{withFileTypes:!0}),s=n.filter(e=>!e.isDirectory()||".bin"===e.name||!e.name.startsWith("."));if(s.length===n.length)e.push(r);else for(const t of s)e.push(i.y1.join(r,t.name))}return e}getUnpluggedPath(e){return i.y1.resolve(this.opts.project.configuration.get("pnpUnpluggedFolder"),u.structUtils.slugifyLocator(e))}async unplugPackage(e,t){const r=this.getUnpluggedPath(e);return this.unpluggedPaths.add(r),await o.xfs.mkdirpPromise(r),await o.xfs.copyPromise(r,i.LZ.dot,{baseFs:t,overwrite:!1}),new l.M(r)}isUnplugged(e,t,r,n,{hasBuildScripts:i}){return void 0!==n.unplugged?n.unplugged:!!C.has(e.identHash)||(null!==t&&null!==t.preferUnplugged?t.preferUnplugged:!(!i&&!r.packageFs.getExtractHint({relevantExtensions:E})))}}var y=r(36370),w=r(95397),B=r(40376),Q=r(28148),v=r(15815);class D extends w.BaseCommand{constructor(){super(...arguments),this.patterns=[]}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await B.I.find(e,this.context.cwd),i=await Q.C.find(e);if(!r)throw new w.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=t.topLevelWorkspace;for(const e of this.patterns){const t=u.structUtils.parseDescriptor(e);o.manifest.ensureDependencyMeta(t).unplugged=!0}await o.persistManifest();return(await v.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:i,report:e})})).exitCode()}}D.usage=g.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the specified selectors to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `virtualFolder`.\n\n Unpacking a package isn't advised as a general tool because it makes it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n The unplug command sets a flag that's persisted in your top-level `package.json` through the `dependenciesMeta` field. As such, to undo its effects, just revert the changes made to the manifest and run `yarn install`.\n ",examples:[["Unplug lodash","yarn unplug lodash"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"]]}),(0,y.gn)([g.Command.Rest()],D.prototype,"patterns",void 0),(0,y.gn)([g.Command.Path("unplug")],D.prototype,"execute",null);const b=e=>{let t,r;return"module"===e.topLevelWorkspace.manifest.type?(t=".pnp.cjs",r=".pnp.js"):(t=".pnp.js",r=".pnp.cjs"),{main:i.y1.join(e.cwd,t),other:i.y1.join(e.cwd,r)}},S=e=>/\s/.test(e)?JSON.stringify(e):e;const k={hooks:{populateYarnPaths:async function(e,t){t(b(e).main),t(b(e).other),t(e.configuration.get("pnpDataPath")),t(e.configuration.get("pnpUnpluggedFolder"))},setupScriptEnvironment:async function(e,t,r){const n=b(e).main,s="--require "+S(i.cS.fromPortablePath(n));if(n.includes(" ")&&A().lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(o.xfs.existsSync(n)){let e=t.NODE_OPTIONS||"";const r=/\s*--require\s+\S*\.pnp\.c?js\s*/g;e=e.replace(r," ").trim(),e=e?`${s} ${e}`:s,t.NODE_OPTIONS=e}}},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:n.a2.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:n.a2.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:n.a2.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:n.a2.STRING,default:[],isArray:!0},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:n.a2.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:n.a2.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:n.a2.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:n.a2.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[I],commands:[D]}},28638:(e,t,r)=>{"use strict";r.r(t);var n=r(50683),i=r.n(n);Object.fromEntries||(Object.fromEntries=i());var o=r(59355),s=r(91058),A=r(45330);(0,s.D)({binaryVersion:o.o||"",pluginConfiguration:(0,A.e)()})},95397:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseCommand:()=>n.F,WorkspaceRequiredError:()=>A,getDynamicLibs:()=>c,getPluginConfiguration:()=>u.e,openWorkspace:()=>h,main:()=>g.D});var n=r(56087),i=r(46611),o=r(46009),s=r(17278);class A extends s.UsageError{constructor(e,t){super(`This command can only be run from within a workspace of your project (${o.y1.relative(e,t)} isn't a workspace of ${o.y1.join(e,i.G.fileName)}).`)}}const a=["@yarnpkg/cli","@yarnpkg/core","@yarnpkg/fslib","@yarnpkg/libzip","@yarnpkg/parsers","@yarnpkg/shell","clipanion","semver","yup"],c=()=>new Map(a.map(e=>[e,r(98497)(e)]));var u=r(45330),l=r(40376);async function h(e,t){const{project:r,workspace:n}=await l.I.find(e,t);if(!n)throw new A(r.cwd,t);return n}var g=r(91058)},91058:(e,t,r)=>{"use strict";r.d(t,{D:()=>h});var n=r(27122),i=r(46009),o=r(56537),s=r(63129),A=r(17278),a=r(35747),c=r(36370),u=r(56087);class l extends u.F{async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);this.context.stdout.write((e=>`\n${e.format("Welcome on Yarn 2!","bold")} 🎉 Thanks for helping us shape our vision of how projects\nshould be managed going forward.\n\nBeing still in RC, Yarn 2 isn't completely stable yet. Some features might be\nmissing, and some behaviors may have received major overhaul. In case of doubt,\nuse the following URLs to get some insight:\n\n - The changelog:\n ${e.format("https://github.com/yarnpkg/berry/tree/CHANGELOG.md","cyan")}\n\n - Our issue tracker:\n ${e.format("https://github.com/yarnpkg/berry","cyan")}\n\n - Our Discord server:\n ${e.format("https://discord.gg/yarnpkg","cyan")}\n\nWe're hoping you will enjoy the experience. For now, a good start is to run\nthe two following commands:\n\n ${e.format("find . -name node_modules -prune -exec rm -r {} \\;","magenta")}\n ${e.format("yarn install","magenta")}\n\nOne last trick! If you need at some point to upgrade Yarn to a nightly build,\nthe following command will install the CLI straight from master:\n\n ${e.format("yarn set version from sources","magenta")}\n\nSee you later 👋\n`)(e).trim()+"\n")}}async function h({binaryVersion:e,pluginConfiguration:t}){async function r(){const c=new A.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:e});c.register(l);try{await async function(e){const A=await n.VK.find(i.cS.toPortablePath(process.cwd()),t,{usePath:!0,strict:!1}),c=A.get("yarnPath"),u=A.get("ignorePath"),l=A.get("ignoreCwd");if(null===c||u){u&&delete process.env.YARN_IGNORE_PATH;for(const t of A.plugins.values())for(const r of t.commands||[])e.register(r);const n=e.process(process.argv.slice(2)),o=n.cwd;if(void 0!==o&&!l){const e=(0,a.realpathSync)(process.cwd()),t=(0,a.realpathSync)(o);if(e!==t)return process.chdir(o),void await r()}e.runExit(n,{cwd:i.cS.toPortablePath(process.cwd()),plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}else if(o.xfs.existsSync(c))try{!function(e){const t=i.cS.fromPortablePath(e);process.on("SIGINT",()=>{}),t?(0,s.execFileSync)(process.execPath,[t,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,s.execFileSync)(t,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}(c)}catch(e){process.exitCode=e.code||1}else process.stdout.write(e.error(new Error(`The "yarn-path" option has been set (in ${A.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1}(c)}catch(e){process.stdout.write(c.error(e)),process.exitCode=1}}return r().catch(e=>{process.stdout.write(e.stack||e.message),process.exitCode=1})}(0,c.gn)([A.Command.Path("--welcome")],l.prototype,"execute",null)},56087:(e,t,r)=>{"use strict";r.d(t,{F:()=>o});var n=r(36370),i=r(17278);class o extends i.Command{}(0,n.gn)([i.Command.String("--cwd",{hidden:!0})],o.prototype,"cwd",void 0)},28148:(e,t,r)=>{"use strict";r.d(t,{C:()=>C});var n=r(78420),i=r(90739),o=r(15037),s=r(46009),A=r(56537),a=r(29486),c=r(35747),u=r.n(c),l=r(92659),h=r(35691),g=r(20624),f=r(73632),p=r(54143);const d=5;class C{constructor(e,{configuration:t,immutable:r=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set,this.mutexes=new Map,this.configuration=t,this.cwd=e,this.immutable=r,this.check=n;const o=t.get("cacheKeyOverride");if(null!==o)this.cacheKey=""+o;else{const e=t.get("compressionLevel"),r=e!==i.k?"c"+e:"";this.cacheKey=[d,r].join("")}}static async find(e,{immutable:t,check:r}={}){const n=new C(e.get("cacheFolder"),{configuration:e,immutable:t,check:r});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;const e=this.configuration.get("globalFolder")+"/cache";return e!==this.cwd?e:null}getVersionFilename(e){return`${p.slugifyLocator(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){const r=function(e){const t=e.indexOf("/");return-1!==t?e.slice(t+1):e}(t).slice(0,10);return`${p.slugifyLocator(e)}-${r}.zip`}getLocatorPath(e,t){if(null===this.mirrorCwd)return s.y1.resolve(this.cwd,this.getVersionFilename(e));if(null===t)return null;return E(t)!==this.cacheKey?null:s.y1.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){const t=this.mirrorCwd;return null!==t?s.y1.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache")){await A.xfs.mkdirpPromise(this.cwd);const e=s.y1.resolve(this.cwd,(0,s.Zu)(".gitignore"));await A.xfs.existsPromise(e)||await A.xfs.writeFilePromise(e,"/.gitignore\n*.lock\n")}}async fetchPackageFromCache(e,t,{onHit:r,onMiss:c,loader:d,skipIntegrityCheck:C}){const I=this.getLocatorMirrorPath(e),m=new n.S,y=async(e,r=null)=>{const n=C&&t?t:`${this.cacheKey}/${await g.checksumFile(e)}`;if(null!==r){if(n!==(C&&t?t:`${this.cacheKey}/${await g.checksumFile(r)}`))throw new h.lk(l.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(null!==t&&n!==t){let e;switch(e=this.check?"throw":E(t)!==E(n)?"update":this.configuration.get("checksumBehavior"),e){case"ignore":return t;case"update":return n;default:case"throw":throw new h.lk(l.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return n},w=async t=>{if(!d)throw new Error("Cache check required but no loader configured for "+p.prettyLocator(this.configuration,e));const r=await d(),n=r.getRealPath();return r.saveAndClose(),await A.xfs.chmodPromise(n,420),await y(t,n)},B=async()=>{if(null===I||!A.xfs.existsSync(I))return await d();const t=await A.xfs.mktempPromise(),r=s.y1.join(t,this.getVersionFilename(e));return await A.xfs.copyFilePromise(I,r,u().constants.COPYFILE_FICLONE),new i.d(r,{libzip:await(0,a.getLibzipPromise)()})},Q=async()=>{if(!d)throw new Error("Cache entry required but missing for "+p.prettyLocator(this.configuration,e));if(this.immutable)throw new h.lk(l.b.IMMUTABLE_CACHE,"Cache entry required but missing for "+p.prettyLocator(this.configuration,e));const t=await B(),r=t.getRealPath();t.saveAndClose(),await A.xfs.chmodPromise(r,420);const n=await y(r),i=this.getLocatorPath(e,n);if(!i)throw new Error("Assertion failed: Expected the cache path to be available");return await this.writeFileWithLock(i,async()=>await this.writeFileWithLock(I,async()=>(await A.xfs.movePromise(r,i),null!==I&&await A.xfs.copyFilePromise(i,I,u().constants.COPYFILE_FICLONE),[i,n])))},v=async()=>{const t=Q();this.mutexes.set(e.locatorHash,t);try{return await t}finally{this.mutexes.delete(e.locatorHash)}};for(let t;t=this.mutexes.get(e.locatorHash);)await t;const D=this.getLocatorPath(e,t),b=null!==D&&m.existsSync(D),S=b?r:c;let k,x;S&&S(),b?(k=D,x=this.check?await w(k):await y(k)):[k,x]=await v(),this.markedFiles.add(k);let F=null;const M=await(0,a.getLibzipPromise)();return[new o.v(()=>f.prettifySyncErrors(()=>F=new i.d(k,{baseFs:m,libzip:M,readOnly:!0}),t=>`Failed to open the cache entry for ${p.prettyLocator(this.configuration,e)}: ${t}`),s.y1),()=>{null!==F&&F.discardAndClose()},x]}async writeFileWithLock(e,t){return null===e?await t():(await A.xfs.mkdirpPromise(s.y1.dirname(e)),await A.xfs.lockPromise(e,async()=>await t()))}}function E(e){const t=e.indexOf("/");return-1!==t?e.slice(0,t):null}},27122:(e,t,r)=>{"use strict";r.d(t,{tr:()=>_,nh:()=>O,a2:()=>j,a5:()=>Y,EW:()=>V,VK:()=>X});var n=r(90739),i=r(46009),o=r(56537),s=r(55125),A=r(54738),a=r.n(A),c=r(95882),u=r.n(c),l=r(5864),h=r(17278),g=r(53887),f=r.n(g),p=r(92413),d=r(92659),C=r(54143);const E={hooks:{reduceDependency:(e,t,r,n,{resolver:i,resolveOptions:o})=>{for(const{pattern:n,reference:s}of t.topLevelWorkspace.manifest.resolutions){if(n.from&&n.from.fullName!==C.requirableIdent(r))continue;if(n.from&&n.from.description&&n.from.description!==r.reference)continue;if(n.descriptor.fullName!==C.requirableIdent(e))continue;if(n.descriptor.description&&n.descriptor.description!==e.range)continue;return i.bindDescriptor(C.makeDescriptor(e,s),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(const r of e.workspaces){const n=C.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(e=>e.validateWorkspace,r,{reportWarning:(e,r)=>t.reportWarning(e,`${n}: ${r}`),reportError:(e,r)=>t.reportError(e,`${n}: ${r}`)})}},validateWorkspace:async(e,t)=>{const{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(const e of r.errors)t.reportWarning(d.b.INVALID_MANIFEST,e.message)}}};var I=r(46611),m=r(35691);class y{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){const r=this.getFetcher(e,t);return await r.fetch(e,t)}tryFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));return r||null}getFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));if(!r)throw new m.lk(d.b.FETCHER_NOT_FOUND,C.prettyLocator(t.project.configuration,e)+" isn't supported by any available fetcher");return r}}var w=r(27092),B=r(52779),Q=r(60895);class v{static isVirtualDescriptor(e){return!!e.range.startsWith(v.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(v.protocol)}supportsDescriptor(e,t){return v.isVirtualDescriptor(e)}supportsLocator(e,t){return v.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,r){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}v.protocol="virtual:";var D=r(75448),b=r(94538);class S{supports(e){return!!e.reference.startsWith(b.d.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){const r=this.getWorkspace(e,t).cwd;return{packageFs:new D.M(r),prefixPath:i.LZ.dot,localPath:r}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(b.d.protocol.length))}}var k=r(81111),x=r(73632),F=r(32282),M=r.n(F);function N(e){return("undefined"!=typeof require?require:r(32178))(e)}var R=r(36545);const K=process.env.GITHUB_ACTIONS?{level:2}:u().supportsColor?{level:u().supportsColor.level}:{level:0},L=0!==K.level,T=L&&!process.env.GITHUB_ACTIONS,P=new(u().Instance)(K),U=new Set(["binFolder","version","flags","profile","gpg","wrapOutput"]),_=(0,i.Zu)(".yarnrc.yml"),O=(0,i.Zu)("yarn.lock");var j,Y;!function(e){e.ANY="ANY",e.BOOLEAN="BOOLEAN",e.ABSOLUTE_PATH="ABSOLUTE_PATH",e.LOCATOR="LOCATOR",e.LOCATOR_LOOSE="LOCATOR_LOOSE",e.NUMBER="NUMBER",e.STRING="STRING",e.SECRET="SECRET",e.SHAPE="SHAPE",e.MAP="MAP"}(j||(j={})),function(e){e.NAME="NAME",e.NUMBER="NUMBER",e.PATH="PATH",e.RANGE="RANGE",e.REFERENCE="REFERENCE",e.SCOPE="SCOPE",e.ADDED="ADDED",e.REMOVED="REMOVED"}(Y||(Y={}));const G=K.level>=3?new Map([[Y.NAME,"#d7875f"],[Y.RANGE,"#00afaf"],[Y.REFERENCE,"#87afff"],[Y.NUMBER,"#ffd700"],[Y.PATH,"#d75fd7"],[Y.SCOPE,"#d75f00"],[Y.ADDED,"#5faf00"],[Y.REMOVED,"#d70000"]]):new Map([[Y.NAME,173],[Y.RANGE,37],[Y.REFERENCE,111],[Y.NUMBER,220],[Y.PATH,170],[Y.SCOPE,166],[Y.ADDED,70],[Y.REMOVED,160]]),J={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:j.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:j.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:j.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:j.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:j.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:j.ABSOLUTE_PATH,default:k.getDefaultGlobalFolder()},cacheFolder:{description:"Folder where the cache files must be written",type:j.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:j.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:n.k},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named $$virtual)",type:j.ABSOLUTE_PATH,default:"./.yarn/$$virtual"},bstatePath:{description:"Path of the file where the current state of the built packages must be stored",type:j.ABSOLUTE_PATH,default:"./.yarn/build-state.yml"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:j.STRING,default:O},installStatePath:{description:"Path of the file where the install state will be persisted",type:j.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},rcFilename:{description:"Name of the files where the configuration can be found",type:j.STRING,default:W()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:j.BOOLEAN,default:!1},enableAbsoluteVirtuals:{description:"If true, the virtual symlinks will use absolute paths if required [non portable!!]",type:j.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:j.BOOLEAN,default:L,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:j.BOOLEAN,default:T,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:j.BOOLEAN,default:l.isCI,defaultText:""},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:j.BOOLEAN,default:!l.isCI&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:j.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:j.BOOLEAN,default:l.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:j.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:j.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:j.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:j.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:j.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:j.BOOLEAN,default:!0},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:j.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:j.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:j.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:j.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:j.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:j.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:j.NUMBER,default:3},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:j.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:j.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:j.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:j.MAP,valueDefinition:{description:"",type:j.ANY}}};function H(e,t,r,n,i){if(n.isArray)return Array.isArray(r)?r.map((r,o)=>q(e,`${t}[${o}]`,r,n,i)):String(r).split(/,/).map(r=>q(e,t,r,n,i));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${t}" cannot be an array`);return q(e,t,r,n,i)}function q(e,t,r,n,o){var s;switch(n.type){case j.ANY:return r;case j.SHAPE:return function(e,t,r,n,i){if("object"!=typeof r||Array.isArray(r))throw new h.UsageError(`Object configuration settings "${t}" must be an object`);const o=z(e,n);if(null===r)return o;for(const[s,A]of Object.entries(r)){const r=`${t}.${s}`;if(!n.properties[s])throw new h.UsageError(`Unrecognized configuration settings found: ${t}.${s} - run "yarn config -v" to see the list of settings supported in Yarn`);o.set(s,H(e,r,A,n.properties[s],i))}return o}(e,t,r,n,o);case j.MAP:return function(e,t,r,n,i){const o=new Map;if("object"!=typeof r||Array.isArray(r))throw new h.UsageError(`Map configuration settings "${t}" must be an object`);if(null===r)return o;for(const[s,A]of Object.entries(r)){const r=n.normalizeKeys?n.normalizeKeys(s):s,a=`${t}['${r}']`,c=n.valueDefinition;o.set(r,H(e,a,A,c,i))}return o}(e,t,r,n,o)}if(null===r&&!n.isNullable&&null!==n.default)throw new Error(`Non-nullable configuration settings "${t}" cannot be set to null`);if(null===(s=n.values)||void 0===s?void 0:s.includes(r))return r;const A=(()=>{if(n.type===j.BOOLEAN)return function(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}(r);if("string"!=typeof r)throw new Error(`Expected value (${r}) to be a string`);const e=x.replaceEnvVariables(r,{env:process.env});switch(n.type){case j.ABSOLUTE_PATH:return i.y1.resolve(o,i.cS.toPortablePath(e));case j.LOCATOR_LOOSE:return C.parseLocator(e,!1);case j.NUMBER:return parseInt(e);case j.LOCATOR:return C.parseLocator(e);default:return e}})();if(n.values&&!n.values.includes(A))throw new Error("Invalid value, expected one of "+n.values.join(", "));return A}function z(e,t){switch(t.type){case j.SHAPE:{const r=new Map;for(const[n,i]of Object.entries(t.properties))r.set(n,z(e,i));return r}case j.MAP:return new Map;case j.ABSOLUTE_PATH:return null===t.default?null:null===e.projectCwd?i.y1.isAbsolute(t.default)?i.y1.normalize(t.default):t.isNullable?null:void 0:Array.isArray(t.default)?t.default.map(t=>i.y1.resolve(e.projectCwd,t)):i.y1.resolve(e.projectCwd,t.default);default:return t.default}}function W(){for(const[e,t]of Object.entries(process.env))if("yarn_rc_filename"===e.toLowerCase()&&"string"==typeof t)return t;return _}var V;!function(e){e[e.LOCKFILE=0]="LOCKFILE",e[e.MANIFEST=1]="MANIFEST",e[e.NONE=2]="NONE"}(V||(V={}));class X{constructor(e){this.projectCwd=null,this.plugins=new Map,this.settings=new Map,this.values=new Map,this.sources=new Map,this.invalid=new Map,this.packageExtensions=new Map,this.startingCwd=e}static create(e,t,r){const n=new X(e);void 0===t||t instanceof Map||(n.projectCwd=t),n.importSettings(J);const i=void 0!==r?r:t instanceof Map?t:new Map;for(const[e,t]of i)n.activatePlugin(e,t);return n}static async find(e,t,{lookup:r=V.LOCKFILE,strict:n=!0,usePath:s=!1,useRc:A=!0}={}){const c=function(){const e={};for(let[t,r]of Object.entries(process.env))t=t.toLowerCase(),t.startsWith("yarn_")&&(t=a()(t.slice("yarn_".length)),e[t]=r);return e}();delete c.rcFilename;const u=await X.findRcFiles(e),l=await X.findHomeRcFile(),g=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n})=>({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n}),f=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n,...i})=>i,p=new X(e);p.importSettings(g(J)),p.useWithSource("",g(c),e,{strict:!1});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,g(r),t,{strict:!1});if(l&&p.useWithSource(l.path,g(l.data),l.cwd,{strict:!1}),s){const e=p.get("yarnPath"),t=p.get("ignorePath");if(null!==e&&!t)return p}const d=p.get("lockfileFilename");let C;switch(r){case V.LOCKFILE:C=await X.findProjectCwd(e,d);break;case V.MANIFEST:C=await X.findProjectCwd(e,null);break;case V.NONE:C=o.xfs.existsSync(i.y1.join(e,"package.json"))?i.y1.resolve(e):null}p.startingCwd=e,p.projectCwd=C,p.importSettings(f(J));const I=new Map([["@@core",E]]);if(null!==t){for(const e of t.plugins.keys())I.set(e,(m=t.modules.get(e)).__esModule?m.default:m);const r=new Map;for(const e of new Set(M().builtinModules||Object.keys(process.binding("natives"))))r.set(e,()=>N(e));for(const[e,n]of t.modules)r.set(e,()=>n);const n=new Set,o=e=>e.default||e,s=(e,t)=>{const{factory:s,name:A}=N(i.cS.fromPortablePath(e));if(n.has(A))return;const a=new Map(r),c=e=>{if(a.has(e))return a.get(e)();throw new h.UsageError(`This plugin cannot access the package referenced via ${e} which is neither a builtin, nor an exposed entry`)},u=x.prettifySyncErrors(()=>o(s(c)),e=>`${e} (when initializing ${A}, defined in ${t})`);r.set(A,()=>u),n.add(A),I.set(A,u)};if(c.plugins)for(const t of c.plugins.split(";")){s(i.y1.resolve(e,i.cS.toPortablePath(t)),"")}for(const{path:e,cwd:t,data:r}of u)if(A&&Array.isArray(r.plugins))for(const n of r.plugins){const r="string"!=typeof n?n.path:n;s(i.y1.resolve(t,i.cS.toPortablePath(r)),e)}}var m;for(const[e,t]of I)p.activatePlugin(e,t);p.useWithSource("",f(c),e,{strict:n});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,f(r),t,{strict:n});return l&&p.useWithSource(l.path,f(l.data),l.cwd,{strict:n}),p.get("enableGlobalCache")&&(p.values.set("cacheFolder",p.get("globalFolder")+"/cache"),p.sources.set("cacheFolder","")),await p.refreshPackageExtensions(),p}static async findRcFiles(e){const t=W(),r=[];let n=e,A=null;for(;n!==A;){A=n;const e=i.y1.join(A,t);if(o.xfs.existsSync(e)){const t=await o.xfs.readFilePromise(e,"utf8");let n;try{n=(0,s.parseSyml)(t)}catch(r){let n="";throw t.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(n=" (in particular, make sure you list the colons after each key name)"),new h.UsageError(`Parse error when loading ${e}; please check it's proper Yaml${n}`)}r.push({path:e,cwd:A,data:n})}n=i.y1.dirname(A)}return r}static async findHomeRcFile(){const e=W(),t=k.getHomeFolder(),r=i.y1.join(t,e);if(o.xfs.existsSync(r)){const e=await o.xfs.readFilePromise(r,"utf8");return{path:r,cwd:t,data:(0,s.parseSyml)(e)}}return null}static async findProjectCwd(e,t){let r=null,n=e,s=null;for(;n!==s;){if(s=n,o.xfs.existsSync(i.y1.join(s,(0,i.Zu)("package.json")))&&(r=s),null!==t){if(o.xfs.existsSync(i.y1.join(s,t))){r=s;break}}else if(null!==r)break;n=i.y1.dirname(s)}return r}static async updateConfiguration(e,t){const r=W(),n=i.y1.join(e,r),A=o.xfs.existsSync(n)?(0,s.parseSyml)(await o.xfs.readFilePromise(n,"utf8")):{};let a=!1;if("function"==typeof t&&(t=t(A)),"function"==typeof t)throw new Error("Assertion failed: Invalid configuration type");for(const e of Object.keys(t)){const r=A[e],n="function"==typeof t[e]?t[e](r):t[e];r!==n&&(A[e]=n,a=!0)}a&&await o.xfs.changeFilePromise(n,(0,s.stringifySyml)(A),{automaticNewlines:!0})}static async updateHomeConfiguration(e){const t=k.getHomeFolder();return await X.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),void 0!==t.configuration&&this.importSettings(t.configuration)}importSettings(e){for(const[t,r]of Object.entries(e)){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,r),this.values.set(t,z(this,r))}}useWithSource(e,t,r,{strict:n=!0,overwrite:i=!1}){try{this.use(e,t,r,{strict:n,overwrite:i})}catch(t){throw t.message+=` (in ${e})`,t}}use(e,t,r,{strict:n=!0,overwrite:i=!1}){for(const o of Object.keys(t)){if(void 0===t[o])continue;if("plugins"===o)continue;if(""===e&&U.has(o))continue;if("rcFilename"===o)throw new h.UsageError(`The rcFilename settings can only be set via ${"yarn_RC_FILENAME".toUpperCase()}, not via a rc file`);const s=this.settings.get(o);if(!s){if(n)throw new h.UsageError(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!i)continue;let A;try{A=H(this,o,t[o],s,r)}catch(t){throw t.message+=" in "+e,t}this.values.set(o,A),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:r=!1}){const n=this.get(e),o=this.settings.get(e);if(void 0===o)throw new h.UsageError(`Couldn't find a configuration settings named "${e}"`);return function e(t,r,n){if(r.type===j.SECRET&&"string"==typeof t&&n.hideSecrets)return"********";if(r.type===j.ABSOLUTE_PATH&&"string"==typeof t&&n.getNativePaths)return i.cS.fromPortablePath(t);if(r.isArray&&Array.isArray(t)){const i=[];for(const o of t)i.push(e(o,r,n));return i}if(r.type===j.MAP&&t instanceof Map){const i=new Map;for(const[o,s]of t.entries())i.set(o,e(s,r.valueDefinition,n));return i}if(r.type===j.SHAPE&&t instanceof Map){const i=new Map;for(const[o,s]of t.entries()){const t=r.properties[o];i.set(o,e(s,t,n))}return i}return t}(n,o,{hideSecrets:t,getNativePaths:r})}getSubprocessStreams(e,{header:t,prefix:r,report:n}){let i,s;const A=o.xfs.createWriteStream(e);if(this.get("enableInlineBuilds")){const e=n.createStreamReporter(`${r} ${this.format("STDOUT","green")}`),t=n.createStreamReporter(`${r} ${this.format("STDERR","red")}`);i=new p.PassThrough,i.pipe(e),i.pipe(A),s=new p.PassThrough,s.pipe(t),s.pipe(A)}else i=A,s=A,void 0!==t&&i.write(t+"\n");return{stdout:i,stderr:s}}makeResolver(){const e=[];for(const t of this.plugins.values())for(const r of t.resolvers||[])e.push(new r);return new w.B([new v,new b.d,new B.O,...e])}makeFetcher(){const e=[];for(const t of this.plugins.values())for(const r of t.fetchers||[])e.push(new r);return new y([new Q.N,new S,...e])}getLinkers(){const e=[];for(const t of this.plugins.values())for(const r of t.linkers||[])e.push(new r);return e}async refreshPackageExtensions(){this.packageExtensions=new Map;const e=this.packageExtensions,t=(t,r)=>{if(!f().validRange(t.range))throw new Error("Only semver ranges are allowed as keys for the lockfileExtensions setting");const n=new I.G;n.load(r),x.getArrayWithDefault(e,t.identHash).push({range:t.range,patch:e=>{e.dependencies=new Map([...e.dependencies,...n.dependencies]),e.peerDependencies=new Map([...e.peerDependencies,...n.peerDependencies]),e.dependenciesMeta=new Map([...e.dependenciesMeta,...n.dependenciesMeta]),e.peerDependenciesMeta=new Map([...e.peerDependenciesMeta,...n.peerDependenciesMeta])}})};for(const[e,r]of this.get("packageExtensions"))t(C.parseDescriptor(e,!0),r);await this.triggerHook(e=>e.registerPackageExtensions,this,t)}normalizePackage(e){const t=C.copyPackage(e);if(null==this.packageExtensions)throw new Error("refreshPackageExtensions has to be called before normalizing packages");const r=this.packageExtensions.get(e.identHash);if(void 0!==r){const n=e.version;if(null!==n){const e=r.find(({range:e})=>R.satisfiesWithPrereleases(n,e));void 0!==e&&e.patch(t)}}return t.dependencies=new Map(x.sortMap(t.dependencies,([,e])=>e.name)),t.peerDependencies=new Map(x.sortMap(t.peerDependencies,([,e])=>e.name)),t}async triggerHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);i&&await i(...t)}}async triggerMultipleHooks(e,t){for(const r of t)await this.triggerHook(e,...r)}async reduceHook(e,t,...r){let n=t;for(const t of this.plugins.values()){const i=t.hooks;if(!i)continue;const o=e(i);o&&(n=await o(n,...r))}return n}async firstHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);if(!i)continue;const o=await i(...t);if(void 0!==o)return o}return null}format(e,t){if(t===Y.PATH&&(e=i.cS.fromPortablePath(e)),!this.get("enableColors"))return e;let r=G.get(t);void 0===r&&(r=t);return("number"==typeof r?P.ansi256(r):r.startsWith("#")?P.hex(r):P[r])(e)}}},92409:(e,t,r)=>{"use strict";var n;r.d(t,{k:()=>n}),function(e){e[e.SCRIPT=0]="SCRIPT",e[e.SHELLCODE=1]="SHELLCODE"}(n||(n={}))},62152:(e,t,r)=>{"use strict";r.d(t,{h:()=>i});var n=r(35691);class i extends n.yG{constructor({configuration:e,stdout:t,suggestInstall:r=!0}){super(),this.errorCount=0,this.configuration=e,this.stdout=t,this.suggestInstall=r}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${this.configuration.format("➤","redBright")} ${this.formatName(e)}: ${t}\n`)}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(this.configuration.format("➤","redBright")+" Errors happened when preparing the environment required to run this command.\n"),this.suggestInstall&&this.stdout.write(this.configuration.format("➤","redBright")+' This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.\n'))}formatName(e){return"BR"+e.toString(10).padStart(4,"0")}}},46611:(e,t,r)=>{"use strict";r.d(t,{G:()=>u});var n=r(78420),i=r(46009),o=r(55125),s=r(53887),A=r.n(s),a=r(73632),c=r(54143);class u{constructor(){this.indent=" ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.type=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(e,{baseFs:t=new n.S}={}){const r=i.y1.join(e,(0,i.Zu)("package.json"));return await t.existsPromise(r)?await u.fromFile(r,{baseFs:t}):null}static async find(e,{baseFs:t}={}){const r=await u.tryFind(e,{baseFs:t});if(null===r)throw new Error("Manifest not found");return r}static async fromFile(e,{baseFs:t=new n.S}={}){const r=new u;return await r.loadFile(e,{baseFs:t}),r}static fromText(e){const t=new u;return t.loadFromText(e),t}loadFromText(e){let t;try{t=JSON.parse(h(e)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(t),this.indent=l(e)}async loadFile(e,{baseFs:t=new n.S}){const r=await t.readFilePromise(e,"utf8");let i;try{i=JSON.parse(h(r)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(i),this.indent=l(r)}load(e){if("object"!=typeof e||null===e)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;const t=[];if("string"==typeof e.name)try{this.name=c.parseIdent(e.name)}catch(e){t.push(new Error("Parsing failed for the 'name' field"))}if("string"==typeof e.version&&(this.version=e.version),Array.isArray(e.os)){const r=[];this.os=r;for(const n of e.os)"string"!=typeof n?t.push(new Error("Parsing failed for the 'os' field")):r.push(n)}if(Array.isArray(e.cpu)){const r=[];this.cpu=r;for(const n of e.cpu)"string"!=typeof n?t.push(new Error("Parsing failed for the 'cpu' field")):r.push(n)}if("string"==typeof e.type&&(this.type=e.type),"boolean"==typeof e.private&&(this.private=e.private),"string"==typeof e.license&&(this.license=e.license),"string"==typeof e.languageName&&(this.languageName=e.languageName),"string"==typeof e.bin)null!==this.name?this.bin=new Map([[this.name.name,e.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.bin&&null!==e.bin)for(const[r,n]of Object.entries(e.bin))"string"==typeof n?this.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`));if("object"==typeof e.scripts&&null!==e.scripts)for(const[r,n]of Object.entries(e.scripts))"string"==typeof n?this.scripts.set(r,n):t.push(new Error(`Invalid script definition for '${r}'`));if("object"==typeof e.dependencies&&null!==e.dependencies)for(const[r,n]of Object.entries(e.dependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i)}if("object"==typeof e.devDependencies&&null!==e.devDependencies)for(const[r,n]of Object.entries(e.devDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.devDependencies.set(i.identHash,i)}if("object"==typeof e.peerDependencies&&null!==e.peerDependencies)for(let[r,n]of Object.entries(e.peerDependencies)){let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}"string"==typeof n&&A().validRange(n)||(t.push(new Error(`Invalid dependency range for '${r}'`)),n="*");const i=c.makeDescriptor(e,n);this.peerDependencies.set(i.identHash,i)}const r=Array.isArray(e.workspaces)?e.workspaces:"object"==typeof e.workspaces&&null!==e.workspaces&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];for(const e of r)"string"==typeof e?this.workspaceDefinitions.push({pattern:e}):t.push(new Error(`Invalid workspace definition for '${e}'`));if("object"==typeof e.dependenciesMeta&&null!==e.dependenciesMeta)for(const[r,n]of Object.entries(e.dependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=c.parseDescriptor(r),i=this.ensureDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.peerDependenciesMeta&&null!==e.peerDependenciesMeta)for(const[r,n]of Object.entries(e.peerDependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=c.parseDescriptor(r),i=this.ensurePeerDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.resolutions&&null!==e.resolutions)for(const[r,n]of Object.entries(e.resolutions))if("string"==typeof n)try{this.resolutions.push({pattern:(0,o.parseResolution)(r),reference:n})}catch(e){t.push(e);continue}else t.push(new Error(`Invalid resolution entry for '${r}'`));if(Array.isArray(e.files)&&0!==e.files.length){this.files=new Set;for(const r of e.files)"string"==typeof r?this.files.add(r):t.push(new Error(`Invalid files entry for '${r}'`))}if("object"==typeof e.publishConfig&&null!==e.publishConfig)if(this.publishConfig={},"string"==typeof e.publishConfig.access&&(this.publishConfig.access=e.publishConfig.access),"string"==typeof e.publishConfig.main&&(this.publishConfig.main=e.publishConfig.main),"string"==typeof e.publishConfig.registry&&(this.publishConfig.registry=e.publishConfig.registry),"string"==typeof e.publishConfig.module&&(this.publishConfig.module=e.publishConfig.module),"string"==typeof e.publishConfig.bin)null!==this.name?this.publishConfig.bin=new Map([[this.name.name,e.publishConfig.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.publishConfig.bin&&null!==e.publishConfig.bin){this.publishConfig.bin=new Map;for(const[r,n]of Object.entries(e.publishConfig.bin))"string"==typeof n?this.publishConfig.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`))}if("object"==typeof e.optionalDependencies&&null!==e.optionalDependencies)for(const[r,n]of Object.entries(e.optionalDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i);const o=c.makeDescriptor(e,"unknown"),s=this.ensureDependencyMeta(o);Object.assign(s,{optional:!0})}"boolean"==typeof e.preferUnplugged&&(this.preferUnplugged=e.preferUnplugged),this.errors=t}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!this.dependencies.has(e.identHash)||!!this.peerDependencies.has(e.identHash)}hasHardDependency(e){return!!this.dependencies.has(e.identHash)||!!this.devDependencies.has(e.identHash)}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!this.hasHardDependency(e)||!!this.hasSoftDependency(e)}isCompatibleWithOS(e){return null===this.os||g(this.os,e)}isCompatibleWithCPU(e){return null===this.cpu||g(this.cpu,e)}ensureDependencyMeta(e){if("unknown"!==e.range&&!A().valid(e.range))throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e),r="unknown"!==e.range?e.range:null;let n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let i=n.get(r);return i||n.set(r,i={}),i}ensurePeerDependencyMeta(e){if("unknown"!==e.range)throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e);let r=this.peerDependenciesMeta.get(t);return r||this.peerDependenciesMeta.set(t,r={}),this.peerDependencies.has(e.identHash)||this.peerDependencies.set(e.identHash,c.makeDescriptor(e,"*")),r}setRawField(e,t,{after:r=[]}={}){const n=new Set(r.filter(e=>Object.prototype.hasOwnProperty.call(this.raw,e)));if(0===n.size||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{const r=this.raw,i=this.raw={};let o=!1;for(const s of Object.keys(r))i[s]=r[s],o||(n.delete(s),0===n.size&&(i[e]=t,o=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){Object.assign(e,this.raw),null!==this.name?e.name=c.stringifyIdent(this.name):delete e.name,null!==this.version?e.version=this.version:delete e.version,null!==this.os?e.os=this.os:delete this.os,null!==this.cpu?e.cpu=this.cpu:delete this.cpu,null!==this.type?e.type=this.type:delete e.type,this.private?e.private=!0:delete e.private,null!==this.license?e.license=this.license:delete e.license,null!==this.languageName?e.languageName=this.languageName:delete e.languageName,1===this.bin.size&&null!==this.name&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(e=>({[e]:this.bin.get(e)}))):delete e.bin;const r=[],n=[];for(const e of this.dependencies.values()){const i=this.dependenciesMeta.get(c.stringifyIdent(e));let o=!1;if(t&&i){const e=i.get(null);e&&e.optional&&(o=!0)}o?n.push(e):r.push(e)}r.length>0?e.dependencies=Object.assign({},...c.sortDescriptors(r).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...c.sortDescriptors(n).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...c.sortDescriptors(this.devDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...c.sortDescriptors(this.peerDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(const[r,n]of a.sortMap(this.dependenciesMeta.entries(),([e,t])=>e))for(const[i,o]of a.sortMap(n.entries(),([e,t])=>null!==e?"0"+e:"1")){const n=null!==i?c.stringifyDescriptor(c.makeDescriptor(c.parseIdent(r),i)):r,s={...o};t&&null===i&&delete s.optional,0!==Object.keys(s).length&&(e.dependenciesMeta[n]=s)}return 0===Object.keys(e.dependenciesMeta).length&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...a.sortMap(this.peerDependenciesMeta.entries(),([e,t])=>e).map(([e,t])=>({[e]:t}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:e,reference:t})=>({[(0,o.stringifyResolution)(e)]:t}))):delete e.resolutions,null!==this.files?e.files=Array.from(this.files):delete e.files,null!==this.preferUnplugged?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,e}}function l(e){const t=e.match(/^[ \t]+/m);return t?t[0]:" "}function h(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function g(e,t){let r=!0,n=!1;for(const i of e)if("!"===i[0]){if(n=!0,t===i.slice(1))return!1}else if(r=!1,i===t)return!0;return n&&r}u.fileName="package.json",u.allDependencies=["dependencies","devDependencies","peerDependencies"],u.hardDependencies=["dependencies","devDependencies"]},92659:(e,t,r)=>{"use strict";var n;r.d(t,{b:()=>n}),function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU"}(n||(n={}))},27092:(e,t,r)=>{"use strict";r.d(t,{B:()=>i});var n=r(54143);class i{constructor(e){this.resolvers=e.filter(e=>e)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.getResolverByDescriptor(e,r).bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,r){const n=this.getResolverByDescriptor(e,r);return await n.getCandidates(e,t,r)}async resolve(e,t){const r=this.getResolverByLocator(e,t);return await r.resolve(e,t)}tryResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));return r||null}getResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));if(!r)throw new Error(n.prettyDescriptor(t.project.configuration,e)+" isn't supported by any available resolver");return r}tryResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));return r||null}getResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));if(!r)throw new Error(n.prettyLocator(t.project.configuration,e)+" isn't supported by any available resolver");return r}}},40376:(e,t,r)=>{"use strict";r.d(t,{I:()=>ne});var n=r(56537),i=r(46009),o=r(35398),s=r(55125),A=r(17278),a=r(76417);function c(){}function u(e,t,r,n,i){for(var o=0,s=t.length,A=0,a=0;oe.length?r:e})),c.value=e.join(l)}else c.value=e.join(r.slice(A,A+c.count));A+=c.count,c.added||(a+=c.count)}}var h=t[s-1];return s>1&&"string"==typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[s-2].value+=h.value,t.pop()),t}function l(e){return{newPos:e.newPos,components:e.components.slice(0)}}c.prototype={diff:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.callback;"function"==typeof r&&(n=r,r={}),this.options=r;var i=this;function o(e){return n?(setTimeout((function(){n(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,A=e.length,a=1,c=s+A,h=[{newPos:-1,components:[]}],g=this.extractCommon(h[0],t,e,0);if(h[0].newPos+1>=s&&g+1>=A)return o([{value:this.join(t),count:t.length}]);function f(){for(var r=-1*a;r<=a;r+=2){var n=void 0,c=h[r-1],g=h[r+1],f=(g?g.newPos:0)-r;c&&(h[r-1]=void 0);var p=c&&c.newPos+1=s&&f+1>=A)return o(u(i,n.components,t,e,i.useLongestToken));h[r]=n}else h[r]=void 0}a++}if(n)!function e(){setTimeout((function(){if(a>c)return n();f()||e()}),0)}();else for(;a<=c;){var p=f();if(p)return p}},pushComponent:function(e,t,r){var n=e[e.length-1];n&&n.added===t&&n.removed===r?e[e.length-1]={count:n.count+1,added:t,removed:r}:e.push({count:1,added:t,removed:r})},extractCommon:function(e,t,r,n){for(var i=t.length,o=r.length,s=e.newPos,A=s-n,a=0;s+10?a(p.lines.slice(-s.context)):[],u-=h.length,l-=h.length)}(o=h).push.apply(o,I(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?f+=i.length:g+=i.length}else{if(u)if(i.length<=2*s.context&&e=A.length-2&&i.length<=s.context){var y=/\n$/.test(r),w=/\n$/.test(n),B=0==i.length&&h.length>m.oldLines;!y&&B&&h.splice(m.oldLines,0,"\\ No newline at end of file"),(y||B)&&w||h.push("\\ No newline at end of file")}c.push(m),u=0,l=0,h=[]}g+=i.length,f+=i.length}},C=0;C`${r}#commit:${n}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https?:\/\/[^/]+\/(?:@[^/]+\/)?([^/]+)\/-\/\1-[^/]+\.tgz(?:#|$)/,e=>"npm:"+e],[/^[^/]+\.tgz#[0-9a-f]+$/,e=>"npm:"+e]];class _{constructor(){this.resolutions=null}async setup(e,{report:t}){const r=i.y1.join(e.cwd,e.configuration.get("lockfileFilename"));if(!n.xfs.existsSync(r))return;const o=await n.xfs.readFilePromise(r,"utf8"),A=(0,s.parseSyml)(o);if(Object.prototype.hasOwnProperty.call(A,"__metadata"))return;const a=this.resolutions=new Map;for(const r of Object.keys(A)){let n=P.tryParseDescriptor(r);if(!n){t.reportWarning(T.b.YARN_IMPORT_FAILED,`Failed to parse the string "${r}" into a proper descriptor`);continue}k().validRange(n.range)&&(n=P.makeDescriptor(n,"npm:"+n.range));const{version:i,resolved:o}=A[r];if(!o)continue;let s;for(const[e,t]of U){const r=o.match(e);if(r){s=t(i,...r);break}}if(!s){t.reportWarning(T.b.YARN_IMPORT_FAILED,`${P.prettyDescriptor(e.configuration,n)}: Only some patterns can be imported from legacy lockfiles (not "${o}")`);continue}const c=P.makeLocator(n,s);a.set(n.descriptorHash,c)}}supportsDescriptor(e,t){return!!this.resolutions&&this.resolutions.has(e.descriptorHash)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");const n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}class O{supportsDescriptor(e,t){return!!t.project.storedResolutions.get(e.descriptorHash)||!!t.project.originalPackages.has(P.convertDescriptorToLocator(e).locatorHash)}supportsLocator(e,t){return!!t.project.originalPackages.has(e.locatorHash)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let n=r.project.originalPackages.get(P.convertDescriptorToLocator(e).locatorHash);if(n)return[n];const i=r.project.storedResolutions.get(e.descriptorHash);if(!i)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=r.project.originalPackages.get(i),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async resolve(e,t){const r=t.project.originalPackages.get(e.locatorHash);if(!r)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return r}}var j=r(46611),Y=r(27092),G=r(35691);class J{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.resolver.bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,r){throw new G.lk(T.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}async resolve(e,t){throw new G.lk(T.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}}var H=r(33720),q=r(17722),z=r(81111),W=r(20624),V=r(73632),X=r(63088),Z=r(36545),$=r(32485);const ee=/ *, */g,te=(0,x.promisify)(R().gzip),re=(0,x.promisify)(R().gunzip);class ne{constructor(e,{configuration:t}){this.resolutionAliases=new Map,this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map,this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.storedChecksums=new Map,this.accessibleLocators=new Set,this.originalPackages=new Map,this.optionalBuilds=new Set,this.lockFileChecksum=null,this.configuration=t,this.cwd=e}static async find(e,t){if(!e.projectCwd)throw new A.UsageError("No project found in "+t);let r=e.projectCwd,o=t,s=null;for(;s!==e.projectCwd;){if(s=o,n.xfs.existsSync(i.y1.join(s,(0,i.Zu)("package.json")))){r=s;break}o=i.y1.dirname(s)}const a=new ne(e.projectCwd,{configuration:e});await a.setupResolutions(),await a.setupWorkspaces();const c=a.tryWorkspaceByCwd(r);if(c)return{project:a,workspace:c,locator:c.anchoredLocator};const u=await a.findLocatorForLocation(r+"/");if(u)return{project:a,locator:u,workspace:null};throw new A.UsageError(`The nearest package directory (${r}) doesn't seem to be part of the project declared at ${a.cwd}. If the project directory is right, it might be that you forgot to list a workspace. If it isn't, it's likely because you have a yarn.lock file at the detected location, confusing the project detection.`)}static generateBuildStateFile(e,t){let r="# Warning: This file is automatically generated. Removing it is fine, but will\n# cause all your builds to become invalidated.\n";const n=[...e].map(([e,r])=>{const n=t.get(e);if(void 0===n)throw new Error("Assertion failed: The locator should have been registered");return[P.stringifyLocator(n),n.locatorHash,r]});for(const[e,t,i]of V.sortMap(n,[e=>e[0],e=>e[1]]))r+="\n",r+=`# ${e}\n`,r+=JSON.stringify(t)+":\n",r+=` ${i}\n`;return r}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(n.xfs.existsSync(e)){const r=await n.xfs.readFilePromise(e,"utf8");this.lockFileChecksum=W.makeHash("1",r);const i=(0,s.parseSyml)(r);if(i.__metadata){const e=i.__metadata.version,r=i.__metadata.cacheKey;for(const n of Object.keys(i)){if("__metadata"===n)continue;const o=i[n];if(void 0===o.resolution)throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${n})`);const s=P.parseLocator(o.resolution,!0),A=new j.G;A.load(o);const a=A.version,c=A.languageName||t,u=o.linkType.toUpperCase(),l=A.dependencies,h=A.peerDependencies,g=A.dependenciesMeta,f=A.peerDependenciesMeta,p=A.bin;if(null!=o.checksum){const e=void 0===r||o.checksum.includes("/")?o.checksum:`${r}/${o.checksum}`;this.storedChecksums.set(s.locatorHash,e)}if(e>=4){const e={...s,version:a,languageName:c,linkType:u,dependencies:l,peerDependencies:h,dependenciesMeta:g,peerDependenciesMeta:f,bin:p};this.originalPackages.set(e.locatorHash,e)}for(const t of n.split(ee)){const r=P.parseDescriptor(t);if(this.storedDescriptors.set(r.descriptorHash,r),e>=4)this.storedResolutions.set(r.descriptorHash,s.locatorHash);else{const e=P.convertLocatorToDescriptor(s);e.descriptorHash!==r.descriptorHash&&(this.storedDescriptors.set(e.descriptorHash,e),this.resolutionAliases.set(r.descriptorHash,e.descriptorHash))}}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){const t=e;e=[];for(const r of t){if(this.workspacesByCwd.has(r))continue;const t=await this.addWorkspace(r),n=this.storedPackages.get(t.anchoredLocator.locatorHash);n&&(t.dependencies=n.dependencies);for(const r of t.workspacesCwds)e.push(r)}}}async addWorkspace(e){const t=new q.j(e,{project:this});await t.setup();const r=this.workspacesByIdent.get(t.locator.identHash);if(void 0!==r)throw new Error(`Duplicate workspace name ${P.prettyIdent(this.configuration,t.locator)}: ${e} conflicts with ${r.cwd}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){i.y1.isAbsolute(e)||(e=i.y1.resolve(this.cwd,e));const t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){const t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(const r of this.workspaces){i.y1.relative(r.cwd,e).startsWith("../")||(t&&t.cwd.length>=r.cwd.length||(t=r))}return t||null}getWorkspaceByFilePath(e){const t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){const t=this.workspacesByIdent.get(e.identHash);return void 0===t?null:t}getWorkspaceByIdent(e){const t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${P.prettyIdent(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){const t=this.tryWorkspaceByIdent(e);return null!==t&&t.accepts(e.range)?t:null}getWorkspaceByDescriptor(e){const t=this.tryWorkspaceByDescriptor(e);if(null===t)throw new Error(`Workspace not found (${P.prettyDescriptor(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){P.isVirtualLocator(e)&&(e=P.devirtualizeLocator(e));const t=this.tryWorkspaceByIdent(e);return null===t||t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash?null:t}getWorkspaceByLocator(e){const t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${P.prettyLocator(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(const e of this.workspaces){const t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error("Assertion failed: Expected workspace to have been resolved");e.dependencies=new Map(t.dependencies)}}forgetResolution(e){for(const[t,r]of this.storedResolutions){const n="descriptorHash"in e&&e.descriptorHash===t,i="locatorHash"in e&&e.locatorHash===r;(n||i)&&(this.storedDescriptors.delete(t),this.storedResolutions.delete(t),this.originalPackages.delete(r))}}forgetTransientResolutions(){const e=this.configuration.makeResolver();for(const t of this.originalPackages.values()){let r;try{r=e.shouldPersistResolution(t,{project:this,resolver:e})}catch(e){r=!1}r||this.forgetResolution(t)}}forgetVirtualResolutions(){for(const e of this.storedPackages.values())for(const[t,r]of e.dependencies)P.isVirtualDescriptor(r)&&e.dependencies.set(t,P.devirtualizeDescriptor(r))}getDependencyMeta(e,t){const r={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(P.stringifyIdent(e));if(!n)return r;const i=n.get(null);if(i&&Object.assign(r,i),null===t||!k().valid(t))return r;for(const[e,i]of n)null!==e&&e===t&&Object.assign(r,i);return r}async findLocatorForLocation(e){const t=new H.$,r=this.configuration.getLinkers(),n={project:this,report:t};for(const t of r){const r=await t.findPackageLocator(e,n);if(r)return r}return null}async validateEverything(e){for(const t of e.validationWarnings)e.report.reportWarning(t.name,t.text);for(const t of e.validationErrors)e.report.reportError(t.name,t.text)}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();const t=e.resolver||this.configuration.makeResolver(),r=new _;await r.setup(this,{report:e.report});const o=e.lockfileOnly?new Y.B([new O,new J(t)]):new Y.B([new O,r,t]),s=this.configuration.makeFetcher(),A=e.lockfileOnly?{project:this,report:e.report,resolver:o}:{project:this,report:e.report,resolver:o,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:s}},a=new Map,c=new Map,u=new Map,l=new Map,h=new Map,g=new Set;let f=new Set;for(const e of this.workspaces){const t=e.anchoredDescriptor;a.set(t.descriptorHash,t),f.add(t.descriptorHash)}const p=b()(10);for(;0!==f.size;){const e=f;f=new Set;for(const t of e)u.has(t)&&e.delete(t);if(0===e.size)break;const t=new Set,r=new Map;for(const n of e){const i=a.get(n);if(!i)throw new Error("Assertion failed: The descriptor should have been registered");let s=h.get(n);if(void 0===s){h.set(n,s=new Set);for(const e of o.getResolutionDependencies(i,A))a.set(e.descriptorHash,e),s.add(e.descriptorHash)}const l=V.getMapWithDefault(r,n);for(const r of s){const i=u.get(r);if(void 0!==i){const e=c.get(i);if(void 0===e)throw new Error("Assertion failed: The package should have been registered");l.set(r,e)}else t.add(n),e.add(r)}}for(const r of t)e.delete(r),f.add(r);if(0===e.size)throw new Error("Assertion failed: Descriptors should not have cyclic dependencies");const n=new Map(await Promise.all(Array.from(e).map(e=>p(async()=>{const t=a.get(e);if(void 0===t)throw new Error("Assertion failed: The descriptor should have been registered");const n=r.get(t.descriptorHash);if(void 0===n)throw new Error("Assertion failed: The descriptor dependencies should have been registered");let i;try{i=await o.getCandidates(t,n,A)}catch(e){throw e.message=`${P.prettyDescriptor(this.configuration,t)}: ${e.message}`,e}if(0===i.length)throw new Error("No candidate found for "+P.prettyDescriptor(this.configuration,t));return[t.descriptorHash,i]})))),i=new Map;for(const[e,t]of n)1===t.length&&(i.set(e,t[0]),n.delete(e));for(const[e,t]of n){const r=t.find(e=>c.has(e.locatorHash));r&&(i.set(e,r),n.delete(e))}if(n.size>0){const e=new(v().Solver);for(const t of n.values())e.require(v().or(...t.map(e=>e.locatorHash)));let t,r=100,o=null,s=1/0;for(;r>0&&null!==(t=e.solve());){const n=t.getTrueVars();e.forbid(t.getFormula()),n.lengthA.has(e.locatorHash));if(!r)throw new Error("Assertion failed: The descriptor should have been solved during the previous step");i.set(e,r),n.delete(e)}}const s=Array.from(i.values()).filter(e=>!c.has(e.locatorHash)),d=new Map(await Promise.all(s.map(async e=>{const t=await V.prettifyAsyncErrors(async()=>await o.resolve(e,A),t=>`${P.prettyLocator(this.configuration,e)}: ${t}`);if(!P.areLocatorsEqual(e,t))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${P.prettyLocator(this.configuration,e)} to ${P.prettyLocator(this.configuration,t)})`);const r=this.configuration.normalizePackage(t);for(const[t,n]of r.dependencies){const i=await this.configuration.reduceHook(e=>e.reduceDependency,n,this,r,n,{resolver:o,resolveOptions:A});if(!P.areIdentsEqual(n,i))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");const s=o.bindDescriptor(i,e,A);r.dependencies.set(t,s)}return[r.locatorHash,{original:t,pkg:r}]})));for(const t of e){const e=i.get(t);if(!e)throw new Error("Assertion failed: The locator should have been registered");u.set(t,e.locatorHash);const r=d.get(e.locatorHash);if(void 0===r)continue;const{original:n,pkg:o}=r;l.set(n.locatorHash,n),c.set(o.locatorHash,o);for(const e of o.dependencies.values()){a.set(e.descriptorHash,e),f.add(e.descriptorHash);const t=this.resolutionAliases.get(e.descriptorHash);if(void 0===t)continue;if(e.descriptorHash===t)continue;const r=this.storedDescriptors.get(t);if(!r)throw new Error("Assertion failed: The alias should have been registered");u.has(e.descriptorHash)||(u.set(e.descriptorHash,"temporary"),f.delete(e.descriptorHash),f.add(t),a.set(t,r),g.add(e.descriptorHash))}}}for(;g.size>0;){let e=!1;for(const t of g){if(!a.get(t))throw new Error("Assertion failed: The descriptor should have been registered");const r=this.resolutionAliases.get(t);if(void 0===r)throw new Error("Assertion failed: The descriptor should have an alias");const n=u.get(r);if(void 0===n)throw new Error("Assertion failed: The resolution should have been registered");"temporary"!==n&&(g.delete(t),u.set(t,n),e=!0)}if(!e)throw new Error("Alias loop detected")}const d=new Set(this.resolutionAliases.values()),C=new Set(c.keys()),E=new Set;!function({project:e,allDescriptors:t,allResolutions:r,allPackages:o,accessibleLocators:s=new Set,optionalBuilds:A=new Set,volatileDescriptors:a=new Set,report:c,tolerateMissingPackages:u=!1}){const l=new Map,h=[],g=new Map,f=new Map,p=new Map(e.workspaces.map(e=>{const t=e.anchoredLocator.locatorHash,r=o.get(t);if(void 0===r){if(u)return[t,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[t,P.copyPackage(r)]})),d=()=>{const e=n.xfs.mktempSync(),t=i.y1.join(e,"stacktrace.log"),r=String(h.length+1).length,o=h.map((e,t)=>`${(t+1+".").padStart(r," ")} ${P.stringifyLocator(e)}\n`).join("");throw n.xfs.writeFileSync(t,o),new G.lk(T.b.STACK_OVERFLOW_RESOLUTION,"Encountered a stack overflow when resolving peer dependencies; cf "+t)},C=e=>{const t=r.get(e.descriptorHash);if(void 0===t)throw new Error("Assertion failed: The resolution should have been registered");const n=o.get(t);if(!n)throw new Error("Assertion failed: The package could not be found");return n},E=(e,t,r)=>{h.length>1e3&&d(),h.push(e);const n=I(e,t,r);return h.pop(),n},I=(n,i,h)=>{if(s.has(n.locatorHash))return;s.add(n.locatorHash),h||A.delete(n.locatorHash);const I=o.get(n.locatorHash);if(!I){if(u)return;throw new Error(`Assertion failed: The package (${P.prettyLocator(e.configuration,n)}) should have been registered`)}const m=[],y=[],w=[],B=[],Q=[];for(const s of Array.from(I.dependencies.values())){if(I.peerDependencies.has(s.identHash)&&!i)continue;if(P.isVirtualDescriptor(s))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(s.descriptorHash);let A=h;if(!A){const e=I.dependenciesMeta.get(P.stringifyIdent(s));if(void 0!==e){const t=e.get(null);void 0!==t&&t.optional&&(A=!0)}}const g=r.get(s.descriptorHash);if(!g){if(u)continue;throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(e.configuration,s)}) should have been registered`)}const v=p.get(g)||o.get(g);if(!v)throw new Error(`Assertion failed: The package (${g}, resolved from ${P.prettyDescriptor(e.configuration,s)}) should have been registered`);if(0===v.peerDependencies.size){E(v,!1,A);continue}const D=l.get(v.locatorHash);let b,S;"number"==typeof D&&D>=2&&d();const k=new Set;y.push(()=>{b=P.virtualizeDescriptor(s,n.locatorHash),S=P.virtualizePackage(v,n.locatorHash),I.dependencies.delete(s.identHash),I.dependencies.set(b.identHash,b),r.set(b.descriptorHash,S.locatorHash),t.set(b.descriptorHash,b),o.set(S.locatorHash,S),m.push([v,b,S])}),w.push(()=>{for(const i of S.peerDependencies.values()){let o=I.dependencies.get(i.identHash);if(!o&&P.areIdentsEqual(n,i)&&(o=P.convertLocatorToDescriptor(n),t.set(o.descriptorHash,o),r.set(o.descriptorHash,n.locatorHash),a.delete(o.descriptorHash)),o||!S.dependencies.has(i.identHash)){if(!o){if(!I.peerDependencies.has(i.identHash)){const t=S.peerDependenciesMeta.get(P.stringifyIdent(i));null===c||t&&t.optional||c.reportWarning(T.b.MISSING_PEER_DEPENDENCY,`${P.prettyLocator(e.configuration,n)} doesn't provide ${P.prettyDescriptor(e.configuration,i)} requested by ${P.prettyLocator(e.configuration,v)}`)}o=P.makeDescriptor(i,"missing:")}if(S.dependencies.set(o.identHash,o),P.isVirtualDescriptor(o)){V.getSetWithDefault(f,o.descriptorHash).add(S.locatorHash)}if("missing:"===o.range)k.add(o.identHash);else if(null!==c){const t=C(o);Z.satisfiesWithPrereleases(t.version,i.range)||c.reportWarning(T.b.INCOMPATIBLE_PEER_DEPENDENCY,`${P.prettyLocator(e.configuration,n)} provides ${P.prettyLocator(e.configuration,t)} with version ${t.version} which doesn't satisfy ${P.prettyRange(e.configuration,i.range)} requested by ${P.prettyLocator(e.configuration,v)}`)}}else S.peerDependencies.delete(i.identHash)}S.dependencies=new Map(V.sortMap(S.dependencies,([e,t])=>P.stringifyIdent(t)))}),B.push(()=>{if(!o.has(S.locatorHash))return;const e=l.get(v.locatorHash),t=void 0!==e?e+1:1;l.set(v.locatorHash,t),E(S,!1,A),l.set(v.locatorHash,t-1)}),Q.push(()=>{if(o.has(S.locatorHash))for(const e of k)S.dependencies.delete(e)})}for(const e of[...y,...w])e();let v;do{v=!0;for(const[n,i,A]of m){if(!o.has(A.locatorHash))continue;const a=V.getMapWithDefault(g,n.locatorHash),c=W.makeHash(...[...A.dependencies.values()].map(t=>{const n="missing:"!==t.range?r.get(t.descriptorHash):"missing:";if(void 0===n)throw new Error(`Assertion failed: Expected the resolution for ${P.prettyDescriptor(e.configuration,t)} to have been registered`);return n})),u=a.get(c);if(void 0===u){a.set(c,i);continue}if(u===i)continue;v=!1,o.delete(A.locatorHash),t.delete(i.descriptorHash),r.delete(i.descriptorHash),s.delete(A.locatorHash);const l=f.get(i.descriptorHash)||[],h=[I.locatorHash,...l];for(const e of h){const t=o.get(e);void 0!==t&&t.dependencies.set(i.identHash,u)}}}while(!v);for(const e of[...B,...Q])e()};for(const t of e.workspaces)a.delete(t.anchoredDescriptor.descriptorHash),E(t.anchoredLocator,!0,!1)}({project:this,report:e.report,accessibleLocators:E,volatileDescriptors:d,optionalBuilds:C,allDescriptors:a,allResolutions:u,allPackages:c});for(const e of d)a.delete(e),u.delete(e);this.storedResolutions=u,this.storedDescriptors=a,this.storedPackages=c,this.accessibleLocators=E,this.originalPackages=l,this.optionalBuilds=C,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:r}){const n=r||this.configuration.makeFetcher(),i={checksums:this.storedChecksums,project:this,cache:e,fetcher:n,report:t},o=V.sortMap(this.storedResolutions.values(),[e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");return P.stringifyLocator(t)}]);let s=!1;const A=G.yG.progressViaCounter(o.length);t.reportProgress(A);const a=b()(32);if(await t.startCacheReport(async()=>{await Promise.all(o.map(e=>a(async()=>{const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The locator should have been registered");if(P.isVirtualLocator(r))return;let o;try{o=await n.fetch(r,i)}catch(e){return e.message=`${P.prettyLocator(this.configuration,r)}: ${e.message}`,t.reportExceptionOnce(e),void(s=e)}o.checksum?this.storedChecksums.set(r.locatorHash,o.checksum):this.storedChecksums.delete(r.locatorHash),o.releaseFs&&o.releaseFs()}).finally(()=>{A.tick()})))}),s)throw s}async linkEverything({cache:e,report:t,fetcher:r}){const o=r||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0},c=this.configuration.getLinkers(),u={project:this,report:t},l=new Map(c.map(e=>[e,e.makeInstaller(u)])),h=new Map,g=new Map,f=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=await o.fetch(t,A);if(null!==this.tryWorkspaceByLocator(t)){const e=[],{scripts:n}=await j.G.find(r.prefixPath,{baseFs:r.packageFs});for(const t of["preinstall","install","postinstall"])n.has(t)&&e.push([L.k.SCRIPT,t]);try{for(const e of l.values())await e.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}const o=i.y1.join(r.packageFs.getRealPath(),r.prefixPath);g.set(t.locatorHash,o),e.length>0&&f.set(t.locatorHash,{directives:e,buildLocations:[o]})}else{const e=c.find(e=>e.supportsPackage(t,u));if(!e)throw new G.lk(T.b.LINKER_NOT_FOUND,P.prettyLocator(this.configuration,t)+" isn't supported by any available linker");const n=l.get(e);if(!n)throw new Error("Assertion failed: The installer should have been registered");let i;try{i=await n.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}h.set(t.locatorHash,e),g.set(t.locatorHash,i.packageLocation),i.buildDirective&&i.packageLocation&&f.set(t.locatorHash,{directives:i.buildDirective,buildLocations:[i.packageLocation]})}}const p=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=null!==this.tryWorkspaceByLocator(t),n=async(e,n)=>{const i=g.get(t.locatorHash);if(void 0===i)throw new Error(`Assertion failed: The package (${P.prettyLocator(this.configuration,t)}) should have been registered`);const o=[];for(const n of t.dependencies.values()){const s=this.storedResolutions.get(n.descriptorHash);if(void 0===s)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,n)}, from ${P.prettyLocator(this.configuration,t)})should have been registered`);const A=this.storedPackages.get(s);if(void 0===A)throw new Error(`Assertion failed: The package (${s}, resolved from ${P.prettyDescriptor(this.configuration,n)}) should have been registered`);const a=null===this.tryWorkspaceByLocator(A)?h.get(s):null;if(void 0===a)throw new Error(`Assertion failed: The package (${s}, resolved from ${P.prettyDescriptor(this.configuration,n)}) should have been registered`);const c=null===a;if(a===e||r||c)null!==g.get(A.locatorHash)&&o.push([n,A]);else if(null!==i){V.getArrayWithDefault(p,s).push(i)}}null!==i&&await n.attachInternalDependencies(t,o)};if(r)for(const[e,t]of l)await n(e,t);else{const e=h.get(t.locatorHash);if(!e)throw new Error("Assertion failed: The linker should have been found");const r=l.get(e);if(!r)throw new Error("Assertion failed: The installer should have been registered");await n(e,r)}}for(const[e,t]of p){const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The package should have been registered");const n=h.get(r.locatorHash);if(!n)throw new Error("Assertion failed: The linker should have been found");const i=l.get(n);if(!i)throw new Error("Assertion failed: The installer should have been registered");await i.attachExternalDependents(r,t)}for(const e of l.values()){const t=await e.finalizeInstall();if(t)for(const e of t)e.buildDirective&&f.set(e.locatorHash,{directives:e.buildDirective,buildLocations:e.buildLocations})}const d=new Set(this.storedPackages.keys()),C=new Set(f.keys());for(const e of C)d.delete(e);const E=(0,a.createHash)("sha512");E.update(process.versions.node),this.configuration.triggerHook(e=>e.globalHashGeneration,this,e=>{E.update("\0"),E.update(e)});const I=E.digest("hex"),m=new Map,y=e=>{let t=m.get(e.locatorHash);if(void 0!==t)return t;const r=this.storedPackages.get(e.locatorHash);if(void 0===r)throw new Error("Assertion failed: The package should have been registered");const n=(0,a.createHash)("sha512");n.update(e.locatorHash),m.set(e.locatorHash,"");for(const e of r.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(void 0===t)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,e)}) should have been registered`);if(void 0===this.storedPackages.get(t))throw new Error("Assertion failed: The package should have been registered");n.update(y(r))}return t=n.digest("hex"),m.set(e.locatorHash,t),t},w=(e,t)=>{const r=(0,a.createHash)("sha512");r.update(I),r.update(y(e));for(const e of t)r.update(e);return r.digest("hex")},B=this.configuration.get("bstatePath"),Q=n.xfs.existsSync(B)?(0,s.parseSyml)(await n.xfs.readFilePromise(B,"utf8")):{},v=new Map;for(;C.size>0;){const e=C.size,r=[];for(const e of C){const o=this.storedPackages.get(e);if(!o)throw new Error("Assertion failed: The package should have been registered");let s=!0;for(const e of o.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(!t)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,e)}) should have been registered`);if(C.has(t)){s=!1;break}}if(!s)continue;C.delete(e);const A=f.get(o.locatorHash);if(!A)throw new Error("Assertion failed: The build directive should have been registered");const a=w(o,A.buildLocations);if(Object.prototype.hasOwnProperty.call(Q,o.locatorHash)&&Q[o.locatorHash]===a)v.set(o.locatorHash,a);else{Object.prototype.hasOwnProperty.call(Q,o.locatorHash)?t.reportInfo(T.b.MUST_REBUILD,P.prettyLocator(this.configuration,o)+" must be rebuilt because its dependency tree changed"):t.reportInfo(T.b.MUST_BUILD,P.prettyLocator(this.configuration,o)+" must be built because it never did before or the last one failed");for(const e of A.buildLocations){if(!i.y1.isAbsolute(e))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${e})`);r.push((async()=>{for(const[r,s]of A.directives){let A=`# This file contains the result of Yarn building a package (${P.stringifyLocator(o)})\n`;switch(r){case L.k.SCRIPT:A+=`# Script name: ${s}\n`;break;case L.k.SHELLCODE:A+=`# Script code: ${s}\n`}const c=null;await n.xfs.mktempPromise(async u=>{const l=i.y1.join(u,"build.log"),{stdout:h,stderr:g}=this.configuration.getSubprocessStreams(l,{header:A,prefix:P.prettyLocator(this.configuration,o),report:t});let f;try{switch(r){case L.k.SCRIPT:f=await X.executePackageScript(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g});break;case L.k.SHELLCODE:f=await X.executePackageShellcode(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g})}}catch(e){g.write(e.stack),f=1}if(h.end(),g.end(),0===f)return v.set(o.locatorHash,a),!0;n.xfs.detachTemp(u);const p=`${P.prettyLocator(this.configuration,o)} couldn't be built successfully (exit code ${this.configuration.format(String(f),K.a5.NUMBER)}, logs can be found here: ${this.configuration.format(l,K.a5.PATH)})`;return t.reportInfo(T.b.BUILD_FAILED,p),this.optionalBuilds.has(o.locatorHash)?(v.set(o.locatorHash,a),!0):(t.reportError(T.b.BUILD_FAILED,p),!1)})}})())}}}if(await Promise.all(r),e===C.size){const e=Array.from(C).map(e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The package should have been registered");return P.prettyLocator(this.configuration,t)}).join(", ");t.reportError(T.b.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${e})`);break}}if(v.size>0){const e=this.configuration.get("bstatePath"),t=ne.generateBuildStateFile(v,this.storedPackages);await n.xfs.mkdirpPromise(i.y1.dirname(e)),await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}else await n.xfs.removePromise(B)}async install(e){const t=[],r=[];await this.configuration.triggerHook(e=>e.validateProject,this,{reportWarning:(e,r)=>t.push({name:e,text:r}),reportError:(e,t)=>r.push({name:e,text:t})});t.length+r.length>0&&await e.report.startTimerPromise("Validation step",async()=>{await this.validateEverything({validationWarnings:t,validationErrors:r,report:e.report})}),await e.report.startTimerPromise("Resolution step",async()=>{const t=i.y1.join(this.cwd,this.configuration.get("lockfileFilename"));let r=null;if(e.immutable)try{r=await n.xfs.readFilePromise(t,"utf8")}catch(e){throw"ENOENT"===e.code?new G.lk(T.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):e}if(await this.resolveEverything(e),null!==r){const n=(0,o.qH)(r,this.generateLockfile());if(n!==r){const i=B(t,t,r,n);e.report.reportSeparator();for(const t of i.hunks){e.report.reportInfo(null,`@@ -${t.oldStart},${t.oldLines} +${t.newStart},${t.newLines} @@`);for(const r of t.lines)r.startsWith("+")?e.report.reportError(T.b.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.a5.ADDED)):r.startsWith("-")?e.report.reportError(T.b.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.a5.REMOVED)):e.report.reportInfo(null,this.configuration.format(r,"grey"))}throw e.report.reportSeparator(),new G.lk(T.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}}),await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(void 0===e.persistProject||e.persistProject)&&await this.cacheCleanup(e)}),(void 0===e.persistProject||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{await this.linkEverything(e)}),await this.configuration.triggerHook(e=>e.afterAllInstalled,this)}generateLockfile(){const e=new Map;for(const[t,r]of this.storedResolutions.entries()){let n=e.get(r);n||e.set(r,n=new Set),n.add(t)}const t={__metadata:{version:4}};for(const[r,n]of e.entries()){const e=this.originalPackages.get(r);if(!e)continue;const i=[];for(const e of n){const t=this.storedDescriptors.get(e);if(!t)throw new Error("Assertion failed: The descriptor should have been registered");i.push(t)}const o=i.map(e=>P.stringifyDescriptor(e)).sort().join(", "),s=new j.G;let A;s.version=e.linkType===$.U.HARD?e.version:"0.0.0-use.local",s.languageName=e.languageName,s.dependencies=new Map(e.dependencies),s.peerDependencies=new Map(e.peerDependencies),s.dependenciesMeta=new Map(e.dependenciesMeta),s.peerDependenciesMeta=new Map(e.peerDependenciesMeta),s.bin=new Map(e.bin);const a=this.storedChecksums.get(e.locatorHash);if(void 0!==a){const e=a.indexOf("/");if(-1===e)throw new Error("Assertion failed: Expecte the checksum to reference its cache key");const r=a.slice(0,e),n=a.slice(e+1);void 0===t.__metadata.cacheKey&&(t.__metadata.cacheKey=r),A=r===t.__metadata.cacheKey?n:a}t[o]={...s.exportTo({},{compatibilityMode:!1}),linkType:e.linkType.toLowerCase(),resolution:P.stringifyLocator(e),checksum:A}}return['# This file is generated by running "yarn install" inside your project.\n',"# Manual changes might be lost - proceed with caution!\n"].join("")+"\n"+(0,s.stringifySyml)(t)}async persistLockfile(){const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.generateLockfile();await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}async persistInstallStateFile(){const{accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:A}=this,a={accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:A},c=await te(M().serialize(a)),u=this.configuration.get("installStatePath");await n.xfs.mkdirpPromise(i.y1.dirname(u)),await n.xfs.writeFilePromise(u,c)}async restoreInstallState(){const e=this.configuration.get("installStatePath");if(!n.xfs.existsSync(e))return void await this.applyLightResolution();const t=await n.xfs.readFilePromise(e),r=M().deserialize(await re(t));r.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,r),this.refreshWorkspaceDependencies()):await this.applyLightResolution()}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new H.$}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile(),await this.persistInstallStateFile();for(const e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){const r=new Set([".gitignore"]);if(n.xfs.existsSync(e.cwd)&&(0,z.isFolderInside)(e.cwd,this.cwd)){for(const o of await n.xfs.readdirPromise(e.cwd)){if(r.has(o))continue;const s=i.y1.resolve(e.cwd,o);e.markedFiles.has(s)||(e.immutable?t.reportError(T.b.IMMUTABLE_CACHE,this.configuration.format(i.y1.basename(s),"magenta")+" appears to be unused and would marked for deletion, but the cache is immutable"):(t.reportInfo(T.b.UNUSED_CACHE_ENTRY,this.configuration.format(i.y1.basename(s),"magenta")+" appears to be unused - removing"),await n.xfs.unlinkPromise(s)))}e.markedFiles.clear()}}}},52779:(e,t,r)=>{"use strict";r.d(t,{c:()=>s,O:()=>A});var n=r(53887),i=r.n(n),o=r(54143);const s=/^(?!v)[a-z0-9-.]+$/i;class A{supportsDescriptor(e,t){return!!i().validRange(e.range)||!!s.test(e.range)}supportsLocator(e,t){return!!i().validRange(e.reference)||!!s.test(e.reference)}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,r){return r.resolver.bindDescriptor(this.forwardDescriptor(e,r),t,r)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,r){return await r.resolver.getCandidates(this.forwardDescriptor(e,r),t,r)}async resolve(e,t){const r=await t.resolver.resolve(this.forwardLocator(e,t),t);return o.renamePackage(r,e)}forwardDescriptor(e,t){return o.makeDescriptor(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return o.makeLocator(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}}},35691:(e,t,r)=>{"use strict";r.d(t,{lk:()=>s,yG:()=>A});var n=r(92413),i=r(24304),o=r(92659);class s extends Error{constructor(e,t){super(t),this.reportCode=e}}class A{constructor(){this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}static progressViaCounter(e){let t,r=0,n=new Promise(e=>{t=e});const i=e=>{const i=t;n=new Promise(e=>{t=e}),r=e,i()},o=async function*(){for(;ro,set:i,tick:(e=0)=>{i(r+1)}}}reportInfoOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t))}reportWarningOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t))}reportErrorOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t))}reportExceptionOnce(e){!function(e){return void 0!==e.reportCode}(e)?this.reportErrorOnce(o.b.EXCEPTION,e.stack||e.message,{key:e}):this.reportErrorOnce(e.reportCode,e.message,{key:e})}createStreamReporter(e=null){const t=new n.PassThrough,r=new i.StringDecoder;let o="";return t.on("data",t=>{let n,i=r.write(t);do{if(n=i.indexOf("\n"),-1!==n){const t=o+i.substr(0,n);i=i.substr(n+1),o="",null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t)}}while(-1!==n);o+=i}),t.on("end",()=>{const t=r.end();""!==t&&(null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t))}),t}}},15815:(e,t,r)=>{"use strict";r.d(t,{P:()=>f});var n=r(29148),i=r.n(n),o=r(92659),s=r(35691);const A=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],a=new Set([o.b.FETCH_NOT_CACHED,o.b.UNUSED_CACHE_ENTRY]),c=process.env.GITHUB_ACTIONS?{start:e=>`::group::${e}\n`,end:e=>"::endgroup::\n"}:process.env.TRAVIS?{start:e=>`travis_fold:start:${e}\n`,end:e=>`travis_fold:end:${e}\n`}:process.env.GITLAB_CI?{start:e=>`section_start:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r${e}\n`,end:e=>`section_end:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r`}:null,u=new Date,l=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM),h={patrick:{date:[17,3],chars:["🍀","🌱"],size:40},simba:{date:[19,7],chars:["🌟","✨"],size:40},jack:{date:[31,10],chars:["🎃","🦇"],size:40},hogsfather:{date:[31,12],chars:["🎉","🎄"],size:40},default:{chars:["=","-"],size:80}},g=l&&Object.keys(h).find(e=>{const t=h[e];return!t.date||t.date[0]===u.getDate()&&t.date[1]===u.getMonth()+1})||"default";class f extends s.yG{constructor({configuration:e,stdout:t,json:r=!1,includeFooter:n=!0,includeLogs:i=!r,includeInfos:o=i,includeWarnings:s=i,forgettableBufferSize:A=5,forgettableNames:c=new Set}){super(),this.cacheHitCount=0,this.cacheMissCount=0,this.warningCount=0,this.errorCount=0,this.startTime=Date.now(),this.indent=0,this.progress=new Map,this.progressTime=0,this.progressFrame=0,this.progressTimeout=null,this.forgettableLines=[],this.configuration=e,this.forgettableBufferSize=A,this.forgettableNames=new Set([...c,...a]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=s,this.json=r,this.stdout=t}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.cacheMissCount+=1,void 0===t||this.configuration.get("preferAggregateCacheInfo")||this.reportInfo(o.b.FETCH_NOT_CACHED,t)}startTimerSync(e,t){this.reportInfo(null,"┌ "+e);const r=Date.now();this.indent+=1;try{return t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const e=Date.now();this.indent-=1,this.configuration.get("enableTimers")&&e-r>200?this.reportInfo(null,"└ Completed in "+this.formatTiming(e-r)):this.reportInfo(null,"└ Completed")}}async startTimerPromise(e,t){this.reportInfo(null,"┌ "+e),null!==c&&this.stdout.write(c.start(e));const r=Date.now();this.indent+=1;try{return await t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const t=Date.now();this.indent-=1,null!==c&&this.stdout.write(c.end(e)),this.configuration.get("enableTimers")&&t-r>200?this.reportInfo(null,"└ Completed in "+this.formatTiming(t-r)):this.reportInfo(null,"└ Completed")}}async startCacheReport(e){const t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(e){throw this.reportExceptionOnce(e),e}finally{null!==t&&this.reportCacheChanges(t)}}reportSeparator(){0===this.indent?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(!this.includeInfos)return;const r=`${this.configuration.format("➤","blueBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(r),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(r,{truncate:!0});else this.writeLineWithForgettableReset(r)}reportWarning(e,t){this.warningCount+=1,this.includeWarnings&&(this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","yellowBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`))}reportError(e,t){this.errorCount+=1,this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","redBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`,{truncate:!1})}reportProgress(e){let t=!1;const r=Promise.resolve().then(async()=>{const r={progress:0,title:void 0};this.progress.set(e,r),this.refreshProgress(-1);for await(const{progress:n,title:i}of e)t||r.progress===n&&r.title===i||(r.progress=n,r.title=i,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress(1))};return{...r,stop:n}}reportJson(e){this.json&&this.writeLineWithForgettableReset(""+JSON.stringify(e))}async finalize(){if(!this.includeFooter)return;let e="";e=this.errorCount>0?"Failed with errors":this.warningCount>0?"Done with warnings":"Done";const t=this.formatTiming(Date.now()-this.startTime),r=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(o.b.UNNAMED,r):this.warningCount>0?this.reportWarning(o.b.UNNAMED,r):this.reportInfo(o.b.UNNAMED,r)}writeLine(e,{truncate:t}={}){this.clearProgress({clear:!0}),this.stdout.write(this.truncate(e,{truncate:t})+"\n"),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:t}={}){this.forgettableLines=[],this.writeLine(e,{truncate:t})}writeLines(e,{truncate:t}={}){this.clearProgress({delta:e.length});for(const r of e)this.stdout.write(this.truncate(r,{truncate:t})+"\n");this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){const r=this.cacheHitCount-e,n=this.cacheMissCount-t;if(0===r&&0===n)return;let i="";this.cacheHitCount>1?i+=this.cacheHitCount+" packages were already cached":1===this.cacheHitCount?i+=" - one package was already cached":i+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?i+=`, ${this.cacheMissCount} had to be fetched`:1===this.cacheMissCount&&(i+=", one had to be fetched"):this.cacheMissCount>1?i+=` - ${this.cacheMissCount} packages had to be fetched`:1===this.cacheMissCount&&(i+=" - one package had to be fetched"),this.reportInfo(o.b.FETCH_NOT_CACHED,i)}clearProgress({delta:e=0,clear:t=!1}){this.configuration.get("enableProgressBars")&&!this.json&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write(""))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json)return;if(null!==this.progressTimeout&&clearTimeout(this.progressTimeout),this.progressTimeout=null,0===this.progress.size)return;const e=Date.now();e-this.progressTime>80&&(this.progressFrame=(this.progressFrame+1)%A.length,this.progressTime=e);const t=A[this.progressFrame],r=this.configuration.get("progressBarStyle")||g;if(!Object.prototype.hasOwnProperty.call(h,r))throw new Error("Assertion failed: Invalid progress bar style");const n=h[r],i="➤ YN0000: ┌ ".length,o=Math.max(0,Math.min(process.stdout.columns-i,80)),s=Math.floor(n.size*o/80);for(const{progress:e}of this.progress.values()){const r=s*e,i=n.chars[0].repeat(r),o=n.chars[1].repeat(s-r);this.stdout.write(`${this.configuration.format("➤","blueBright")} ${this.formatName(null)}: ${t} ${i}${o}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},1e3/60)}refreshProgress(e=0){this.clearProgress({delta:e}),this.writeProgress()}formatTiming(e){return e<6e4?Math.round(e/10)/100+"s":Math.round(e/600)/100+"m"}truncate(e,{truncate:t}={}){return this.configuration.get("enableProgressBars")||(t=!1),void 0===t&&(t=this.configuration.get("preferTruncatedLines")),t&&(e=i()(e,0,process.stdout.columns-1)),e}formatName(e){const t="YN"+(null===e?0:e).toString(10).padStart(4,"0");return this.json||null!==e?t:this.configuration.format(t,"grey")}formatNameWithHyperlink(e){const t=this.formatName(e);if(!this.configuration.get("enableHyperlinks"))return t;if(null===e||e===o.b.UNNAMED)return t;return`]8;;${`https://yarnpkg.com/advanced/error-codes#${t}---${o.b[e]}`.toLowerCase()}${t}]8;;`}formatIndent(){return"│ ".repeat(this.indent)}}},33720:(e,t,r)=>{"use strict";r.d(t,{$:()=>i});var n=r(35691);class i extends n.yG{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}},60895:(e,t,r)=>{"use strict";r.d(t,{N:()=>A});var n=r(17674),i=r(14626),o=r(46009),s=r(54143);class A{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n);return t.fetcher.getLocalPath(i,t)}async fetch(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n),o=await t.fetcher.fetch(i,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return s.slugifyLocator(e)}async ensureVirtualLink(e,t,r){const s=t.packageFs.getRealPath(),A=r.project.configuration.get("virtualFolder"),a=this.getLocatorFilename(e),c=n.p.makeVirtualPath(A,a,s),u=new i.K(c,{baseFs:t.packageFs,pathUtils:o.y1});return{...t,packageFs:u}}}},17722:(e,t,r)=>{"use strict";r.d(t,{j:()=>g});var n=r(56537),i=r(46009),o=r(18710),s=r.n(o),A=r(53887),a=r.n(A),c=r(46611),u=r(94538),l=r(20624),h=r(54143);class g{constructor(e,{project:t}){this.workspacesCwds=new Set,this.dependencies=new Map,this.project=t,this.cwd=e}async setup(){this.manifest=n.xfs.existsSync(i.y1.join(this.cwd,c.G.fileName))?await c.G.find(this.cwd):new c.G,this.relativeCwd=i.y1.relative(this.project.cwd,this.cwd)||i.LZ.dot;const e=this.manifest.name?this.manifest.name:h.makeIdent(null,`${this.computeCandidateName()}-${l.makeHash(this.relativeCwd).substr(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=h.makeLocator(e,t),this.anchoredDescriptor=h.makeDescriptor(this.locator,`${u.d.protocol}${this.relativeCwd}`),this.anchoredLocator=h.makeLocator(this.locator,`${u.d.protocol}${this.relativeCwd}`);for(const e of this.manifest.workspaceDefinitions){const t=await s()(e.pattern,{absolute:!0,cwd:i.cS.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});t.sort();for(const e of t){const t=i.y1.resolve(this.cwd,i.cS.toPortablePath(e));n.xfs.existsSync(i.y1.join(t,(0,i.Zu)("package.json")))&&this.workspacesCwds.add(t)}}}accepts(e){const t=e.indexOf(":"),r=-1!==t?e.slice(0,t+1):null,n=-1!==t?e.slice(t+1):e;return r===u.d.protocol&&n===this.relativeCwd||(r===u.d.protocol&&"*"===n||!!a().validRange(n)&&(r===u.d.protocol?a().satisfies(null!==this.manifest.version?this.manifest.version:"0.0.0",n):!!this.project.configuration.get("enableTransparentWorkspaces")&&(null!==this.manifest.version&&a().satisfies(this.manifest.version,n))))}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":""+i.y1.basename(this.cwd)||"unnamed-workspace"}async persistManifest(){const e={};this.manifest.exportTo(e);const t=i.y1.join(this.cwd,c.G.fileName),r=JSON.stringify(e,null,this.manifest.indent)+"\n";await n.xfs.changeFilePromise(t,r,{automaticNewlines:!0})}}},94538:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(32485);class i{supportsDescriptor(e,t){if(e.range.startsWith(i.protocol))return!0;return null!==t.project.tryWorkspaceByDescriptor(e)}supportsLocator(e,t){return!!e.reference.startsWith(i.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[r.project.getWorkspaceByDescriptor(e).anchoredLocator]}async resolve(e,t){const r=t.project.getWorkspaceByCwd(e.reference.slice(i.protocol.length));return{...e,version:r.manifest.version||"0.0.0",languageName:"unknown",linkType:n.U.SOFT,dependencies:new Map([...r.manifest.dependencies,...r.manifest.devDependencies]),peerDependencies:new Map([...r.manifest.peerDependencies]),dependenciesMeta:r.manifest.dependenciesMeta,peerDependenciesMeta:r.manifest.peerDependenciesMeta,bin:r.manifest.bin}}}i.protocol="workspace:"},59355:(e,t,r)=>{"use strict";r.d(t,{o:()=>n});const n="2.1.1"},6220:(e,t,r)=>{"use strict";r.r(t),r.d(t,{EndStrategy:()=>n,pipevp:()=>u,execvp:()=>l});var n,i=r(46009),o=r(67566),s=r.n(o);function A(e){return null!==e&&"number"==typeof e.fd}function a(){}!function(e){e[e.Never=0]="Never",e[e.ErrorCode=1]="ErrorCode",e[e.Always=2]="Always"}(n||(n={}));let c=0;async function u(e,t,{cwd:r,env:o=process.env,strict:u=!1,stdin:l=null,stdout:h,stderr:g,end:f=n.Always}){const p=["pipe","pipe","pipe"];null===l?p[0]="ignore":A(l)&&(p[0]=l),A(h)&&(p[1]=h),A(g)&&(p[2]=g),0==c++&&process.on("SIGINT",a);const d=s()(e,t,{cwd:i.cS.fromPortablePath(r),env:{...o,PWD:i.cS.fromPortablePath(r)},stdio:p});A(l)||null===l||l.pipe(d.stdin),A(h)||d.stdout.pipe(h,{end:!1}),A(g)||d.stderr.pipe(g,{end:!1});const C=()=>{for(const e of new Set([h,g]))A(e)||e.end()};return new Promise((t,r)=>{d.on("error",e=>{0==--c&&process.off("SIGINT",a),f!==n.Always&&f!==n.ErrorCode||C(),r(e)}),d.on("close",(i,o)=>{0==--c&&process.off("SIGINT",a),(f===n.Always||f===n.ErrorCode&&i>0)&&C(),0!==i&&u?r(null!==i?new Error(`Child "${e}" exited with exit code ${i}`):new Error(`Child "${e}" exited with signal ${o}`)):t({code:i})})})}async function l(e,t,{cwd:r,env:n=process.env,encoding:o="utf8",strict:A=!1}){const a=["ignore","pipe","pipe"],c=[],u=[],l=i.cS.fromPortablePath(r);void 0!==n.PWD&&(n={...n,PWD:l});const h=s()(e,t,{cwd:l,env:n,stdio:a});return h.stdout.on("data",e=>{c.push(e)}),h.stderr.on("data",e=>{u.push(e)}),await new Promise((t,r)=>{h.on("close",n=>{const i="buffer"===o?Buffer.concat(c):Buffer.concat(c).toString(o),s="buffer"===o?Buffer.concat(u):Buffer.concat(u).toString(o);0!==n&&A?r(Object.assign(new Error(`Child "${e}" exited with exit code ${n}\n\n${s}`),{code:n,stdout:i,stderr:s})):t({code:n,stdout:i,stderr:s})})})}},81111:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getDefaultGlobalFolder:()=>o,getHomeFolder:()=>s,isFolderInside:()=>A});var n=r(46009),i=r(12087);function o(){if("win32"===process.platform){const e=n.cS.toPortablePath(process.env.LOCALAPPDATA||n.cS.join((0,i.homedir)(),"AppData","Local"));return n.y1.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){const e=n.cS.toPortablePath(process.env.XDG_DATA_HOME);return n.y1.resolve(e,"yarn/berry")}return n.y1.resolve(s(),".yarn/berry")}function s(){return n.cS.toPortablePath((0,i.homedir)()||"/usr/local/share")}function A(e,t){const r=n.y1.relative(t,e);return r&&!r.startsWith("..")&&!n.y1.isAbsolute(r)}},20624:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeHash:()=>o,checksumFile:()=>s});var n=r(78420),i=r(76417);function o(...e){const t=(0,i.createHash)("sha512");for(const r of e)t.update(r||"");return t.digest("hex")}function s(e){return new Promise((t,r)=>{const o=new n.S,s=(0,i.createHash)("sha512"),A=o.createReadStream(e,{});A.on("data",e=>{s.update(e)}),A.on("error",e=>{r(e)}),A.on("end",()=>{t(s.digest("hex"))})})}},84132:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Cache:()=>O.C,DEFAULT_RC_FILENAME:()=>j.tr,DEFAULT_LOCK_FILENAME:()=>j.nh,Configuration:()=>j.VK,FormatType:()=>j.a5,ProjectLookup:()=>j.EW,SettingsType:()=>j.a2,BuildType:()=>Y.k,LightReport:()=>G.h,Manifest:()=>J.G,MessageName:()=>H.b,Project:()=>q.I,TAG_REGEXP:()=>z.c,ReportError:()=>W.lk,Report:()=>W.yG,StreamReport:()=>V.P,ThrowReport:()=>X.$,VirtualFetcher:()=>Z.N,WorkspaceResolver:()=>$.d,Workspace:()=>ee.j,YarnVersion:()=>te.o,LinkType:()=>re.U,hashUtils:()=>A,httpUtils:()=>n,execUtils:()=>o,folderUtils:()=>s,miscUtils:()=>S,scriptUtils:()=>k,semverUtils:()=>x,structUtils:()=>F,tgzUtils:()=>i});var n={};r.r(n),r.d(n,{Method:()=>Q,get:()=>D,put:()=>b,request:()=>v});var i={};r.r(i),r.d(i,{convertToZip:()=>U,extractArchiveTo:()=>_,makeArchiveFromDirectory:()=>P});var o=r(6220),s=r(81111),A=r(20624),a=r(22395),c=r.n(a),u=r(57211),l=r(98605),h=r(2401),g=r.n(h),f=r(61578),p=r.n(f),d=r(98161),C=r.n(d),E=r(78835);const I=p()(8),m=new Map,y=new l.Agent({keepAlive:!0}),w=new u.Agent({keepAlive:!0});function B(e){const t=new E.URL(e),r={host:t.hostname,headers:{}};return t.port&&(r.port=Number(t.port)),{proxy:r}}var Q;async function v(e,t,{configuration:r,headers:n,json:i,method:o=Q.GET}){if(!r.get("enableNetwork"))throw new Error(`Network access have been disabled by configuration (${o} ${e})`);const s=new E.URL(e);if("http:"===s.protocol&&!g().isMatch(s.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${s.hostname})`);const A=r.get("httpProxy"),a=r.get("httpsProxy"),u={agent:{http:A?C().httpOverHttp(B(A)):y,https:a?C().httpsOverHttp(B(a)):w},headers:n,method:o};u.responseType=i?"json":"buffer",null!==t&&("string"==typeof t||Buffer.isBuffer(t)?u.body=t:u.json=t);const l=r.get("httpTimeout"),h=r.get("httpRetry"),f=c().extend({timeout:l,retry:h,...u});return I(()=>f(e))}async function D(e,{configuration:t,json:r,...n}){let i=m.get(e);return i||(i=v(e,null,{configuration:t,...n}).then(t=>(m.set(e,t.body),t.body)),m.set(e,i)),!1===Buffer.isBuffer(i)&&(i=await i),r?JSON.parse(i.toString()):i}async function b(e,t,r){return(await v(e,t,{...r,method:Q.PUT})).body}!function(e){e.GET="GET",e.PUT="PUT"}(Q||(Q={}));var S=r(73632),k=r(63088),x=r(36545),F=r(54143),M=r(78420),N=r(46009),R=r(56537),K=r(90739),L=r(29486),T=r(27700);async function P(e,{baseFs:t=new M.S,prefixPath:r=N.LZ.root,compressionLevel:n}={}){const i=await R.xfs.mktempPromise(),o=N.y1.join(i,"archive.zip"),s=new K.d(o,{create:!0,libzip:await(0,L.getLibzipPromise)(),level:n}),A=N.y1.resolve(N.LZ.root,r);return await s.copyPromise(A,e,{baseFs:t,stableTime:!0,stableSort:!0}),s}async function U(e,t){const r=await R.xfs.mktempPromise(),n=N.y1.join(r,"archive.zip"),{compressionLevel:i,...o}=t;return await _(e,new K.d(n,{create:!0,libzip:await(0,L.getLibzipPromise)(),level:i}),o)}async function _(e,t,{stripComponents:r=0,prefixPath:n=N.LZ.dot}={}){const i=new T.Ze;return i.on("entry",e=>{if(function(e){if("/"===e[0])return!0;const t=e.path.split(/\//g);return!!t.some(e=>".."===e)||t.length<=r}(e))return void e.resume();const i=N.y1.normalize(N.cS.toPortablePath(e.path)).replace(/\/$/,"").split(/\//g);if(i.length<=r)return void e.resume();const o=i.slice(r).join("/"),s=N.y1.join(n,o),A=[];let a=420;"Directory"!==e.type&&0==(73&e.mode)||(a|=73),e.on("data",e=>{A.push(e)}),e.on("end",()=>{var r;switch(e.type){case"Directory":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.mkdirSync(s),t.chmodSync(s,a),t.utimesSync(s,315532800,315532800);break;case"OldFile":case"File":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.writeFileSync(s,Buffer.concat(A)),t.chmodSync(s,a),t.utimesSync(s,315532800,315532800);break;case"SymbolicLink":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.symlinkSync(e.linkpath,s),null===(r=t.lutimesSync)||void 0===r||r.call(t,s,315532800,315532800)}})}),await new Promise((r,n)=>{i.on("error",e=>{n(e)}),i.on("close",()=>{r(t)}),i.end(e)})}var O=r(28148),j=r(27122),Y=r(92409),G=r(62152),J=r(46611),H=r(92659),q=r(40376),z=r(52779),W=r(35691),V=r(15815),X=r(33720),Z=r(60895),$=r(94538),ee=r(17722),te=r(59355),re=r(32485)},73632:(e,t,r)=>{"use strict";r.r(t),r.d(t,{escapeRegExp:()=>a,assertNever:()=>c,mapAndFilter:()=>u,mapAndFind:()=>h,getFactoryWithDefault:()=>f,getArrayWithDefault:()=>p,getSetWithDefault:()=>d,getMapWithDefault:()=>C,releaseAfterUseAsync:()=>E,prettifyAsyncErrors:()=>I,prettifySyncErrors:()=>m,bufferStream:()=>y,BufferStream:()=>w,DefaultStream:()=>B,dynamicRequire:()=>Q,dynamicRequireNoCache:()=>v,sortMap:()=>D,buildIgnorePattern:()=>b,replaceEnvVariables:()=>S});var n=r(46009),i=r(17278),o=r(2401),s=r.n(o),A=r(92413);function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function c(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function u(e,t){const r=[];for(const n of e){const e=t(n);e!==l&&r.push(e)}return r}e=r.hmd(e);const l=Symbol();function h(e,t){for(const r of e){const e=t(r);if(e!==g)return e}}u.skip=l;const g=Symbol();function f(e,t,r){let n=e.get(t);return void 0===n&&e.set(t,n=r()),n}function p(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=[]),r}function d(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Set),r}function C(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Map),r}async function E(e,t){if(null==t)return await e();try{return await e()}finally{await t()}}async function I(e,t){try{return await e()}catch(e){throw e.message=t(e.message),e}}function m(e,t){try{return e()}catch(e){throw e.message=t(e.message),e}}async function y(e){return await new Promise((t,r)=>{const n=[];e.on("error",e=>{r(e)}),e.on("data",e=>{n.push(e)}),e.on("end",()=>{t(Buffer.concat(n))})})}h.skip=g;class w extends A.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),r(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}}class B extends A.Transform{constructor(e=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=e}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,r(null,e)}_flush(e){this.active&&this.ifEmpty.length>0&&e(null,this.ifEmpty)}}function Q(e){return"undefined"!=typeof require?require(e):r(32178)(e)}function v(t){const i=n.cS.fromPortablePath(t),o=r.c[i];let s;delete r.c[i];try{s=Q(i);const t=r.c[i],n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1)}finally{r.c[i]=o}return s}function D(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function b(e){return 0===e.length?null:e.map(e=>`(${s().makeRe(e,{windows:!1}).source})`).join("|")}function S(e,{env:t}){return e.replace(/\${(?[\d\w_]+)(?:)?-?(?[^}]+)?}/g,(...e)=>{const{variableName:r,colon:n,fallback:o}=e[e.length-1],s=Object.prototype.hasOwnProperty.call(t,r),A=process.env[r];if(A)return A;if(s&&!A&&n)return o;if(s)return A;if(o)return o;throw new i.UsageError(`Environment variable not found (${r})`)})}},63088:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeScriptEnv:()=>m,prepareExternalProject:()=>y,hasPackageScript:()=>w,executePackageScript:()=>B,executePackageShellcode:()=>Q,executeWorkspaceScript:()=>D,hasWorkspaceScript:()=>b,getPackageAccessibleBinaries:()=>S,getWorkspaceAccessibleBinaries:()=>k,executePackageAccessibleBinary:()=>x,executeWorkspaceAccessibleBinary:()=>F});var n,i=r(46009),o=r(53660),s=r(75448),A=r(56537),a=r(29486),c=r(43982),u=r(92413),l=r(46611),h=r(92659),g=r(35691),f=r(15815),p=r(59355),d=r(6220),C=r(73632),E=r(54143);async function I(e,t,r,n=[]){"win32"===process.platform&&await A.xfs.writeFilePromise(i.y1.format({dir:e,name:t,ext:".cmd"}),`@"${r}" ${n.map(e=>`"${e.replace('"','""')}"`).join(" ")} %*\n`),await A.xfs.writeFilePromise(i.y1.join(e,t),`#!/bin/sh\nexec "${r}" ${n.map(e=>`'${e.replace(/'/g,"'\"'\"'")}'`).join(" ")} "$@"\n`),await A.xfs.chmodPromise(i.y1.join(e,t),493)}async function m({project:e,binFolder:t,lifecycleScript:r}){const n={};for(const[e,t]of Object.entries(process.env))void 0!==t&&(n["path"!==e.toLowerCase()?e:"PATH"]=t);const o=i.cS.fromPortablePath(t);n.BERRY_BIN_FOLDER=i.cS.fromPortablePath(o),await I(t,(0,i.Zu)("node"),process.execPath),null!==p.o&&(await I(t,(0,i.Zu)("run"),process.execPath,[process.argv[1],"run"]),await I(t,(0,i.Zu)("yarn"),process.execPath,[process.argv[1]]),await I(t,(0,i.Zu)("yarnpkg"),process.execPath,[process.argv[1]]),await I(t,(0,i.Zu)("node-gyp"),process.execPath,[process.argv[1],"run","--top-level","node-gyp"])),e&&(n.INIT_CWD=i.cS.fromPortablePath(e.configuration.startingCwd)),n.PATH=n.PATH?`${o}${i.cS.delimiter}${n.PATH}`:""+o,n.npm_execpath=`${o}${i.cS.sep}yarn`,n.npm_node_execpath=`${o}${i.cS.sep}node`;const s=null!==p.o?"yarn/"+p.o:`yarn/${C.dynamicRequire("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${s} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,r&&(n.npm_lifecycle_event=r),e&&await e.configuration.triggerHook(e=>e.setupScriptEnvironment,e,n,async(e,r,n)=>await I(t,(0,i.Zu)(e),r,n)),n}async function y(e,t,{configuration:r,report:o,workspace:s=null}){await A.xfs.mktempPromise(async a=>{const c=i.y1.join(a,"pack.log"),{stdout:l,stderr:f}=r.getSubprocessStreams(c,{prefix:e,report:o}),p=await async function(e){let t=null;try{t=await A.xfs.readFilePromise(i.y1.join(e,i.QS.lockfile),"utf8")}catch(e){}return null!==t?t.match(/^__metadata:$/m)?n.Yarn2:n.Yarn1:A.xfs.existsSync(i.y1.join(e,"package-lock.json"))?n.Npm:A.xfs.existsSync(i.y1.join(e,"pnpm-lock.yaml"))?n.Pnpm:null}(e);let E;null!==p?(l.write(`Installing the project using ${p}\n\n`),E=p):(l.write("No package manager detected; defaulting to Yarn\n\n"),E=n.Yarn2),await A.xfs.mktempPromise(async r=>{const o=await m({binFolder:r}),p=new Map([[n.Yarn1,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",["set","version","classic","--only-if-needed"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==n.code)return n.code;await A.xfs.appendFilePromise(i.y1.join(e,".npmignore"),"/.yarn\n"),l.write("\n");const a=await d.pipevp("yarn",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==a.code)return a.code;l.write("\n");const c=await d.pipevp("yarn",[...r,"pack","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==c.code?c.code:0}],[n.Yarn2,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",[...r,"pack","--install-if-needed","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==n.code?n.code:0}],[n.Npm,async()=>{if(null!==s)throw new Error("Workspaces aren't supported by npm, which has been detected as the primary package manager for "+e);delete o.npm_config_user_agent;const r=await d.pipevp("npm",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==r.code)return r.code;const n=new u.PassThrough,a=C.bufferStream(n);n.pipe(l);const c=await d.pipevp("npm",["pack","--silent"],{cwd:e,env:o,stdin:null,stdout:n,stderr:f});if(0!==c.code)return c.code;const h=(await a).toString().trim(),g=i.y1.resolve(e,i.cS.toPortablePath(h));return await A.xfs.renamePromise(g,t),0}]]).get(E);if(void 0===p)throw new Error("Assertion failed: Unsupported workflow");const I=await p();if(0!==I&&void 0!==I)throw A.xfs.detachTemp(a),new g.lk(h.b.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${I}, logs can be found here: ${c})`)})})}async function w(e,t,{project:r}){const n=r.storedPackages.get(e.locatorHash);if(!n)throw new Error(`Package for ${E.prettyLocator(r.configuration,e)} not found in the project`);return await o.A.openPromise(async e=>{const o=r.configuration,A=r.configuration.getLinkers(),a={project:r,report:new f.P({stdout:new u.PassThrough,configuration:o})},c=A.find(e=>e.supportsPackage(n,a));if(!c)throw new Error(`The package ${E.prettyLocator(r.configuration,n)} isn't supported by any of the available linkers`);const h=await c.findPackageLocation(n,a),g=new s.M(h,{baseFs:e});return(await l.G.find(i.LZ.dot,{baseFs:g})).scripts.has(t)},{libzip:await(0,a.getLibzipPromise)()})}async function B(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:a}){return await A.xfs.mktempPromise(async A=>{const{manifest:u,env:l,cwd:h}=await v(e,{project:i,binFolder:A,cwd:n,lifecycleScript:t}),g=u.scripts.get(t);if(void 0===g)return 1;const f=await i.configuration.reduceHook(e=>e.wrapScriptExecution,async()=>await(0,c.execute)(g,r,{cwd:h,env:l,stdin:o,stdout:s,stderr:a}),i,e,t,{script:g,args:r,cwd:h,env:l,stdin:o,stdout:s,stderr:a});return await f()})}async function Q(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:a}){return await A.xfs.mktempPromise(async A=>{const{env:u,cwd:l}=await v(e,{project:i,binFolder:A,cwd:n});return await(0,c.execute)(t,r,{cwd:l,env:u,stdin:o,stdout:s,stderr:a})})}async function v(e,{project:t,binFolder:r,cwd:n,lifecycleScript:A}){const c=t.storedPackages.get(e.locatorHash);if(!c)throw new Error(`Package for ${E.prettyLocator(t.configuration,e)} not found in the project`);return await o.A.openPromise(async o=>{const a=t.configuration,h=t.configuration.getLinkers(),g={project:t,report:new f.P({stdout:new u.PassThrough,configuration:a})},p=h.find(e=>e.supportsPackage(c,g));if(!p)throw new Error(`The package ${E.prettyLocator(t.configuration,c)} isn't supported by any of the available linkers`);const d=await m({project:t,binFolder:r,lifecycleScript:A});for(const[n,[,o]]of await S(e,{project:t}))await I(r,(0,i.Zu)(n),process.execPath,[o]);const C=await p.findPackageLocation(c,g),y=new s.M(C,{baseFs:o}),w=await l.G.find(i.LZ.dot,{baseFs:y});return void 0===n&&(n=C),{manifest:w,binFolder:r,env:d,cwd:n}},{libzip:await(0,a.getLibzipPromise)()})}async function D(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await B(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:i,stdout:o,stderr:s})}async function b(e,t){return e.manifest.scripts.has(t)}async function S(e,{project:t}){const r=t.configuration,n=new Map,o=t.storedPackages.get(e.locatorHash);if(!o)throw new Error(`Package for ${E.prettyLocator(r,e)} not found in the project`);const s=new u.Writable,A=r.getLinkers(),a={project:t,report:new f.P({configuration:r,stdout:s})},c=new Set([e.locatorHash]);for(const e of o.dependencies.values()){const n=t.storedResolutions.get(e.descriptorHash);if(!n)throw new Error(`Assertion failed: The resolution (${E.prettyDescriptor(r,e)}) should have been registered`);c.add(n)}for(const e of c){const r=t.storedPackages.get(e);if(!r)throw new Error(`Assertion failed: The package (${e}) should have been registered`);if(0===r.bin.size)continue;const o=A.find(e=>e.supportsPackage(r,a));if(!o)continue;const s=await o.findPackageLocation(r,a);for(const[e,t]of r.bin)n.set(e,[r,i.cS.fromPortablePath(i.y1.resolve(s,t))])}return n}async function k(e){return await S(e.anchoredLocator,{project:e.project})}async function x(e,t,r,{cwd:n,project:o,stdin:s,stdout:a,stderr:c,nodeArgs:u=[]}){const l=await S(e,{project:o}),h=l.get(t);if(!h)throw new Error(`Binary not found (${t}) for ${E.prettyLocator(o.configuration,e)}`);return await A.xfs.mktempPromise(async e=>{const[,t]=h,g=await m({project:o,binFolder:e});for(const[e,[,t]]of l)await I(g.BERRY_BIN_FOLDER,(0,i.Zu)(e),process.execPath,[t]);let f;try{f=await d.pipevp(process.execPath,[...u,t,...r],{cwd:n,env:g,stdin:s,stdout:a,stderr:c})}finally{await A.xfs.removePromise(g.BERRY_BIN_FOLDER)}return f.code})}async function F(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await x(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:i,stdout:o,stderr:s})}!function(e){e.Yarn1="Yarn Classic",e.Yarn2="Yarn",e.Npm="npm",e.Pnpm="pnpm"}(n||(n={}))},36545:(e,t,r)=>{"use strict";r.r(t),r.d(t,{satisfiesWithPrereleases:()=>o});var n=r(53887),i=r.n(n);function o(e,t,r=!1){let n,o;try{n=new(i().Range)(t,r)}catch(e){return!1}if(!e)return!1;try{o=new(i().SemVer)(e,n.loose),o.prerelease&&(o.prerelease=[])}catch(e){return!1}return n.set.some(e=>{for(const t of e)t.semver.prerelease&&(t.semver.prerelease=[]);return e.every(e=>e.test(o))})}},54143:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeIdent:()=>l,makeDescriptor:()=>h,makeLocator:()=>g,convertToIdent:()=>f,convertDescriptorToLocator:()=>p,convertLocatorToDescriptor:()=>d,convertPackageToLocator:()=>C,renamePackage:()=>E,copyPackage:()=>I,virtualizeDescriptor:()=>m,virtualizePackage:()=>y,isVirtualDescriptor:()=>w,isVirtualLocator:()=>B,devirtualizeDescriptor:()=>Q,devirtualizeLocator:()=>v,bindDescriptor:()=>D,bindLocator:()=>b,areIdentsEqual:()=>S,areDescriptorsEqual:()=>k,areLocatorsEqual:()=>x,areVirtualPackagesEquivalent:()=>F,parseIdent:()=>M,tryParseIdent:()=>N,parseDescriptor:()=>R,tryParseDescriptor:()=>K,parseLocator:()=>L,tryParseLocator:()=>T,parseRange:()=>P,parseFileStyleRange:()=>U,makeRange:()=>O,convertToManifestRange:()=>j,requirableIdent:()=>Y,stringifyIdent:()=>G,stringifyDescriptor:()=>J,stringifyLocator:()=>H,slugifyIdent:()=>q,slugifyLocator:()=>z,prettyIdent:()=>W,prettyRange:()=>X,prettyDescriptor:()=>Z,prettyReference:()=>$,prettyLocator:()=>ee,prettyLocatorNoColors:()=>te,sortDescriptors:()=>re,prettyWorkspace:()=>ne,getIdentVendorPath:()=>ie});var n=r(46009),i=r(71191),o=r.n(i),s=r(53887),A=r.n(s),a=r(27122),c=r(20624),u=r(73632);function l(e,t){return{identHash:c.makeHash(e,t),scope:e,name:t}}function h(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:c.makeHash(e.identHash,t),range:t}}function g(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:c.makeHash(e.identHash,t),reference:t}}function f(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function p(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function d(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function C(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function E(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function I(e){return E(e,e)}function m(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return h(e,`virtual:${t}#${e.range}`)}function y(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return E(e,g(e,`virtual:${t}#${e.reference}`))}function w(e){return e.range.startsWith("virtual:")}function B(e){return e.reference.startsWith("virtual:")}function Q(e){if(!w(e))throw new Error("Not a virtual descriptor");return h(e,e.range.replace(/^[^#]*#/,""))}function v(e){if(!B(e))throw new Error("Not a virtual descriptor");return g(e,e.reference.replace(/^[^#]*#/,""))}function D(e,t){return e.range.includes("::")?e:h(e,`${e.range}::${o().stringify(t)}`)}function b(e,t){return e.reference.includes("::")?e:g(e,`${e.reference}::${o().stringify(t)}`)}function S(e,t){return e.identHash===t.identHash}function k(e,t){return e.descriptorHash===t.descriptorHash}function x(e,t){return e.locatorHash===t.locatorHash}function F(e,t){if(!B(e))throw new Error("Invalid package type");if(!B(t))throw new Error("Invalid package type");if(!S(e,t))return!1;if(e.dependencies.size!==t.dependencies.size)return!1;for(const r of e.dependencies.values()){const e=t.dependencies.get(r.identHash);if(!e)return!1;if(!k(r,e))return!1}return!0}function M(e){const t=N(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}function N(e){const t=e.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!t)return null;const[,r,n]=t;return l(void 0!==r?r:null,n)}function R(e,t=!1){const r=K(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}function K(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid range (${e})`);const s=void 0!==o?o:"unknown";return h(l(void 0!==n?n:null,i),s)}function L(e,t=!1){const r=T(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}function T(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid reference (${e})`);const s=void 0!==o?o:"unknown";return g(l(void 0!==n?n:null,i),s)}function P(e,t){const r=e.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(null===r)throw new Error(`Invalid range (${e})`);const n=void 0!==r[1]?r[1]:null;if("string"==typeof(null==t?void 0:t.requireProtocol)&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if((null==t?void 0:t.requireProtocol)&&null===n)throw new Error(`Missing protocol (${n})`);const i=void 0!==r[3]?decodeURIComponent(r[2]):null;if((null==t?void 0:t.requireSource)&&null===i)throw new Error(`Missing source (${e})`);const s=void 0!==r[3]?decodeURIComponent(r[3]):decodeURIComponent(r[2]);return{protocol:n,source:i,selector:(null==t?void 0:t.parseSelector)?o().parse(s):s,params:void 0!==r[4]?o().parse(r[4]):null}}function U(e,{protocol:t}){const{selector:r,params:n}=P(e,{requireProtocol:t,requireBindings:!0});if("string"!=typeof n.locator)throw new Error("Assertion failed: Invalid bindings for "+e);return{parentLocator:L(n.locator,!0),path:r}}function _(e){return e=(e=(e=e.replace(/%/g,"%25")).replace(/:/g,"%3A")).replace(/#/g,"%23")}function O({protocol:e,source:t,selector:r,params:n}){let i="";return null!==e&&(i+=""+e),null!==t&&(i+=_(t)+"#"),i+=_(r),function(e){return null!==e&&Object.entries(e).length>0}(n)&&(i+="::"+o().stringify(n)),i}function j(e){const{params:t,protocol:r,source:n,selector:i}=P(e);for(const e in t)e.startsWith("__")&&delete t[e];return O({protocol:r,source:n,params:t,selector:i})}function Y(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function G(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function J(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function H(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function q(e){return null!==e.scope?`@${e.scope}-${e.name}`:e.name}function z(e){const{protocol:t,selector:r}=P(e.reference),i=null!==t?t.replace(/:$/,""):"exotic",o=A().valid(r),s=null!==o?`${i}-${o}`:""+i,a=(e.scope,`${q(e)}-${s}-${e.locatorHash.slice(0,10)}`);return(0,n.Zu)(a)}function W(e,t){return t.scope?`${e.format(`@${t.scope}/`,a.a5.SCOPE)}${e.format(t.name,a.a5.NAME)}`:""+e.format(t.name,a.a5.NAME)}function V(e){if(e.startsWith("virtual:")){return`${V(e.substr(e.indexOf("#")+1))} [${e.substr("virtual:".length,5)}]`}return e.replace(/\?.*/,"?[...]")}function X(e,t){return""+e.format(V(t),a.a5.RANGE)}function Z(e,t){return`${W(e,t)}${e.format("@",a.a5.RANGE)}${X(e,t.range)}`}function $(e,t){return""+e.format(V(t),a.a5.REFERENCE)}function ee(e,t){return`${W(e,t)}${e.format("@",a.a5.REFERENCE)}${$(e,t.reference)}`}function te(e){return`${G(e)}@${V(e.reference)}`}function re(e){return u.sortMap(e,[e=>G(e),e=>e.range])}function ne(e,t){return W(e,t.locator)}function ie(e){return"node_modules/"+Y(e)}},32485:(e,t,r)=>{"use strict";var n;r.d(t,{U:()=>n}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={}))},14626:(e,t,r)=>{"use strict";r.d(t,{K:()=>i});var n=r(42096);class i extends n.p{constructor(e,{baseFs:t,pathUtils:r}){super(r),this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}},75448:(e,t,r)=>{"use strict";r.d(t,{M:()=>s});var n=r(78420),i=r(42096),o=r(46009);class s extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(o.y1),this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?o.y1.normalize(e):this.baseFs.resolve(o.y1.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}},35398:(e,t,r)=>{"use strict";r.d(t,{uY:()=>a,fS:()=>c,qH:()=>u});var n=r(12087),i=r(35747),o=r.n(i),s=r(46009);async function A(e,t,r,n,i,a,c){const u=await async function(e,t){try{return await e.lstatPromise(t)}catch(e){return null}}(r,n),l=await i.lstatPromise(a);switch(c.stableTime?t.push([n,315532800,315532800]):t.push([n,l.atime,l.mtime]),!0){case l.isDirectory():await async function(e,t,r,n,i,o,s,a,c){if(null!==i&&!i.isDirectory()){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}null===i&&e.push(async()=>r.mkdirPromise(n,{mode:a.mode}));const u=await o.readdirPromise(s);if(c.stableSort)for(const i of u.sort())await A(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c);else await Promise.all(u.map(async i=>{await A(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c)}))}(e,t,r,n,u,i,a,l,c);break;case l.isFile():await async function(e,t,r,n,i,s,A,a,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}r===s?e.push(async()=>r.copyFilePromise(A,n,o().constants.COPYFILE_FICLONE)):e.push(async()=>r.writeFilePromise(n,await s.readFilePromise(A)))}(e,0,r,n,u,i,a,0,c);break;case l.isSymbolicLink():await async function(e,t,r,n,i,o,A,a,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}const u=await o.readlinkPromise(A);e.push(async()=>r.symlinkPromise((0,s.CI)(r.pathUtils,u),n))}(e,0,r,n,u,i,a,0,c);break;default:throw new Error(`Unsupported file type (${l.mode})`)}e.push(async()=>r.chmodPromise(n,511&l.mode))}class a{constructor(e){this.pathUtils=e}async removePromise(e){let t;try{t=await this.lstatPromise(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of await this.readdirPromise(e))await this.removePromise(this.pathUtils.resolve(e,t));for(let t=0;t<5;++t)try{await this.rmdirPromise(e);break}catch(e){if("EBUSY"===e.code||"ENOTEMPTY"===e.code){await new Promise(e=>setTimeout(e,100*t));continue}throw e}}else await this.unlinkPromise(e)}removeSync(e){let t;try{t=this.lstatSync(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,t));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{await this.mkdirPromise(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&await this.chmodPromise(i,t),null!=r)await this.utimesPromise(i,r[0],r[1]);else{const e=await this.statPromise(this.pathUtils.dirname(i));await this.utimesPromise(i,e.atime,e.mtime)}}}}mkdirpSync(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{this.mkdirSync(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&this.chmodSync(i,t),null!=r)this.utimesSync(i,r[0],r[1]);else{const e=this.statSync(this.pathUtils.dirname(i));this.utimesSync(i,e.atime,e.mtime)}}}}async copyPromise(e,t,{baseFs:r=this,overwrite:n=!0,stableSort:i=!1,stableTime:o=!1}={}){return await async function(e,t,r,n,i){const o=e.pathUtils.normalize(t),s=r.pathUtils.normalize(n),a=[],c=[];await e.mkdirpPromise(t),await A(a,c,e,o,r,s,i);for(const e of a)await e();const u="function"==typeof e.lutimesPromise?e.lutimesPromise.bind(e):e.utimesPromise.bind(e);for(const[e,t,r]of c)await u(e,t,r)}(this,e,r,t,{overwrite:n,stableSort:i,stableTime:o})}copySync(e,t,{baseFs:r=this,overwrite:n=!0}={}){const i=r.lstatSync(t),o=this.existsSync(e);if(i.isDirectory()){this.mkdirpSync(e);const i=r.readdirSync(t);for(const o of i)this.copySync(this.pathUtils.join(e,o),r.pathUtils.join(t,o),{baseFs:r,overwrite:n})}else if(i.isFile()){if(!o||n){o&&this.removeSync(e);const n=r.readFileSync(t);this.writeFileSync(e,n)}}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${i.mode.toString(8).padStart(6,"0")})`);if(!o||n){o&&this.removeSync(e);const n=r.readlinkSync(t);this.symlinkSync((0,s.CI)(this.pathUtils,n),e)}}const A=511&i.mode;this.chmodSync(e,A)}async changeFilePromise(e,t,{automaticNewlines:r}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&await this.writeFilePromise(e,i)}changeFileSync(e,t,{automaticNewlines:r=!1}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&this.writeFileSync(e,i)}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(r){if("EXDEV"!==r.code)throw r;await this.copyPromise(t,e),await this.removePromise(e)}}moveSync(e,t){try{this.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;this.copySync(t,e),this.removeSync(e)}}async lockPromise(e,t){const r=e+".flock",n=Date.now();let i=null;const o=async()=>{let e;try{[e]=await this.readJsonPromise(r)}catch(e){return Date.now()-n<500}try{return process.kill(e,0),!0}catch(e){return!1}};for(;null===i;)try{i=await this.openPromise(r,"wx")}catch(e){if("EEXIST"!==e.code)throw e;if(!await o())try{await this.unlinkPromise(r);continue}catch(e){}if(!(Date.now()-n<6e4))throw new Error(`Couldn't acquire a lock in a reasonable time (via ${r})`);await new Promise(e=>setTimeout(e,1e3/60))}await this.writePromise(i,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.unlinkPromise(r),await this.closePromise(i)}catch(e){}}}async readJsonPromise(e){const t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async readJsonSync(e){const t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,JSON.stringify(t,null,2)+"\n")}writeJsonSync(e,t){return this.writeFileSync(e,JSON.stringify(t,null,2)+"\n")}async preserveTimePromise(e,t){const r=await this.lstatPromise(e),n=await t();void 0!==n&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,r.atime,r.mtime):r.isSymbolicLink()||await this.utimesPromise(e,r.atime,r.mtime)}async preserveTimeSync(e,t){const r=this.lstatSync(e),n=t();void 0!==n&&(e=n),this.lutimesSync?this.lutimesSync(e,r.atime,r.mtime):r.isSymbolicLink()||this.utimesSync(e,r.atime,r.mtime)}}a.DEFAULT_TIME=315532800;class c extends a{constructor(){super(s.y1)}}function u(e,t){return t.replace(/\r?\n/g,function(e){const t=e.match(/\r?\n/g);if(null===t)return n.EOL;const r=t.filter(e=>"\r\n"===e).length;return r>t.length-r?"\r\n":"\n"}(e))}},10489:(e,t,r)=>{"use strict";r.d(t,{n:()=>A});var n=r(78420),i=r(42096),o=r(46009);const s=o.LZ.root;class A extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(o.y1),this.target=this.pathUtils.resolve(o.LZ.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(o.LZ.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){const t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(s,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(s,this.pathUtils.relative(this.target,e))}}},15037:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(42096);class i extends n.p{constructor(e,t){super(t),this.instance=null,this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}}},78420:(e,t,r)=>{"use strict";r.d(t,{S:()=>a});var n=r(35747),i=r.n(n),o=r(35398),s=r(26984),A=r(46009);class a extends o.fS{constructor(e=i()){super(),this.realFs=e,void 0!==this.realFs.lutimes&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return A.LZ.root}resolve(e){return A.y1.resolve(e)}async openPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.open(A.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}openSync(e,t,r){return this.realFs.openSync(A.cS.fromPortablePath(e),t,r)}async readPromise(e,t,r=0,n=0,i=-1){return await new Promise((o,s)=>{this.realFs.read(e,t,r,n,i,(e,t)=>{e?s(e):o(t)})})}readSync(e,t,r,n,i){return this.realFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return await new Promise((o,s)=>"string"==typeof t?this.realFs.write(e,t,r,this.makeCallback(o,s)):this.realFs.write(e,t,r,n,i,this.makeCallback(o,s)))}writeSync(e,t,r,n,i){return"string"==typeof t?this.realFs.writeSync(e,t,r):this.realFs.writeSync(e,t,r,n,i)}async closePromise(e){await new Promise((t,r)=>{this.realFs.close(e,this.makeCallback(t,r))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){const r=null!==e?A.cS.fromPortablePath(e):e;return this.realFs.createReadStream(r,t)}createWriteStream(e,t){const r=null!==e?A.cS.fromPortablePath(e):e;return this.realFs.createWriteStream(r,t)}async realpathPromise(e){return await new Promise((t,r)=>{this.realFs.realpath(A.cS.fromPortablePath(e),{},this.makeCallback(t,r))}).then(e=>A.cS.toPortablePath(e))}realpathSync(e){return A.cS.toPortablePath(this.realFs.realpathSync(A.cS.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(A.cS.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(A.cS.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((r,n)=>{this.realFs.access(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}existsSync(e){return this.realFs.existsSync(A.cS.fromPortablePath(e))}async statPromise(e){return await new Promise((t,r)=>{this.realFs.stat(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}statSync(e){return this.realFs.statSync(A.cS.fromPortablePath(e))}async lstatPromise(e){return await new Promise((t,r)=>{this.realFs.lstat(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}lstatSync(e){return this.realFs.lstatSync(A.cS.fromPortablePath(e))}async chmodPromise(e,t){return await new Promise((r,n)=>{this.realFs.chmod(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}chmodSync(e,t){return this.realFs.chmodSync(A.cS.fromPortablePath(e),t)}async renamePromise(e,t){return await new Promise((r,n)=>{this.realFs.rename(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),this.makeCallback(r,n))})}renameSync(e,t){return this.realFs.renameSync(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t))}async copyFilePromise(e,t,r=0){return await new Promise((n,i)=>{this.realFs.copyFile(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),r,this.makeCallback(n,i))})}copyFileSync(e,t,r=0){return this.realFs.copyFileSync(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),r)}async appendFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.appendFile(o,t,r,this.makeCallback(n,i)):this.realFs.appendFile(o,t,this.makeCallback(n,i))})}appendFileSync(e,t,r){const n="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.appendFileSync(n,t,r):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.writeFile(o,t,r,this.makeCallback(n,i)):this.realFs.writeFile(o,t,this.makeCallback(n,i))})}writeFileSync(e,t,r){const n="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.writeFileSync(n,t,r):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,r)=>{this.realFs.unlink(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}unlinkSync(e){return this.realFs.unlinkSync(A.cS.fromPortablePath(e))}async utimesPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.utimes(A.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}utimesSync(e,t,r){this.realFs.utimesSync(A.cS.fromPortablePath(e),t,r)}async lutimesPromiseImpl(e,t,r){const n=this.realFs.lutimes;if(void 0===n)throw(0,s.bk)("unavailable Node binding",`lutimes '${e}'`);return await new Promise((i,o)=>{n.call(this.realFs,A.cS.fromPortablePath(e),t,r,this.makeCallback(i,o))})}lutimesSyncImpl(e,t,r){const n=this.realFs.lutimesSync;if(void 0===n)throw(0,s.bk)("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,A.cS.fromPortablePath(e),t,r)}async mkdirPromise(e,t){return await new Promise((r,n)=>{this.realFs.mkdir(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(A.cS.fromPortablePath(e),t)}async rmdirPromise(e){return await new Promise((t,r)=>{this.realFs.rmdir(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}rmdirSync(e){return this.realFs.rmdirSync(A.cS.fromPortablePath(e))}async symlinkPromise(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return await new Promise((r,i)=>{this.realFs.symlink(A.cS.fromPortablePath(e.replace(/\/+$/,"")),A.cS.fromPortablePath(t),n,this.makeCallback(r,i))})}symlinkSync(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return this.realFs.symlinkSync(A.cS.fromPortablePath(e.replace(/\/+$/,"")),A.cS.fromPortablePath(t),n)}async readFilePromise(e,t){return await new Promise((r,n)=>{const i="string"==typeof e?A.cS.fromPortablePath(e):e;this.realFs.readFile(i,t,this.makeCallback(r,n))})}readFileSync(e,t){const r="string"==typeof e?A.cS.fromPortablePath(e):e;return this.realFs.readFileSync(r,t)}async readdirPromise(e,{withFileTypes:t}={}){return await new Promise((r,n)=>{t?this.realFs.readdir(A.cS.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(r,n)):this.realFs.readdir(A.cS.fromPortablePath(e),this.makeCallback(e=>r(e),n))})}readdirSync(e,{withFileTypes:t}={}){return t?this.realFs.readdirSync(A.cS.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(A.cS.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,r)=>{this.realFs.readlink(A.cS.fromPortablePath(e),this.makeCallback(t,r))}).then(e=>A.cS.toPortablePath(e))}readlinkSync(e){return A.cS.toPortablePath(this.realFs.readlinkSync(A.cS.fromPortablePath(e)))}watch(e,t,r){return this.realFs.watch(A.cS.fromPortablePath(e),t,r)}makeCallback(e,t){return(r,n)=>{r?t(r):e(n)}}}},39725:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(42096),i=r(46009);class o extends n.p{constructor(e){super(i.cS),this.baseFs=e}mapFromBase(e){return i.cS.fromPortablePath(e)}mapToBase(e){return i.cS.toPortablePath(e)}}},42096:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var n=r(35398);class i extends n.uY{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}openPromise(e,t,r){return this.baseFs.openPromise(this.mapToBase(e),t,r)}openSync(e,t,r){return this.baseFs.openSync(this.mapToBase(e),t,r)}async readPromise(e,t,r,n,i){return await this.baseFs.readPromise(e,t,r,n,i)}readSync(e,t,r,n,i){return this.baseFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i)}writeSync(e,t,r,n,i){return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i)}closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(null!==e?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(null!==e?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}statPromise(e){return this.baseFs.statPromise(this.mapToBase(e))}statSync(e){return this.baseFs.statSync(this.mapToBase(e))}lstatPromise(e){return this.baseFs.lstatPromise(this.mapToBase(e))}lstatSync(e){return this.baseFs.lstatSync(this.mapToBase(e))}chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}copyFilePromise(e,t,r=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),r)}copyFileSync(e,t,r=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),r)}appendFilePromise(e,t,r){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,r)}appendFileSync(e,t,r){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,r)}writeFilePromise(e,t,r){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,r)}writeFileSync(e,t,r){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,r)}unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}utimesPromise(e,t,r){return this.baseFs.utimesPromise(this.mapToBase(e),t,r)}utimesSync(e,t,r){return this.baseFs.utimesSync(this.mapToBase(e),t,r)}mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}rmdirPromise(e){return this.baseFs.rmdirPromise(this.mapToBase(e))}rmdirSync(e){return this.baseFs.rmdirSync(this.mapToBase(e))}symlinkPromise(e,t,r){return this.baseFs.symlinkPromise(this.mapToBase(e),this.mapToBase(t),r)}symlinkSync(e,t,r){return this.baseFs.symlinkSync(this.mapToBase(e),this.mapToBase(t),r)}readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,{withFileTypes:t}={}){return this.baseFs.readdirPromise(this.mapToBase(e),{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){return this.baseFs.readdirSync(this.mapToBase(e),{withFileTypes:t})}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}watch(e,t,r){return this.baseFs.watch(this.mapToBase(e),t,r)}fsMapToBase(e){return"number"==typeof e?e:this.mapToBase(e)}}},17674:(e,t,r)=>{"use strict";r.d(t,{p:()=>c});var n=r(78420),i=r(42096),o=r(46009);const s=/^[0-9]+$/,A=/^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,a=/^([^/]+-)?[a-f0-9]+$/;class c extends i.p{constructor({baseFs:e=new n.S}={}){super(o.y1),this.baseFs=e}static makeVirtualPath(e,t,r){if("$$virtual"!==o.y1.basename(e))throw new Error('Assertion failed: Virtual folders must be named "$$virtual"');if(!o.y1.basename(t).match(a))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");const n=o.y1.relative(o.y1.dirname(e),r).split("/");let i=0;for(;i{"use strict";r.d(t,{k:()=>u,d:()=>g});var n=r(35747),i=r(92413),o=r(31669),s=r(35398),A=r(78420),a=r(26984),c=r(46009);const u="mixed";class l{constructor(){this.dev=0,this.ino=0,this.mode=0,this.nlink=1,this.rdev=0,this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return 16384==(61440&this.mode)}isFIFO(){return!1}isFile(){return 32768==(61440&this.mode)}isSocket(){return!1}isSymbolicLink(){return 40960==(61440&this.mode)}}function h(){return Object.assign(new l,{uid:0,gid:0,size:0,blksize:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),mode:33188})}class g extends s.fS{constructor(e,t){super(),this.lzSource=null,this.listings=new Map,this.entries=new Map,this.fds=new Map,this.nextFd=0,this.ready=!1,this.readOnly=!1,this.libzip=t.libzip;const r=t;if(this.level=void 0!==r.level?r.level:u,null===e&&(e=Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),"string"==typeof e){const{baseFs:t=new A.S}=r;this.baseFs=t,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if("string"==typeof e)try{this.stats=this.baseFs.statSync(e)}catch(e){if("ENOENT"!==e.code||!r.create)throw e;this.stats=h()}else this.stats=h();const n=this.libzip.malloc(4);try{let i=0;if("string"==typeof e&&r.create&&(i|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(i|=this.libzip.ZIP_RDONLY,this.readOnly=!0),"string"==typeof e)this.zip=this.libzip.open(c.cS.fromPortablePath(e),i,n);else{const t=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(t,i,n),this.lzSource=t}catch(e){throw this.libzip.source.free(t),e}}if(0===this.zip){const e=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(e,this.libzip.getValue(n,"i32")),new Error(this.libzip.error.strerror(e))}}finally{this.libzip.free(n)}this.listings.set(c.LZ.root,new Set);const i=this.libzip.getNumEntries(this.zip,0);for(let e=0;ee)throw new Error("Overread");const n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(!this.ready)throw a.Vw("archive closed, close");if(this.readOnly)return void this.discardAndClose();const e=this.baseFs.existsSync(this.path)?511&this.baseFs.statSync(this.path).mode:null;if(-1===this.libzip.close(this.zip))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));null===e?this.baseFs.chmodSync(this.path,this.stats.mode):e!==(511&this.baseFs.statSync(this.path).mode)&&this.baseFs.chmodSync(this.path,e),this.ready=!1}discardAndClose(){if(!this.ready)throw a.Vw("archive closed, close");this.libzip.discard(this.zip),this.ready=!1}resolve(e){return c.y1.resolve(c.LZ.root,e)}async openPromise(e,t,r){return this.openSync(e,t,r)}openSync(e,t,r){const n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}async readPromise(e,t,r,n,i){return this.readSync(e,t,r,n,i)}readSync(e,t,r=0,n=0,i=-1){const o=this.fds.get(e);if(void 0===o)throw a.Ch("read");let s;s=-1===i||null===i?o.cursor:i;const A=this.readFileSync(o.p);A.copy(t,r,s,s+n);const c=Math.max(0,Math.min(A.length-s,n));return-1!==i&&null!==i||(o.cursor+=c),c}async writePromise(e,t,r,n,i){return"string"==typeof t?this.writeSync(e,t,i):this.writeSync(e,t,r,n,i)}writeSync(e,t,r,n,i){if(void 0===this.fds.get(e))throw a.Ch("read");throw new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(void 0===this.fds.get(e))throw a.Ch("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesRead:0,path:e,close:()=>{clearImmediate(n)}}),n=setImmediate(()=>{try{const n=this.readFileSync(e,t);r.bytesRead=n.length,r.write(n),r.end()}catch(e){r.emit("error",e),r.end()}});return r}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw a.YW(`open '${e}'`);if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesWritten:0,path:e,close:()=>{r.end()}}),n=[];return r.on("data",e=>{const t=Buffer.from(e);r.bytesWritten+=t.length,n.push(t)}),r.on("end",()=>{this.writeFileSync(e,Buffer.concat(n),t)}),r}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){const t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw a.Vw(`archive closed, existsSync '${e}'`);if(0===this.symlinkCount){const t=c.y1.resolve(c.LZ.root,e);return this.entries.has(t)||this.listings.has(t)}let t;try{t=this.resolveFilename(`stat '${e}'`,e)}catch(e){return!1}return this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=n.constants.F_OK){const r=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`access '${e}'`);if(this.readOnly&&t&n.constants.W_OK)throw a.YW(`access '${e}'`)}async statPromise(e){return this.statSync(e)}statSync(e){const t=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`stat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`stat '${e}'`);return this.statImpl(`stat '${e}'`,t)}async lstatPromise(e){return this.lstatSync(e)}lstatSync(e){const t=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`lstat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,t)}statImpl(e,t){const r=this.entries.get(t);if(void 0!==r){const e=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,r,0,0,e))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const n=this.stats.uid,i=this.stats.gid,o=this.libzip.struct.statSize(e)>>>0,s=512,A=Math.ceil(o/s),a=1e3*(this.libzip.struct.statMtime(e)>>>0),c=a,u=a,h=a,g=new Date(c),f=new Date(u),p=new Date(h),d=new Date(a),C=this.listings.has(t)?16384:this.isSymbolicLink(r)?40960:32768,E=16384===C?493:420,I=C|511&this.getUnixMode(r,E);return Object.assign(new l,{uid:n,gid:i,size:o,blksize:s,blocks:A,atime:g,birthtime:f,ctime:p,mtime:d,atimeMs:c,birthtimeMs:u,ctimeMs:h,mtimeMs:a,mode:I})}if(this.listings.has(t)){const e=this.stats.uid,t=this.stats.gid,r=0,n=512,i=0,o=this.stats.mtimeMs,s=this.stats.mtimeMs,A=this.stats.mtimeMs,a=this.stats.mtimeMs,c=new Date(o),u=new Date(s),h=new Date(A),g=new Date(a),f=16877;return Object.assign(new l,{uid:e,gid:t,size:r,blksize:n,blocks:i,atime:c,birthtime:u,ctime:h,mtime:g,atimeMs:o,birthtimeMs:s,ctimeMs:A,mtimeMs:a,mode:f})}throw new Error("Unreachable")}getUnixMode(e,t){if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;const r=this.registerListing(c.y1.dirname(e));return t=new Set,r.add(c.y1.basename(e)),this.listings.set(e,t),t}registerEntry(e,t){this.registerListing(c.y1.dirname(e)).add(c.y1.basename(e)),this.entries.set(e,t)}resolveFilename(e,t,r=!0){if(!this.ready)throw a.Vw("archive closed, "+e);let n=c.y1.resolve(c.LZ.root,t);if("/"===n)return c.LZ.root;const i=this.entries.get(n);if(r&&void 0!==i){if(0!==this.symlinkCount&&this.isSymbolicLink(i)){const t=this.getFileSource(i).toString();return this.resolveFilename(e,c.y1.resolve(c.y1.dirname(n),t),!0)}return n}for(;;){const t=this.resolveFilename(e,c.y1.dirname(n),!0),i=this.listings.has(t),o=this.entries.has(t);if(!i&&!o)throw a.z6(e);if(!i)throw a.Ab(e);if(n=c.y1.resolve(t,c.y1.basename(n)),!r||0===this.symlinkCount)break;const s=this.libzip.name.locate(this.zip,n.slice(1));if(-1===s)break;if(!this.isSymbolicLink(s))break;{const e=this.getFileSource(s).toString();n=c.y1.resolve(c.y1.dirname(n),e)}}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));const t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){const t=this.libzip.struct.errorS(),{buffer:r,byteLength:n}=this.allocateBuffer(e),i=this.libzip.source.fromUnattachedBuffer(r,n,0,!0,t);if(0===i)throw this.libzip.free(t),new Error(this.libzip.error.strerror(t));return i}allocateSource(e){const{buffer:t,byteLength:r}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,r,0,!0);if(0===n)throw this.libzip.free(t),new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return n}setFileSource(e,t){const r=c.y1.relative(c.LZ.root,e),n=this.allocateSource(t);try{const e=this.libzip.file.add(this.zip,r,n,this.libzip.ZIP_FL_OVERWRITE);if("mixed"!==this.level){let t;t=0===this.level?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(-1===this.libzip.file.setCompression(this.zip,e,0,t,this.level))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}return e}catch(e){throw this.libzip.source.free(n),e}}isSymbolicLink(e){if(0===this.symlinkCount)return!1;if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)return!1;return 40960==(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16)}getFileSource(e){const t=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,e,0,0,t))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const r=this.libzip.struct.statSize(t),n=this.libzip.malloc(r);try{const t=this.libzip.fopenIndex(this.zip,e,0,0);if(0===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));try{const e=this.libzip.fread(t,n,r,0);if(-1===e)throw new Error(this.libzip.error.strerror(this.libzip.file.getError(t)));if(er)throw new Error("Overread");const i=this.libzip.HEAPU8.subarray(n,n+r);return Buffer.from(i)}finally{this.libzip.fclose(t)}}finally{this.libzip.free(n)}}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw a.YW(`chmod '${e}'`);t&=493;const r=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(r);if(void 0===n)throw new Error(`Assertion failed: The entry should have been registered (${r})`);const i=-512&this.getUnixMode(n,32768)|t;if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,i<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,r){return this.copyFileSync(e,t,r)}copyFileSync(e,t,r=0){if(this.readOnly)throw a.YW(`copyfile '${e} -> '${t}'`);if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw a.bk("unsupported clone operation",`copyfile '${e}' -> ${t}'`);const i=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),o=this.entries.get(i);if(void 0===o)throw a.hq(`copyfile '${e}' -> '${t}'`);const s=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),A=this.entries.get(s);if(0!=(r&(n.constants.COPYFILE_EXCL|n.constants.COPYFILE_FICLONE_FORCE))&&void 0!==A)throw a.cT(`copyfile '${e}' -> '${t}'`);const c=this.getFileSource(o),u=this.setFileSource(s,c);u!==A&&this.registerEntry(s,u)}async appendFilePromise(e,t,r){return this.appendFileSync(e,t,r)}appendFileSync(e,t,r={}){if(this.readOnly)throw a.YW(`open '${e}'`);return void 0===r?r={flag:"a"}:"string"==typeof r?r={flag:"a",encoding:r}:void 0===r.flag&&(r={flag:"a",...r}),this.writeFileSync(e,t,r)}async writeFilePromise(e,t,r){return this.writeFileSync(e,t,r)}writeFileSync(e,t,r){if("string"!=typeof e)throw a.Ch("read");if(this.readOnly)throw a.YW(`open '${e}'`);const n=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(n))throw a.GA(`open '${e}'`);const i=this.entries.get(n);void 0!==i&&"object"==typeof r&&r.flag&&r.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(i),Buffer.from(t)]));let o=null;"string"==typeof r?o=r:"object"==typeof r&&r.encoding&&(o=r.encoding),null!==o&&(t=t.toString(o));const s=this.setFileSource(n,t);s!==i&&this.registerEntry(n,s)}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){throw new Error("Unimplemented")}async utimesPromise(e,t,r){return this.utimesSync(e,t,r)}utimesSync(e,t,r){if(this.readOnly)throw a.YW(`utimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,r)}async lutimesPromise(e,t,r){return this.lutimesSync(e,t,r)}lutimesSync(e,t,r){if(this.readOnly)throw a.YW(`lutimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,r)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));const r=this.entries.get(e);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.setMtime(this.zip,r,0,function(e){if("string"==typeof e&&String(+e)===e)return+e;if(Number.isFinite(e))return e<0?Date.now()/1e3:e;if((0,o.isDate)(e))return e.getTime()/1e3;throw new Error("Invalid time")}(t),0))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:r=!1}={}){if(r)return void this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw a.YW(`mkdir '${e}'`);const n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw a.cT(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e){return this.rmdirSync(e)}rmdirSync(e){throw new Error("Unimplemented")}hydrateDirectory(e){const t=this.libzip.dir.add(this.zip,c.y1.relative(c.LZ.root,e));if(-1===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.registerListing(e),this.registerEntry(e,t),t}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw a.YW(`symlink '${e}' -> '${t}'`);const r=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(r))throw a.GA(`symlink '${e}' -> '${t}'`);if(this.entries.has(r))throw a.cT(`symlink '${e}' -> '${t}'`);const n=this.setFileSource(r,e);this.registerEntry(r,n);if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));this.symlinkCount+=1}async readFilePromise(e,t){switch(t){case"utf8":default:return this.readFileSync(e,t)}}readFileSync(e,t){if("string"!=typeof e)throw a.Ch("read");"object"==typeof t&&(t=t?t.encoding:void 0);const r=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`open '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(r))throw a.Ab(`open '${e}'`);if(this.listings.has(r))throw a.GA("read");const n=this.entries.get(r);if(void 0===n)throw new Error("Unreachable");const i=this.getFileSource(n);return t?i.toString(t):i}async readdirPromise(e,{withFileTypes:t}={}){return this.readdirSync(e,{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){const r=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`scandir '${e}'`);const n=this.listings.get(r);if(!n)throw a.Ab(`scandir '${e}'`);const i=[...n];return t?i.map(t=>Object.assign(this.statImpl("lstat",c.y1.join(e,t)),{name:t})):i}async readlinkPromise(e){return this.readlinkSync(e)}readlinkSync(e){const t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`readlink '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`open '${e}'`);if(this.listings.has(t))throw a.hq(`readlink '${e}'`);const r=this.entries.get(t);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)throw a.hq(`readlink '${e}'`);if(40960!=(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16))throw a.hq(`readlink '${e}'`);return this.getFileSource(r).toString()}watch(e,t,r){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t)}if(!n)return{on:()=>{},close:()=>{}};const i=setInterval(()=>{},864e5);return{on:()=>{},close:()=>{clearInterval(i)}}}}},53660:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(35747),i=r(35398),o=r(78420),s=r(90739),A=r(46009);const a=2147483648,c=/.*?(?await this.baseFs.openPromise(e,t,r),async(e,{subPath:n})=>this.remapFd(e,await e.openPromise(n,t,r)))}openSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,r),(e,{subPath:n})=>this.remapFd(e,e.openSync(n,t,r)))}async readPromise(e,t,r,n,i){if(0==(e&a))return await this.baseFs.readPromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,A]=o;return await s.readPromise(A,t,r,n,i)}readSync(e,t,r,n,i){if(0==(e&a))return this.baseFs.readSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,A]=o;return s.readSync(A,t,r,n,i)}async writePromise(e,t,r,n,i){if(0==(e&a))return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,A]=o;return"string"==typeof t?await s.writePromise(A,t,r):await s.writePromise(A,t,r,n,i)}writeSync(e,t,r,n,i){if(0==(e&a))return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,A]=o;return"string"==typeof t?s.writeSync(A,t,r):s.writeSync(A,t,r,n,i)}async closePromise(e){if(0==(e&a))return await this.baseFs.closePromise(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return await r.closePromise(n)}closeSync(e){if(0==(e&a))return this.baseFs.closeSync(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return r.closeSync(n)}createReadStream(e,t){return null===e?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(e,{subPath:r})=>e.createReadStream(r,t))}createWriteStream(e,t){return null===e?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(e,{subPath:r})=>e.createWriteStream(r,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(await this.baseFs.realpathPromise(t),this.pathUtils.relative(A.LZ.root,await e.realpathPromise(r))))}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(this.baseFs.realpathSync(t),this.pathUtils.relative(A.LZ.root,e.realpathSync(r))))}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(e,{subPath:t})=>await e.existsPromise(t))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(e,{subPath:t})=>e.existsSync(t))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(e,{subPath:r})=>await e.accessPromise(r,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(e,{subPath:r})=>e.accessSync(r,t))}async statPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e),async(e,{subPath:t})=>await e.statPromise(t))}statSync(e){return this.makeCallSync(e,()=>this.baseFs.statSync(e),(e,{subPath:t})=>e.statSync(t))}async lstatPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e),async(e,{subPath:t})=>await e.lstatPromise(t))}lstatSync(e){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e),(e,{subPath:t})=>e.lstatSync(t))}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(e,{subPath:r})=>await e.chmodPromise(r,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(e,{subPath:r})=>e.chmodSync(r,t))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(e,{subPath:r})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await e.renamePromise(r,n)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(e,{subPath:r})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return e.renameSync(r,n)}))}async copyFilePromise(e,t,r=0){const i=async(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&await this.existsPromise(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=await e.readFilePromise(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}await i.writeFilePromise(o,s)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,r),async(t,{subPath:r})=>await i(this.baseFs,e,t,r)),async(e,{subPath:n})=>await this.makeCallPromise(t,async()=>await i(e,n,this.baseFs,t),async(t,{subPath:o})=>e!==t?await i(e,n,t,o):await e.copyFilePromise(n,o,r)))}copyFileSync(e,t,r=0){const i=(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&this.existsSync(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=e.readFileSync(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}i.writeFileSync(o,s)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,r),(t,{subPath:r})=>i(this.baseFs,e,t,r)),(e,{subPath:n})=>this.makeCallSync(t,()=>i(e,n,this.baseFs,t),(t,{subPath:o})=>e!==t?i(e,n,t,o):e.copyFileSync(n,o,r)))}async appendFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,r),async(e,{subPath:n})=>await e.appendFilePromise(n,t,r))}appendFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,r),(e,{subPath:n})=>e.appendFileSync(n,t,r))}async writeFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,r),async(e,{subPath:n})=>await e.writeFilePromise(n,t,r))}writeFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,r),(e,{subPath:n})=>e.writeFileSync(n,t,r))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(e,{subPath:t})=>await e.unlinkPromise(t))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(e,{subPath:t})=>e.unlinkSync(t))}async utimesPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,r),async(e,{subPath:n})=>await e.utimesPromise(n,t,r))}utimesSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,r),(e,{subPath:n})=>e.utimesSync(n,t,r))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(e,{subPath:r})=>await e.mkdirPromise(r,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(e,{subPath:r})=>e.mkdirSync(r,t))}async rmdirPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e),async(e,{subPath:t})=>await e.rmdirPromise(t))}rmdirSync(e){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e),(e,{subPath:t})=>e.rmdirSync(t))}async symlinkPromise(e,t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,r),async(t,{subPath:r})=>await t.symlinkPromise(e,r))}symlinkSync(e,t,r){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,r),(t,{subPath:r})=>t.symlinkSync(e,r))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":default:return await this.baseFs.readFilePromise(e,t)}},async(e,{subPath:r})=>await e.readFilePromise(r,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":default:return this.baseFs.readFileSync(e,t)}},(e,{subPath:r})=>e.readFileSync(r,t))}async readdirPromise(e,{withFileTypes:t}={}){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,{withFileTypes:t}),async(e,{subPath:r})=>await e.readdirPromise(r,{withFileTypes:t}),{requireSubpath:!1})}readdirSync(e,{withFileTypes:t}={}){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,{withFileTypes:t}),(e,{subPath:r})=>e.readdirSync(r,{withFileTypes:t}),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(e,{subPath:t})=>await e.readlinkPromise(t))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(e,{subPath:t})=>e.readlinkSync(t))}watch(e,t,r){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,r),(e,{subPath:n})=>e.watch(n,t,r))}async makeCallPromise(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return await t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?await t():await this.getZipPromise(o.archivePath,async e=>await r(e,o)):await t()}makeCallSync(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?t():this.getZipSync(o.archivePath,e=>r(e,o)):t()}findZip(e){if(this.filter&&!this.filter.test(e))return null;let t="";for(;;){const r=c.exec(e.substr(t.length));if(!r)return null;if(t=this.pathUtils.join(t,r[0]),!1===this.isZip.has(t)){if(this.notZip.has(t))continue;try{if(!this.baseFs.lstatSync(t).isFile()){this.notZip.add(t);continue}}catch(e){return null}this.isZip.add(t)}return{archivePath:t,subPath:this.pathUtils.resolve(A.LZ.root,e.substr(t.length))}}}limitOpenFiles(e){if(null===this.zipInstances)return;let t=this.zipInstances.size-e;for(const[e,r]of this.zipInstances.entries()){if(t<=0)break;r.saveAndClose(),this.zipInstances.delete(e),t-=1}}async getZipPromise(e,t){const r=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){const t=await r();n=this.zipInstances.get(e),n||(n=new s.d(e,t))}return this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),await t(n)}{const n=new s.d(e,await r());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){const r=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n=new s.d(e,r())),this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),t(n)}{const n=new s.d(e,r());try{return t(n)}finally{n.saveAndClose()}}}}},26984:(e,t,r)=>{"use strict";function n(e,t){return Object.assign(new Error(`${e}: ${t}`),{code:e})}function i(e){return n("EBUSY",e)}function o(e,t){return n("ENOSYS",`${e}, ${t}`)}function s(e){return n("EINVAL","invalid argument, "+e)}function A(e){return n("EBADF","bad file descriptor, "+e)}function a(e){return n("ENOENT","no such file or directory, "+e)}function c(e){return n("ENOTDIR","not a directory, "+e)}function u(e){return n("EISDIR","illegal operation on a directory, "+e)}function l(e){return n("EEXIST","file already exists, "+e)}function h(e){return n("EROFS","read-only filesystem, "+e)}r.d(t,{Vw:()=>i,bk:()=>o,hq:()=>s,Ch:()=>A,z6:()=>a,Ab:()=>c,GA:()=>u,cT:()=>l,YW:()=>h})},56537:(e,t,r)=>{"use strict";r.r(t),r.d(t,{normalizeLineEndings:()=>a.qH,DEFAULT_COMPRESSION_LEVEL:()=>c.k,PortablePath:()=>A.LZ,Filename:()=>A.QS,npath:()=>A.cS,ppath:()=>A.y1,toFilename:()=>A.Zu,AliasFS:()=>u.K,FakeFS:()=>a.uY,CwdFS:()=>l.M,JailFS:()=>h.n,LazyFS:()=>g.v,NoFS:()=>p,NodeFS:()=>s.S,PosixFS:()=>d.i,ProxiedFS:()=>C.p,VirtualFS:()=>E.p,ZipFS:()=>c.d,ZipOpenFS:()=>I.A,patchFs:()=>y,extendFs:()=>w,xfs:()=>D});var n=r(12087),i=r.n(n),o=r(31669),s=r(78420),A=r(46009),a=r(35398),c=r(90739),u=r(14626),l=r(75448),h=r(10489),g=r(15037);const f=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"});class p extends a.uY{constructor(){super(A.y1)}getExtractHint(){throw f()}getRealPath(){throw f()}resolve(){throw f()}async openPromise(){throw f()}openSync(){throw f()}async readPromise(){throw f()}readSync(){throw f()}async writePromise(){throw f()}writeSync(){throw f()}async closePromise(){throw f()}closeSync(){throw f()}createWriteStream(){throw f()}createReadStream(){throw f()}async realpathPromise(){throw f()}realpathSync(){throw f()}async readdirPromise(){throw f()}readdirSync(){throw f()}async existsPromise(e){throw f()}existsSync(e){throw f()}async accessPromise(){throw f()}accessSync(){throw f()}async statPromise(){throw f()}statSync(){throw f()}async lstatPromise(e){throw f()}lstatSync(e){throw f()}async chmodPromise(){throw f()}chmodSync(){throw f()}async mkdirPromise(){throw f()}mkdirSync(){throw f()}async rmdirPromise(){throw f()}rmdirSync(){throw f()}async symlinkPromise(){throw f()}symlinkSync(){throw f()}async renamePromise(){throw f()}renameSync(){throw f()}async copyFilePromise(){throw f()}copyFileSync(){throw f()}async appendFilePromise(){throw f()}appendFileSync(){throw f()}async writeFilePromise(){throw f()}writeFileSync(){throw f()}async unlinkPromise(){throw f()}unlinkSync(){throw f()}async utimesPromise(){throw f()}utimesSync(){throw f()}async readFilePromise(){throw f()}readFileSync(){throw f()}async readlinkPromise(){throw f()}readlinkSync(){throw f()}watch(){throw f()}}p.instance=new p;var d=r(39725),C=r(42096),E=r(17674),I=r(53660);function m(e){const t=A.cS.toPortablePath(i().tmpdir()),r=Math.ceil(4294967296*Math.random()).toString(16).padStart(8,"0");return A.y1.join(t,`${e}${r}`)}function y(e,t){const r=new Set(["accessSync","appendFileSync","createReadStream","chmodSync","closeSync","copyFileSync","lstatSync","lutimesSync","mkdirSync","openSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","unlinkSync","utimesSync","watch","writeFileSync","writeSync"]),n=new Set(["accessPromise","appendFilePromise","chmodPromise","closePromise","copyFilePromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),i=(e,t,r)=>{const n=e[t];e[t]=r,void 0!==n[o.promisify.custom]&&(r[o.promisify.custom]=n[o.promisify.custom])};i(e,"exists",(e,...r)=>{const n="function"==typeof r[r.length-1]?r.pop():()=>{};process.nextTick(()=>{t.existsPromise(e).then(e=>{n(e)},()=>{n(!1)})})}),i(e,"read",(e,r,...n)=>{const i="function"==typeof n[n.length-1]?n.pop():()=>{};process.nextTick(()=>{t.readPromise(e,r,...n).then(e=>{i(null,e,r)},e=>{i(e)})})});for(const r of n){const n=r.replace(/Promise$/,"");if(void 0===e[n])continue;const o=t[r];if(void 0===o)continue;i(e,n,(...e)=>{const r="function"==typeof e[e.length-1]?e.pop():()=>{};process.nextTick(()=>{o.apply(t,e).then(e=>{r(null,e)},e=>{r(e)})})})}e.realpath.native=e.realpath,i(e,"existsSync",e=>{try{return t.existsSync(e)}catch(e){return!1}});for(const n of r){const r=n;if(void 0===e[r])continue;const o=t[n];void 0!==o&&i(e,r,o.bind(t))}e.realpathSync.native=e.realpathSync;{const r=e.promises;if(void 0!==r)for(const e of n){const n=e.replace(/Promise$/,"");if(void 0===r[n])continue;const o=t[e];void 0!==o&&i(r,n,o.bind(t))}}}function w(e,t){const r=Object.create(e);return y(r,t),r}const B=new Set;let Q=!1;function v(){if(Q)return;Q=!0;const e=()=>{process.off("exit",e);for(const e of B){B.delete(e);try{D.removeSync(e)}catch(e){}}};process.on("exit",e)}const D=Object.assign(new s.S,{detachTemp(e){B.delete(e)},mktempSync(e){for(v();;){const t=m("xfs-");try{this.mkdirSync(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=this.realpathSync(t);if(B.add(r),void 0===e)return t;try{return e(r)}finally{if(B.has(r)){B.delete(r);try{this.removeSync(r)}catch(e){}}}}},async mktempPromise(e){for(v();;){const t=m("xfs-");try{await this.mkdirPromise(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=await this.realpathPromise(t);if(B.add(r),void 0===e)return r;try{return await e(r)}finally{if(B.has(r)){B.delete(r);try{await this.removePromise(r)}catch(e){}}}}}})},46009:(e,t,r)=>{"use strict";r.d(t,{LZ:()=>s,QS:()=>A,cS:()=>a,y1:()=>c,CI:()=>C,Zu:()=>E});var n,i=r(85622),o=r.n(i);!function(e){e[e.File=0]="File",e[e.Portable=1]="Portable",e[e.Native=2]="Native"}(n||(n={}));const s={root:"/",dot:"."},A={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",rc:".yarnrc.yml"},a=Object.create(o()),c=Object.create(o().posix);a.cwd=()=>process.cwd(),c.cwd=()=>d(process.cwd()),c.resolve=(...e)=>o().posix.resolve(c.cwd(),...e);const u=function(e,t,r){return(t=e.normalize(t))===(r=e.normalize(r))?".":(t.endsWith(e.sep)||(t+=e.sep),r.startsWith(t)?r.slice(t.length):null)};a.fromPortablePath=p,a.toPortablePath=d,a.contains=(e,t)=>u(a,e,t),c.contains=(e,t)=>u(c,e,t);const l=/^([a-zA-Z]:.*)$/,h=/^\\\\(\.\\)?(.*)$/,g=/^\/([a-zA-Z]:.*)$/,f=/^\/unc\/(\.dot\/)?(.*)$/;function p(e){if("win32"!==process.platform)return e;if(e.match(g))e=e.replace(g,"$1");else{if(!e.match(f))return e;e=e.replace(f,(e,t,r)=>`\\\\${t?".\\":""}${r}`)}return e.replace(/\//g,"\\")}function d(e){return"win32"!==process.platform?e:(e.match(l)?e=e.replace(l,"/$1"):e.match(h)&&(e=e.replace(h,(e,t,r)=>`/unc/${t?".dot/":""}${r}`)),e.replace(/\\/g,"/"))}function C(e,t){return e===a?p(t):d(t)}function E(e){if(""!==a.parse(e).dir||""!==c.parse(e).dir)throw new Error(`Invalid filename: "${e}"`);return e}},29486:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getLibzipSync:()=>o,getLibzipPromise:()=>s});const n=["number","number"];let i=null;function o(){var e;return null===i&&(e=r(3368),i={get HEAP8(){return e.HEAP8},get HEAPU8(){return e.HEAPU8},SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:e._malloc(1),uint16S:e._malloc(2),uint32S:e._malloc(4),uint64S:e._malloc(8),malloc:e._malloc,free:e._free,getValue:e.getValue,open:e.cwrap("zip_open","number",["string","number","number"]),openFromSource:e.cwrap("zip_open_from_source","number",["number","number","number"]),close:e.cwrap("zip_close","number",["number"]),discard:e.cwrap("zip_discard",null,["number"]),getError:e.cwrap("zip_get_error","number",["number"]),getName:e.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:e.cwrap("zip_get_num_entries","number",["number","number"]),stat:e.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:e.cwrap("zip_stat_index","number",["number",...n,"number","number"]),fopen:e.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:e.cwrap("zip_fopen_index","number",["number",...n,"number"]),fread:e.cwrap("zip_fread","number",["number","number","number","number"]),fclose:e.cwrap("zip_fclose","number",["number"]),dir:{add:e.cwrap("zip_dir_add","number",["number","string"])},file:{add:e.cwrap("zip_file_add","number",["number","string","number","number"]),getError:e.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:e.cwrap("zip_file_get_external_attributes","number",["number",...n,"number","number","number"]),setExternalAttributes:e.cwrap("zip_file_set_external_attributes","number",["number",...n,"number","number","number"]),setMtime:e.cwrap("zip_file_set_mtime","number",["number",...n,"number","number"]),setCompression:e.cwrap("zip_set_file_compression","number",["number",...n,"number","number"])},ext:{countSymlinks:e.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:e.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:e.cwrap("zip_error_strerror","string",["number"])},name:{locate:e.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:e.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:e.cwrap("zip_source_buffer","number",["number","number",...n,"number"]),free:e.cwrap("zip_source_free",null,["number"]),keep:e.cwrap("zip_source_keep",null,["number"]),open:e.cwrap("zip_source_open","number",["number"]),close:e.cwrap("zip_source_close","number",["number"]),seek:e.cwrap("zip_source_seek","number",["number",...n,"number"]),tell:e.cwrap("zip_source_tell","number",["number"]),read:e.cwrap("zip_source_read","number",["number","number","number"]),error:e.cwrap("zip_source_error","number",["number"]),setMtime:e.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:e.cwrap("zipstruct_stat","number",[]),statS:e.cwrap("zipstruct_statS","number",[]),statName:e.cwrap("zipstruct_stat_name","string",["number"]),statIndex:e.cwrap("zipstruct_stat_index","number",["number"]),statSize:e.cwrap("zipstruct_stat_size","number",["number"]),statMtime:e.cwrap("zipstruct_stat_mtime","number",["number"]),error:e.cwrap("zipstruct_error","number",[]),errorS:e.cwrap("zipstruct_errorS","number",[])}}),i}async function s(){return o()}},55125:(e,t,r)=>{"use strict";r.r(t),r.d(t,{parseShell:()=>i,parseResolution:()=>s,stringifyResolution:()=>A,parseSyml:()=>C,stringifySyml:()=>f});var n=r(92962);function i(e,t={isGlobPattern:()=>!1}){try{return(0,n.parse)(e,t)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}var o=r(98261);function s(e){const t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,o.parse)(e)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function A(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+="@"+e.from.description),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+="@"+e.descriptor.description),t}var a=r(21194),c=r(85443);const u=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,l=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"];class h{constructor(e){this.data=e}}function g(e){return e.match(u)?e:JSON.stringify(e)}function f(e){try{return function e(t,r,n){if(null===t)return"null\n";if("number"==typeof t||"boolean"==typeof t)return t.toString()+"\n";if("string"==typeof t)return g(t)+"\n";if(Array.isArray(t)){if(0===t.length)return"[]\n";const n=" ".repeat(r);return"\n"+t.map(t=>`${n}- ${e(t,r+1,!1)}`).join("")}if("object"==typeof t&&t){let i,o;t instanceof h?(i=t.data,o=!1):(i=t,o=!0);const s=" ".repeat(r),A=Object.keys(i);o&&A.sort((e,t)=>{const r=l.indexOf(e),n=l.indexOf(t);return-1===r&&-1===n?et?1:0:-1!==r&&-1===n?-1:-1===r&&-1!==n?1:r-n});const a=A.filter(e=>void 0!==i[e]).map((t,o)=>{const A=i[t],a=g(t),c=e(A,r+1,!0),u=o>0||n?s:"";return c.startsWith("\n")?`${u}${a}:${c}`:`${u}${a}: ${c}`}).join(0===r?"\n":"")||"\n";return n?"\n"+a:""+a}throw new Error(`Unsupported value type (${t})`)}(e,0,!1)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}f.PreserveOrdering=h;const p=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function d(e){if(p.test(e))return function(e){return e.endsWith("\n")||(e+="\n"),(0,c.parse)(e)}(e);const t=(0,a.safeLoad)(e,{schema:a.FAILSAFE_SCHEMA});if(null==t)return{};if("object"!=typeof t)throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function C(e){return d(e)}},88563:(e,t,r)=>{"use strict";var n,i;r.d(t,{gY:()=>I,Q$:()=>m,oC:()=>F}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={})),function(e){e.DEFAULT="DEFAULT",e.TOP_LEVEL="TOP_LEVEL",e.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",e.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",e.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",e.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",e.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",e.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",e.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",e.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",e.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",e.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"}(i||(i={}));const o={[i.DEFAULT]:{collapsed:!1,next:{"*":i.DEFAULT}},[i.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:i.FALLBACK_EXCLUSION_LIST,packageRegistryData:i.PACKAGE_REGISTRY_DATA,"*":i.DEFAULT}},[i.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{"*":i.FALLBACK_EXCLUSION_ENTRIES}},[i.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{"*":i.FALLBACK_EXCLUSION_DATA}},[i.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{"*":i.DEFAULT}},[i.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_REGISTRY_ENTRIES}},[i.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_STORE_DATA}},[i.PACKAGE_STORE_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_STORE_ENTRIES}},[i.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_INFORMATION_DATA}},[i.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:i.PACKAGE_DEPENDENCIES,"*":i.DEFAULT}},[i.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{"*":i.PACKAGE_DEPENDENCY}},[i.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{"*":i.DEFAULT}}};function s(e,t,r,n){const{next:i}=o[r];return A(t,i[e]||i["*"],n)}function A(e,t,r){const{collapsed:n}=o[t];return Array.isArray(e)?n?function(e,t,r){let n="";n+="[";for(let i=0,o=e.length;ie(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function u(e){const t=new Map,r=c(e.fallbackExclusionList||[],[({name:e,reference:t})=>e,({name:e,reference:t})=>t]);for(const{name:e,reference:n}of r){let r=t.get(e);void 0===r&&t.set(e,r=new Set),r.add(n)}return Array.from(t).map(([e,t])=>[e,Array.from(t)])}function l(e){return c(e.fallbackPool||[],([e])=>e)}function h(e){const t=[];for(const[r,n]of c(e.packageRegistry,([e])=>null===e?"0":"1"+e)){const e=[];t.push([r,e]);for(const[t,{packageLocation:i,packageDependencies:o,packagePeers:s,linkType:A,discardFromLookup:a}]of c(n,([e])=>null===e?"0":"1"+e)){const n=[];null===r||null===t||o.has(r)||n.push([r,t]);for(const[e,t]of c(o.entries(),([e])=>e))n.push([e,t]);const u=s&&s.size>0?Array.from(s):void 0,l=a||void 0;e.push([t,{packageLocation:i,packageDependencies:n,packagePeers:u,linkType:A,discardFromLookup:l}])}}return t}function g(e){return c(e.blacklistedLocations||[],e=>e)}function f(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,fallbackExclusionList:u(e),fallbackPool:l(e),locationBlacklistData:g(e),packageRegistryData:h(e)}}var p=r(20103),d=r.n(p);function C(e,t){return[e?e+"\n":"","/* eslint-disable */\n\n","try {\n"," Object.freeze({}).detectStrictMode = true;\n","} catch (error) {\n"," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n","}\n","\n","var __non_webpack_module__ = module;\n","\n","function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n",t.replace(/^/gm," "),"}\n","\n",d()].join("")}function E(e){return JSON.stringify(e,null,2)}function I(e){const t=function(e){return[`return hydrateRuntimeState(${a(e)}, {basePath: basePath || __dirname});\n`].join("")}(f(e));return C(e.shebang,t)}function m(e){const t=f(e),r=(n=e.dataLocation,["var path = require('path');\n",`var dataLocation = path.resolve(__dirname, ${JSON.stringify(n)});\n`,"return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});\n"].join(""));var n;const i=C(e.shebang,r);return{dataFile:E(t),loaderFile:i}}var y=r(35747),w=(r(85622),r(31669)),B=r(46009);function Q(e,{basePath:t}){const r=B.cS.toPortablePath(t),n=null!==e.ignorePatternData?new RegExp(e.ignorePatternData):null,i=new Map(e.packageRegistryData.map(([e,t])=>[e,new Map(t.map(([e,t])=>[e,{packageLocation:B.y1.resolve(r,t.packageLocation),packageDependencies:new Map(t.packageDependencies),packagePeers:new Set(t.packagePeers),linkType:t.linkType,discardFromLookup:t.discardFromLookup||!1}]))])),o=new Map,s=new Set;for(const[t,r]of e.packageRegistryData)for(const[e,n]of r){if(null===t!=(null===e))throw new Error("Assertion failed: The name and reference should be null, or neither should");if(n.discardFromLookup)continue;const r={name:t,reference:e};o.set(n.packageLocation,r),s.add(n.packageLocation.length)}for(const t of e.locationBlacklistData)o.set(t,null);const A=new Map(e.fallbackExclusionList.map(([e,t])=>[e,new Set(t)])),a=new Map(e.fallbackPool),c=e.dependencyTreeRoots,u=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:A,fallbackPool:a,ignorePattern:n,packageLocationLengths:[...s].sort((e,t)=>t-e),packageLocatorsByLocations:o,packageRegistry:i}}var v,D=r(17674),b=r(32282);!function(e){e.API_ERROR="API_ERROR",e.BLACKLISTED="BLACKLISTED",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED"}(v||(v={}));const S=new Set([v.BLACKLISTED,v.BUILTIN_NODE_RESOLUTION_FAILED,v.MISSING_DEPENDENCY,v.MISSING_PEER_DEPENDENCY,v.QUALIFIED_PATH_RESOLUTION_FAILED,v.UNDECLARED_DEPENDENCY]);function k(e,t,r={}){const n=S.has(e)?"MODULE_NOT_FOUND":e,i={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...i,value:n},pnpCode:{...i,value:e},data:{...i,value:r}})}function x(e,t){const r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),i=new Set(b.Module.builtinModules||Object.keys(process.binding("natives"))),o=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^\.{0,2}\//,A=/\/$/,a=[],c=new Set;if(!1!==t.compatibilityMode)for(const t of["react-scripts","gatsby"]){const r=e.packageRegistry.get(t);if(r)for(const e of r.keys()){if(null===e)throw new Error("Assertion failed: This reference shouldn't be null");a.push({name:t,reference:e})}}const{ignorePattern:u,packageRegistry:l,packageLocatorsByLocations:h,packageLocationLengths:g}=e;function f(e,t){return{fn:e,args:t,error:null,result:null}}function p(e,r){if(!1===t.allowDebug)return r;if(Number.isFinite(n)){if(n>=2)return(...t)=>{const n=f(e,t);try{return n.result=r(...t)}catch(e){throw n.error=e}finally{console.trace(n)}};if(n>=1)return(...t)=>{try{return r(...t)}catch(r){const n=f(e,t);throw n.error=r,console.trace(n),r}}}return r}function d(e){const t=I(e);if(!t)throw k(v.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return t}function C(t){if(null===t.name)return!0;for(const r of e.dependencyTreeRoots)if(r.name===t.name&&r.reference===t.reference)return!0;return!1}function E(e,t){return t.endsWith("/")&&(t=B.y1.join(t,"internal.js")),b.Module._resolveFilename(e,function(e){const t=new b.Module(e,null);return t.filename=e,t.paths=b.Module._nodeModulePaths(e),t}(B.cS.fromPortablePath(t)),!1,{plugnplay:!1})}function I({name:e,reference:t}){const r=l.get(e);if(!r)return null;const n=r.get(t);return n||null}function m(e,t){const r=new Map,n=new Set,i=t=>{const o=JSON.stringify(t.name);if(n.has(o))return;n.add(o);const s=function({name:e,reference:t}){const r=[];for(const[n,i]of l)if(null!==n)for(const[o,s]of i){if(null===o)continue;s.packageDependencies.get(e)===t&&(n===e&&o===t||r.push({name:n,reference:o}))}return r}(t);for(const t of s){if(d(t).packagePeers.has(e))i(t);else{let e=r.get(t.name);void 0===e&&r.set(t.name,e=new Set),e.add(t.reference)}}};i(t);const o=[];for(const e of[...r.keys()].sort())for(const t of[...r.get(e)].sort())o.push({name:e,reference:t});return o}function y(t){let r=(n=B.y1.relative(e.basePath,t),B.cS.toPortablePath(n));var n;r.match(s)||(r="./"+r),t.match(A)&&!r.endsWith("/")&&(r+="/");let i=0;for(;ir.length;)i+=1;for(let e=i;eC(e))?k(v.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e}):k(v.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e})}else void 0===A&&(l=C(o)?k(v.UNDECLARED_DEPENDENCY,`Your application tried to access ${t}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${s}\n`,{request:n,issuer:s,dependencyName:t}):k(v.UNDECLARED_DEPENDENCY,`${o.name} tried to access ${t}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t}));if(null==A){if(null===u||null===l)throw l||new Error("Assertion failed: Expected an error to have been set");A=u;const e=l.message.replace(/\n.*/g,"");l.message=e,c.has(e)||(c.add(e),process.emitWarning(l))}const f=Array.isArray(A)?{name:A[0],reference:A[1]}:{name:t,reference:A},p=d(f);if(!p.packageLocation)throw k(v.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${f.name}@${f.reference} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,dependencyLocator:Object.assign({},f)});const I=B.y1.resolve(e.basePath,p.packageLocation);h=i?B.y1.resolve(I,i):I}else{if(B.y1.isAbsolute(n))h=B.y1.normalize(n);else{if(!s)throw k(v.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:n,issuer:s});const e=B.y1.resolve(s);h=s.match(A)?B.y1.normalize(B.y1.join(e,n)):B.y1.normalize(B.y1.join(B.y1.dirname(e),n))}y(h)}return B.y1.normalize(h)}function Q(e,{extensions:r=Object.keys(b.Module._extensions)}={}){const n=[],i=function e(r,n,{extensions:i}){let o;try{n.push(r),o=t.fakeFs.statSync(r)}catch(e){}if(o&&!o.isDirectory())return t.fakeFs.realpathSync(r);if(o&&o.isDirectory()){let o,s;try{o=JSON.parse(t.fakeFs.readFileSync(B.y1.join(r,"package.json"),"utf8"))}catch(e){}if(o&&o.main&&(s=B.y1.resolve(r,o.main)),s&&s!==r){const t=e(s,n,{extensions:i});if(null!==t)return t}}for(let e=0,o=i.length;e`Rejected candidate: ${e}\n`).join("")}`,{unqualifiedPath:e})}return{VERSIONS:{std:3,resolveVirtual:1},topLevel:{name:null,reference:null},getLocator:(e,t)=>Array.isArray(t)?{name:t[0],reference:t[1]}:{name:e,reference:t},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getPackageInformation:e=>{const t=I(e);if(null===t)return null;const r=B.cS.fromPortablePath(t.packageLocation);return{...t,packageLocation:r}},findPackageLocator:e=>y(B.cS.toPortablePath(e)),resolveToUnqualified:p("resolveToUnqualified",(e,t,r)=>{const n=null!==t?B.cS.toPortablePath(t):null,i=w(B.cS.toPortablePath(e),n,r);return null===i?null:B.cS.fromPortablePath(i)}),resolveUnqualified:p("resolveUnqualified",(e,t)=>B.cS.fromPortablePath(Q(B.cS.toPortablePath(e),t))),resolveRequest:p("resolveRequest",(e,t,r)=>{const n=null!==t?B.cS.toPortablePath(t):null,i=function(e,t,{considerBuiltins:r,extensions:n}={}){const i=w(e,t,{considerBuiltins:r});if(null===i)return null;try{return Q(i,{extensions:n})}catch(r){throw"QUALIFIED_PATH_RESOLUTION_FAILED"===r.pnpCode&&Object.assign(r.data,{request:e,issuer:t}),r}}(B.cS.toPortablePath(e),n,r);return null===i?null:B.cS.fromPortablePath(i)}),resolveVirtual:p("resolveVirtual",e=>{const t=function(e){const t=B.y1.normalize(e),r=D.p.resolveVirtual(t);return r!==t?r:null}(B.cS.toPortablePath(e));return null!==t?B.cS.fromPortablePath(t):null})}}(0,w.promisify)(y.readFile);const F=(e,t,r)=>x(Q(f(e),{basePath:t}),{fakeFs:r,pnpapiResolution:B.cS.join(t,".pnp.js")})},43982:(e,t,r)=>{"use strict";r.r(t),r.d(t,{execute:()=>F});var n,i=r(46009),o=r(56537),s=r(39725),A=r(55125),a=r(19347),c=r.n(a),u=r(92413),l=r(67566),h=r.n(l);function g(){}!function(e){e[e.STDOUT=1]="STDOUT",e[e.STDERR=2]="STDERR"}(n||(n={}));let f=0;class p{constructor(e){this.stream=e}close(){}get(){return this.stream}}class d{constructor(){this.stream=null}close(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");return this.stream}}class C{constructor(e,t){this.stdin=null,this.stdout=null,this.stderr=null,this.pipe=null,this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:r,stderr:n}){const i=new C(null,e);return i.stdin=t,i.stdout=r,i.stderr=n,i}pipeTo(e,t=n.STDOUT){const r=new C(this,e),i=new d;return r.pipe=i,r.stdout=this.stdout,r.stderr=this.stderr,(t&n.STDOUT)===n.STDOUT?this.stdout=i:null!==this.ancestor&&(this.stderr=this.ancestor.stdout),(t&n.STDERR)===n.STDERR?this.stderr=i:null!==this.ancestor&&(this.stderr=this.ancestor.stderr),r}async exec(){const e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(null===this.stdin)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t,r;if(null===this.stdout)throw new Error("Assertion failed: No output stream registered");if(t=this.stdout,e[1]=t.get(),null===this.stderr)throw new Error("Assertion failed: No error stream registered");r=this.stderr,e[2]=r.get();const n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(e=>(t.close(),r.close(),e))}async run(){const e=[];for(let t=this;t;t=t.ancestor)e.push(t.exec());return(await Promise.all(e))[0]}}function E(e,t){return C.start(e,t)}function I(e,t={}){const r={...e,...t};return r.environment={...e.environment,...t.environment},r.variables={...e.variables,...t.variables},r}const m=new Map([["cd",async([e,...t],r,n)=>{const s=i.y1.resolve(n.cwd,i.cS.toPortablePath(e));return(await o.xfs.statPromise(s)).isDirectory()?(n.cwd=s,0):(n.stderr.write("cd: not a directory\n"),1)}],["pwd",async(e,t,r)=>(r.stdout.write(i.cS.fromPortablePath(r.cwd)+"\n"),0)],["true",async(e,t,r)=>0],["false",async(e,t,r)=>1],["exit",async([e,...t],r,n)=>n.exitCode=parseInt(e,10)],["echo",async(e,t,r)=>(r.stdout.write(e.join(" ")+"\n"),0)],["__ysh_run_procedure",async(e,t,r)=>{const n=r.procedures[e[0]];return await E(n,{stdin:new p(r.stdin),stdout:new p(r.stdout),stderr:new p(r.stderr)}).run()}],["__ysh_set_redirects",async(e,t,r)=>{let n=r.stdin,s=r.stdout;const A=r.stderr,a=[],c=[];let l=0;for(;"--"!==e[l];){const t=e[l++],n=Number(e[l++]),s=l+n;for(let n=l;no.xfs.createReadStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n]))));break;case"<<<":a.push(()=>{const t=new u.PassThrough;return process.nextTick(()=>{t.write(e[n]+"\n"),t.end()}),t});break;case">":c.push(o.xfs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n]))));break;case">>":c.push(o.xfs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n])),{flags:"a"}))}}if(a.length>0){const e=new u.PassThrough;n=e;const t=r=>{if(r===a.length)e.end();else{const n=a[r]();n.pipe(e,{end:!1}),n.on("end",()=>{t(r+1)})}};t(0)}if(c.length>0){const e=new u.PassThrough;s=e;for(const t of c)e.pipe(t)}const h=await E(Q(e.slice(l+1),t,r),{stdin:new p(n),stdout:new p(s),stderr:new p(A)}).run();return await Promise.all(c.map(e=>new Promise(t=>{e.on("close",()=>{t()}),e.end()}))),h}]]);async function y(e,t,r){const n=[],i=new u.PassThrough;return i.on("data",e=>n.push(e)),await S(e,t,I(r,{stdout:i})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function w(e,t,r){const n=e.map(async e=>{const n=await B(e.args,t,r);return{name:e.name,value:n.join(" ")}});return(await Promise.all(n)).reduce((e,t)=>(e[t.name]=t.value,e),{})}async function B(e,t,r){const n=new Map,i=[];let o=[];const s=e=>e.match(/[^ \r\n\t]+/g)||[],A=e=>{o.push(e)},a=()=>{o.length>0&&i.push(o.join("")),o=[]},c=e=>{A(e),a()},u=(e,t)=>{let r=n.get(e);void 0===r&&n.set(e,r=[]),r.push(t)};for(const n of e){switch(n.type){case"redirection":{const e=await B(n.args,t,r);for(const t of e)u(n.subtype,t)}break;case"argument":for(const e of n.segments)switch(e.type){case"text":A(e.text);break;case"glob":{const n=await t.glob.match(e.pattern,{cwd:r.cwd});if(!n.length)throw new Error(`No file matches found: "${e.pattern}". Note: Glob patterns currently only support files that exist on the filesystem (Help Wanted)`);for(const e of n.sort())c(e)}break;case"shell":{const n=await y(e.shell,t,r);if(e.quoted)A(n);else{const e=s(n);for(let t=0;t=0&&n0){const e=[];for(const[t,r]of n.entries())e.splice(e.length,0,t,String(r.length),...r);i.splice(0,0,"__ysh_set_redirects",...e,"--")}return i}function Q(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);const n=i.cS.fromPortablePath(r.cwd);let o=r.environment;void 0!==o.PWD&&(o={...o,PWD:n});const[s,...A]=e;if("command"===s)return function(e,t,r,n){return r=>{const i=r[0]instanceof u.Transform?"pipe":r[0],o=r[1]instanceof u.Transform?"pipe":r[1],s=r[2]instanceof u.Transform?"pipe":r[2],A=h()(e,t,{...n,stdio:[i,o,s]});return 0==f++&&process.on("SIGINT",g),r[0]instanceof u.Transform&&r[0].pipe(A.stdin),r[1]instanceof u.Transform&&A.stdout.pipe(r[1],{end:!1}),r[2]instanceof u.Transform&&A.stderr.pipe(r[2],{end:!1}),{stdin:A.stdin,promise:new Promise(t=>{A.on("error",n=>{switch(0==--f&&process.off("SIGINT",g),n.code){case"ENOENT":r[2].write(`command not found: ${e}\n`),t(127);break;case"EACCESS":r[2].write(`permission denied: ${e}\n`),t(128);break;default:r[2].write(`uncaught error: ${n.message}\n`),t(1)}}),A.on("exit",e=>{0==--f&&process.off("SIGINT",g),t(null!==e?e:129)})})}}}(A[0],A.slice(1),0,{cwd:n,env:o});const a=t.builtins.get(s);if(void 0===a)throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return function(e){return t=>{const r="pipe"===t[0]?new u.PassThrough:t[0];return{stdin:r,promise:Promise.resolve().then(()=>e({stdin:r,stdout:t[1],stderr:t[2]}))}}}(async({stdin:e,stdout:n,stderr:i})=>(r.stdin=e,r.stdout=n,r.stderr=i,await a(A,t,r)))}function v(e,t,r){return n=>{const i=new u.PassThrough;return{stdin:i,promise:S(e,t,I(r,{stdin:i}))}}}async function D(e,t,r){let n=e,i=null,o=null;for(;n;){const e=n.then?{...r}:r;let s;switch(n.type){case"command":{const i=await B(n.args,t,r),o=await w(n.envs,t,r);s=n.envs.length?Q(i,t,I(e,{environment:o})):Q(i,t,e)}break;case"subshell":{const i=await B(n.args,t,r),o=v(n.subshell,t,e);if(0===i.length)s=o;else{let r;do{r=String(Math.random())}while(Object.prototype.hasOwnProperty.call(e.procedures,r));e.procedures={...e.procedures},e.procedures[r]=o,s=Q([...i,"__ysh_run_procedure",r],t,e)}}break;case"envs":{const i=await w(n.envs,t,r);e.environment={...e.environment,...i},s=Q(["true"],t,e)}}if(void 0===s)throw new Error("Assertion failed: An action should have been generated");if(null===i)o=E(s,{stdin:new p(e.stdin),stdout:new p(e.stdout),stderr:new p(e.stderr)});else{if(null===o)throw new Error("The execution pipeline should have been setup");switch(i){case"|":case"|&":o=o.pipeTo(s)}}n.then?(i=n.then.type,n=n.then.chain):n=null}if(null===o)throw new Error("Assertion failed: The execution pipeline should have been setup");return await o.run()}async function b(e,t,r){if(!e.then)return await D(e.chain,t,r);const n=await D(e.chain,t,r);if(null!==r.exitCode)return r.exitCode;switch(r.variables["?"]=String(n),e.then.type){case"&&":return 0===n?await b(e.then.line,t,r):n;case"||":return 0!==n?await b(e.then.line,t,r):n;default:throw new Error(`Unsupported command type: "${e.then.type}"`)}}async function S(e,t,r){let n=0;for(const i of e){if(n=await b(i,t,r),null!==r.exitCode)return r.exitCode;r.variables["?"]=String(n)}return n}function k(e){switch(e.type){case"redirection":return e.args.some(e=>k(e));case"argument":return e.segments.some(e=>function(e){switch(e.type){case"variable":return"@"===e.name||"#"===e.name||"*"===e.name||Number.isFinite(parseInt(e.name,10))||!!e.defaultValue&&e.defaultValue.some(e=>k(e));case"shell":return x(e.shell);default:return!1}}(e));default:throw new Error("Unreacheable")}}function x(e){return e.some(e=>{for(;e;){let t=e.chain;for(;t;){let e;switch(t.type){case"subshell":e=x(t.subshell);break;case"command":e=t.envs.some(e=>e.args.some(e=>k(e)))||t.args.some(e=>k(e))}if(e)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function F(e,t=[],{builtins:r={},cwd:n=i.cS.toPortablePath(process.cwd()),env:a=process.env,stdin:l=process.stdin,stdout:h=process.stdout,stderr:g=process.stderr,variables:f={},glob:p={isGlobPattern:c().isDynamicPattern,match:(e,{cwd:t,fs:r=o.xfs})=>c()(e,{cwd:i.cS.fromPortablePath(t),fs:new s.i(r)})}}={}){const d={};for(const[e,t]of Object.entries(a))void 0!==t&&(d[e]=t);const C=new Map(m);for(const[e,t]of Object.entries(r))C.set(e,t);null===l&&(l=new u.PassThrough).end();const E=(0,A.parseShell)(e,p);if(!x(E)&&E.length>0&&t.length>0){let e=E[E.length-1];for(;e.then;)e=e.then.line;let r=e.chain;for(;r.then;)r=r.then.chain;"command"===r.type&&(r.args=r.args.concat(t.map(e=>({type:"argument",segments:[{type:"text",text:e}]}))))}return await S(E,{args:t,builtins:C,initialStdin:l,initialStdout:h,initialStderr:g,glob:p},{cwd:n,environment:d,exitCode:null,procedures:{},stdin:l,stdout:h,stderr:g,variables:Object.assign(Object.create(f),{"?":0})})}},45330:(e,t,r)=>{t.e=()=>({modules:new Map([[r(60306).name,r(95397)],[r(73841).u2,r(84132)],[r(4670).u2,r(56537)],[r(81386).u2,r(29486)],[r(54920).u2,r(55125)],[r(75418).u2,r(43982)],[r(75426).u2,r(17278)],[r(89153).u2,r(53887)],[r(38422).u2,r(15966)],[r(37904).u2,r(72926)],[r(49775).u2,r(80150)],[r(35729).u2,r(10420)],[r(17508).u2,r(41466)],[r(84779).u2,r(10284)],[r(88454).u2,r(23599)],[r(91953).u2,r(21754)],[r(63756).u2,r(74230)],[r(23100).u2,r(86161)],[r(47047).u2,r(8149)],[r(67310).u2,r(86717)],[r(31880).u2,r(94573)],[r(74617).u2,r(5973)],[r(12437).u2,r(5698)],[r(8211).u2,r(5780)]]),plugins:new Set([r(37904).u2,r(49775).u2,r(35729).u2,r(17508).u2,r(84779).u2,r(88454).u2,r(91953).u2,r(63756).u2,r(23100).u2,r(47047).u2,r(67310).u2,r(31880).u2,r(74617).u2,r(12437).u2,r(8211).u2])})},29148:(e,t,r)=>{const n=r(74988),i=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,o=new n;e.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");const n=r-t;let s="",A=0,a=0;for(;e.length>0;){const r=e.match(i)||[e,e,void 0];let c=o.splitGraphemes(r[1]);const u=Math.min(t-A,c.length);c=c.slice(u);const l=Math.min(n-a,c.length);s+=c.slice(0,l).join(""),A+=u,a+=l,void 0!==r[2]&&(s+=r[2]),e=e.slice(r[0].length)}return s}},72912:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},19228:(e,t,r)=>{var n=r(54694);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var A=o?Object.getOwnPropertyDescriptor(e,s):null;A&&(A.get||A.set)?Object.defineProperty(r,s,A):r[s]=e[s]}return r.default=e,t&&t.set(e,r),r}},74943:e=>{e.exports=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}},62407:e=>{e.exports=function(e,t){return t||(t=e.slice(0)),e.raw=t,e}},54694:e=>{function t(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(r)}e.exports=t},96117:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},79774:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=process.versions.node.split("."),n=parseInt(r[0],10),i=parseInt(r[1],10),o=n>10,s=10===n&&i>=10;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=o||s},85670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31020),i=r(35516),o=r(38844);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.scandir=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.scandirSync=function(e,t){const r=s(t);return i.read(e,r)}},31020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(69078),o=r(79774),s=r(65225);function A(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,o)=>{if(null!==n)return c(r,n);const A=o.map(r=>({dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`}));if(!t.followSymbolicLinks)return u(r,A);const a=A.map(e=>function(e,t){return r=>{if(!e.dirent.isSymbolicLink())return r(null,e);t.fs.stat(e.path,(n,i)=>null!==n?t.throwErrorOnBrokenSymbolicLink?r(n):r(null,e):(e.dirent=s.fs.createDirentFromStats(e.name,i),r(null,e)))}}(e,t));i(a,(e,t)=>{if(null!==e)return c(r,e);u(r,t)})})}function a(e,t,r){t.fs.readdir(e,(o,A)=>{if(null!==o)return c(r,o);const a=A.map(r=>`${e}${t.pathSegmentSeparator}${r}`),l=a.map(e=>r=>n.stat(e,t.fsStatSettings,r));i(l,(e,n)=>{if(null!==e)return c(r,e);const i=[];A.forEach((e,r)=>{const o=n[r],A={name:e,path:a[r],dirent:s.fs.createDirentFromStats(e,o)};t.stats&&(A.stats=o),i.push(A)}),u(r,i)})})}function c(e,t){e(t)}function u(e,t){e(null,t)}t.read=function(e,t,r){return!t.stats&&o.IS_SUPPORT_READDIR_WITH_FILE_TYPES?A(e,t,r):a(e,t,r)},t.readdirWithFileTypes=A,t.readdir=a},35516:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(79774),o=r(65225);function s(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(r=>{const n={dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`};if(n.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{const e=t.fs.statSync(n.path);n.dirent=o.fs.createDirentFromStats(n.name,e)}catch(e){if(t.throwErrorOnBrokenSymbolicLink)throw e}return n})}function A(e,t){return t.fs.readdirSync(e).map(r=>{const i=`${e}${t.pathSegmentSeparator}${r}`,s=n.statSync(i,t.fsStatSettings),A={name:r,path:i,dirent:o.fs.createDirentFromStats(r,s)};return t.stats&&(A.stats=s),A})}t.read=function(e,t){return!t.stats&&i.IS_SUPPORT_READDIR_WITH_FILE_TYPES?s(e,t):A(e,t)},t.readdirWithFileTypes=s,t.readdir=A},38844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),o=r(96117);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=o.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new i.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},72156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},65225:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(72156);t.fs=n},71208:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},53403:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(17790),i=r(34846),o=r(92687);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.stat=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.statSync=function(e,t){const r=s(t);return i.read(e,r)}},17790:(e,t)=>{"use strict";function r(e,t){e(t)}function n(e,t){e(null,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t,i){t.fs.lstat(e,(o,s)=>null!==o?r(i,o):s.isSymbolicLink()&&t.followSymbolicLink?void t.fs.stat(e,(e,o)=>{if(null!==e)return t.throwErrorOnBrokenSymbolicLink?r(i,e):n(i,s);t.markSymbolicLink&&(o.isSymbolicLink=()=>!0),n(i,o)}):n(i,s))}},34846:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t){const r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{const r=t.fs.statSync(e);return t.markSymbolicLink&&(r.isSymbolicLink=()=>!0),r}catch(e){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw e}}},92687:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71208);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=n.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return void 0===e?t:e}}},72897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(42369),i=r(27696),o=r(22111),s=r(14954);function A(e={}){return e instanceof s.default?e:new s.default(e)}t.Settings=s.default,t.walk=function(e,t,r){if("function"==typeof t)return new n.default(e,A()).read(t);new n.default(e,A(t)).read(r)},t.walkSync=function(e,t){const r=A(t);return new o.default(e,r).read()},t.walkStream=function(e,t){const r=A(t);return new i.default(e,r).read()}},42369:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{!function(e,t){e(t)}(e,t)}),this._reader.onEntry(e=>{this._storage.add(e)}),this._reader.onEnd(()=>{!function(e,t){e(null,t)}(e,[...this._storage])}),this._reader.read()}}},27696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new i.default(this._root,this._settings),this._stream=new n.Readable({objectMode:!0,read:()=>{},destroy:this._reader.destroy.bind(this._reader)})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}},22111:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(97835);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings)}read(){return this._reader.read()}}},98566:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(85670),o=r(98360),s=r(10750),A=r(75504);class a extends A.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=i.scandir,this._emitter=new n.EventEmitter,this._queue=o(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){const r={directory:e,base:t};this._queue.push(r,e=>{null!==e&&this._handleError(e)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(r,n)=>{if(null!==r)return t(r,void 0);for(const t of n)this._handleEntry(t,e.base);t(null,void 0)})}_handleError(e){s.isFatalError(this._settings,e)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;const r=e.path;void 0!==t&&(e.path=s.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),s.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&s.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}}t.default=a},10750:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isFatalError=function(e,t){return null===e.errorFilter||!e.errorFilter(t)},t.isAppliedFilter=function(e,t){return null===e||e(t)},t.replacePathSegmentSeparator=function(e,t){return e.split(/[\\/]/).join(t)},t.joinPathSegments=function(e,t,r){return""===e?t:e+r+t}},75504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10750);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._root=n.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}}},97835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85670),i=r(10750),o=r(75504);class s extends o.default{constructor(){super(...arguments),this._scandir=n.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(const e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{const r=this._scandir(e,this._settings.fsScandirSettings);for(const e of r)this._handleEntry(e,t)}catch(e){this._handleError(e)}}_handleError(e){if(i.isFatalError(this._settings,e))throw e}_handleEntry(e,t){const r=e.path;void 0!==t&&(e.path=i.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),i.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&i.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_pushToStorage(e){this._storage.add(e)}}t.default=s},14954:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(85670);t.default=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,1/0),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.fsScandirSettings=new i.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},8189:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const{toString:r}=Object.prototype,n=e=>t=>typeof t===e,i=e=>{const t=r.call(e).slice(8,-1);if(t)return t},o=e=>t=>i(t)===e;function s(e){switch(e){case null:return"null";case!0:case!1:return"boolean"}switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"bigint":return"bigint";case"symbol":return"symbol"}if(s.function_(e))return"Function";if(s.observable(e))return"Observable";if(s.array(e))return"Array";if(s.buffer(e))return"Buffer";const t=i(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}s.undefined=n("undefined"),s.string=n("string");const A=n("number");s.number=e=>A(e)&&!s.nan(e),s.bigint=n("bigint"),s.function_=n("function"),s.null_=e=>null===e,s.class_=e=>s.function_(e)&&e.toString().startsWith("class "),s.boolean=e=>!0===e||!1===e,s.symbol=n("symbol"),s.numericString=e=>s.string(e)&&!s.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),s.array=Array.isArray,s.buffer=e=>{var t,r,n,i;return null!==(i=null===(n=null===(r=null===(t=e)||void 0===t?void 0:t.constructor)||void 0===r?void 0:r.isBuffer)||void 0===n?void 0:n.call(r,e))&&void 0!==i&&i},s.nullOrUndefined=e=>s.null_(e)||s.undefined(e),s.object=e=>!s.null_(e)&&("object"==typeof e||s.function_(e)),s.iterable=e=>{var t;return s.function_(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},s.asyncIterable=e=>{var t;return s.function_(null===(t=e)||void 0===t?void 0:t[Symbol.asyncIterator])},s.generator=e=>s.iterable(e)&&s.function_(e.next)&&s.function_(e.throw),s.asyncGenerator=e=>s.asyncIterable(e)&&s.function_(e.next)&&s.function_(e.throw),s.nativePromise=e=>o("Promise")(e);s.promise=e=>s.nativePromise(e)||(e=>{var t,r;return s.function_(null===(t=e)||void 0===t?void 0:t.then)&&s.function_(null===(r=e)||void 0===r?void 0:r.catch)})(e),s.generatorFunction=o("GeneratorFunction"),s.asyncGeneratorFunction=e=>"AsyncGeneratorFunction"===i(e),s.asyncFunction=e=>"AsyncFunction"===i(e),s.boundFunction=e=>s.function_(e)&&!e.hasOwnProperty("prototype"),s.regExp=o("RegExp"),s.date=o("Date"),s.error=o("Error"),s.map=e=>o("Map")(e),s.set=e=>o("Set")(e),s.weakMap=e=>o("WeakMap")(e),s.weakSet=e=>o("WeakSet")(e),s.int8Array=o("Int8Array"),s.uint8Array=o("Uint8Array"),s.uint8ClampedArray=o("Uint8ClampedArray"),s.int16Array=o("Int16Array"),s.uint16Array=o("Uint16Array"),s.int32Array=o("Int32Array"),s.uint32Array=o("Uint32Array"),s.float32Array=o("Float32Array"),s.float64Array=o("Float64Array"),s.bigInt64Array=o("BigInt64Array"),s.bigUint64Array=o("BigUint64Array"),s.arrayBuffer=o("ArrayBuffer"),s.sharedArrayBuffer=o("SharedArrayBuffer"),s.dataView=o("DataView"),s.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,s.urlInstance=e=>o("URL")(e),s.urlString=e=>{if(!s.string(e))return!1;try{return new URL(e),!0}catch(e){return!1}},s.truthy=e=>Boolean(e),s.falsy=e=>!e,s.nan=e=>Number.isNaN(e);const a=new Set(["undefined","string","number","bigint","boolean","symbol"]);s.primitive=e=>s.null_(e)||a.has(typeof e),s.integer=e=>Number.isInteger(e),s.safeInteger=e=>Number.isSafeInteger(e),s.plainObject=e=>{if("Object"!==i(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.getPrototypeOf({})};const c=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"]);s.typedArray=e=>{const t=i(e);return void 0!==t&&c.has(t)};s.arrayLike=e=>!s.nullOrUndefined(e)&&!s.function_(e)&&(e=>s.safeInteger(e)&&e>=0)(e.length),s.inRange=(e,t)=>{if(s.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(s.array(t)&&2===t.length)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError("Invalid range: "+JSON.stringify(t))};const u=["innerHTML","ownerDocument","style","attributes","nodeValue"];s.domElement=e=>s.object(e)&&1===e.nodeType&&s.string(e.nodeName)&&!s.plainObject(e)&&u.every(t=>t in e),s.observable=e=>{var t,r,n,i;return!!e&&(e===(null===(r=(t=e)[Symbol.observable])||void 0===r?void 0:r.call(t))||e===(null===(i=(n=e)["@@observable"])||void 0===i?void 0:i.call(n)))},s.nodeStream=e=>s.object(e)&&s.function_(e.pipe)&&!s.observable(e),s.infinite=e=>e===1/0||e===-1/0;const l=e=>t=>s.integer(t)&&Math.abs(t%2)===e;s.evenInteger=l(0),s.oddInteger=l(1),s.emptyArray=e=>s.array(e)&&0===e.length,s.nonEmptyArray=e=>s.array(e)&&e.length>0,s.emptyString=e=>s.string(e)&&0===e.length,s.nonEmptyString=e=>s.string(e)&&e.length>0;s.emptyStringOrWhitespace=e=>s.emptyString(e)||(e=>s.string(e)&&!/\S/.test(e))(e),s.emptyObject=e=>s.object(e)&&!s.map(e)&&!s.set(e)&&0===Object.keys(e).length,s.nonEmptyObject=e=>s.object(e)&&!s.map(e)&&!s.set(e)&&Object.keys(e).length>0,s.emptySet=e=>s.set(e)&&0===e.size,s.nonEmptySet=e=>s.set(e)&&e.size>0,s.emptyMap=e=>s.map(e)&&0===e.size,s.nonEmptyMap=e=>s.map(e)&&e.size>0;const h=(e,t,r)=>{if(!s.function_(t))throw new TypeError("Invalid predicate: "+JSON.stringify(t));if(0===r.length)throw new TypeError("Invalid number of values");return e.call(r,t)};s.any=(e,...t)=>(s.array(e)?e:[e]).some(e=>h(Array.prototype.some,e,t)),s.all=(e,...t)=>h(Array.prototype.every,e,t);const g=(e,t,r)=>{if(!e)throw new TypeError(`Expected value which is \`${t}\`, received value of type \`${s(r)}\`.`)};t.assert={undefined:e=>g(s.undefined(e),"undefined",e),string:e=>g(s.string(e),"string",e),number:e=>g(s.number(e),"number",e),bigint:e=>g(s.bigint(e),"bigint",e),function_:e=>g(s.function_(e),"Function",e),null_:e=>g(s.null_(e),"null",e),class_:e=>g(s.class_(e),"Class",e),boolean:e=>g(s.boolean(e),"boolean",e),symbol:e=>g(s.symbol(e),"symbol",e),numericString:e=>g(s.numericString(e),"string with a number",e),array:e=>g(s.array(e),"Array",e),buffer:e=>g(s.buffer(e),"Buffer",e),nullOrUndefined:e=>g(s.nullOrUndefined(e),"null or undefined",e),object:e=>g(s.object(e),"Object",e),iterable:e=>g(s.iterable(e),"Iterable",e),asyncIterable:e=>g(s.asyncIterable(e),"AsyncIterable",e),generator:e=>g(s.generator(e),"Generator",e),asyncGenerator:e=>g(s.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>g(s.nativePromise(e),"native Promise",e),promise:e=>g(s.promise(e),"Promise",e),generatorFunction:e=>g(s.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>g(s.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>g(s.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>g(s.boundFunction(e),"Function",e),regExp:e=>g(s.regExp(e),"RegExp",e),date:e=>g(s.date(e),"Date",e),error:e=>g(s.error(e),"Error",e),map:e=>g(s.map(e),"Map",e),set:e=>g(s.set(e),"Set",e),weakMap:e=>g(s.weakMap(e),"WeakMap",e),weakSet:e=>g(s.weakSet(e),"WeakSet",e),int8Array:e=>g(s.int8Array(e),"Int8Array",e),uint8Array:e=>g(s.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>g(s.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>g(s.int16Array(e),"Int16Array",e),uint16Array:e=>g(s.uint16Array(e),"Uint16Array",e),int32Array:e=>g(s.int32Array(e),"Int32Array",e),uint32Array:e=>g(s.uint32Array(e),"Uint32Array",e),float32Array:e=>g(s.float32Array(e),"Float32Array",e),float64Array:e=>g(s.float64Array(e),"Float64Array",e),bigInt64Array:e=>g(s.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>g(s.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>g(s.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>g(s.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>g(s.dataView(e),"DataView",e),urlInstance:e=>g(s.urlInstance(e),"URL",e),urlString:e=>g(s.urlString(e),"string with a URL",e),truthy:e=>g(s.truthy(e),"truthy",e),falsy:e=>g(s.falsy(e),"falsy",e),nan:e=>g(s.nan(e),"NaN",e),primitive:e=>g(s.primitive(e),"primitive",e),integer:e=>g(s.integer(e),"integer",e),safeInteger:e=>g(s.safeInteger(e),"integer",e),plainObject:e=>g(s.plainObject(e),"plain object",e),typedArray:e=>g(s.typedArray(e),"TypedArray",e),arrayLike:e=>g(s.arrayLike(e),"array-like",e),domElement:e=>g(s.domElement(e),"Element",e),observable:e=>g(s.observable(e),"Observable",e),nodeStream:e=>g(s.nodeStream(e),"Node.js Stream",e),infinite:e=>g(s.infinite(e),"infinite number",e),emptyArray:e=>g(s.emptyArray(e),"empty array",e),nonEmptyArray:e=>g(s.nonEmptyArray(e),"non-empty array",e),emptyString:e=>g(s.emptyString(e),"empty string",e),nonEmptyString:e=>g(s.nonEmptyString(e),"non-empty string",e),emptyStringOrWhitespace:e=>g(s.emptyStringOrWhitespace(e),"empty string or whitespace",e),emptyObject:e=>g(s.emptyObject(e),"empty object",e),nonEmptyObject:e=>g(s.nonEmptyObject(e),"non-empty object",e),emptySet:e=>g(s.emptySet(e),"empty set",e),nonEmptySet:e=>g(s.nonEmptySet(e),"non-empty set",e),emptyMap:e=>g(s.emptyMap(e),"empty map",e),nonEmptyMap:e=>g(s.nonEmptyMap(e),"non-empty map",e),evenInteger:e=>g(s.evenInteger(e),"even integer",e),oddInteger:e=>g(s.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>g(s.directInstanceOf(e,t),"T",e),inRange:(e,t)=>g(s.inRange(e,t),"in range",e),any:(e,...t)=>g(s.any(e,...t),"predicate returns truthy for any value",t),all:(e,...t)=>g(s.all(e,...t),"predicate returns truthy for all values",t)},Object.defineProperties(s,{class:{value:s.class_},function:{value:s.function_},null:{value:s.null_}}),Object.defineProperties(t.assert,{class:{value:t.assert.class_},function:{value:t.assert.function_},null:{value:t.assert.null_}}),t.default=s,e.exports=s,e.exports.default=s,e.exports.assert=t.assert},98298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(93121),i=Number(process.versions.node.split(".")[0]),o=e=>{const t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;const r=e=>{const r=e.emit.bind(e);e.emit=(n,...i)=>("error"===n&&(t.error=Date.now(),t.phases.total=t.error-t.start,e.emit=r),r(n,...i))};r(e),e.prependOnceListener("abort",()=>{t.abort=Date.now(),(!t.response||i>=13)&&(t.phases.total=Date.now()-t.start)});const o=e=>{t.socket=Date.now(),t.phases.wait=t.socket-t.start;const r=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};e.prependOnceListener("lookup",r),n.default(e,{connect:()=>{t.connect=Date.now(),void 0===t.lookup&&(e.removeListener("lookup",r),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?o(e.socket):e.prependOnceListener("socket",o);const s=()=>{var e;t.upload=Date.now(),t.phases.request=t.upload-(null!=(e=t.secureConnect)?e:t.connect)};return("boolean"==typeof e.writableFinished?!e.writableFinished:!e.finished||0!==e.outputSize||e.socket&&0!==e.socket.writableLength)?e.prependOnceListener("finish",s):s(),e.prependOnceListener("response",e=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,e.timings=t,r(e),e.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start})}),t};t.default=o,e.exports=o,e.exports.default=o},58069:(e,t,r)=>{"use strict";l.ifExists=function(e,t,r){return l(e,t,r).catch(()=>{})};const n=r(31669),i=r(46227),o=r(85622),s=r(97369),A=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,a={createPwshFile:!0,createCmdFile:s(),fs:r(35747)},c=new Map([[".js","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function u(e){const t={...a,...e},r=t.fs;return t.fs_={chmod:r.chmod?n.promisify(r.chmod):async()=>{},stat:n.promisify(r.stat),unlink:n.promisify(r.unlink),readFile:n.promisify(r.readFile),writeFile:n.promisify(r.writeFile)},t}async function l(e,t,r){const n=u(r);await n.fs_.stat(e),await async function(e,t,r){const n=await async function(e,t){const r=await t.fs_.readFile(e,"utf8"),n=r.trim().split(/\r*\n/)[0].match(A);if(!n){const t=o.extname(e).toLowerCase();return{program:c.get(t)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}(e,r);return await function(e,t){return i(o.dirname(e),{fs:t.fs})}(t,r),function(e,t,r,n){const i=u(n),o=[{generator:g,extension:""}];i.createCmdFile&&o.push({generator:h,extension:".cmd"});i.createPwshFile&&o.push({generator:f,extension:".ps1"});return Promise.all(o.map(n=>async function(e,t,r,n,i){const o=i.preserveSymlinks?"--preserve-symlinks":"",s=[r.additionalArgs,o].filter(e=>e).join(" ");return i=Object.assign({},i,{prog:r.program,args:s}),await function(e,t){return function(e,t){return t.fs_.unlink(e).catch(()=>{})}(e,t)}(t,i),await i.fs_.writeFile(t,n(e,t,i),"utf8"),function(e,t){return function(e,t){return t.fs_.chmod(e,493)}(e,t)}(t,i)}(e,t+n.extension,r,n.generator,i)))}(e,t,n,r)}(e,t,n)}function h(e,t,r){let n=o.relative(o.dirname(t),e).split("/").join("\\");const i=o.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`;let s,A=r.prog,a=r.args||"";const c=p(r.nodePath).win32;A?(s=`"%~dp0\\${A}.exe"`,n=i):(A=i,a="",n="");let u=r.progArgs?r.progArgs.join(" ")+" ":"",l=c?`@SET NODE_PATH=${c}\r\n`:"";return l+=s?`@IF EXIST ${s} (\r\n ${s} ${a} ${n} ${u}%*\r\n) ELSE (\r\n @SETLOCAL\r\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n ${A} ${a} ${n} ${u}%*\r\n)`:`@${A} ${a} ${n} ${u}%*\r\n`,l}function g(e,t,r){let n,i=o.relative(o.dirname(t),e),s=r.prog&&r.prog.split("\\").join("/");i=i.split("\\").join("/");const A=o.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`;let a=r.args||"";const c=p(r.nodePath).posix;s?(n=`"$basedir/${r.prog}"`,i=A):(s=A,a="",i="");let u=r.progArgs?r.progArgs.join(" ")+" ":"",l="#!/bin/sh\n";l+='basedir=$(dirname "$(echo "$0" | sed -e \'s,\\\\,/,g\')")\n\ncase `uname` in\n *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\nesac\n\n';const h=r.nodePath?`export NODE_PATH="${c}"\n`:"";return l+=n?h+`if [ -x ${n} ]; then\n`+` exec ${n} ${a} ${i} ${u}"$@"\nelse \n`+` exec ${s} ${a} ${i} ${u}"$@"\nfi\n`:`${h}${s} ${a} ${i} ${u}"$@"\nexit $?\n`,l}function f(e,t,r){let n=o.relative(o.dirname(t),e);const i=r.prog&&r.prog.split("\\").join("/");let s,A=i&&`"${i}$exe"`;n=n.split("\\").join("/");const a=o.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`;let c=r.args||"",u=p(r.nodePath);const l=u.win32,h=u.posix;A?(s=`"$basedir/${r.prog}$exe"`,n=a):(A=a,c="",n="");let g=r.progArgs?r.progArgs.join(" ")+" ":"",f='#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=""\n'+(r.nodePath?`$env_node_path=$env:NODE_PATH\n$env:NODE_PATH="${l}"\n`:"")+'if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {\n # Fix case when both the Windows and Linux builds of Node\n # are installed in the same directory\n $exe=".exe"\n}';return r.nodePath&&(f=f+" else {\n"+` $env:NODE_PATH="${h}"\n}`),f+="\n",f=s?f+"$ret=0\n"+`if (Test-Path ${s}) {\n # Support pipeline input\n if ($MyInvocation.ExpectingInput) {\n`+` $input | & ${s} ${c} ${n} ${g}$args\n } else {\n`+` & ${s} ${c} ${n} ${g}$args\n }\n $ret=$LASTEXITCODE\n} else {\n # Support pipeline input\n if ($MyInvocation.ExpectingInput) {\n`+` $input | & ${A} ${c} ${n} ${g}$args\n } else {\n`+` & ${A} ${c} ${n} ${g}$args\n }\n $ret=$LASTEXITCODE\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $ret\n":f+"# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n"+` $input | & ${A} ${c} ${n} ${g}$args\n} else {\n`+` & ${A} ${c} ${n} ${g}$args\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $LASTEXITCODE\n",f}function p(e){if(!e)return{win32:"",posix:""};let t="string"==typeof e?e.split(o.delimiter):Array.from(e),r={};for(let e=0;e"/mnt/"+t.toLowerCase()):t[e];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${i}`:i,r[e]={win32:n,posix:i}}return r}e.exports=l},27589:e=>{"use strict";const t=e.exports;e.exports.default=t;const r="[",n="]",i="",o=";",s="Apple_Terminal"===process.env.TERM_PROGRAM;t.cursorTo=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");return"number"!=typeof t?r+(e+1)+"G":r+(t+1)+";"+(e+1)+"H"},t.cursorMove=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");let n="";return e<0?n+=r+-e+"D":e>0&&(n+=r+e+"C"),t<0?n+=r+-t+"A":t>0&&(n+=r+t+"B"),n},t.cursorUp=(e=1)=>r+e+"A",t.cursorDown=(e=1)=>r+e+"B",t.cursorForward=(e=1)=>r+e+"C",t.cursorBackward=(e=1)=>r+e+"D",t.cursorLeft="",t.cursorSavePosition=s?"7":"",t.cursorRestorePosition=s?"8":"",t.cursorGetPosition="",t.cursorNextLine="",t.cursorPrevLine="",t.cursorHide="[?25l",t.cursorShow="[?25h",t.eraseLines=e=>{let r="";for(let n=0;n[n,"8",o,o,t,i,e,n,"8",o,o,i].join(""),t.image=(e,t={})=>{let r=n+"1337;File=inline=1";return t.width&&(r+=";width="+t.width),t.height&&(r+=";height="+t.height),!1===t.preserveAspectRatio&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+i},t.iTerm={setCwd:(e=process.cwd())=>`${n}50;CurrentDir=${e}${i}`,annotation:(e,t={})=>{let r=n+"1337;";const o=void 0!==t.x,s=void 0!==t.y;if((o||s)&&(!o||!s||void 0===t.length))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(o?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+i}}},81337:e=>{"use strict";e.exports=({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}},18483:(e,t,r)=>{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},o=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},s=e=>e,A=(e,t,r)=>[e,t,r],a=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let c;const u=(e,t,n,i)=>{void 0===c&&(c=r(2744));const o=i?10:0,s={};for(const[r,i]of Object.entries(c)){const A="ansi16"===r?"ansi":r;r===t?s[A]=e(n,o):"object"==typeof i&&(s[A]=e(i[t],o))}return s};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,i]of Object.entries(n))t[r]={open:`[${i[0]}m`,close:`[${i[1]}m`},n[r]=t[r],e.set(i[0],i[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",a(t.color,"ansi",()=>u(n,"ansi16",s,!1)),a(t.color,"ansi256",()=>u(i,"ansi256",s,!1)),a(t.color,"ansi16m",()=>u(o,"rgb",A,!1)),a(t.bgColor,"ansi",()=>u(n,"ansi16",s,!0)),a(t.bgColor,"ansi256",()=>u(i,"ansi256",s,!0)),a(t.bgColor,"ansi16m",()=>u(o,"rgb",A,!0)),t}})},39920:e=>{"use strict";e.exports=(...e)=>[...new Set([].concat(...e))]},86792:e=>{"use strict";function t(e,t,i){e instanceof RegExp&&(e=r(e,i)),t instanceof RegExp&&(t=r(t,i));var o=n(e,t,i);return o&&{start:o[0],end:o[1],pre:i.slice(0,o[0]),body:i.slice(o[0]+e.length,o[1]),post:i.slice(o[1]+t.length)}}function r(e,t){var r=t.match(e);return r?r[0]:null}function n(e,t,r){var n,i,o,s,A,a=r.indexOf(e),c=r.indexOf(t,a+1),u=a;if(a>=0&&c>0){for(n=[],o=r.length;u>=0&&!A;)u==a?(n.push(u),a=r.indexOf(e,u+1)):1==n.length?A=[n.pop(),c]:((i=n.pop())=0?a:c;n.length&&(A=[o,s])}return A}e.exports=t,t.range=n},73975:(e,t,r)=>{"use strict";var n=r(86897).Duplex;function i(e){if(!(this instanceof i))return new i(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);n.call(this)}r(31669).inherits(i,n),i.prototype._offset=function(e){var t,r=0,n=0;if(0===e)return[0,0];for(;nthis.length||e<0)){var t=this._offset(e);return this._bufs[t[0]][t[1]]}},i.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},i.prototype.copy=function(e,t,r,n){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof n||n>this.length)&&(n=this.length),r>=this.length)return e||Buffer.alloc(0);if(n<=0)return e||Buffer.alloc(0);var i,o,s=!!e,A=this._offset(r),a=n-r,c=a,u=s&&t||0,l=A[1];if(0===r&&n==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:Buffer.concat(this._bufs,this.length);for(o=0;o(i=this._bufs[o].length-l))){this._bufs[o].copy(e,u,l,l+c);break}this._bufs[o].copy(e,u,l),u+=i,c-=i,l&&(l=0)}return e},i.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return new i;var r=this._offset(e),n=this._offset(t),o=this._bufs.slice(r[0],n[0]+1);return 0==n[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,n[1]),0!=r[1]&&(o[0]=o[0].slice(r[1])),new i(o)},i.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},i.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},i.prototype.duplicate=function(){for(var e=0,t=new i;ethis.length?this.length:t;for(var n=this._offset(t),o=n[0],s=n[1];o=e.length){var a=A.indexOf(e,s);if(-1!==a)return this._reverseOffset([o,a]);s=A.length-e.length+1}else{var c=this._reverseOffset([o,s]);if(this._match(c,e))return c;s++}}s=0}return-1},i.prototype._match=function(e,t){if(this.length-e{var n=r(36547),i=r(86792);e.exports=function(e){if(!e)return[];"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2));return function e(t,r){var o=[],s=i("{","}",t);if(!s||/\$$/.test(s.pre))return[t];var a,c=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),d=c||l,C=s.body.indexOf(",")>=0;if(!d&&!C)return s.post.match(/,.*\}/)?(t=s.pre+"{"+s.body+A+s.post,e(t)):[t];if(d)a=s.body.split(/\.\./);else{if(1===(a=function e(t){if(!t)return[""];var r=[],n=i("{","}",t);if(!n)return t.split(",");var o=n.pre,s=n.body,A=n.post,a=o.split(",");a[a.length-1]+="{"+s+"}";var c=e(A);A.length&&(a[a.length-1]+=c.shift(),a.push.apply(a,c));return r.push.apply(r,a),r}(s.body)).length)if(1===(a=e(a[0],!1).map(h)).length)return(m=s.post.length?e(s.post,!1):[""]).map((function(e){return s.pre+a[0]+e}))}var E,I=s.pre,m=s.post.length?e(s.post,!1):[""];if(d){var y=u(a[0]),w=u(a[1]),B=Math.max(a[0].length,a[1].length),Q=3==a.length?Math.abs(u(a[2])):1,v=f;w0){var x=new Array(k+1).join("0");S=b<0?"-"+x+S.slice(1):x+S}}E.push(S)}}else E=n(a,(function(t){return e(t,!1)}));for(var F=0;F=t}},12235:(e,t,r)=>{"use strict";const n=r(54900),i=r(44617),o=r(1495),s=r(425),A=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let e=A.create(n,t);Array.isArray(e)?r.push(...e):r.push(e)}else r=[].concat(A.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(r=[...new Set(r)]),r};A.parse=(e,t={})=>s(e,t),A.stringify=(e,t={})=>n("string"==typeof e?A.parse(e,t):e,t),A.compile=(e,t={})=>("string"==typeof e&&(e=A.parse(e,t)),i(e,t)),A.expand=(e,t={})=>{"string"==typeof e&&(e=A.parse(e,t));let r=o(e,t);return!0===t.noempty&&(r=r.filter(Boolean)),!0===t.nodupes&&(r=[...new Set(r)]),r},A.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?A.compile(e,t):A.expand(e,t),e.exports=A},44617:(e,t,r)=>{"use strict";const n=r(52169),i=r(4542);e.exports=(e,t={})=>{let r=(e,o={})=>{let s=i.isInvalidBrace(o),A=!0===e.invalid&&!0===t.escapeInvalid,a=!0===s||!0===A,c=!0===t.escapeInvalid?"\\":"",u="";if(!0===e.isOpen)return c+e.value;if(!0===e.isClose)return c+e.value;if("open"===e.type)return a?c+e.value:"(";if("close"===e.type)return a?c+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":a?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){let r=i.reduce(e.nodes),o=n(...r,{...t,wrap:!1,toRegex:!0});if(0!==o.length)return r.length>1&&o.length>1?`(${o})`:o}if(e.nodes)for(let t of e.nodes)u+=r(t,e);return u};return r(e)}},5384:e=>{"use strict";e.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},1495:(e,t,r)=>{"use strict";const n=r(52169),i=r(54900),o=r(4542),s=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return r?o.flatten(t).map(e=>`{${e}}`):t;for(let i of e)if(Array.isArray(i))for(let e of i)n.push(s(e,t,r));else for(let e of t)!0===r&&"string"==typeof e&&(e=`{${e}}`),n.push(Array.isArray(e)?s(i,e,r):i+e);return o.flatten(n)};e.exports=(e,t={})=>{let r=void 0===t.rangeLimit?1e3:t.rangeLimit,A=(e,a={})=>{e.queue=[];let c=a,u=a.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)c=c.parent,u=c.queue;if(e.invalid||e.dollar)return void u.push(s(u.pop(),i(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void u.push(s(u.pop(),["{}"]));if(e.nodes&&e.ranges>0){let A=o.reduce(e.nodes);if(o.exceedsLimit(...A,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let a=n(...A,t);return 0===a.length&&(a=i(e,t)),u.push(s(u.pop(),a)),void(e.nodes=[])}let l=o.encloseBrace(e),h=e.queue,g=e;for(;"brace"!==g.type&&"root"!==g.type&&g.parent;)g=g.parent,h=g.queue;for(let t=0;t{"use strict";const n=r(54900),{MAX_LENGTH:i,CHAR_BACKSLASH:o,CHAR_BACKTICK:s,CHAR_COMMA:A,CHAR_DOT:a,CHAR_LEFT_PARENTHESES:c,CHAR_RIGHT_PARENTHESES:u,CHAR_LEFT_CURLY_BRACE:l,CHAR_RIGHT_CURLY_BRACE:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_RIGHT_SQUARE_BRACKET:f,CHAR_DOUBLE_QUOTE:p,CHAR_SINGLE_QUOTE:d,CHAR_NO_BREAK_SPACE:C,CHAR_ZERO_WIDTH_NOBREAK_SPACE:E}=r(5384);e.exports=(e,t={})=>{if("string"!=typeof e)throw new TypeError("Expected a string");let r=t||{},I="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;if(e.length>I)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${I})`);let m,y={type:"root",input:e,nodes:[]},w=[y],B=y,Q=y,v=0,D=e.length,b=0,S=0;const k=()=>e[b++],x=e=>{if("text"===e.type&&"dot"===Q.type&&(Q.type="text"),!Q||"text"!==Q.type||"text"!==e.type)return B.nodes.push(e),e.parent=B,e.prev=Q,Q=e,e;Q.value+=e.value};for(x({type:"bos"});b0){if(B.ranges>0){B.ranges=0;let e=B.nodes.shift();B.nodes=[e,{type:"text",value:n(B)}]}x({type:"comma",value:m}),B.commas++}else if(m===a&&S>0&&0===B.commas){let e=B.nodes;if(0===S||0===e.length){x({type:"text",value:m});continue}if("dot"===Q.type){if(B.range=[],Q.value+=m,Q.type="range",3!==B.nodes.length&&5!==B.nodes.length){B.invalid=!0,B.ranges=0,Q.type="text";continue}B.ranges++,B.args=[];continue}if("range"===Q.type){e.pop();let t=e[e.length-1];t.value+=Q.value+m,Q=t,B.ranges--;continue}x({type:"dot",value:m})}else x({type:"text",value:m});else{if("brace"!==B.type){x({type:"text",value:m});continue}let e="close";B=w.pop(),B.close=!0,x({type:e,value:m}),S--,B=w[w.length-1]}else{S++;let e=Q.value&&"$"===Q.value.slice(-1)||!0===B.dollar;B=x({type:"brace",open:!0,close:!1,dollar:e,depth:S,commas:0,ranges:0,nodes:[]}),w.push(B),x({type:"open",value:m})}else{let e,r=m;for(!0!==t.keepQuotes&&(m="");b{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});let e=w[w.length-1],t=e.nodes.indexOf(B);e.nodes.splice(t,1,...B.nodes)}}while(w.length>0);return x({type:"eos"}),y}},54900:(e,t,r)=>{"use strict";const n=r(4542);e.exports=(e,t={})=>{let r=(e,i={})=>{let o=t.escapeInvalid&&n.isInvalidBrace(i),s=!0===e.invalid&&!0===t.escapeInvalid,A="";if(e.value)return(o||s)&&n.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(let t of e.nodes)A+=r(t);return A};return r(e)}},4542:(e,t)=>{"use strict";t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,r,n=1,i)=>!1!==i&&(!(!t.isInteger(e)||!t.isInteger(r))&&(Number(r)-Number(e))/Number(n)>=i),t.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||"open"===n.type||"close"===n.type)&&!0!==n.escaped&&(n.value="\\"+n.value,n.escaped=!0)},t.encloseBrace=e=>"brace"===e.type&&(e.commas>>0+e.ranges>>0==0&&(e.invalid=!0,!0)),t.isInvalidBrace=e=>"brace"===e.type&&(!(!0!==e.invalid&&!e.dollar)||(e.commas>>0+e.ranges>>0==0||!0!==e.open||!0!==e.close)&&(e.invalid=!0,!0)),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||(!0===e.open||!0===e.close),t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],r=e=>{for(let n=0;n{"use strict";const n=r(85622),{watch:i}=r(35747),{readFile:o}=r(35747).promises,{isIP:s}=r(11631),A="win32"===process.platform?n.join(process.env.SystemDrive,"Windows\\System32\\drivers\\etc\\hosts"):"/etc/hosts",a=/^(?:(?:[a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])\.)*(?:[A-Za-z\d]|[A-Za-z\d][A-Za-z\d-]*[A-Za-z\d])$/,c=e=>a.test(e),u={encoding:"utf8"},l=/\s+/g;class h{constructor({watching:e,customHostsPath:t=A}){this._hostsPath=t,this._error=null,this._watcher=null,this._watching=e,this._hosts={},this._init()}_init(){"string"==typeof this._hostsPath&&(this._promise=(async()=>{await this._update(),this._promise=null,this._error||this._watching&&(this._watcher=i(this._hostsPath,{persistent:!1},e=>{"change"===e?this._update():this._watcher.close()}),this._watcher.once("error",e=>{this._error=e,this._hosts={}}),this._watcher.once("close",()=>{this._init()}))})())}async _update(){try{let e=await o(this._hostsPath,u);e=e.split("\n"),this._hosts={};for(let t of e){t=t.replace(l," ").trim();const e=t.split(" "),r=s(e[0]);if(!r)continue;const n=e.shift();for(const t of e){if(!c(t))break;if(this._hosts[t]){let e=!1;for(const n of this._hosts[t])if(n.family===r){e=!0;break}if(e)continue}else this._hosts[t]=[],this._hosts[t].expires=1/0;this._hosts[t].push({address:n,family:r,expires:1/0,ttl:1/0})}}}catch(e){this._hosts={},this._error=e}}async get(e){if(this._promise&&await this._promise,this._error)throw this._error;return this._hosts[e]}}const g={};h.getResolver=({customHostsPath:e,watching:t})=>{void 0!==e&&"string"!=typeof e&&(e=!1);const r=`${e}:${t=Boolean(t)}`;let n=g[r];return n||(n=new h({customHostsPath:e,watching:t}),g[r]=n,n)},e.exports=h},43261:(e,t,r)=>{"use strict";const{V4MAPPED:n,ADDRCONFIG:i,promises:{Resolver:o},lookup:s}=r(40881),{promisify:A}=r(31669),a=r(12087),{getResolver:c}=r(76438),u=Symbol("cacheableLookupCreateConnection"),l=Symbol("cacheableLookupInstance"),h=e=>{if(!e||"function"!=typeof e.createConnection)throw new Error("Expected an Agent instance as the first argument")},g=()=>{let e=!1,t=!1;for(const r of Object.values(a.networkInterfaces()))for(const n of r)if(!n.internal&&("IPv6"===n.family?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},f={ttl:!0};class p{constructor({customHostsPath:e,watchingHostsFile:t=!1,cache:r=new Map,maxTtl:n=1/0,resolver:i=new o,fallbackTtl:a=1,errorTtl:u=.15}={}){this.maxTtl=n,this.fallbackTtl=a,this.errorTtl=u,this._cache=r,this._resolver=i,this._lookup=A(s),this._resolver instanceof o?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=A(this._resolver.resolve4.bind(this._resolver)),this._resolve6=A(this._resolver.resolve6.bind(this._resolver))),this._iface=g(),this._hostsResolver=c({customHostsPath:e,watching:t}),this._pending={},this._nextRemovalTime=!1,this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.updateInterfaceInfo(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,r){if("function"==typeof t?(r=t,t={}):"number"==typeof t&&(t={family:t}),!r)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(e=>{t.all?r(null,e):r(null,e.address,e.family,e.expires,e.ttl)},r)}async lookupAsync(e,t={}){"number"==typeof t&&(t={family:t});let r=await this.query(e);if(6===t.family){const e=r.filter(e=>6===e.family);0===e.length&&t.hints&n?(e=>{for(const t of e)t.address="::ffff:"+t.address,t.family=6})(r):r=e}else 4===t.family&&(r=r.filter(e=>4===e.family));if(t.hints&i){const{_iface:e}=this;r=r.filter(t=>6===t.family?e.has6:e.has4)}if(0===r.length){const t=new Error("ENOTFOUND "+e);throw t.code="ENOTFOUND",t.hostname=e,t}return t.all?r:1===r.length?r[0]:this._getEntry(r,e)}async query(e){let t=await this._hostsResolver.get(e)||await this._cache.get(e);if(!t){const r=this._pending[e];if(r)t=await r;else{const r=this.queryAndCache(e);this._pending[e]=r,t=await r}}return t=t.map(e=>({...e})),t}async queryAndCache(e){const[t,r]=await Promise.all([this._resolve4(e,f).catch(()=>[]),this._resolve6(e,f).catch(()=>[])]);let n=0;if(t)for(const e of t)e.family=4,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);if(r)for(const e of r)e.family=6,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);let i=[...t||[],...r||[]];if(0===i.length)try{i=await this._lookup(e,{all:!0});for(const e of i)e.ttl=this.fallbackTtl,e.expires=Date.now()+1e3*e.ttl;n=1e3*this.fallbackTtl}catch(t){throw delete this._pending[e],"ENOTFOUND"===t.code&&(n=1e3*this.errorTtl,i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),t}else n=1e3*Math.min(this.maxTtl,n);return this.maxTtl>0&&n>0&&(i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),delete this._pending[e],i}_getEntry(e,t){return e[0]}tick(){}_tick(e){if(!(this._cache instanceof Map)||void 0===e)return;const t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let e=1/0;const t=Date.now();for(const[r,{expires:n}]of this._cache)t>=n?this._cache.delete(r):n("lookup"in t||(t.lookup=this.lookup),e[u](t,r))}uninstall(e){if(h(e),e[u]){if(e[l]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[u],delete e[u],delete e[l]}}updateInterfaceInfo(){this._iface=g(),this._cache.clear()}clear(e){e?this._cache.delete(e):this._cache.clear()}}e.exports=p,e.exports.default=p},11200:(e,t,r)=>{"use strict";const n=r(28614),i=r(78835),o=r(19793),s=r(58764),A=r(86834),a=r(48491),c=r(55737),u=r(15751),l=r(72515);class h{constructor(e,t){if("function"!=typeof e)throw new TypeError("Parameter `request` must be a function");return this.cache=new l({uri:"string"==typeof t&&t,store:"string"!=typeof t&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,r)=>{let l;if("string"==typeof t)l=f(i.parse(t)),t={};else if(t instanceof i.URL)l=f(i.parse(t.toString())),t={};else{const[e,...r]=(t.path||"").split("?"),n=r.length>0?"?"+r.join("?"):"";l=f({...t,pathname:e,search:n})}(t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...g(l)}).headers=c(t.headers);const p=new n,d=o(i.format(l),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),C=`${t.method}:${d}`;let E=!1,I=!1;const m=t=>{I=!0;let n,i=!1;const o=new Promise(e=>{n=()=>{i||(i=!0,e())}}),c=e=>{if(E&&!t.forceRefresh){e.status=e.statusCode;const r=A.fromObject(E.cachePolicy).revalidatedPolicy(t,e);if(!r.modified){const t=r.policy.responseHeaders();(e=new a(E.statusCode,t,E.body,E.url)).cachePolicy=r.policy,e.fromCache=!0}}let n;e.fromCache||(e.cachePolicy=new A(t,e,t),e.fromCache=!1),t.cache&&e.cachePolicy.storable()?(n=u(e),(async()=>{try{const r=s.buffer(e);if(await Promise.race([o,new Promise(t=>e.once("end",t))]),i)return;const n=await r,A={cachePolicy:e.cachePolicy.toObject(),url:e.url,statusCode:e.fromCache?E.statusCode:e.statusCode,body:n};let a=t.strictTtl?e.cachePolicy.timeToLive():void 0;t.maxTtl&&(a=a?Math.min(a,t.maxTtl):t.maxTtl),await this.cache.set(C,A,a)}catch(e){p.emit("error",new h.CacheError(e))}})()):t.cache&&E&&(async()=>{try{await this.cache.delete(C)}catch(e){p.emit("error",new h.CacheError(e))}})(),p.emit("response",n||e),"function"==typeof r&&r(n||e)};try{const r=e(t,c);r.once("error",n),r.once("abort",n),p.emit("request",r)}catch(e){p.emit("error",new h.RequestError(e))}};return(async()=>{const e=async e=>{await Promise.resolve();const t=e.cache?await this.cache.get(C):void 0;if(void 0===t)return m(e);const n=A.fromObject(t.cachePolicy);if(n.satisfiesWithoutRevalidation(e)&&!e.forceRefresh){const e=n.responseHeaders(),i=new a(t.statusCode,e,t.body,t.url);i.cachePolicy=n,i.fromCache=!0,p.emit("response",i),"function"==typeof r&&r(i)}else E=t,e.headers=n.revalidationHeaders(e),m(e)},n=e=>p.emit("error",new h.CacheError(e));this.cache.once("error",n),p.on("response",()=>this.cache.removeListener("error",n));try{await e(t)}catch(e){t.automaticFailover&&!I&&m(t),p.emit("error",new h.CacheError(e))}})(),p}}}function g(e){const t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function f(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}h.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}},h.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}},e.exports=h},54738:e=>{"use strict";const t=(e,t)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);if(0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)return"";if(1===e.length)return t.pascalCase?e.toUpperCase():e.toLowerCase();return e!==e.toLowerCase()&&(e=(e=>{let t=!1,r=!1,n=!1;for(let i=0;it.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase()),r=e,t.pascalCase?r.charAt(0).toUpperCase()+r.slice(1):r;var r};e.exports=t,e.exports.default=t},95882:(e,t,r)=>{"use strict";const n=r(18483),{stdout:i,stderr:o}=r(59428),{stringReplaceAll:s,stringEncaseCRLFWithFirstIndex:A}=r(73327),a=["ansi","ansi","ansi256","ansi16m"],c=Object.create(null);class u{constructor(e){return l(e)}}const l=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const r=i?i.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>I(t.template,...e),Object.setPrototypeOf(t,h.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=u,t.template};function h(e){return l(e)}for(const[e,t]of Object.entries(n))c[e]={get(){const r=d(this,p(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};c.visible={get(){const e=d(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const g=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of g)c[e]={get(){const{level:t}=this;return function(...r){const i=p(n.color[a[t]][e](...r),n.color.close,this._styler);return d(this,i,this._isEmpty)}}};for(const e of g){c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const i=p(n.bgColor[a[t]][e](...r),n.bgColor.close,this._styler);return d(this,i,this._isEmpty)}}}}const f=Object.defineProperties(()=>{},{...c,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),p=(e,t,r)=>{let n,i;return void 0===r?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},d=(e,t,r)=>{const n=(...e)=>C(n,1===e.length?""+e[0]:e.join(" "));return n.__proto__=f,n._generator=e,n._styler=t,n._isEmpty=r,n},C=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:i}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=s(t,r.close,r.open),r=r.parent;const o=t.indexOf("\n");return-1!==o&&(t=A(t,i,n,o)),n+t+i};let E;const I=(e,...t)=>{const[n]=t;if(!Array.isArray(n))return t.join(" ");const i=t.slice(1),o=[n.raw[0]];for(let e=1;e{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function s(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function A(e,t){const r=[],o=t.trim().split(/\s*,\s*/g);let A;for(const t of o){const o=Number(t);if(Number.isNaN(o)){if(!(A=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(A[2].replace(i,(e,t,r)=>t?s(t):r))}else r.push(o)}return r}function a(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=A(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function c(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error("Unknown Chalk style: "+e);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],i=[];let o=[];if(r.replace(t,(t,r,A,u,l,h)=>{if(r)o.push(s(r));else if(u){const t=o.join("");o=[],i.push(0===n.length?t:c(e,n)(t)),n.push({inverse:A,styles:a(u)})}else if(l){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");i.push(c(e,n)(o.join(""))),o=[],n.pop()}else o.push(h)}),i.push(o.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},73327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const i=t.length;let o=0,s="";do{s+=e.substr(o,n-o)+t+r,o=n+i,n=e.indexOf(t,o)}while(-1!==n);return s+=e.substr(o),s},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let i=0,o="";do{const s="\r"===e[n-1];o+=e.substr(i,(s?n-1:n)-i)+t+(s?"\r\n":"\n")+r,i=n+1,n=e.indexOf("\n",i)}while(-1!==n);return o+=e.substr(i),o}}},31059:(e,t,r)=>{var n=r(31669),i=r(24250);function o(){}o.prototype.match=function(e){var t,r,n,o,s=0,A=0,a=0,c=e.fInputBytes,u=e.fInputLen;e:for(t=0;t{var n=r(31669),i=r(24250);function o(){this.charValue=0,this.index=0,this.nextIndex=0,this.error=!1,this.done=!1,this.reset=function(){this.charValue=0,this.index=-1,this.nextIndex=0,this.error=!1,this.done=!1},this.nextByte=function(e){return this.nextIndex>=e.fRawLength?(this.done=!0,-1):255&e.fRawInput[this.nextIndex++]}}function s(){}function A(e,t){e.index=e.nextIndex,e.error=!1;var r=0,n=0,i=0;return(r=e.charValue=e.nextByte(t))<0?e.done=!0:r<=141||(n=e.nextByte(t),e.charValue=e.charValue<<8|n,r>=161&&r<=254?n<161&&(e.error=!0):142!=r?143==r&&(i=e.nextByte(t),e.charValue=e.charValue<<8|i,i<161&&(e.error=!0)):n<161&&(e.error=!0)),0==e.done}s.prototype.match=function(e){var t,r=0,n=0,s=0,A=0,a=0,c=new o;e:{for(c.reset();this.nextChar(c,e);){if(A++,c.error)s++;else{var u=4294967295&c.charValue;u<=255?0:(r++,null!=this.commonChars&&function e(t,r,n,i){if(i>>1);return r>t[o]?e(t,r,o+1,i):r=0&&n++)}if(s>=2&&5*s>=r)break e}if(r<=10&&0==s)a=0==r&&A<10?0:10;else if(r<20*s)a=0;else if(null==this.commonChars)(a=30+r-20*s)>100&&(a=100);else{var l=90/Math.log(parseFloat(r)/4);a=Math.floor(Math.log(n+1)*l+10),a=Math.min(a,100)}}return 0==a?null:new i(e,this,a)},s.prototype.nextChar=function(e,t){},e.exports.sjis=function(){this.name=function(){return"Shift-JIS"},this.language=function(){return"ja"},this.commonChars=[33088,33089,33090,33093,33115,33129,33130,33141,33142,33440,33442,33444,33449,33450,33451,33453,33455,33457,33459,33461,33463,33469,33470,33473,33476,33477,33478,33480,33481,33484,33485,33500,33504,33511,33512,33513,33514,33520,33521,33601,33603,33614,33615,33624,33630,33634,33639,33653,33654,33673,33674,33675,33677,33683,36502,37882,38314],this.nextChar=function(e,t){var r;if(e.index=e.nextIndex,e.error=!1,(r=e.charValue=e.nextByte(t))<0)return!1;if(r<=127||r>160&&r<=223)return!0;var n=e.nextByte(t);return!(n<0)&&(e.charValue=r<<8|n,n>=64&&n<=127||n>=128&&n<=255||(e.error=!0),!0)}},n.inherits(e.exports.sjis,s),e.exports.big5=function(){this.name=function(){return"Big5"},this.language=function(){return"zh"},this.commonChars=[41280,41281,41282,41283,41287,41289,41333,41334,42048,42054,42055,42056,42065,42068,42071,42084,42090,42092,42103,42147,42148,42151,42177,42190,42193,42207,42216,42237,42304,42312,42328,42345,42445,42471,42583,42593,42594,42600,42608,42664,42675,42681,42707,42715,42726,42738,42816,42833,42841,42970,43171,43173,43181,43217,43219,43236,43260,43456,43474,43507,43627,43706,43710,43724,43772,44103,44111,44208,44242,44377,44745,45024,45290,45423,45747,45764,45935,46156,46158,46412,46501,46525,46544,46552,46705,47085,47207,47428,47832,47940,48033,48593,49860,50105,50240,50271],this.nextChar=function(e,t){e.index=e.nextIndex,e.error=!1;var r=e.charValue=e.nextByte(t);if(r<0)return!1;if(r<=127||255==r)return!0;var n=e.nextByte(t);return!(n<0)&&(e.charValue=e.charValue<<8|n,(n<64||127==n||255==n)&&(e.error=!0),!0)}},n.inherits(e.exports.big5,s),e.exports.euc_jp=function(){this.name=function(){return"EUC-JP"},this.language=function(){return"ja"},this.commonChars=[41377,41378,41379,41382,41404,41418,41419,41430,41431,42146,42148,42150,42152,42154,42155,42156,42157,42159,42161,42163,42165,42167,42169,42171,42173,42175,42176,42177,42179,42180,42182,42183,42184,42185,42186,42187,42190,42191,42192,42206,42207,42209,42210,42212,42216,42217,42218,42219,42220,42223,42226,42227,42402,42403,42404,42406,42407,42410,42413,42415,42416,42419,42421,42423,42424,42425,42431,42435,42438,42439,42440,42441,42443,42448,42453,42454,42455,42462,42464,42465,42469,42473,42474,42475,42476,42477,42483,47273,47572,47854,48072,48880,49079,50410,50940,51133,51896,51955,52188,52689],this.nextChar=A},n.inherits(e.exports.euc_jp,s),e.exports.euc_kr=function(){this.name=function(){return"EUC-KR"},this.language=function(){return"ko"},this.commonChars=[45217,45235,45253,45261,45268,45286,45293,45304,45306,45308,45496,45497,45511,45527,45538,45994,46011,46274,46287,46297,46315,46501,46517,46527,46535,46569,46835,47023,47042,47054,47270,47278,47286,47288,47291,47337,47531,47534,47564,47566,47613,47800,47822,47824,47857,48103,48115,48125,48301,48314,48338,48374,48570,48576,48579,48581,48838,48840,48863,48878,48888,48890,49057,49065,49088,49124,49131,49132,49144,49319,49327,49336,49338,49339,49341,49351,49356,49358,49359,49366,49370,49381,49403,49404,49572,49574,49590,49622,49631,49654,49656,50337,50637,50862,51151,51153,51154,51160,51173,51373],this.nextChar=A},n.inherits(e.exports.euc_kr,s),e.exports.gb_18030=function(){this.name=function(){return"GB18030"},this.language=function(){return"zh"},this.nextChar=function(e,t){e.index=e.nextIndex,e.error=!1;var r=0,n=0,i=0,o=0;e:if((r=e.charValue=e.nextByte(t))<0)e.done=!0;else if(!(r<=128))if(n=e.nextByte(t),e.charValue=e.charValue<<8|n,r>=129&&r<=254){if(n>=64&&n<=126||n>=80&&n<=254)break e;if(n>=48&&n<=57&&(i=e.nextByte(t))>=129&&i<=254&&(o=e.nextByte(t))>=48&&o<=57){e.charValue=e.charValue<<16|i<<8|o;break e}e.error=!0}else;return 0==e.done},this.commonChars=[41377,41378,41379,41380,41392,41393,41457,41459,41889,41900,41914,45480,45496,45502,45755,46025,46070,46323,46525,46532,46563,46767,46804,46816,47010,47016,47037,47062,47069,47284,47327,47350,47531,47561,47576,47610,47613,47821,48039,48086,48097,48122,48316,48347,48382,48588,48845,48861,49076,49094,49097,49332,49389,49611,49883,50119,50396,50410,50636,50935,51192,51371,51403,51413,51431,51663,51706,51889,51893,51911,51920,51926,51957,51965,52460,52728,52906,52932,52946,52965,53173,53186,53206,53442,53445,53456,53460,53671,53930,53938,53941,53947,53972,54211,54224,54269,54466,54490,54754,54992]},n.inherits(e.exports.gb_18030,s)},71216:(e,t,r)=>{var n=r(31669),i=r(24250);function o(e,t){this.byteIndex=0,this.ngram=0,this.ngramList=e,this.byteMap=t,this.ngramCount=0,this.hitCount=0,this.spaceChar,this.search=function(e,t){var r=0;return e[r+32]<=t&&(r+=32),e[r+16]<=t&&(r+=16),e[r+8]<=t&&(r+=8),e[r+4]<=t&&(r+=4),e[r+2]<=t&&(r+=2),e[r+1]<=t&&(r+=1),e[r]>t&&(r-=1),r<0||e[r]!=t?-1:r},this.lookup=function(e){this.ngramCount+=1,this.search(this.ngramList,e)>=0&&(this.hitCount+=1)},this.addByte=function(e){this.ngram=(this.ngram<<8)+(255&e)&16777215,this.lookup(this.ngram)},this.nextByte=function(e){return this.byteIndex>=e.fInputLen?-1:255&e.fInputBytes[this.byteIndex++]},this.parse=function(e,t){var r,n=!1;for(this.spaceChar=t;(r=this.nextByte(e))>=0;){var i=this.byteMap[r];0!=i&&(i==this.spaceChar&&n||this.addByte(i),n=i==this.spaceChar)}this.addByte(this.spaceChar);var o=this.hitCount/this.ngramCount;return o>.33?98:Math.floor(300*o)}}function s(e,t){this.fLang=e,this.fNGrams=t}function A(){}A.prototype.spaceChar=32,A.prototype.ngrams=function(){},A.prototype.byteMap=function(){},A.prototype.match=function(e){var t=this.ngrams();if(!(Array.isArray(t)&&t[0]instanceof s))return(a=new o(t,this.byteMap()).parse(e,this.spaceChar))<=0?null:new i(e,this,a);for(var r=-1,n=null,A=t.length-1;A>=0;A--){var a,c=t[A];(a=new o(c.fNGrams,this.byteMap()).parse(e,this.spaceChar))>r&&(r=a,n=c.fLang)}var u=this.name(e);return r<=0?null:new i(e,this,r,u,n)},e.exports.ISO_8859_1=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,186,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[new s("da",[2122086,2122100,2122853,2123118,2123122,2123375,2123873,2124064,2125157,2125671,2126053,2126697,2126708,2126953,2127465,6383136,6385184,6385252,6386208,6386720,6579488,6579566,6579570,6579572,6627443,6644768,6644837,6647328,6647396,6648352,6648421,6648608,6648864,6713202,6776096,6776174,6776178,6907749,6908960,6909543,7038240,7039845,7103858,7104871,7105637,7169380,7234661,7234848,7235360,7235429,7300896,7302432,7303712,7398688,7479396,7479397,7479411,7496992,7566437,7610483,7628064,7628146,7629164,7759218]),new s("de",[2122094,2122101,2122341,2122849,2122853,2122857,2123113,2123621,2123873,2124142,2125161,2126691,2126693,2127214,2127461,2127471,2127717,2128501,6448498,6514720,6514789,6514804,6578547,6579566,6579570,6580581,6627428,6627443,6646126,6646132,6647328,6648352,6648608,6776174,6841710,6845472,6906728,6907168,6909472,6909541,6911008,7104867,7105637,7217249,7217252,7217267,7234592,7234661,7234848,7235360,7235429,7238757,7479396,7496805,7497065,7562088,7566437,7610468,7628064,7628142,7628146,7695972,7695975,7759218]),new s("en",[2122016,2122094,2122341,2122607,2123375,2123873,2123877,2124142,2125153,2125670,2125938,2126437,2126689,2126708,2126952,2126959,2127720,6383972,6384672,6385184,6385252,6386464,6386720,6386789,6386793,6561889,6561908,6627425,6627443,6627444,6644768,6647412,6648352,6648608,6713202,6840692,6841632,6841714,6906912,6909472,6909543,6909806,6910752,7217249,7217268,7234592,7235360,7238688,7300640,7302688,7303712,7496992,7500576,7544929,7544948,7561577,7566368,7610484,7628146,7628897,7628901,7629167,7630624,7631648]),new s("es",[2122016,2122593,2122607,2122853,2123116,2123118,2123123,2124142,2124897,2124911,2125921,2125935,2125938,2126197,2126437,2126693,2127214,2128160,6365283,6365284,6365285,6365292,6365296,6382441,6382703,6384672,6386208,6386464,6515187,6516590,6579488,6579564,6582048,6627428,6627429,6627436,6646816,6647328,6647412,6648608,6648692,6907246,6943598,7102752,7106419,7217253,7238757,7282788,7282789,7302688,7303712,7303968,7364978,7435621,7495968,7497075,7544932,7544933,7544944,7562528,7628064,7630624,7693600,15953440]),new s("fr",[2122101,2122607,2122849,2122853,2122869,2123118,2123124,2124897,2124901,2125921,2125935,2125938,2126197,2126693,2126703,2127214,2154528,6385268,6386793,6513952,6516590,6579488,6579571,6583584,6627425,6627427,6627428,6627429,6627436,6627440,6627443,6647328,6647412,6648352,6648608,6648864,6649202,6909806,6910752,6911008,7102752,7103776,7103859,7169390,7217252,7234848,7238432,7238688,7302688,7302772,7304562,7435621,7479404,7496992,7544929,7544932,7544933,7544940,7544944,7610468,7628064,7629167,7693600,7696928]),new s("it",[2122092,2122600,2122607,2122853,2122857,2123040,2124140,2124142,2124897,2125925,2125938,2127214,6365283,6365284,6365296,6365299,6386799,6514789,6516590,6579564,6580512,6627425,6627427,6627428,6627433,6627436,6627440,6627443,6646816,6646892,6647412,6648352,6841632,6889569,6889571,6889572,6889587,6906144,6908960,6909472,6909806,7102752,7103776,7104800,7105633,7234848,7235872,7237408,7238757,7282785,7282788,7282793,7282803,7302688,7302757,7366002,7495968,7496992,7563552,7627040,7628064,7629088,7630624,8022383]),new s("nl",[2122092,2122341,2122849,2122853,2122857,2123109,2123118,2123621,2123877,2124142,2125153,2125157,2125680,2126949,2127457,2127461,2127471,2127717,2128489,6381934,6381938,6385184,6385252,6386208,6386720,6514804,6579488,6579566,6579570,6627426,6627446,6645102,6645106,6647328,6648352,6648435,6648864,6776174,6841716,6907168,6909472,6909543,6910752,7217250,7217252,7217253,7217256,7217263,7217270,7234661,7235360,7302756,7303026,7303200,7303712,7562088,7566437,7610468,7628064,7628142,7628146,7758190,7759218,7761775]),new s("no",[2122100,2122102,2122853,2123118,2123122,2123375,2123873,2124064,2125157,2125671,2126053,2126693,2126699,2126703,2126708,2126953,2127465,2155808,6385252,6386208,6386720,6579488,6579566,6579572,6627443,6644768,6647328,6647397,6648352,6648421,6648864,6648948,6713202,6776174,6908779,6908960,6909543,7038240,7039845,7103776,7105637,7169380,7169390,7217267,7234848,7235360,7235429,7237221,7300896,7302432,7303712,7398688,7479411,7496992,7565165,7566437,7610483,7628064,7628142,7628146,7629164,7631904,7631973,7759218]),new s("pt",[2122016,2122607,2122849,2122853,2122863,2123040,2123123,2125153,2125423,2125600,2125921,2125935,2125938,2126197,2126437,2126693,2127213,6365281,6365283,6365284,6365296,6382693,6382703,6384672,6386208,6386273,6386464,6516589,6516590,6578464,6579488,6582048,6582131,6627425,6627428,6647072,6647412,6648608,6648692,6906144,6906721,7169390,7238757,7238767,7282785,7282787,7282788,7282789,7282800,7303968,7364978,7435621,7495968,7497075,7544929,7544932,7544933,7544944,7566433,7628064,7630624,7693600,14905120,15197039]),new s("sv",[2122100,2122102,2122853,2123118,2123510,2123873,2124064,2124142,2124655,2125157,2125667,2126053,2126699,2126703,2126708,2126953,2127457,2127465,2155634,6382693,6385184,6385252,6386208,6386804,6514720,6579488,6579566,6579570,6579572,6644768,6647328,6648352,6648864,6747762,6776174,6909036,6909543,7037216,7105568,7169380,7217267,7233824,7234661,7235360,7235429,7235950,7299944,7302432,7302688,7398688,7479393,7479411,7495968,7564129,7565165,7610483,7627040,7628064,7628146,7629164,7631904,7758194,14971424,16151072])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1252":"ISO-8859-1"}},n.inherits(e.exports.ISO_8859_1,A),e.exports.ISO_8859_2=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,177,32,179,32,181,182,32,32,185,186,187,188,32,190,191,32,177,32,179,32,181,182,183,32,185,186,187,188,32,190,191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,32]},this.ngrams=function(){return[new s("cs",[2122016,2122361,2122863,2124389,2125409,2125413,2125600,2125668,2125935,2125938,2126072,2126447,2126693,2126703,2126708,2126959,2127392,2127481,2128481,6365296,6513952,6514720,6627440,6627443,6627446,6647072,6647533,6844192,6844260,6910836,6972704,7042149,7103776,7104800,7233824,7268640,7269408,7269664,7282800,7300206,7301737,7304052,7304480,7304801,7368548,7368554,7369327,7403621,7562528,7565173,7566433,7566441,7566446,7628146,7630573,7630624,7676016,12477728,14773997,15296623,15540336,15540339,15559968,16278884]),new s("hu",[2122016,2122106,2122341,2123111,2123116,2123365,2123873,2123887,2124147,2124645,2124649,2124790,2124901,2125153,2125157,2125161,2125413,2126714,2126949,2156915,6365281,6365291,6365293,6365299,6384416,6385184,6388256,6447470,6448494,6645625,6646560,6646816,6646885,6647072,6647328,6648421,6648864,6648933,6648948,6781216,6844263,6909556,6910752,7020641,7075450,7169383,7170414,7217249,7233899,7234923,7234925,7238688,7300985,7544929,7567973,7567988,7568097,7596391,7610465,7631904,7659891,8021362,14773792,15299360]),new s("pl",[2122618,2122863,2124064,2124389,2124655,2125153,2125161,2125409,2125417,2125668,2125935,2125938,2126697,2127648,2127721,2127737,2128416,2128481,6365296,6365303,6385257,6514720,6519397,6519417,6582048,6584937,6627440,6627443,6627447,6627450,6645615,6646304,6647072,6647401,6778656,6906144,6907168,6907242,7037216,7039264,7039333,7170405,7233824,7235937,7235941,7282800,7305057,7305065,7368556,7369313,7369327,7369338,7502437,7502457,7563754,7564137,7566433,7825765,7955304,7957792,8021280,8022373,8026400,15955744]),new s("ro",[2122016,2122083,2122593,2122597,2122607,2122613,2122853,2122857,2124897,2125153,2125925,2125938,2126693,2126819,2127214,2144873,2158190,6365283,6365284,6386277,6386720,6386789,6386976,6513010,6516590,6518048,6546208,6579488,6627425,6627427,6627428,6627440,6627443,6644e3,6646048,6646885,6647412,6648692,6889569,6889571,6889572,6889584,6907168,6908192,6909472,7102752,7103776,7106418,7107945,7234848,7238770,7303712,7365998,7496992,7497057,7501088,7594784,7628064,7631477,7660320,7694624,7695392,12216608,15625760])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1250":"ISO-8859-2"}},n.inherits(e.exports.ISO_8859_2,A),e.exports.ISO_8859_5=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,241,242,243,244,245,246,247,248,249,250,251,252,32,254,255,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,32,241,242,243,244,245,246,247,248,249,250,251,252,32,254,255]},this.ngrams=function(){return[2150944,2151134,2151646,2152400,2152480,2153168,2153182,2153936,2153941,2154193,2154462,2154464,2154704,2154974,2154978,2155230,2156514,2158050,13688280,13689580,13884960,14015468,14015960,14016994,14017056,14164191,14210336,14211104,14216992,14407133,14407712,14413021,14536736,14538016,14538965,14538991,14540320,14540498,14557394,14557407,14557409,14602784,14602960,14603230,14604576,14605292,14605344,14606818,14671579,14672085,14672088,14672094,14733522,14734804,14803664,14803666,14803672,14806816,14865883,14868e3,14868192,14871584,15196894,15459616]},this.name=function(e){return"ISO-8859-5"},this.language=function(){return"ru"}},n.inherits(e.exports.ISO_8859_5,A),e.exports.ISO_8859_6=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]},this.ngrams=function(){return[2148324,2148326,2148551,2152932,2154986,2155748,2156006,2156743,13050055,13091104,13093408,13095200,13100064,13100227,13100231,13100232,13100234,13100236,13100237,13100239,13100243,13100249,13100258,13100261,13100264,13100266,13100320,13100576,13100746,13115591,13181127,13181153,13181156,13181157,13181160,13246663,13574343,13617440,13705415,13748512,13836487,14229703,14279913,14805536,14950599,14993696,15001888,15002144,15016135,15058720,15059232,15066656,15081671,15147207,15189792,15255524,15263264,15278279,15343815,15343845,15343848,15386912,15388960,15394336]},this.name=function(e){return"ISO-8859-6"},this.language=function(){return"ar"}},n.inherits(e.exports.ISO_8859_6,A),e.exports.ISO_8859_7=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,161,162,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,220,32,221,222,223,32,252,32,253,254,192,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,32,243,244,245,246,247,248,249,250,251,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,32]},this.ngrams=function(){return[2154989,2154992,2155497,2155753,2156016,2156320,2157281,2157797,2158049,2158368,2158817,2158831,2158833,2159604,2159605,2159847,2159855,14672160,14754017,14754036,14805280,14806304,14807292,14807584,14936545,15067424,15069728,15147252,15199520,15200800,15278324,15327520,15330014,15331872,15393257,15393268,15525152,15540449,15540453,15540464,15589664,15725088,15725856,15790069,15790575,15793184,15868129,15868133,15868138,15868144,15868148,15983904,15984416,15987951,16048416,16048617,16050157,16050162,16050666,16052e3,16052213,16054765,16379168,16706848]},this.name=function(e){return e&&e.fC1Bytes?"windows-1253":"ISO-8859-7"},this.language=function(){return"el"}},n.inherits(e.exports.ISO_8859_7,A),e.exports.ISO_8859_8=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,32,32,32,32,32]},this.ngrams=function(){return[new s("he",[2154725,2154727,2154729,2154746,2154985,2154990,2155744,2155749,2155753,2155758,2155762,2155769,2155770,2157792,2157796,2158304,2159340,2161132,14744096,14950624,14950625,14950628,14950636,14950638,14950649,15001056,15065120,15068448,15068960,15071264,15071776,15278308,15328288,15328762,15329773,15330592,15331104,15333408,15333920,15474912,15474916,15523872,15524896,15540448,15540449,15540452,15540460,15540462,15540473,15655968,15671524,15787040,15788320,15788525,15920160,16261348,16312813,16378912,16392416,16392417,16392420,16392428,16392430,16392441]),new s("he",[2154725,2154732,2155753,2155756,2155758,2155760,2157040,2157810,2157817,2158053,2158057,2158565,2158569,2160869,2160873,2161376,2161381,2161385,14688484,14688492,14688493,14688506,14738464,14738916,14740512,14741024,14754020,14754029,14754042,14950628,14950633,14950636,14950637,14950639,14950648,14950650,15002656,15065120,15066144,15196192,15327264,15327520,15328288,15474916,15474925,15474938,15528480,15530272,15591913,15591920,15591928,15605988,15605997,15606010,15655200,15655968,15918112,16326884,16326893,16326906,16376864,16441376,16442400,16442857])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1255":"ISO-8859-8"},this.language=function(){return"he"}},n.inherits(e.exports.ISO_8859_8,A),e.exports.ISO_8859_9=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,186,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,105,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[2122337,2122345,2122357,2122849,2122853,2123621,2123873,2124140,2124641,2124655,2125153,2125676,2126689,2126945,2127461,2128225,6365282,6384416,6384737,6384993,6385184,6385405,6386208,6386273,6386429,6386685,6388065,6449522,6578464,6579488,6580512,6627426,6627435,6644841,6647328,6648352,6648425,6648681,6909029,6909472,6909545,6910496,7102830,7102834,7103776,7103858,7217249,7217250,7217259,7234657,7234661,7234848,7235872,7235950,7273760,7498094,7535982,7759136,7954720,7958386,16608800,16608868,16609021,16642301]},this.name=function(e){return e&&e.fC1Bytes?"windows-1254":"ISO-8859-9"},this.language=function(){return"tr"}},n.inherits(e.exports.ISO_8859_9,A),e.exports.windows_1251=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,144,131,32,131,32,32,32,32,32,32,154,32,156,157,158,159,144,32,32,32,32,32,32,32,32,32,154,32,156,157,158,159,32,162,162,188,32,180,32,32,184,32,186,32,32,32,32,191,32,32,179,179,180,181,32,32,184,32,186,32,188,190,190,191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[2155040,2155246,2155758,2156512,2156576,2157280,2157294,2158048,2158053,2158305,2158574,2158576,2158816,2159086,2159090,2159342,2160626,2162162,14740968,14742268,14937632,15068156,15068648,15069682,15069728,15212783,15263008,15263776,15269664,15459821,15460384,15465709,15589408,15590688,15591653,15591679,15592992,15593186,15605986,15605999,15606001,15655456,15655648,15655918,15657248,15657980,15658016,15659506,15724267,15724773,15724776,15724782,15786210,15787492,15856352,15856354,15856360,15859488,15918571,15920672,15920880,15924256,16249582,16512288]},this.name=function(e){return"windows-1251"},this.language=function(){return"ru"}},n.inherits(e.exports.windows_1251,A),e.exports.windows_1256=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,129,32,131,32,32,32,32,136,32,138,32,156,141,142,143,144,32,32,32,32,32,32,32,152,32,154,32,156,32,32,159,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,32,32,32,32,32,32,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,32,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,32,32,32,32,244,32,32,32,32,249,32,251,252,32,32,255]},this.ngrams=function(){return[2148321,2148324,2148551,2153185,2153965,2154977,2155492,2156231,13050055,13091104,13093408,13095200,13099296,13099459,13099463,13099464,13099466,13099468,13099469,13099471,13099475,13099482,13099486,13099491,13099494,13099501,13099808,13100064,13100234,13115591,13181127,13181149,13181153,13181155,13181158,13246663,13574343,13617440,13705415,13748512,13836487,14295239,14344684,14544160,14753991,14797088,14806048,14806304,14885063,14927648,14928160,14935072,14950599,15016135,15058720,15124449,15131680,15474887,15540423,15540451,15540454,15583520,15585568,15590432]},this.name=function(e){return"windows-1256"},this.language=function(){return"ar"}},n.inherits(e.exports.windows_1256,A),e.exports.KOI8_R=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,163,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,163,32,32,32,32,32,32,32,32,32,32,32,32,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223]},this.ngrams=function(){return[2147535,2148640,2149313,2149327,2150081,2150085,2150338,2150607,2150610,2151105,2151375,2151380,2151631,2152224,2152399,2153153,2153684,2154196,12701385,12702936,12963032,12963529,12964820,12964896,13094688,13181136,13223200,13224224,13226272,13419982,13420832,13424846,13549856,13550880,13552069,13552081,13553440,13553623,13574352,13574355,13574359,13617103,13617696,13618392,13618464,13620180,13621024,13621185,13684684,13685445,13685449,13685455,13812183,13813188,13881632,13882561,13882569,13882583,13944268,13946656,13946834,13948960,14272544,14603471]},this.name=function(e){return"KOI8-R"},this.language=function(){return"ru"}},n.inherits(e.exports.KOI8_R,A)},48794:(e,t,r)=>{"use strict";var n=r(31669),i=r(24250);function o(){}e.exports.UTF_16BE=function(){this.name=function(){return"UTF-16BE"},this.match=function(e){var t=e.fRawInput;return t.length>=2&&254==(255&t[0])&&255==(255&t[1])?new i(e,this,100):null}},e.exports.UTF_16LE=function(){this.name=function(){return"UTF-16LE"},this.match=function(e){var t=e.fRawInput;return t.length>=2&&255==(255&t[0])&&254==(255&t[1])?t.length>=4&&0==t[2]&&0==t[3]?null:new i(e,this,100):null}},o.prototype.match=function(e){var t=e.fRawInput,r=e.fRawLength/4*4,n=0,o=0,s=!1,A=0;if(0==r)return null;65279==this.getChar(t,0)&&(s=!0);for(var a=0;a=1114111||c>=55296&&c<=57343?o+=1:n+=1}return s&&0==o?A=100:s&&n>10*o?A=80:n>3&&0==o?A=100:n>0&&0==o?A=80:n>10*o&&(A=25),0==A?null:new i(e,this,A)},e.exports.UTF_32BE=function(){this.name=function(){return"UTF-32BE"},this.getChar=function(e,t){return(255&e[t+0])<<24|(255&e[t+1])<<16|(255&e[t+2])<<8|255&e[t+3]}},n.inherits(e.exports.UTF_32BE,o),e.exports.UTF_32LE=function(){this.name=function(){return"UTF-32LE"},this.getChar=function(e,t){return(255&e[t+3])<<24|(255&e[t+2])<<16|(255&e[t+1])<<8|255&e[t+0]}},n.inherits(e.exports.UTF_32LE,o)},76023:(e,t,r)=>{var n=r(24250);e.exports=function(){this.name=function(){return"UTF-8"},this.match=function(e){var t,r=!1,i=0,o=0,s=e.fRawInput,A=0;e.fRawLength>=3&&239==(255&s[0])&&187==(255&s[1])&&191==(255&s[2])&&(r=!0);for(var a=0;a5)break;A=0}for(;!(++a>=e.fRawLength);){if(128!=(192&s[a])){o++;break}if(0==--A){i++;break}}}}if(t=0,r&&0==o)t=100;else if(r&&i>10*o)t=80;else if(i>3&&0==o)t=100;else if(i>0&&0==o)t=80;else if(0==i&&0==o)t=10;else{if(!(i>10*o))return null;t=25}return new n(e,this,t)}}},80848:function(e,t,r){var n=r(35747),i=r(76023),o=r(48794),s=r(9044),A=r(71216),a=r(31059),c=this,u=[new i,new o.UTF_16BE,new o.UTF_16LE,new o.UTF_32BE,new o.UTF_32LE,new s.sjis,new s.big5,new s.euc_jp,new s.euc_kr,new s.gb_18030,new a.ISO_2022_JP,new a.ISO_2022_KR,new a.ISO_2022_CN,new A.ISO_8859_1,new A.ISO_8859_2,new A.ISO_8859_5,new A.ISO_8859_6,new A.ISO_8859_7,new A.ISO_8859_8,new A.ISO_8859_9,new A.windows_1251,new A.windows_1256,new A.KOI8_R];e.exports.detect=function(e,t){for(var r=[],n=0;n<256;n++)r[n]=0;for(n=e.length-1;n>=0;n--)r[255&e[n]]++;var i=!1;for(n=128;n<=159;n+=1)if(0!=r[n]){i=!0;break}var o={fByteStats:r,fC1Bytes:i,fRawInput:e,fRawLength:e.length,fInputBytes:e,fInputLen:e.length},s=u.map((function(e){return e.match(o)})).filter((function(e){return!!e})).sort((function(e,t){return t.confidence-e.confidence}));return t&&!0===t.returnAllMatches?s:s.length>0?s[0].name:null},e.exports.detectFile=function(e,t,r){var i;"function"==typeof t&&(r=t,t=void 0);var o=function(e,o){if(i&&n.closeSync(i),e)return r(e,null);r(null,c.detect(o,t))};if(t&&t.sampleSize)return i=n.openSync(e,"r"),sample=Buffer.allocUnsafe(t.sampleSize),void n.read(i,sample,0,t.sampleSize,null,(function(e){o(e,sample)}));n.readFile(e,o)},e.exports.detectFileSync=function(e,t){if(t&&t.sampleSize){var r=n.openSync(e,"r"),i=Buffer.allocUnsafe(t.sampleSize);return n.readSync(r,i,0,t.sampleSize),n.closeSync(r),c.detect(i,t)}return c.detect(n.readFileSync(e),t)},e.exports.detectAll=function(e,t){return"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detect(e,t)},e.exports.detectFileAll=function(e,t,r){"function"==typeof t&&(r=t,t=void 0),"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detectFile(e,t,r)},e.exports.detectFileAllSync=function(e,t){return"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detectFileSync(e,t)}},24250:e=>{e.exports=function(e,t,r,n,i){this.confidence=r,this.name=n||t.name(e),this.lang=i}},82758:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),o=n.lchown?"lchown":"chown",s=n.lchownSync?"lchownSync":"chownSync",A=process.version;let a=(e,t,r)=>n.readdir(e,t,r);/^v4\./.test(A)&&(a=(e,t,r)=>n.readdir(e,r));const c=(e,t,r,s,A)=>{if("string"==typeof t)return n.lstat(i.resolve(e,t),(n,i)=>{if(n)return A(n);i.name=t,c(e,i,r,s,A)});t.isDirectory()?u(i.resolve(e,t.name),r,s,a=>{if(a)return A(a);n[o](i.resolve(e,t.name),r,s,A)}):n[o](i.resolve(e,t.name),r,s,A)},u=(e,t,r,i)=>{a(e,{withFileTypes:!0},(s,A)=>{if(s&&"ENOTDIR"!==s.code&&"ENOTSUP"!==s.code)return i(s);if(s||!A.length)return n[o](e,t,r,i);let a=A.length,u=null;const l=s=>{if(!u)return s?i(u=s):0==--a?n[o](e,t,r,i):void 0};A.forEach(n=>c(e,n,t,r,l))})},l=(e,t,r)=>{let o;try{o=((e,t)=>n.readdirSync(e,t))(e,{withFileTypes:!0})}catch(i){if(i&&"ENOTDIR"===i.code&&"ENOTSUP"!==i.code)return n[s](e,t,r);throw i}return o.length&&o.forEach(o=>((e,t,r,o)=>{if("string"==typeof t){const r=n.lstatSync(i.resolve(e,t));r.name=t,t=r}t.isDirectory()&&l(i.resolve(e,t.name),r,o),n[s](i.resolve(e,t.name),r,o)})(e,o,t,r)),n[s](e,t,r)};e.exports=u,u.sync=l},5864:(e,t,r)=>{"use strict";var n=r(85832),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:n.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,n.forEach((function(e){var r=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=r,r)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},85832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},61696:(e,t,r)=>{"use strict";const n=r(3390);let i=!1;t.show=(e=process.stderr)=>{e.isTTY&&(i=!1,e.write("[?25h"))},t.hide=(e=process.stderr)=>{e.isTTY&&(n(),i=!0,e.write("[?25l"))},t.toggle=(e,r)=>{void 0!==e&&(i=e),i?t.show(r):t.hide(r)}},17945:(e,t,r)=>{"use strict";e.exports=function(e){var t=function(e){var t={defaultWidth:0,output:process.stdout,tty:r(33867)};return e?(Object.keys(t).forEach((function(r){e[r]||(e[r]=t[r])})),e):t}(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){var n=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(n)&&0!==n)return n}return t.defaultWidth}},17278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this.help=!1}static getMeta(e){const t=e.constructor;return t.meta=Object.prototype.hasOwnProperty.call(t,"meta")?t.meta:{definitions:[],transformers:[(e,t)=>{for(const{name:r,value:n}of e.options)"-h"!==r&&"--help"!==r||(t.help=n)}]}}static resolveMeta(e){const t=[],n=[];for(let i=e;i instanceof r;i=i.__proto__){const e=this.getMeta(i);for(const r of e.definitions)t.push(r);for(const t of e.transformers)n.push(t)}return{definitions:t,transformers:n}}static registerDefinition(e,t){this.getMeta(e).definitions.push(t)}static registerTransformer(e,t){this.getMeta(e).transformers.push(t)}static addPath(...e){this.Path(...e)(this.prototype,"execute")}static addOption(e,t){t(this.prototype,e)}static Path(...e){return(t,r)=>{this.registerDefinition(t,t=>{t.addPath(e)})}}static Boolean(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:0,hidden:t,allowBinding:!1})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=o)})}}static String(e={required:!0},{tolerateBoolean:t=!1,hidden:r=!1}={}){return(n,i)=>{if("string"==typeof e){const o=e.split(",");this.registerDefinition(n,e=>{e.addOption({names:o,arity:t?0:1,hidden:r})}),this.registerTransformer(n,(e,t)=>{for(const{name:r,value:n}of e.options)o.includes(r)&&(t[i]=n)})}else this.registerDefinition(n,t=>{t.addPositional({name:i,required:e.required})}),this.registerTransformer(n,(e,t)=>{e.positionals.length>0&&(t[i]=e.positionals.shift().value)})}}static Array(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:1,hidden:t})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=t[n]||[],t[n].push(o))})}}static Rest({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addRest({name:r,required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Proxy({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addProxy({required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Usage(e){return e}static Schema(e){return e}async validateAndExecute(){const e=this.constructor.schema;if(void 0!==e)try{await e.validate(this)}catch(e){throw"ValidationError"===e.name&&(e.clipanion={type:"usage"}),e}const t=await this.execute();return void 0!==t?t:0}} +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +function n(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(i=e[A])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}r.Entries={};class i extends r{async execute(){this.context.stdout.write(this.cli.usage(null))}}n([r.Path("--help"),r.Path("-h")],i.prototype,"execute",null);class o extends r{async execute(){var e;this.context.stdout.write((null!==(e=this.cli.binaryVersion)&&void 0!==e?e:"")+"\n")}}n([r.Path("--version"),r.Path("-v")],o.prototype,"execute",null);const s=/^(-h|--help)(?:=([0-9]+))?$/,A=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,a=/^-[a-zA-Z]{2,}$/,c=/^([^=]+)=([\s\S]*)$/,u="1"===process.env.DEBUG_CLI;class l extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}}class h extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",0===this.candidates.length)this.message="Command not found, but we're not sure what's the alternative.";else if(1===this.candidates.length&&null!==this.candidates[0].reason){const[{usage:e,reason:t}]=this.candidates;this.message=`${t}\n\n$ ${e}`}else if(1===this.candidates.length){const[{usage:t}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${t}\n${f(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:e},t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${f(e)}`}}class g extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find who to pick amongst the following alternatives:\n\n${this.usages.map((e,t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${f(e)}`}}const f=e=>"While running "+e.filter(e=>"\0"!==e).map(e=>{const t=JSON.stringify(e);return e.match(/\s/)||0===e.length||t!==`"${e}"`?t:e}).join(" ");function p(e){u&&console.log(e)}function d(e,t){return e.nodes.push(t),e.nodes.length-1}function C(e,t,r=!1){p("Running a vm on "+JSON.stringify(t));let n=[{node:0,state:{candidateUsage:null,errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];!function(e,{prefix:t=""}={}){p(t+"Nodes are:");for(let r=0;r2!==e).map(({state:e})=>({usage:e.candidateUsage,reason:null})));if(A.every(({node:e})=>2===e))throw new h(t,A.map(({state:e})=>({usage:e.candidateUsage,reason:e.errorMessage})));n=m(A)}if(n.length>0){p(" Results:");for(const e of n)p(` - ${e.node} -> ${JSON.stringify(e.state)}`)}else p(" No results");return n}function E(e,t){if(null!==t.selectedIndex)return!0;if(Object.prototype.hasOwnProperty.call(e.statics,"\0"))for(const{to:t}of e.statics["\0"])if(1===t)return!0;return!1}function I(e,t){return function(e,t){const r=t.filter(e=>null!==e.selectedIndex);if(0===r.length)throw new Error;let n=0;for(const e of r)e.path.length>n&&(n=e.path.length);const i=r.filter(e=>e.path.length===n),o=e=>e.positionals.filter(({extra:e})=>!e).length+e.options.length,s=i.map(e=>({state:e,positionalCount:o(e)}));let A=0;for(const{positionalCount:e}of s)e>A&&(A=e);const a=function(e){const t=[],r=[];for(const n of e)-1===n.selectedIndex?r.push(...n.options):t.push(n);r.length>0&&t.push({candidateUsage:null,errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:r,remainder:null,selectedIndex:-1});return t}(s.filter(({positionalCount:e})=>e===A).map(({state:e})=>e));if(a.length>1)throw new g(e,a.map(e=>e.candidateUsage));return a[0]}(t,C(e,[...t,"\0"]).map(({state:e})=>e))}function m(e){let t=0;for(const{state:r}of e)r.path.length>t&&(t=r.path.length);return e.filter(({state:e})=>e.path.length===t)}function y(e){return 1===e||2===e}function w(e,t=0){return{to:y(e.to)?e.to:e.to>2?e.to+t-2:e.to+t,reducer:e.reducer}}function B(e,t=0){const r={dynamics:[],shortcuts:[],statics:{}};for(const[n,i]of e.dynamics)r.dynamics.push([n,w(i,t)]);for(const n of e.shortcuts)r.shortcuts.push(w(n,t));for(const[n,i]of Object.entries(e.statics))r.statics[n]=i.map(e=>w(e,t));return r}function Q(e,t,r,n,i){e.nodes[t].dynamics.push([r,{to:n,reducer:i}])}function v(e,t,r,n){e.nodes[t].shortcuts.push({to:r,reducer:n})}function D(e,t,r,n,i){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,r)?e.nodes[t].statics[r]:e.nodes[t].statics[r]=[]).push({to:n,reducer:i})}function b(e,t,r,n){if(Array.isArray(t)){const[i,...o]=t;return e[i](r,n,...o)}return e[t](r,n)}function S(e,t){const r=Array.isArray(e)?k[e[0]]:k[e];if(void 0===r.suggest)return null;const n=Array.isArray(e)?e.slice(1):[];return r.suggest(t,...n)}const k={always:()=>!0,isNotOptionLike:(e,t)=>e.ignoreOptions||!t.startsWith("-"),isOption:(e,t,r,n)=>!e.ignoreOptions&&t===r,isBatchOption:(e,t,r)=>!e.ignoreOptions&&a.test(t)&&[...t.slice(1)].every(e=>r.includes("-"+e)),isBoundOption:(e,t,r,n)=>{const i=t.match(c);return!e.ignoreOptions&&!!i&&A.test(i[1])&&r.includes(i[1])&&n.filter(e=>e.names.includes(i[1])).every(e=>e.allowBinding)},isNegatedOption:(e,t,r)=>!e.ignoreOptions&&t==="--no-"+r.slice(2),isHelp:(e,t)=>!e.ignoreOptions&&s.test(t),isUnsupportedOption:(e,t,r)=>!e.ignoreOptions&&t.startsWith("-")&&A.test(t)&&!r.includes(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!A.test(t)};k.isOption.suggest=(e,t,r=!0)=>r?null:[t];const x={setCandidateUsage:(e,t,r)=>Object.assign(Object.assign({},e),{candidateUsage:r}),setSelectedIndex:(e,t,r)=>Object.assign(Object.assign({},e),{selectedIndex:r}),pushBatch:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat([...t.slice(1)].map(e=>({name:"-"+e,value:!0})))}),pushBound:(e,t)=>{const[,r,n]=t.match(c);return Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:n})})},pushPath:(e,t)=>Object.assign(Object.assign({},e),{path:e.path.concat(t)}),pushPositional:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!1})}),pushExtra:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!0})}),pushTrue:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:!0})}),pushFalse:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:!1})}),pushUndefined:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:void 0})}),setStringValue:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.slice(0,-1).concat(Object.assign(Object.assign({},e.options[e.options.length-1]),{value:t}))}),inhibateOptions:e=>Object.assign(Object.assign({},e),{ignoreOptions:!0}),useHelp:(e,t,r)=>{const[,n,i]=t.match(s);return void 0!==i?Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)}]})},setError:(e,t,r)=>"\0"===t?Object.assign(Object.assign({},e),{errorMessage:r+"."}):Object.assign(Object.assign({},e),{errorMessage:`${r} ("${t}").`})},F=Symbol();class M{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:r=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:r,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===F)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");t||this.arity.extra===F?this.arity.extra!==F&&0===this.arity.extra.length?this.arity.leading.push(e):this.arity.trailing.push(e):this.arity.extra.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===F)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let r=0;r0&&t.push(...this.paths[0]),e){for(const{names:e,arity:r,hidden:n}of this.options){if(n)continue;const i=[];for(let e=0;e`<${e}>`)),this.arity.extra===F?t.push("..."):t.push(...this.arity.extra.map(e=>`[${e}]`)),t.push(...this.arity.trailing.map(e=>`<${e}>`))}return t.join(" ")}compile(){if(void 0===this.context)throw new Error("Assertion failed: No context attached");const e={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]};let t=0;t=d(e,{dynamics:[],shortcuts:[],statics:{}}),D(e,0,"",t,["setCandidateUsage",this.usage()]);const r=this.arity.proxy?"always":"isNotOptionLike",n=this.paths.length>0?this.paths:[[]];for(const i of n){let n=t;if(i.length>0){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});v(e,n,t),this.registerOptions(e,t),n=t}for(let t=0;t0||!this.arity.proxy){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,n,"isHelp",t,["useHelp",this.cliIndex]),D(e,t,"\0",1,["setSelectedIndex",-1]),this.registerOptions(e,n)}this.arity.leading.length>0&&D(e,n,"\0",2,["setError","Not enough positional arguments"]);let o=n;for(let t=0;t0||t+1!==this.arity.leading.length)&&D(e,r,"\0",2,["setError","Not enough positional arguments"]),Q(e,o,"isNotOptionLike",r,"pushPositional"),o=r}let s=o;if(this.arity.extra===F||this.arity.extra.length>0){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});if(v(e,o,t),this.arity.extra===F){const n=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),Q(e,o,r,n,"pushExtra"),Q(e,n,r,n,"pushExtra"),v(e,n,t)}else for(let n=0;n0&&D(e,s,"\0",2,["setError","Not enough positional arguments"]);let A=s;for(let t=0;tt.length>e.length?t:e,"");if(0===r.arity)for(const i of r.names)Q(e,t,["isOption",i,r.hidden||i!==n],t,"pushTrue"),i.startsWith("--")&&Q(e,t,["isNegatedOption",i,r.hidden||i!==n],t,["pushFalse",i]);else{if(1!==r.arity)throw new Error(`Unsupported option arity (${r.arity})`);{const i=d(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,i,"isNotOptionLike",t,"setStringValue");for(const o of r.names)Q(e,t,["isOption",o,r.hidden||o!==n],i,"pushUndefined")}}}}}class N{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new N(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e{if(t.has(n))return;t.add(n);const i=e.nodes[n];for(const e of Object.values(i.statics))for(const{to:t}of e)r(t);for(const[,{to:e}]of i.dynamics)r(e);for(const{to:e}of i.shortcuts)r(e);const o=new Set(i.shortcuts.map(({to:e})=>e));for(;i.shortcuts.length>0;){const{to:t}=i.shortcuts.shift(),r=e.nodes[t];for(const[e,t]of Object.entries(r.statics)){let r=Object.prototype.hasOwnProperty.call(i.statics,e)?i.statics[e]:i.statics[e]=[];for(const e of t)r.some(({to:t})=>e.to===t)||r.push(e)}for(const[e,t]of r.dynamics)i.dynamics.some(([r,{to:n}])=>e===r&&t.to===n)||i.dynamics.push([e,t]);for(const e of r.shortcuts)o.has(e.to)||(i.shortcuts.push(e),o.add(e.to))}};r(0)}(r),{machine:r,contexts:t,process:e=>I(r,e),suggest:(e,t)=>function(e,t,r){const n=r&&t.length>0?[""]:[],i=C(e,t,r),o=[],s=new Set,A=(t,r,n=!0)=>{let i=[r];for(;i.length>0;){const r=i;i=[];for(const o of r){const r=e.nodes[o],s=Object.keys(r.statics);for(const e of Object.keys(r.statics)){const e=s[0];for(const{to:o,reducer:s}of r.statics[e])"pushPath"===s&&(n||t.push(e),i.push(o))}}n=!1}const A=JSON.stringify(t);s.has(A)||(o.push(t),s.add(A))};for(const{node:t,state:r}of i){if(null!==r.remainder){A([r.remainder],t);continue}const i=e.nodes[t],o=E(i,r);for(const[e,r]of Object.entries(i.statics))(o&&"\0"!==e||!e.startsWith("-")&&r.some(({reducer:e})=>"pushPath"===e))&&A([...n,e],t);if(o)for(const[e,{to:o}]of i.dynamics){if(2===o)continue;const i=S(e,r);if(null!==i)for(const e of i)A([...n,e],t)}}return[...o].sort()}(r,e,t)}}}const R={bold:e=>`${e}`,error:e=>`${e}`,code:e=>`${e}`},K={bold:e=>e,error:e=>e,code:e=>e};function L(e,{format:t,paragraphs:r}){return e=(e=(e=(e=(e=e.replace(/\r\n?/g,"\n")).replace(/^[\t ]+|[\t ]+$/gm,"")).replace(/^\n+|\n+$/g,"")).replace(/^-([^\n]*?)\n+/gm,"-$1\n\n")).replace(/\n(\n)?\n*/g,"$1"),r&&(e=e.split(/\n/).map((function(e){let t=e.match(/^[*-][\t ]+(.*)/);return t?t[1].match(/(.{1,78})(?: |$)/g).map((e,t)=>(0===t?"- ":" ")+e).join("\n"):e.match(/(.{1,80})(?: |$)/g).join("\n")})).join("\n\n")),(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(function(e,r,n){return t.code(r+n+r)})))?e+"\n":""}class T extends r{constructor(e,t){super(),this.realCli=e,this.contexts=t,this.commands=[]}static from(e,t,r){const n=new T(t,r);for(const t of e.options)switch(t.name){case"-c":n.commands.push(Number(t.value));break;case"-i":n.index=Number(t.value)}return n}async execute(){let e=this.commands;if(void 0!==this.index&&this.index>=0&&this.index1){this.context.stdout.write("Multiple commands match your selection:\n"),this.context.stdout.write("\n");let e=0;for(const t of this.commands)this.context.stdout.write(this.realCli.usage(this.contexts[t].commandClass,{prefix:(e+++". ").padStart(5)}));this.context.stdout.write("\n"),this.context.stdout.write("Run again with -h= to see the longer details of any of those commands.\n")}}}function P(){return"0"!==process.env.FORCE_COLOR&&("1"===process.env.FORCE_COLOR||!(void 0===process.stdout||!process.stdout.isTTY))}class U{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:r,enableColors:n=P()}={}){this.registrations=new Map,this.builder=new N({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=r,this.enableColors=n}static from(e){const t=new U;for(const r of e)t.register(r);return t}register(e){const t=this.builder.command();this.registrations.set(e,t.cliIndex);const{definitions:r}=e.resolveMeta(e.prototype);for(const e of r)e(t);t.setContext({commandClass:e})}process(e){const{contexts:t,process:r}=this.builder.compile(),n=r(e);switch(n.selectedIndex){case-1:return T.from(n,this,t);default:{const{commandClass:e}=t[n.selectedIndex],r=new e;r.path=n.path;const{transformers:i}=e.resolveMeta(e.prototype);for(const e of i)e(n,r);return r}}}async run(e,t){let r,n;if(Array.isArray(e))try{r=this.process(e)}catch(e){return t.stdout.write(this.error(e)),1}else r=e;if(r.help)return t.stdout.write(this.usage(r,{detailed:!0})),0;r.context=t,r.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,definitions:()=>this.definitions(),error:(e,t)=>this.error(e,t),process:e=>this.process(e),run:(e,r)=>this.run(e,Object.assign(Object.assign({},t),r)),usage:(e,t)=>this.usage(e,t)};try{n=await r.validateAndExecute()}catch(e){return t.stdout.write(this.error(e,{command:r})),1}return n}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){const{contexts:r,process:n,suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){const t=[];for(const[r,n]of this.registrations){if(void 0===r.usage)continue;const i=this.getUsageByIndex(n,{detailed:!1}),o=this.getUsageByIndex(n,{detailed:!0}),s=void 0!==r.usage.category?L(r.usage.category,{format:this.format(e),paragraphs:!1}):void 0,A=void 0!==r.usage.description?L(r.usage.description,{format:this.format(e),paragraphs:!1}):void 0,a=void 0!==r.usage.details?L(r.usage.details,{format:this.format(e),paragraphs:!0}):void 0,c=void 0!==r.usage.examples?r.usage.examples.map(([t,r])=>[L(t,{format:this.format(e),paragraphs:!1}),r.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:i,usage:o,category:s,description:A,details:a,examples:c})}return t}usage(e=null,{colored:t,detailed:r=!1,prefix:n="$ "}={}){const i=null!==e&&void 0===e.getMeta?e.constructor:e;let o="";if(i)if(r){const{description:e="",details:r="",examples:s=[]}=i.usage||{};if(""!==e&&(o+=L(e,{format:this.format(t),paragraphs:!1}).replace(/^./,e=>e.toUpperCase()),o+="\n"),(""!==r||s.length>0)&&(o+=this.format(t).bold("Usage:")+"\n",o+="\n"),o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`,""!==r&&(o+="\n",o+=this.format(t).bold("Details:")+"\n",o+="\n",o+=L(r,{format:this.format(t),paragraphs:!0})),s.length>0){o+="\n",o+=this.format(t).bold("Examples:")+"\n";for(let[e,r]of s)o+="\n",o+=L(e,{format:this.format(t),paragraphs:!1}),o+=r.replace(/^/m," "+this.format(t).bold(n)).replace(/\$0/g,this.binaryName)+"\n"}}else o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`;else{const e=new Map;for(const[r,n]of this.registrations.entries()){if(void 0===r.usage)continue;const i=void 0!==r.usage.category?L(r.usage.category,{format:this.format(t),paragraphs:!1}):null;let o=e.get(i);void 0===o&&e.set(i,o=[]);const s=this.getUsageByIndex(n);o.push({commandClass:r,usage:s})}const r=Array.from(e.keys()).sort((e,t)=>null===e?-1:null===t?1:e.localeCompare(t,"en",{usage:"sort",caseFirst:"upper"})),i=void 0!==this.binaryLabel,s=void 0!==this.binaryVersion;i||s?(o+=i&&s?this.format(t).bold(`${this.binaryLabel} - ${this.binaryVersion}`)+"\n\n":i?this.format(t).bold(""+this.binaryLabel)+"\n":this.format(t).bold(""+this.binaryVersion)+"\n",o+=` ${this.format(t).bold(n)}${this.binaryName} \n`):o+=`${this.format(t).bold(n)}${this.binaryName} \n`;for(let n of r){const r=e.get(n).slice().sort((e,t)=>e.usage.localeCompare(t.usage,"en",{usage:"sort",caseFirst:"upper"})),i=null!==n?n.trim():"Where is one of";o+="\n",o+=this.format(t).bold(i+":")+"\n";for(let{commandClass:e,usage:n}of r){const r=e.usage.description||"undocumented";o+="\n",o+=` ${this.format(t).bold(n)}\n`,o+=" "+L(r,{format:this.format(t),paragraphs:!1})}}o+="\n",o+=L("You can also print more details about any of these commands by calling them after adding the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return o}error(e,{colored:t,command:r=null}={}){e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let n="",i=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");"Error"===i&&(i="Internal Error"),n+=`${this.format(t).error(i)}: ${e.message}\n`;const o=e.clipanion;return void 0!==o?"usage"===o.type&&(n+="\n",n+=this.usage(r)):e.stack&&(n+=e.stack.replace(/^.*\n/,"")+"\n"),n}getUsageByRegistration(e,t){const r=this.registrations.get(e);if(void 0===r)throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(r,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}format(e=this.enableColors){return e?R:K}}U.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},r.Entries.Help=i,r.Entries.Version=o,t.Cli=U,t.Command=r,t.UsageError=l},75426:e=>{"use strict";e.exports={u2:"clipanion"}},15751:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=r(65007);e.exports=e=>{if(!e||!e.pipe)throw new TypeError("Parameter `response` must be a response stream.");const t=new n;return i(e,t),e.pipe(t)}},15311:(e,t,r)=>{const n=r(93300),i={};for(const e of Object.keys(n))i[n[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:r})}o.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=o-i;let A,a;o===i?A=0:t===o?A=(r-n)/s:r===o?A=2+(n-t)/s:n===o&&(A=4+(t-r)/s),A=Math.min(60*A,360),A<0&&(A+=360);const c=(i+o)/2;return a=o===i?0:c<=.5?s/(o+i):s/(2-o-i),[A,100*a,100*c]},o.rgb.hsv=function(e){let t,r,n,i,o;const s=e[0]/255,A=e[1]/255,a=e[2]/255,c=Math.max(s,A,a),u=c-Math.min(s,A,a),l=function(e){return(c-e)/6/u+.5};return 0===u?(i=0,o=0):(o=u/c,t=l(s),r=l(A),n=l(a),s===c?i=n-r:A===c?i=1/3+t-n:a===c&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*c]},o.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const i=o.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[i,100*s,100*n]},o.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let r,o=1/0;for(const t of Object.keys(n)){const i=n[t],a=(A=i,((s=e)[0]-A[0])**2+(s[1]-A[1])**2+(s[2]-A[2])**2);a.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let r=t[0],n=t[1],i=t[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*n-16,500*(r-n),200*(n-i)]},o.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let i,o,s;if(0===r)return s=255*n,[s,s,s];i=n<.5?n*(1+r):n+r-n*r;const A=2*n-i,a=[0,0,0];for(let e=0;e<3;e++)o=t+1/3*-(e-1),o<0&&o++,o>1&&o--,s=6*o<1?A+6*(i-A)*o:2*o<1?i:3*o<2?A+(i-A)*(2/3-o)*6:A,a[e]=255*s;return a},o.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,i=r;const o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=o<=1?o:2-o;return[t,100*(0===n?2*i/(o+i):2*r/(n+r)),100*((n+r)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),s=255*n*(1-r),A=255*n*(1-r*o),a=255*n*(1-r*(1-o));switch(n*=255,i){case 0:return[n,a,s];case 1:return[A,n,s];case 2:return[s,n,a];case 3:return[s,A,n];case 4:return[a,s,n];case 5:return[n,s,A]}},o.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let o,s;s=(2-r)*n;const A=(2-r)*i;return o=r*i,o/=A<=1?A:2-A,o=o||0,s/=2,[t,100*o,100*s]},o.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const i=r+n;let o;i>1&&(r/=i,n/=i);const s=Math.floor(6*t),A=1-n;o=6*t-s,0!=(1&s)&&(o=1-o);const a=r+o*(A-r);let c,u,l;switch(s){default:case 6:case 0:c=A,u=a,l=r;break;case 1:c=a,u=A,l=r;break;case 2:c=r,u=A,l=a;break;case 3:c=r,u=a,l=A;break;case 4:c=a,u=r,l=A;break;case 5:c=A,u=r,l=a}return[255*c,255*u,255*l]},o.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let i,o,s;return i=3.2406*t+-1.5372*r+-.4986*n,o=-.9689*t+1.8758*r+.0415*n,s=.0557*t+-.204*r+1.057*n,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*i,255*o,255*s]},o.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*r-16,500*(t-r),200*(r-n)]},o.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const i=r**3,o=t**3,s=n**3;return r=i>.008856?i:(r-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,n=s>.008856?s:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},o.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let i;i=360*Math.atan2(n,r)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(r*r+n*n),i]},o.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},o.rgb.ansi16=function(e,t=null){const[r,n,i]=e;let s=null===t?o.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let A=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===s&&(A+=60),A},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map(e=>e+e).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},o.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),s=i-o;let A,a;return A=s<1?o/(1-s):0,a=s<=0?0:i===t?(r-n)/s%6:i===r?2+(n-t)/s:4+(t-r)/s,a/=6,a%=1,[360*a,100*s,100*A]},o.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],100*n,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],o=t%1*6,s=o%1,A=1-s;let a=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=A,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=A,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=A}return a=(1-r)*n,[255*(r*i[0]+a),255*(r*i[1]+a),255*(r*i[2]+a)]},o.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},o.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},o.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},o.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,r)=>{const n=r(15311),i=r(78577),o={};Object.keys(n).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:n[e].channels}),Object.defineProperty(o[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach(r=>{const n=t[r];o[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)})}),e.exports=o},78577:(e,t,r)=>{const n=r(15311);function i(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},36547:e=>{e.exports=function(e,r){for(var n=[],i=0;i{"use strict";const n=r(63129),i=r(14951),o=r(10779);function s(e,t,r){const s=i(e,t,r),A=n.spawn(s.command,s.args,s.options);return o.hookChildProcess(A,s),A}e.exports=s,e.exports.spawn=s,e.exports.sync=function(e,t,r){const s=i(e,t,r),A=n.spawnSync(s.command,s.args,s.options);return A.error=A.error||o.verifyENOENTSync(A.status,s),A},e.exports._parse=i,e.exports._enoent=o},10779:e=>{"use strict";const t="win32"===process.platform;function r(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function n(e,n){return t&&1===e&&!n.file?r(n.original,"spawn"):null}e.exports={hookChildProcess:function(e,r){if(!t)return;const i=e.emit;e.emit=function(t,o){if("exit"===t){const t=n(o,r);if(t)return i.call(e,"error",t)}return i.apply(e,arguments)}},verifyENOENT:n,verifyENOENTSync:function(e,n){return t&&1===e&&!n.file?r(n.original,"spawnSync"):null},notFoundError:r}},14951:(e,t,r)=>{"use strict";const n=r(85622),i=r(47447),o=r(27066),s=r(35187),A="win32"===process.platform,a=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function u(e){if(!A)return e;const t=function(e){e.file=i(e);const t=e.file&&s(e.file);return t?(e.args.unshift(e.file),e.command=t,i(e)):e.file}(e),r=!a.test(t);if(e.options.forceShell||r){const r=c.test(t);e.command=n.normalize(e.command),e.command=o.command(e.command),e.args=e.args.map(e=>o.argument(e,r));const i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}e.exports=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);const n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:u(n)}},27066:e=>{"use strict";const t=/([()\][%!^"`<>&|;, *?])/g;e.exports.command=function(e){return e=e.replace(t,"^$1")},e.exports.argument=function(e,r){return e=(e=`"${e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1")}"`).replace(t,"^$1"),r&&(e=e.replace(t,"^$1")),e}},35187:(e,t,r)=>{"use strict";const n=r(35747),i=r(91470);e.exports=function(e){const t=Buffer.alloc(150);let r;try{r=n.openSync(e,"r"),n.readSync(r,t,0,150,0),n.closeSync(r)}catch(e){}return i(t.toString())}},47447:(e,t,r)=>{"use strict";const n=r(85622),i=r(87945),o=r(37127);function s(e,t){const r=e.options.env||process.env,s=process.cwd(),A=null!=e.options.cwd,a=A&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd)}catch(e){}let c;try{c=i.sync(e.command,{path:r[o({env:r})],pathExt:t?n.delimiter:void 0})}catch(e){}finally{a&&process.chdir(s)}return c&&(c=n.resolve(A?e.options.cwd:"",c)),c}e.exports=function(e){return s(e)||s(e,!0)}},53832:(e,t,r)=>{"use strict";const{pipeline:n,PassThrough:i}=r(92413),o=r(78761),s=r(60102);e.exports=e=>{const t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;const r="br"===t;if(r&&"function"!=typeof o.createBrotliDecompress)return e;const A=r?o.createBrotliDecompress():o.createUnzip(),a=new i;A.on("error",e=>{"Z_BUF_ERROR"!==e.code?a.emit("error",e):a.end()});const c=n(e,A,a,()=>{});return s(e,c),c}},93121:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4016),i=(e,t)=>{let r;if("function"==typeof t){r={connect:t}}else r=t;const i="function"==typeof r.connect,o="function"==typeof r.secureConnect,s="function"==typeof r.close,A=()=>{i&&r.connect(),e instanceof n.TLSSocket&&o&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),s&&e.once("close",r.close)};e.writable&&!e.connecting?A():e.connecting?e.once("connect",A):e.destroyed&&s&&r.close(e._hadError)};t.default=i,e.exports=i,e.exports.default=i},66241:(e,t,r)=>{"use strict";const n=r(85622),i=r(5763),o=e=>e.length>1?`{${e.join(",")}}`:e[0],s=(e,t)=>{const r="!"===e[0]?e.slice(1):e;return n.isAbsolute(r)?r:n.join(t,r)},A=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>{return n.posix.join(e,(i=r,s=t.extensions,n.extname(i)?"**/"+i:`**/${i}.${o(s)}`));var i,s}):t.files?t.files.map(t=>n.posix.join(e,"**/"+t)):t.extensions?[n.posix.join(e,"**/*."+o(t.extensions))]:[n.posix.join(e,"**")]};e.exports=async(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=await Promise.all([].concat(e).map(async e=>await i.isDirectory(s(e,t.cwd))?A(e,t):e));return[].concat.apply([],r)},e.exports.sync=(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=[].concat(e).map(e=>i.isDirectorySync(s(e,t.cwd))?A(e,t):e);return[].concat.apply([],r)}},1013:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},97681:(e,t,r)=>{var n=r(91162),i=function(){},o=function(e,t,r){if("function"==typeof t)return o(e,null,t);t||(t={}),r=n(r||i);var s=e._writableState,A=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||l()},l=function(){c=!1,a||r()},h=function(){a=!1,c||r()},g=function(e){r(e?new Error("exited with error code: "+e):null)},f=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:r(new Error("premature close"))},p=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!s&&(e.on("end",u),e.on("close",u)):(e.on("complete",l),e.on("abort",f),e.req?p():e.on("request",p)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",g),e.on("end",h),e.on("finish",l),!1!==t.error&&e.on("error",r),e.on("close",f),function(){e.removeListener("complete",l),e.removeListener("abort",f),e.removeListener("request",p),e.req&&e.req.removeListener("finish",l),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",l),e.removeListener("exit",g),e.removeListener("end",h),e.removeListener("error",r),e.removeListener("close",f)}};e.exports=o},17067:(e,t,r)=>{var n=r(27180),i=function(){},o=function(e,t,r){if("function"==typeof t)return o(e,null,t);t||(t={}),r=n(r||i);var s=e._writableState,A=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||l()},l=function(){c=!1,a||r.call(e)},h=function(){a=!1,c||r.call(e)},g=function(t){r.call(e,t?new Error("exited with error code: "+t):null)},f=function(t){r.call(e,t)},p=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:r.call(e,new Error("premature close"))},d=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!s&&(e.on("end",u),e.on("close",u)):(e.on("complete",l),e.on("abort",p),e.req?d():e.on("request",d)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",g),e.on("end",h),e.on("finish",l),!1!==t.error&&e.on("error",f),e.on("close",p),function(){e.removeListener("complete",l),e.removeListener("abort",p),e.removeListener("request",d),e.req&&e.req.removeListener("finish",l),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",l),e.removeListener("exit",g),e.removeListener("end",h),e.removeListener("error",f),e.removeListener("close",p)}};e.exports=o},66349:e=>{"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},41313:function(e){var t;t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1),i=r(3),o=r(8),s=r(15);function A(e,t,r){var s=null,A=function(e,t){r&&r(e,t),s&&s.visit(e,t)},a="function"==typeof r?A:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(c||u)&&((s=new n.CommentHandler).attach=u,t.comment=!0,a=A)}var l,h=!1;t&&"string"==typeof t.sourceType&&(h="module"===t.sourceType),l=t&&"boolean"==typeof t.jsx&&t.jsx?new i.JSXParser(e,t,a):new o.Parser(e,t,a);var g=h?l.parseModule():l.parseScript();return c&&s&&(g.comments=s.comments),l.config.tokens&&(g.tokens=l.tokens),l.config.tolerant&&(g.errors=l.errorHandler.errors),g}t.parse=A,t.parseModule=function(e,t,r){var n=t||{};return n.sourceType="module",A(e,n,r)},t.parseScript=function(e,t,r){var n=t||{};return n.sourceType="script",A(e,n,r)},t.tokenize=function(e,t,r){var n,i=new s.Tokenizer(e,t);n=[];try{for(;;){var o=i.getNextToken();if(!o)break;r&&(o=r(o)),n.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var a=r(2);t.Syntax=a.Syntax,t.version="4.0.1"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var n=this.trailing[r];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){var o=i.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&((o=this.stack[this.stack.length-1])&&o.start>=e.start.offset);)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var i=t.leadingComments[n];i.range[1]<=e.start.offset&&(r.unshift(i),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(n,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),i=this.findLeadingComments(t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),s=r(5),A=r(6),a=r(7),c=r(8),u=r(13),l=r(14);function h(e){var t;switch(e.type){case A.JSXSyntax.JSXIdentifier:t=e.name;break;case A.JSXSyntax.JSXNamespacedName:var r=e;t=h(r.namespace)+":"+h(r.name);break;case A.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var g=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return i(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,s=!1;!this.scanner.eof()&&r&&!n;){var A=this.scanner.source[this.scanner.index];if(A===e)break;if(n=";"===A,t+=A,++this.scanner.index,!n)switch(t.length){case 2:i="#"===A;break;case 3:i&&(r=(s="x"===A)||o.Character.isDecimalDigit(A.charCodeAt(0)),i=i&&!s);break;default:r=(r=r&&!(i&&!o.Character.isDecimalDigit(A.charCodeAt(0))))&&!(s&&!o.Character.isHexDigit(A.charCodeAt(0)))}}if(r&&n&&t.length>2){var a=t.substr(1,t.length-2);i&&a.length>1?t=String.fromCharCode(parseInt(a.substr(1),10)):s&&a.length>2?t=String.fromCharCode(parseInt("0"+a.substr(1),16)):i||s||!l.XHTMLEntities[a]||(t=l.XHTMLEntities[a])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:A=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(a=this.scanner.source[this.scanner.index++])!==r;)n+="&"===a?this.scanXHTMLEntity(r):a;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var i=this.scanner.source.charCodeAt(this.scanner.index+1),s=this.scanner.source.charCodeAt(this.scanner.index+2),A=46===i&&46===s?"...":".";return t=this.scanner.index,this.scanner.index+=A.length,{type:7,value:A,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var a=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(a)&&92!==a)++this.scanner.index;else{if(45!==a)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new s.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new s.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new s.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new s.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new s.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new s.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start0))break;o=this.finalize(e.node,new s.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new s.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(c.Parser);t.JSXParser=g},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6),i=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=i;var o=function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var s=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=s;var A=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=A;var a=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=a;var c=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=c;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var l=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=l;var h=function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=h;var g=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=g;var f=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=f},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=i;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var s=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=s;var A=function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=A;var a=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=a;var c=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=c;var u=function(e,t,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var l=function(e,t,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=l;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var g=function(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=g;var f=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=f;var p=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=p;var d=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=d;var C=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=C;var E=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=E;var I=function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=I;var m=function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=m;var y=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=y;var w=function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=w;var B=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=B;var Q=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=Q;var v=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=v;var D=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=D;var b=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=b;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var k=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=k;var x=function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=x;var F=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=F;var M=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=M;var N=function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=N;var R=function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=R;var K=function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i};t.ForStatement=K;var L=function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionDeclaration=L;var T=function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionExpression=T;var P=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=P;var U=function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=U;var _=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=_;var O=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=O;var j=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=j;var Y=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=Y;var G=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=G;var J=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=J;var H=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var q=function(e,t,r,i,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=o};t.MethodDefinition=q;var z=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=z;var W=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=W;var V=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=V;var X=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=X;var Z=function(e,t,r,i,o,s){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=o,this.shorthand=s};t.Property=Z;var $=function(e,t,r,i){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:i}};t.RegexLiteral=$;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=re;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var ie=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ie;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var se=function(){this.type=n.Syntax.Super};t.Super=se;var Ae=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=Ae;var ae=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ae;var ce=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=ce;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var le=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=le;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var ge=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=ge;var fe=function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=fe;var pe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=pe;var de=function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=de;var Ce=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=Ce;var Ee=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=Ee;var Ie=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=Ie;var me=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=me;var ye=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=ye},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(10),o=r(11),s=r(7),A=r(12),a=r(2),c=r(13),u=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new A.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new s.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal("true"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new s.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new s.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new s.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new s.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new s.AsyncFunctionExpression(null,n.params,i))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(r);e=this.finalize(t,new s.Literal(r.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new s.Identifier(r.value));break;case 7:"["===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===a.Syntax.Identifier&&e.name===t||e.type===a.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),n=this.lookahead,i=null,A=null,a=!1,c=!1,u=!1,l=!1;if(3===n.type){var h=n.value;this.nextToken(),a=this.match("["),i=(l=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new s.Identifier(h))}else this.match("*")?this.nextToken():(a=this.match("["),i=this.parseObjectPropertyKey());var g=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!l&&"get"===n.value&&g)t="get",a=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod();else if(3===n.type&&!l&&"set"===n.value&&g)t="set",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&g)t="init",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),c=!0;else if(i||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!l)!a&&this.isPropertyKey(i,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),A=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))A=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0;else if(3===n.type)if(h=this.finalize(r,new s.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var f=this.isolateCoverGrammar(this.parseAssignmentExpression);A=this.finalize(r,new s.AssignmentPattern(h,f))}else u=!0,A=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new s.Property(t,i,a,A,c,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new s.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new s.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case a.Syntax.Identifier:case a.Syntax.MemberExpression:case a.Syntax.RestElement:case a.Syntax.AssignmentPattern:break;case a.Syntax.SpreadElement:e.type=a.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case a.Syntax.ArrayExpression:e.type=a.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===a.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:"ArrowParameterPlaceHolder",params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===a.Syntax.SequenceExpression)for(o=0;o")){for(var a=0;a0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,A=this.isolateCoverGrammar(this.parseExponentiationExpression),a=[o,r.value,A],c=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;a.length>2&&n<=c[c.length-1];){A=a.pop();var u=a.pop();c.pop(),o=a.pop(),i.pop();var l=this.startNode(i[i.length-1]);a.push(this.finalize(l,new s.BinaryExpression(u,o,A)))}a.push(this.nextToken().value),c.push(n),i.push(this.lookahead),a.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=a.length-1;t=a[h];for(var g=i.pop();h>1;){var f=i.pop(),p=g&&g.lineStart;l=this.startNode(f,p),u=a[h-1],t=this.finalize(l,new s.BinaryExpression(u,a[h-2],t)),h-=2,g=f}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new s.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case a.Syntax.Identifier:this.validateParam(e,t,t.name);break;case a.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case a.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case a.Syntax.ArrayPattern:for(var r=0;r")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=e.async,A=this.reinterpretAsCoverFormalsList(e);if(A){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var c=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=A.simple;var l=this.context.allowYield,h=this.context.await;this.context.allowYield=!0,this.context.await=i;var g=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var p=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=p}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var d=f.type!==a.Syntax.BlockStatement;this.context.strict&&A.firstRestricted&&this.throwUnexpectedToken(A.firstRestricted,A.message),this.context.strict&&A.stricted&&this.tolerateUnexpectedToken(A.stricted,A.message),e=i?this.finalize(g,new s.AsyncArrowFunctionExpression(A.params,f,d)):this.finalize(g,new s.ArrowFunctionExpression(A.params,f,d)),this.context.strict=c,this.context.allowStrictDirective=u,this.context.allowYield=l,this.context.await=h}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===a.Syntax.Identifier){var C=e;this.scanner.isRestrictedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var E=(r=this.nextToken()).value,I=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new s.AssignmentExpression(E,e,I)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new s.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new s.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==a.Syntax.Identifier||this.match("="))&&(this.expect("="),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new s.VariableDeclarator(n,i))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new s.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new s.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new s.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),o=!1,A=!1;if(3===this.lookahead.type){var a=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(i,new s.Identifier(a.value));if(this.match("=")){e.push(a),A=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(a),new s.AssignmentPattern(c,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(a),A=!0,n=c)}else o=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new s.Property("init",r,o,n,!1,A))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new s.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new s.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new s.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===a.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new s.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new s.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new s.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new s.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new s.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new s.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,n=null,i=null,A=null,c=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===h.length&&this.matchKeyword("in")){var g=h[0];g.init&&(g.id.type===a.Syntax.ArrayPattern||g.id.type===a.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var f=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(l=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(f,{inFor:!0}),this.context.allowIn=l,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(this.consumeSemicolon(),n=this.finalize(n,new s.VariableDeclaration(h,f)))):(n=this.finalize(n,new s.Identifier(f)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var p=this.lookahead;if(l=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==a.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==a.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,c=!1;else{if(this.match(",")){for(var d=[n];this.match(",");)this.nextToken(),d.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(p),new s.SequenceExpression(d))}this.expect(";")}}if(void 0===e&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(A=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var C=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=C}return void 0===e?this.finalize(u,new s.ForStatement(n,i,A,r)):c?this.finalize(u,new s.ForInStatement(e,t,r)):this.finalize(u,new s.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new s.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new s.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new s.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new s.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],i=!1;for(this.expect("{");!this.match("}");){var A=this.parseSwitchCase();null===A.test&&(i&&this.throwError(o.Messages.MultipleDefaultsInSwitch),i=!0),n.push(A)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new s.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===a.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[i]=!0;var A=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),A=this.parseClassDeclaration();else if(this.matchKeyword("function")){var c=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(c,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(c,o.Messages.GeneratorInLegacyContext),A=u}else A=this.parseStatement();delete this.context.labelSet[i],e=new s.LabeledStatement(n,A)}else this.consumeSemicolon(),e=new s.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},i=0;i0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof s.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new s.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),n="",i=null,A=null,a=!1,c=!1,u=!1,l=!1;if(this.match("*"))this.nextToken();else if(a=this.match("["),"static"===(i=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,a=this.match("["),this.match("*")?this.nextToken():i=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(l=!0,t=this.lookahead,i=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var g=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&g?(n="get",a=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod()):"set"===t.value&&g&&(n="set",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseSetterMethod()):7===t.type&&"*"===t.value&&g&&(n="init",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),c=!0),!n&&i&&this.match("(")&&(n="init",A=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),a||(u&&this.isPropertyKey(i,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(i,"constructor")&&(("method"!==n||!c||A&&A.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(r,new s.MethodDefinition(i,a,A,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new s.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new s.ClassDeclaration(n,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new s.ClassExpression(r,n,i))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new s.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new s.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new s.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new s.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new s.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new s.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new s.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new s.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var i=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new s.ExportAllDeclaration(i))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null));else{var A=[],a=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),A.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),a=this.parseModuleSpecifier(),this.consumeSemicolon()):c?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new s.ExportNamedDeclaration(null,A,a))}return e},e}();t.Parser=u},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,"column",{value:t}))}return r},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,o=this.constructError(i,r);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(4),o=r(11);function s(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function A(e){return"01234567".indexOf(e)}var a=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,n=[];for(this.trackComment&&(n=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,i.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var s={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};n.push(s)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},s={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},n.push(s)),n},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(i.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(i.Character.isWhiteSpace(r))++this.index;else if(i.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,n=0;n1114111||"}"!==e)&&this.throwUnexpectedToken(),i.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!i.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=i.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),i.Character.isIdentifierPart(t));)r+=e=i.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=A(e);return!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+A(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+A(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&t+r.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&i.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(i.Character.isIdentifierStart(t)||i.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(i.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(i.Character.isIdentifierStart(this.source.charCodeAt(this.index))||i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(r)}catch(e){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,s=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],i.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(i.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){s=!0;break}"["===e&&(r=!0)}return s||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!i.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var r=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;r=55296&&e<57343&&i.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(10),i=r(12),o=r(13),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),A=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t{"use strict";var n=r(80848),i=r(63129),o=r(35747),s=r(14503),A=r(67783),a=r(79932);a.CreateFileError;var c=r(89885);c.LaunchEditorError;var u=r(11124);u.ReadFileError;var l=r(60239);l.RemoveFileError,t.Wl=function(e,t){void 0===e&&(e="");var r=new h(e);r.runAsync((function(e,n){if(e)setImmediate(t,e,null);else try{r.cleanup(),setImmediate(t,null,n)}catch(e){setImmediate(t,e,null)}}))};var h=function(){function e(e){void 0===e&&(e=""),this.text="",this.text=e,this.determineEditor(),this.createTemporaryFile()}return e.splitStringBySpace=function(e){for(var t=[],r="",n=0;n0&&" "===i&&"\\"!==e[n-1]&&r.length>0?(t.push(r),r=""):r+=i}return r.length>0&&t.push(r),t},Object.defineProperty(e.prototype,"temp_file",{get:function(){return console.log("DEPRECATED: temp_file. Use tempFile moving forward."),this.tempFile},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last_exit_status",{get:function(){return console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."),this.lastExitStatus},enumerable:!0,configurable:!0}),e.prototype.run=function(){return this.launchEditor(),this.readTemporaryFile(),this.text},e.prototype.runAsync=function(e){var t=this;try{this.launchEditorAsync((function(){try{t.readTemporaryFile(),setImmediate(e,null,t.text)}catch(t){setImmediate(e,t,null)}}))}catch(t){setImmediate(e,t,null)}},e.prototype.cleanup=function(){this.removeTemporaryFile()},e.prototype.determineEditor=function(){var t=process.env.VISUAL?process.env.VISUAL:process.env.EDITOR?process.env.EDITOR:/^win/.test(process.platform)?"notepad":"vim",r=e.splitStringBySpace(t).map((function(e){return e.replace("\\ "," ")})),n=r.shift();this.editor={args:r,bin:n}},e.prototype.createTemporaryFile=function(){try{this.tempFile=A.tmpNameSync({}),o.writeFileSync(this.tempFile,this.text,{encoding:"utf8"})}catch(e){throw new a.CreateFileError(e)}},e.prototype.readTemporaryFile=function(){try{var e=o.readFileSync(this.tempFile);if(0===e.length)this.text="";else{var t=n.detect(e).toString();s.encodingExists(t)||(t="utf8"),this.text=s.decode(e,t)}}catch(e){throw new u.ReadFileError(e)}},e.prototype.removeTemporaryFile=function(){try{o.unlinkSync(this.tempFile)}catch(e){throw new l.RemoveFileError(e)}},e.prototype.launchEditor=function(){try{var e=i.spawnSync(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=e.status}catch(e){throw new c.LaunchEditorError(e)}},e.prototype.launchEditorAsync=function(e){var t=this;try{i.spawn(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",(function(r){t.lastExitStatus=r,setImmediate(e)}))}catch(e){throw new c.LaunchEditorError(e)}},e}()},19347:(e,t,r)=>{"use strict";const n=r(80598),i=r(58182),o=r(67652),s=r(81340),A=r(43754),a=r(16777);async function c(e,t){l(e);const r=u(e,i.default,t),n=await Promise.all(r);return a.array.flatten(n)}function u(e,t,r){const i=[].concat(e),o=new A.default(r),s=n.generate(i,o),a=new t(o);return s.map(a.read,a)}function l(e){if(![].concat(e).every(e=>a.string.isString(e)&&!a.string.isEmpty(e)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(e){e.sync=function(e,t){l(e);const r=u(e,s.default,t);return a.array.flatten(r)},e.stream=function(e,t){l(e);const r=u(e,o.default,t);return a.stream.merge(r)},e.generateTasks=function(e,t){l(e);const r=[].concat(e),i=new A.default(t);return n.generate(r,i)},e.isDynamicPattern=function(e,t){l(e);const r=new A.default(t);return a.pattern.isDynamicPattern(e,r)},e.escapePath=function(e){return l(e),a.path.escape(e)}}(c||(c={})),e.exports=c},80598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);function i(e,t,r){const n=A(e);if("."in n){return[c(".",e,t,r)]}return a(n,t,r)}function o(e){return n.pattern.getPositivePatterns(e)}function s(e,t){return n.pattern.getNegativePatterns(e).concat(t).map(n.pattern.convertToPositivePattern)}function A(e){return e.reduce((e,t)=>{const r=n.pattern.getBaseDirectory(t);return r in e?e[r].push(t):e[r]=[t],e},{})}function a(e,t,r){return Object.keys(e).map(n=>c(n,e[n],t,r))}function c(e,t,r,i){return{dynamic:i,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(n.pattern.convertToNegativePattern))}}t.generate=function(e,t){const r=o(e),A=s(e,t.ignore),a=r.filter(e=>n.pattern.isStaticPattern(e,t)),c=r.filter(e=>n.pattern.isDynamicPattern(e,t)),u=i(a,A,!1),l=i(c,A,!0);return u.concat(l)},t.convertPatternsToTasks=i,t.getPositivePatterns=o,t.getNegativePatternsAsPositive=s,t.groupPatternsByBaseDirectory=A,t.convertPatternGroupsToTasks=a,t.convertPatternGroupToTask=c},58182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(82774),i=r(40545);class o extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),n=[];return new Promise((i,o)=>{const s=this.api(t,e,r);s.once("error",o),s.on("data",e=>n.push(r.transform(e))),s.once("end",()=>i(n))})}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},65989:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777),i=r(42585);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,r){const n=this._getMatcher(t),i=this._getNegativePatternsRe(r);return t=>this._filter(e,t,n,i)}_getMatcher(e){return new i.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){const t=e.filter(n.pattern.isAffectDepthOfReadingPattern);return n.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,r,i){const o=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(o))return!1;if(this._isSkippedSymbolicLink(t))return!1;const s=n.path.removeLeadingDotSegment(t.path);return!this._isSkippedByPositivePatterns(s,r)&&this._isSkippedByNegativePatterns(s,i)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){const r=e.split("/").length;return t.split("/").length-(""===e?0:r)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!n.pattern.matchAny(e,t)}}},37338:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){const r=n.pattern.convertPatternsToRe(e,this._micromatchOptions),i=n.pattern.convertPatternsToRe(t,this._micromatchOptions);return e=>this._filter(e,r,i)}_filter(e,t,r){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e))return!1;if(this._isSkippedByAbsoluteNegativePatterns(e,r))return!1;const n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,r)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;const r=n.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(r,t)}_isMatchToPatterns(e,t){const r=n.path.removeLeadingDotSegment(e);return n.pattern.matchAny(r,t)}}},54345:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return n.errno.isEnoentCodeError(e)||this._settings.suppressErrors}}},34789:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t,r){this._patterns=e,this._settings=t,this._micromatchOptions=r,this._storage=[],this._fillStorage()}_fillStorage(){const e=n.pattern.expandPatternsWithBraceExpansion(this._patterns);for(const t of e){const e=this._getPatternSegments(t),r=this._splitSegmentsIntoSections(e);this._storage.push({complete:r.length<=1,pattern:t,segments:e,sections:r})}}_getPatternSegments(e){return n.pattern.getPatternParts(e,this._micromatchOptions).map(e=>n.pattern.isDynamicPattern(e,this._settings)?{dynamic:!0,pattern:e,patternRe:n.pattern.makeRe(e,this._micromatchOptions)}:{dynamic:!1,pattern:e})}_splitSegmentsIntoSections(e){return n.array.splitWhen(e,e=>e.dynamic&&n.pattern.hasGlobStar(e.pattern))}}},42585:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(34789);class i extends n.default{match(e){const t=e.split("/"),r=t.length,n=this._storage.filter(e=>!e.complete||e.segments.length>r);for(const e of n){const n=e.sections[0];if(!e.complete&&r>n.length)return!0;if(t.every((t,r)=>{const n=e.segments[r];return!(!n.dynamic||!n.patternRe.test(t))||!n.dynamic&&n.pattern===t}))return!0}return!1}}t.default=i},40545:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(65989),o=r(37338),s=r(54345),A=r(77541);t.default=class{constructor(e){this._settings=e,this.errorFilter=new s.default(this._settings),this.entryFilter=new o.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new i.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new A.default(this._settings)}_getRootDirectory(e){return n.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){const t="."===e.base?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},67652:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(82774),o=r(40545);class s extends o.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),i=this.api(t,e,r),o=new n.Readable({objectMode:!0,read:()=>{}});return i.once("error",e=>o.emit("error",e)).on("data",e=>o.emit("data",r.transform(e))).once("end",()=>o.emit("end")),o.once("close",()=>i.destroy()),o}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=s},81340:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29543),i=r(40545);class o extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e);return this.api(t,e,r).map(r.transform)}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},77541:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=n.path.makeAbsolute(this._settings.cwd,t),t=n.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}}},99458:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),o=r(16777);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new i.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return n.resolve(this._settings.cwd,e)}_makeEntry(e,t){const r={name:t,path:t,dirent:o.fs.createDirentFromStats(t,e)};return this._settings.stats&&(r.stats=e),r}_isFatalError(e){return!o.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},82774:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(53403),o=r(72897),s=r(99458);class A extends s.default{constructor(){super(...arguments),this._walkStream=o.walkStream,this._stat=i.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){const r=e.map(this._getFullEntryPath,this),i=new n.PassThrough({objectMode:!0});i._write=(n,o,s)=>this._getEntry(r[n],e[n],t).then(e=>{null!==e&&t.entryFilter(e)&&i.push(e),n===r.length-1&&i.end(),s()}).catch(s);for(let e=0;ethis._makeEntry(e,t)).catch(e=>{if(r.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,r)=>{this._stat(e,this._fsStatSettings,(e,n)=>null===e?t(n):r(e))})}}t.default=A},29543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(72897),o=r(99458);class s extends o.default{constructor(){super(...arguments),this._walkSync=i.walkSync,this._statSync=n.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){const r=[];for(const n of e){const e=this._getFullEntryPath(n),i=this._getEntry(e,n,t);null!==i&&t.entryFilter(i)&&r.push(i)}return r}_getEntry(e,t,r){try{const r=this._getStat(e);return this._makeEntry(r,t)}catch(e){if(r.errorFilter(e))return null;throw e}}_getStat(e){return this._statSync(e,this._fsStatSettings)}}t.default=s},43754:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(12087).cpus().length;t.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:n.lstat,lstatSync:n.lstatSync,stat:n.stat,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync};t.default=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,i),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return void 0===e?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},t.DEFAULT_FILE_SYSTEM_ADAPTER),e)}}},60919:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flatten=function(e){return e.reduce((e,t)=>[].concat(e,t),[])},t.splitWhen=function(e,t){const r=[[]];let n=0;for(const i of e)t(i)?(n++,r[n]=[]):r[n].push(i);return r}},35525:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEnoentCodeError=function(e){return"ENOENT"===e.code}},62524:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},16777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(60919);t.array=n;const i=r(35525);t.errno=i;const o=r(62524);t.fs=o;const s=r(71462);t.path=s;const A=r(14659);t.pattern=A;const a=r(2042);t.stream=a;const c=r(10217);t.string=c},71462:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;t.unixify=function(e){return e.replace(/\\/g,"/")},t.makeAbsolute=function(e,t){return n.resolve(e,t)},t.escape=function(e){return e.replace(i,"\\$2")},t.removeLeadingDotSegment=function(e){if("."===e.charAt(0)){const t=e.charAt(1);if("/"===t||"\\"===t)return e.slice(2)}return e}},14659:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(97098),o=r(2401),s=r(54722),A=/[*?]|^!/,a=/\[.*]/,c=/(?:^|[^!*+?@])\(.*\|.*\)/,u=/[!*+?@]\(.*\)/,l=/{.*(?:,|\.\.).*}/;function h(e,t={}){return!g(e,t)}function g(e,t={}){return!(!1!==t.caseSensitiveMatch&&!e.includes("\\"))||(!!(A.test(e)||a.test(e)||c.test(e))||(!(!1===t.extglob||!u.test(e))||!(!1===t.braceExpansion||!l.test(e))))}function f(e){return e.startsWith("!")&&"("!==e[1]}function p(e){return!f(e)}function d(e){return e.endsWith("/**")}function C(e){return o.braces(e,{expand:!0,nodupes:!0})}function E(e,t){return o.makeRe(e,t)}t.isStaticPattern=h,t.isDynamicPattern=g,t.convertToPositivePattern=function(e){return f(e)?e.slice(1):e},t.convertToNegativePattern=function(e){return"!"+e},t.isNegativePattern=f,t.isPositivePattern=p,t.getNegativePatterns=function(e){return e.filter(f)},t.getPositivePatterns=function(e){return e.filter(p)},t.getBaseDirectory=function(e){return i(e,{flipBackslashes:!1})},t.hasGlobStar=function(e){return e.includes("**")},t.endsWithSlashGlobStar=d,t.isAffectDepthOfReadingPattern=function(e){const t=n.basename(e);return d(e)||h(t)},t.expandPatternsWithBraceExpansion=function(e){return e.reduce((e,t)=>e.concat(C(t)),[])},t.expandBraceExpansion=C,t.getPatternParts=function(e,t){const r=s.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return 0===r.parts.length?[e]:r.parts},t.makeRe=E,t.convertPatternsToRe=function(e,t){return e.map(e=>E(e,t))},t.matchAny=function(e,t){return t.some(t=>t.test(e))}},2042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(55598);function i(e){e.forEach(e=>e.emit("close"))}t.merge=function(e){const t=n(e);return e.forEach(e=>{e.once("error",e=>t.emit("error",e))}),t.once("close",()=>i(e)),t.once("end",()=>i(e)),t}},10217:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isString=function(e){return"string"==typeof e},t.isEmpty=function(e){return""===e}},98360:(e,t,r)=>{"use strict";var n=r(2383);function i(){}function o(){this.value=null,this.callback=i,this.next=null,this.release=i,this.context=null;var e=this;this.worked=function(t,r){var n=e.callback;e.value=null,e.callback=i,n.call(e.context,t,r),e.release(e)}}e.exports=function(e,t,r){"function"==typeof e&&(r=t,t=e,e=null);var s=n(o),A=null,a=null,c=0,u={push:function(r,n){var o=s.get();o.context=e,o.release=l,o.value=r,o.callback=n||i,c===u.concurrency||u.paused?a?(a.next=o,a=o):(A=o,a=o,u.saturated()):(c++,t.call(e,o.value,o.worked))},drain:i,saturated:i,pause:function(){u.paused=!0},paused:!1,concurrency:r,running:function(){return c},resume:function(){if(!u.paused)return;u.paused=!1;for(var e=0;e{"use strict";class n{constructor(e,t,r){this.__specs=e||{},Object.keys(this.__specs).forEach(e=>{if("string"==typeof this.__specs[e]){const t=this.__specs[e],r=this.__specs[t];if(!r)throw new Error(`Alias refers to invalid key: ${t} -> ${e}`);{const n=r.aliases||[];n.push(e,t),r.aliases=[...new Set(n)],this.__specs[e]=r}}}),this.__opts=t||{},this.__providers=A(r.filter(e=>null!=e&&"object"==typeof e)),this.__isFiggyPudding=!0}get(e){return i(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[r,n]of this.entries())e.call(t,n,r,this)}toJSON(){const e={};return this.forEach((t,r)=>{e[r]=t}),e}*entries(e){for(let e of Object.keys(this.__specs))yield[e,this.get(e)];const t=e||this.__opts.other;if(t){const e=new Set;for(let r of this.__providers){const n=r.entries?r.entries(t):a(r);for(let[r,i]of n)t(r)&&!e.has(r)&&(e.add(r),yield[r,i])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new n(this.__specs,this.__opts,A(this.__providers).concat(e)),s)}}try{const e=r(31669);n.prototype[e.inspect.custom]=function(t,r){return this[Symbol.toStringTag]+" "+e.inspect(this.toJSON(),r)}}catch(e){}function i(e,t,r){let n=e.__specs[t];if(!r||n||e.__opts.other&&e.__opts.other(t)){let r;n||(n={});for(let i of e.__providers){if(r=o(t,i),void 0===r&&n.aliases&&n.aliases.length)for(let e of n.aliases)if(e!==t&&(r=o(e,i),void 0!==r))break;if(void 0!==r)break}return void 0===r&&void 0!==n.default?"function"==typeof n.default?n.default(e):n.default:r}!function(e){throw Object.assign(new Error("invalid config key requested: "+e),{code:"EBADKEY"})}(t)}function o(e,t){let r;return r=t.__isFiggyPudding?i(t,e,!1):"function"==typeof t.get?t.get(e):t[e],r}const s={has:(e,t)=>t in e.__specs&&void 0!==i(e,t,!1),ownKeys:e=>Object.keys(e.__specs),get:(e,t)=>"symbol"==typeof t||"__"===t.slice(0,2)||t in n.prototype?e[t]:e.get(t),set(e,t,r){if("symbol"==typeof t||"__"===t.slice(0,2))return e[t]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};function A(e){const t=[];return e.forEach(e=>t.unshift(e)),t}function a(e){return Object.keys(e).map(t=>[t,e[t]])}e.exports=function(e,t){return function(...r){return new Proxy(new n(e,t,r),s)}}},51938:(e,t,r)=>{"use strict";const n=r(66349),{platform:i}=process,o={tick:"✔",cross:"✖",star:"★",square:"▇",squareSmall:"◻",squareSmallFilled:"◼",play:"▶",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",circleQuestionMark:"?⃝",bullet:"●",dot:"․",line:"─",ellipsis:"…",pointer:"❯",pointerSmall:"›",info:"ℹ",warning:"⚠",hamburger:"☰",smiley:"㋡",mustache:"෴",heart:"♥",nodejs:"⬢",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",questionMarkPrefix:"?⃝",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneSeventh:"⅐",oneEighth:"⅛",oneNinth:"⅑",oneTenth:"⅒",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞"},s={tick:"√",cross:"×",star:"*",square:"█",squareSmall:"[ ]",squareSmallFilled:"[█]",play:"►",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"─",ellipsis:"...",pointer:">",pointerSmall:"»",info:"i",warning:"‼",hamburger:"≡",smiley:"☺",mustache:"┌─┐",heart:o.heart,nodejs:"♦",arrowUp:o.arrowUp,arrowDown:o.arrowDown,arrowLeft:o.arrowLeft,arrowRight:o.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",questionMarkPrefix:"?",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};"linux"===i&&(o.questionMarkPrefix="?");const A="win32"===i?s:o;e.exports=Object.assign(e=>{if(A===o)return e;for(const[t,r]of Object.entries(o))r!==A[t]&&(e=e.replace(new RegExp(n(r),"g"),A[t]));return e},A),e.exports.main=o,e.exports.windows=s},52169:(e,t,r)=>{"use strict"; +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */const n=r(31669),i=r(84615),o=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=e=>"number"==typeof e||"string"==typeof e&&""!==e,A=e=>Number.isInteger(+e),a=e=>{let t=""+e,r=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++r];);return r>0},c=(e,t,r)=>{if(t>0){let r="-"===e[0]?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return!1===r?String(e):e},u=(e,t)=>{let r="-"===e[0]?"-":"";for(r&&(e=e.slice(1),t--);e.length{if(r)return i(e,t,{wrap:!1,...n});let o=String.fromCharCode(e);return e===t?o:`[${o}-${String.fromCharCode(t)}]`},h=(e,t,r)=>{if(Array.isArray(e)){let t=!0===r.wrap,n=r.capture?"":"?:";return t?`(${n}${e.join("|")})`:e.join("|")}return i(e,t,r)},g=(...e)=>new RangeError("Invalid range arguments: "+n.inspect(...e)),f=(e,t,r)=>{if(!0===r.strictRanges)throw g([e,t]);return[]},p=(e,t,r=1,n={})=>{let i=Number(e),o=Number(t);if(!Number.isInteger(i)||!Number.isInteger(o)){if(!0===n.strictRanges)throw g([e,t]);return[]}0===i&&(i=0),0===o&&(o=0);let s=i>o,A=String(e),f=String(t),p=String(r);r=Math.max(Math.abs(r),1);let d=a(A)||a(f)||a(p),C=d?Math.max(A.length,f.length,p.length):0,E=!1===d&&!1===((e,t,r)=>"string"==typeof e||"string"==typeof t||!0===r.stringify)(e,t,n),I=n.transform||(e=>t=>!0===e?Number(t):String(t))(E);if(n.toRegex&&1===r)return l(u(e,C),u(t,C),!0,n);let m={negatives:[],positives:[]},y=[],w=0;for(;s?i>=o:i<=o;)!0===n.toRegex&&r>1?m[(B=i)<0?"negatives":"positives"].push(Math.abs(B)):y.push(c(I(i,w),C,E)),i=s?i-r:i+r,w++;var B;return!0===n.toRegex?r>1?((e,t)=>{e.negatives.sort((e,t)=>et?1:0),e.positives.sort((e,t)=>et?1:0);let r,n=t.capture?"":"?:",i="",o="";return e.positives.length&&(i=e.positives.join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.join("|")})`),r=i&&o?`${i}|${o}`:i||o,t.wrap?`(${n}${r})`:r})(m,n):h(y,null,{wrap:!1,...n}):y},d=(e,t,r,n={})=>{if(null==t&&s(e))return[e];if(!s(e)||!s(t))return f(e,t,n);if("function"==typeof r)return d(e,t,1,{transform:r});if(o(r))return d(e,t,0,r);let i={...n};return!0===i.capture&&(i.wrap=!0),r=r||i.step||1,A(r)?A(e)&&A(t)?p(e,t,r,i):((e,t,r=1,n={})=>{if(!A(e)&&e.length>1||!A(t)&&t.length>1)return f(e,t,n);let i=n.transform||(e=>String.fromCharCode(e)),o=(""+e).charCodeAt(0),s=(""+t).charCodeAt(0),a=o>s,c=Math.min(o,s),u=Math.max(o,s);if(n.toRegex&&1===r)return l(c,u,!1,n);let g=[],p=0;for(;a?o>=s:o<=s;)g.push(i(o,p)),o=a?o-r:o+r,p++;return!0===n.toRegex?h(g,null,{wrap:!1,options:n}):g})(e,t,Math.max(Math.abs(r),1),i):null==r||o(r)?d(e,t,1,r):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(r,i)};e.exports=d},50683:e=>{e.exports=function(e){return[...e].reduce((e,[t,r])=>(e[t]=r,e),{})}},13302:(e,t,r)=>{e.exports=r(35747).constants||r(27619)},28123:(e,t,r)=>{"use strict";const n=r(44380),i=r(28614).EventEmitter,o=r(35747),s=process.binding("fs"),A=(s.writeBuffers,s.FSReqWrap),a=Symbol("_autoClose"),c=Symbol("_close"),u=Symbol("_ended"),l=Symbol("_fd"),h=Symbol("_finished"),g=Symbol("_flags"),f=Symbol("_flush"),p=Symbol("_handleChunk"),d=Symbol("_makeBuf"),C=Symbol("_mode"),E=Symbol("_needDrain"),I=Symbol("_onerror"),m=Symbol("_onopen"),y=Symbol("_onread"),w=Symbol("_onwrite"),B=Symbol("_open"),Q=Symbol("_path"),v=Symbol("_pos"),D=Symbol("_queue"),b=Symbol("_read"),S=Symbol("_readSize"),k=Symbol("_reading"),x=Symbol("_remain"),F=Symbol("_size"),M=Symbol("_write"),N=Symbol("_writing"),R=Symbol("_defaultFlag");class K extends n{constructor(e,t){if(super(t=t||{}),this.writable=!1,"string"!=typeof e)throw new TypeError("path must be a string");this[l]="number"==typeof t.fd?t.fd:null,this[Q]=e,this[S]=t.readSize||16777216,this[k]=!1,this[F]="number"==typeof t.size?t.size:1/0,this[x]=this[F],this[a]="boolean"!=typeof t.autoClose||t.autoClose,"number"==typeof this[l]?this[b]():this[B]()}get fd(){return this[l]}get path(){return this[Q]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[B](){o.open(this[Q],"r",(e,t)=>this[m](e,t))}[m](e,t){e?this[I](e):(this[l]=t,this.emit("open",t),this[b]())}[d](){return Buffer.allocUnsafe(Math.min(this[S],this[x]))}[b](){if(!this[k]){this[k]=!0;const e=this[d]();if(0===e.length)return process.nextTick(()=>this[y](null,0,e));o.read(this[l],e,0,e.length,null,(e,t,r)=>this[y](e,t,r))}}[y](e,t,r){this[k]=!1,e?this[I](e):this[p](t,r)&&this[b]()}[c](){this[a]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}[I](e){this[k]=!0,this[c](),this.emit("error",e)}[p](e,t){let r=!1;return this[x]-=e,e>0&&(r=super.write(ethis[m](e,t))}[m](e,t){this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code?(this[g]="w",this[B]()):e?this[I](e):(this[l]=t,this.emit("open",t),this[f]())}end(e,t){e&&this.write(e,t),this[u]=!0,this[N]||this[D].length||"number"!=typeof this[l]||this[w](null,0)}write(e,t){return"string"==typeof e&&(e=new Buffer(e,t)),this[u]?(this.emit("error",new Error("write() after end()")),!1):null===this[l]||this[N]||this[D].length?(this[D].push(e),this[E]=!0,!1):(this[N]=!0,this[M](e),!0)}[M](e){o.write(this[l],e,0,e.length,this[v],(e,t)=>this[w](e,t))}[w](e,t){e?this[I](e):(null!==this[v]&&(this[v]+=t),this[D].length?this[f]():(this[N]=!1,this[u]&&!this[h]?(this[h]=!0,this[c](),this.emit("finish")):this[E]&&(this[E]=!1,this.emit("drain"))))}[f](){if(0===this[D].length)this[u]&&this[w](null,0);else if(1===this[D].length)this[M](this[D].pop());else{const e=this[D];this[D]=[],T(this[l],e,this[v],(e,t)=>this[w](e,t))}}[c](){this[a]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}}const T=(e,t,r,n)=>{const i=new A;i.oncomplete=(e,r)=>n(e,r,t),s.writeBuffers(e,t,r,i)};t.ReadStream=K,t.ReadStreamSync=class extends K{[B](){let e=!0;try{this[m](null,o.openSync(this[Q],"r")),e=!1}finally{e&&this[c]()}}[b](){let e=!0;try{if(!this[k]){for(this[k]=!0;;){const e=this[d](),t=0===e.length?0:o.readSync(this[l],e,0,e.length,null);if(!this[p](t,e))break}this[k]=!1}e=!1}finally{e&&this[c]()}}[c](){if(this[a]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}},t.WriteStream=L,t.WriteStreamSync=class extends L{[B](){let e;try{e=o.openSync(this[Q],this[g],this[C])}catch(e){if(this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code)return this[g]="w",this[B]();throw e}this[m](null,e)}[c](){if(this[a]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}[M](e){try{this[w](null,o.writeSync(this[l],e,0,e.length,this[v]))}catch(e){this[w](e,0)}}}},33198:(e,t,r)=>{e.exports=u,u.realpath=u,u.sync=l,u.realpathSync=l,u.monkeypatch=function(){n.realpath=u,n.realpathSync=l},u.unmonkeypatch=function(){n.realpath=i,n.realpathSync=o};var n=r(35747),i=n.realpath,o=n.realpathSync,s=process.version,A=/^v[0-5]\./.test(s),a=r(7343);function c(e){return e&&"realpath"===e.syscall&&("ELOOP"===e.code||"ENOMEM"===e.code||"ENAMETOOLONG"===e.code)}function u(e,t,r){if(A)return i(e,t,r);"function"==typeof t&&(r=t,t=null),i(e,t,(function(n,i){c(n)?a.realpath(e,t,r):r(n,i)}))}function l(e,t){if(A)return o(e,t);try{return o(e,t)}catch(r){if(c(r))return a.realpathSync(e,t);throw r}}},7343:(e,t,r)=>{var n=r(85622),i="win32"===process.platform,o=r(35747),s=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function A(e){return"function"==typeof e?e:function(){var e;if(s){var t=new Error;e=function(e){e&&(t.message=e.message,r(e=t))}}else e=r;return e;function r(e){if(e){if(process.throwDeprecation)throw e;if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);process.traceDeprecation?console.trace(t):console.error(t)}}}}()}n.normalize;if(i)var a=/(.*?)(?:[\/\\]+|$)/g;else a=/(.*?)(?:[\/]+|$)/g;if(i)var c=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;else c=/^[\/]*/;t.realpathSync=function(e,t){if(e=n.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return t[e];var r,s,A,u,l=e,h={},g={};function f(){var t=c.exec(e);r=t[0].length,s=t[0],A=t[0],u="",i&&!g[A]&&(o.lstatSync(A),g[A]=!0)}for(f();r=e.length)return t&&(t[g]=e),r(null,e);a.lastIndex=s;var n=a.exec(e);return h=u,u+=n[0],l=h+n[1],s=a.lastIndex,p[l]||t&&t[l]===l?process.nextTick(C):t&&Object.prototype.hasOwnProperty.call(t,l)?m(t[l]):o.lstat(l,E)}function E(e,n){if(e)return r(e);if(!n.isSymbolicLink())return p[l]=!0,t&&(t[l]=l),process.nextTick(C);if(!i){var s=n.dev.toString(32)+":"+n.ino.toString(32);if(f.hasOwnProperty(s))return I(null,f[s],l)}o.stat(l,(function(e){if(e)return r(e);o.readlink(l,(function(e,t){i||(f[s]=t),I(e,t)}))}))}function I(e,i,o){if(e)return r(e);var s=n.resolve(h,i);t&&(t[o]=s),m(s)}function m(t){e=n.resolve(t,e.slice(s)),d()}d()}},72137:(e,t,r)=>{"use strict";const{PassThrough:n}=r(92413);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:r}=e;const i="buffer"===r;let o=!1;t?o=!(r||i):r=r||"utf8",i&&(r=null);const s=new n({objectMode:o});r&&s.setEncoding(r);let A=0;const a=[];return s.on("data",e=>{a.push(e),o?A=a.length:A+=e.length}),s.getBufferedValue=()=>t?a:i?Buffer.concat(a,A):a.join(""),s.getBufferedLength=()=>A,s}},58764:(e,t,r)=>{"use strict";const n=r(50372),i=r(72137);class o extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function s(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let s;return await new Promise((A,a)=>{const c=e=>{e&&(e.bufferedData=s.getBufferedValue()),a(e)};s=n(e,i(t),e=>{e?c(e):A()}),s.on("data",()=>{s.getBufferedLength()>r&&c(new o)})}),s.getBufferedValue()}e.exports=s,e.exports.default=s,e.exports.buffer=(e,t)=>s(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>s(e,{...t,array:!0}),e.exports.MaxBufferError=o},72171:(e,t,r)=>{function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.alphasort=c,t.alphasorti=a,t.setopts=function(e,t,r){r||(r={});if(r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=!1!==r.strict,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0);e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),function(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]);e.ignore.length&&(e.ignore=e.ignore.map(u))}(e,r),e.changedCwd=!1;var o=process.cwd();n(r,"cwd")?(e.cwd=i.resolve(r.cwd),e.changedCwd=e.cwd!==o):e.cwd=o;e.root=r.root||i.resolve(e.cwd,"/"),e.root=i.resolve(e.root),"win32"===process.platform&&(e.root=e.root.replace(/\\/g,"/"));e.cwdAbs=s(e.cwd)?e.cwd:l(e,e.cwd),"win32"===process.platform&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/"));e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new A(t,r),e.options=e.minimatch.options},t.ownProp=n,t.makeAbs=l,t.finish=function(e){for(var t=e.nounique,r=t?[]:Object.create(null),n=0,i=e.matches.length;n{e.exports=I;var n=r(35747),i=r(33198),o=r(52670),s=(o.Minimatch,r(85870)),A=r(28614).EventEmitter,a=r(85622),c=r(42357),u=r(71471),l=r(131),h=r(72171),g=(h.alphasort,h.alphasorti,h.setopts),f=h.ownProp,p=r(24679),d=(r(31669),h.childrenIgnored),C=h.isIgnored,E=r(91162);function I(e,t,r){if("function"==typeof t&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return l(e,t)}return new y(e,t,r)}I.sync=l;var m=I.GlobSync=l.GlobSync;function y(e,t,r){if("function"==typeof t&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new m(e,t)}if(!(this instanceof y))return new y(e,t,r);g(this,e,t),this._didRealPath=!1;var n=this.minimatch.set.length;this.matches=new Array(n),"function"==typeof r&&(r=E(r),this.on("error",r),this.on("end",(function(e){r(null,e)})));var i=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(0===n)return s();for(var o=0;o1)return!0;for(var i=0;ithis.maxLength)return t();if(!this.stat&&f(this.cache,r)){var o=this.cache[r];if(Array.isArray(o)&&(o="DIR"),!i||"DIR"===o)return t(null,o);if(i&&"FILE"===o)return t()}var s=this.statCache[r];if(void 0!==s){if(!1===s)return t(null,s);var A=s.isDirectory()?"DIR":"FILE";return i&&"FILE"===A?t():t(null,A,s)}var a=this,c=p("stat\0"+r,(function(i,o){if(o&&o.isSymbolicLink())return n.stat(r,(function(n,i){n?a._stat2(e,r,null,o,t):a._stat2(e,r,n,i,t)}));a._stat2(e,r,i,o,t)}));c&&n.lstat(r,c)},y.prototype._stat2=function(e,t,r,n,i){if(r&&("ENOENT"===r.code||"ENOTDIR"===r.code))return this.statCache[t]=!1,i();var o="/"===e.slice(-1);if(this.statCache[t]=n,"/"===t.slice(-1)&&n&&!n.isDirectory())return i(null,!1,n);var s=!0;return n&&(s=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||s,o&&"FILE"===s?i():i(null,s,n)}},131:(e,t,r)=>{e.exports=f,f.GlobSync=p;var n=r(35747),i=r(33198),o=r(52670),s=(o.Minimatch,r(8401).Glob,r(31669),r(85622)),A=r(42357),a=r(71471),c=r(72171),u=(c.alphasort,c.alphasorti,c.setopts),l=c.ownProp,h=c.childrenIgnored,g=c.isIgnored;function f(e,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new p(e,t).found}function p(e,t){if(!e)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof p))return new p(e,t);if(u(this,e,t),this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var n=0;nthis.maxLength)return!1;if(!this.stat&&l(this.cache,t)){var i=this.cache[t];if(Array.isArray(i)&&(i="DIR"),!r||"DIR"===i)return i;if(r&&"FILE"===i)return!1}var o=this.statCache[t];if(!o){var s;try{s=n.lstatSync(t)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return this.statCache[t]=!1,!1}if(s&&s.isSymbolicLink())try{o=n.statSync(t)}catch(e){o=s}else o=s}this.statCache[t]=o;i=!0;return o&&(i=o.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||i,(!r||"FILE"!==i)&&i},p.prototype._mark=function(e){return c.mark(this,e)},p.prototype._makeAbs=function(e){return c.makeAbs(this,e)}},97098:(e,t,r)=>{"use strict";var n=r(18193),i=r(85622).posix.dirname,o="win32"===r(12087).platform(),s=/\\/g,A=/[\{\[].*[\/]*.*[\}\]]$/,a=/(^|[^\\])([\{\[]|\([^\)]+$)/,c=/\\([\*\?\|\[\]\(\)\{\}])/g;e.exports=function(e,t){Object.assign({flipBackslashes:!0},t).flipBackslashes&&o&&e.indexOf("/")<0&&(e=e.replace(s,"/")),A.test(e)&&(e+="/"),e+="a";do{e=i(e)}while(n(e)||a.test(e));return e.replace(c,"$1")}},22787:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747),o=r(85622),s=r(19347),A=r(46458),a=r(17234),c=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],u=n(i.readFile),l=(e,t)=>{const r=a(o.relative(t.cwd,o.dirname(t.fileName)));return e.split(/\r?\n/).filter(Boolean).filter(e=>!e.startsWith("#")).map((e=>t=>t.startsWith("!")?"!"+o.posix.join(e,t.slice(1)):o.posix.join(e,t))(r))},h=e=>e.reduce((e,t)=>(e.add(l(t.content,{cwd:t.cwd,fileName:t.filePath})),e),A()),g=(e,t)=>r=>e.ignores(a(o.relative(t,((e,t)=>{if(o.isAbsolute(t)){if(t.startsWith(e))return t;throw new Error(`Path ${t} is not in cwd ${e}`)}return o.join(e,t)})(t,r)))),f=({ignore:e=[],cwd:t=process.cwd()}={})=>({ignore:e,cwd:t});e.exports=async e=>{e=f(e);const t=await s("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}),r=await Promise.all(t.map(t=>(async(e,t)=>{const r=o.join(t,e);return{cwd:t,filePath:r,content:await u(r,"utf8")}})(t,e.cwd))),n=h(r);return g(n,e.cwd)},e.exports.sync=e=>{e=f(e);const t=s.sync("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}).map(t=>((e,t)=>{const r=o.join(t,e);return{cwd:t,filePath:r,content:i.readFileSync(r,"utf8")}})(t,e.cwd)),r=h(t);return g(r,e.cwd)}},18710:(e,t,r)=>{"use strict";const n=r(35747),i=r(39920),o=r(55598),s=r(8401),A=r(19347),a=r(66241),c=r(22787),{FilterStream:u,UniqueStream:l}=r(90330),h=()=>!1,g=e=>"!"===e[0],f=(e,t)=>{(e=>{if(!e.every(e=>"string"==typeof e))throw new TypeError("Patterns must be a string or an array of strings")})(e=i([].concat(e))),((e={})=>{if(!e.cwd)return;let t;try{t=n.statSync(e.cwd)}catch(e){return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")})(t);const r=[];t={ignore:[],expandDirectories:!0,...t};for(const[n,i]of e.entries()){if(g(i))continue;const o=e.slice(n).filter(g).map(e=>e.slice(1)),s={...t,ignore:t.ignore.concat(o)};r.push({pattern:i,options:s})}return r},p=(e,t)=>e.options.expandDirectories?((e,t)=>{let r={};return e.options.cwd&&(r.cwd=e.options.cwd),Array.isArray(e.options.expandDirectories)?r={...r,files:e.options.expandDirectories}:"object"==typeof e.options.expandDirectories&&(r={...r,...e.options.expandDirectories}),t(e.pattern,r)})(e,t):[e.pattern],d=e=>e&&e.gitignore?c.sync({cwd:e.cwd,ignore:e.ignore}):h,C=e=>t=>{const{options:r}=e;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=a.sync(r.ignore)),{pattern:t,options:r}};e.exports=async(e,t)=>{const r=f(e,t),[o,s]=await Promise.all([(async()=>t&&t.gitignore?c({cwd:t.cwd,ignore:t.ignore}):h)(),(async()=>{const e=await Promise.all(r.map(async e=>{const t=await p(e,a);return Promise.all(t.map(C(e)))}));return i(...e)})()]),u=await Promise.all(s.map(e=>A(e.pattern,e.options)));return i(...u).filter(e=>{return!o((t=e,t.stats instanceof n.Stats?t.path:t));var t})},e.exports.sync=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,a.sync).map(C(t));return e.concat(r)},[]),n=d(t);return r.reduce((e,t)=>i(e,A.sync(t.pattern,t.options)),[]).filter(e=>!n(e))},e.exports.stream=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,a.sync).map(C(t));return e.concat(r)},[]),n=d(t),i=new u(e=>!n(e)),s=new l;return o(r.map(e=>A.stream(e.pattern,e.options))).pipe(i).pipe(s)},e.exports.generateGlobTasks=f,e.exports.hasMagic=(e,t)=>[].concat(e).some(e=>s.hasMagic(e,t)),e.exports.gitignore=c},90330:(e,t,r)=>{"use strict";const{Transform:n}=r(92413);class i extends n{constructor(){super({objectMode:!0})}}e.exports={FilterStream:class extends i{constructor(e){super(),this._filter=e}_transform(e,t,r){this._filter(e)&&this.push(e),r()}},UniqueStream:class extends i{constructor(){super(),this._pushed=new Set}_transform(e,t,r){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),r()}}}},67078:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143),i=new Set([413,429,503]),o=e=>e instanceof n.HTTPError||e instanceof n.ParseError||e instanceof n.MaxRedirectsError;t.default=({attemptCount:e,retryOptions:t,error:r})=>{if(e>t.limit)return 0;const n=t.methods.includes(r.options.method),s=t.errorCodes.includes(r.code),A=o(r)&&t.statusCodes.includes(r.response.statusCode);if(!n||!s&&!A)return 0;if(o(r)){const{response:e}=r;if(e&&"retry-after"in e.headers&&i.has(e.statusCode)){let r=Number(e.headers["retry-after"]);return Number.isNaN(r)?r=Date.parse(e.headers["retry-after"])-Date.now():r*=1e3,void 0===t.maxRetryAfter||r>t.maxRetryAfter?0:r}if(413===e.statusCode)return 0}return 2**(e-1)*1e3+100*Math.random()}},39560:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189),i=r(27143),o=r(8859);o.knownHookEvents.includes("beforeRetry")||o.knownHookEvents.push("beforeRetry","afterResponse"),t.knownBodyTypes=["json","buffer","text"],t.parseBody=(e,t,r)=>{const{rawBody:n}=e;try{if("text"===t)return n.toString(r);if("json"===t)return 0===n.length?"":JSON.parse(n.toString());if("buffer"===t)return Buffer.from(n);throw new i.ParseError({message:`Unknown body type '${t}'`,name:"Error"},e)}catch(t){throw new i.ParseError(t,e)}};class s extends o.default{static normalizeArguments(e,t,r){const i=super.normalizeArguments(e,t,r);if(n.default.null_(i.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");n.assert.any([n.default.string,n.default.undefined],i.encoding),n.assert.any([n.default.boolean,n.default.undefined],i.resolveBodyOnly),n.assert.any([n.default.boolean,n.default.undefined],i.methodRewriting),n.assert.any([n.default.boolean,n.default.undefined],i.isStream);const{retry:o}=i;if(i.retry=r?{...r.retry}:{calculateDelay:e=>e.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},n.default.object(o)?(i.retry={...i.retry,...o},i.retry.methods=[...new Set(i.retry.methods.map(e=>e.toUpperCase()))],i.retry.statusCodes=[...new Set(i.retry.statusCodes)],i.retry.errorCodes=[...new Set(i.retry.errorCodes)]):n.default.number(o)&&(i.retry.limit=o),n.default.undefined(i.retry.maxRetryAfter)&&(i.retry.maxRetryAfter=Math.min(...[i.timeout.request,i.timeout.connect].filter(n.default.number))),n.default.object(i.pagination)){r&&(i.pagination={...r.pagination,...i.pagination});const{pagination:e}=i;if(!n.default.function_(e.transform))throw new Error("`options.pagination.transform` must be implemented");if(!n.default.function_(e.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!n.default.function_(e.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!n.default.function_(e.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return"json"===i.responseType&&void 0===i.headers.accept&&(i.headers.accept="application/json"),i}static mergeOptions(...e){let t;for(const r of e)t=s.normalizeArguments(void 0,r,t);return t}async _beforeError(e){e instanceof o.RequestError||(e=new o.RequestError(e.message,e,this)),this.emit("error",e)}}t.default=s},57019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143);t.default=function(e,...t){const r=(async()=>{if(e instanceof n.RequestError)try{for(const r of t)if(r)for(const t of r)e=await t(e)}catch(t){e=t}throw e})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}},74850:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(58764),o=r(59351),s=r(67078),A=r(27143),a=r(39560);t.PromisableRequest=a.default;const c=r(63227),u=["request","response","redirect","uploadProgress","downloadProgress"];t.default=function e(t){let r,l,h=0;const g=new n.EventEmitter,f=new o((n,o,p)=>{const d=()=>{const{throwHttpErrors:C}=t;C||(t.throwHttpErrors=!0);const E=new a.default(t.url,t);E._noPipe=!0,p(()=>E.destroy());const I=async e=>{try{for(const r of t.hooks.beforeError)e=await r(e)}catch(e){return void o(new A.RequestError(e.message,e,E))}o(e)};r=E,E.once("response",async r=>{if(r.retryCount=h,r.request.aborted)return;const o=()=>{const{statusCode:e}=r,n=t.followRedirect?299:399;return e>=200&&e<=n||304===e};let s;try{s=await i.buffer(E),r.rawBody=s}catch(e){return}try{r.body=a.parseBody(r,t.responseType,t.encoding)}catch(e){if(r.body=s.toString(),o())return void I(e)}try{for(const[n,i]of t.hooks.afterResponse.entries())r=await i(r,async r=>{const i=a.default.normalizeArguments(void 0,{...r,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},t);i.hooks.afterResponse=i.hooks.afterResponse.slice(0,n);for(const e of i.hooks.beforeRetry)await e(i);const o=e(i);return p(()=>{o.catch(()=>{}),o.cancel()}),o})}catch(e){return void I(new A.RequestError(e.message,e,E))}!C||o()?(l=r,n(t.resolveBodyOnly?r.body:r)):I(new A.HTTPError(r))}),E.once("error",e=>{if(f.isCanceled)return;if(!E.options)return void I(e);let r;h++;try{r=t.retry.calculateDelay({attemptCount:h,retryOptions:t.retry,error:e,computedValue:s.default({attemptCount:h,retryOptions:t.retry,error:e,computedValue:0})})}catch(t){return E.destroy(),void I(new A.RequestError(t.message,e,E))}if(r){E.destroy();setTimeout(async()=>{t.throwHttpErrors=C;try{for(const r of t.hooks.beforeRetry)await r(t,e,h)}catch(t){return E.destroy(),void I(new A.RequestError(t.message,e,E))}d()},r)}else h--,e instanceof A.HTTPError||(E.destroy(),I(e))}),c.default(E,g,u)};d()});f.on=(e,t)=>(g.on(e,t),f);const p=e=>{const r=(async()=>(await f,a.parseBody(l,e,t.encoding)))();return Object.defineProperties(r,Object.getOwnPropertyDescriptors(f)),r};return f.json=()=>(r.writableFinished||void 0!==t.headers.accept||(t.headers.accept="application/json"),p("json")),f.buffer=()=>p("buffer"),f.text=()=>p("text"),f},function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(27143))},27143:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351);t.CancelError=n.CancelError;const i=r(8859);t.RequestError=i.RequestError,t.MaxRedirectsError=i.MaxRedirectsError,t.CacheError=i.CacheError,t.UploadError=i.UploadError,t.TimeoutError=i.TimeoutError,t.HTTPError=i.HTTPError,t.ReadError=i.ReadError,t.UnsupportedProtocolError=i.UnsupportedProtocolError;class o extends i.RequestError{constructor(e,t){const{options:r}=t.request;super(`${e.message} in "${r.url.toString()}"`,e,t.request),this.name="ParseError",Object.defineProperty(this,"response",{enumerable:!1,value:t})}}t.ParseError=o},8859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31669),i=r(92413),o=r(35747),s=r(78835),A=r(98605),a=r(98605),c=r(57211),u=r(98298),l=r(53832),h=r(43261),g=r(11200),f=r(9453),p=r(55737),d=r(58764),C=r(8189),E=r(96596),I=r(35637),m=r(63227),y=r(32449),w=r(13656),B=r(80972),Q=r(30291),v=Symbol("request"),D=Symbol("response"),b=Symbol("responseSize"),S=Symbol("downloadedSize"),k=Symbol("bodySize"),x=Symbol("uploadedSize"),F=Symbol("serverResponsesPiped"),M=Symbol("unproxyEvents"),N=Symbol("isFromCache"),R=Symbol("cancelTimeouts"),K=Symbol("startedReading"),L=Symbol("stopReading"),T=Symbol("triggerRead"),P=Symbol("body"),U=Symbol("jobs"),_=Symbol("originalResponse");t.kIsNormalizedAlready=Symbol("isNormalizedAlready");const O=C.default.string(process.versions.brotli);t.withoutBody=new Set(["GET","HEAD"]),t.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError"];const j=new Q.default,Y=new Set([300,301,302,303,304,307,308]),G=["context","body","json","form"];class J extends Error{constructor(e,t,r){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,r instanceof ee?(Object.defineProperty(this,"request",{enumerable:!1,value:r}),Object.defineProperty(this,"response",{enumerable:!1,value:r[D]}),Object.defineProperty(this,"options",{enumerable:!1,value:r.options})):Object.defineProperty(this,"options",{enumerable:!1,value:r}),this.timings=null===(n=this.request)||void 0===n?void 0:n.timings,!C.default.undefined(t.stack)){const e=this.stack.indexOf(this.message)+this.message.length,r=this.stack.slice(e).split("\n").reverse(),n=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split("\n").reverse();for(;0!==n.length&&n[0]===r[0];)r.shift();this.stack=`${this.stack.slice(0,e)}${r.reverse().join("\n")}${n.reverse().join("\n")}`}}}t.RequestError=J;class H extends J{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}}t.MaxRedirectsError=H;class q extends J{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}}t.HTTPError=q;class z extends J{constructor(e,t){super(e.message,e,t),this.name="CacheError"}}t.CacheError=z;class W extends J{constructor(e,t){super(e.message,e,t),this.name="UploadError"}}t.UploadError=W;class V extends J{constructor(e,t,r){super(e.message,e,r),this.name="TimeoutError",this.event=e.event,this.timings=t}}t.TimeoutError=V;class X extends J{constructor(e,t){super(e.message,e,t),this.name="ReadError"}}t.ReadError=X;class Z extends J{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}}t.UnsupportedProtocolError=Z;const $=["socket","connect","continue","information","upgrade","timeout"];class ee extends i.Duplex{constructor(e,r={},n){super({highWaterMark:0}),this[S]=0,this[x]=0,this.requestInitialized=!1,this[F]=new Set,this.redirects=[],this[L]=!1,this[T]=!1,this[U]=[],this._progressCallbacks=[];const i=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",e=>{e.prependListener("data",i),e.on("data",s),e.prependListener("end",i),e.on("end",s)}),this.on("unpipe",e=>{e.off("data",i),e.off("data",s),e.off("end",i),e.off("end",s)}),this.on("pipe",e=>{e instanceof a.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});const{json:A,body:c,form:u}=r;(A||c||u)&&this._lockWrite(),(async r=>{var i;try{r.body instanceof o.ReadStream&&await(async e=>new Promise((t,r)=>{const n=e=>{r(e)};e.once("error",n),e.once("open",()=>{e.off("error",n),t()})}))(r.body),t.kIsNormalizedAlready in r?this.options=r:this.options=this.constructor.normalizeArguments(e,r,n);const{url:s}=this.options;if(!s)throw new TypeError("Missing `url` property");if(this.requestUrl=s.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed)return void(null===(i=this[v])||void 0===i||i.destroy());for(const e of this[U])e();this.requestInitialized=!0}catch(e){if(e instanceof J)return void this._beforeError(e);this.destroyed||this.destroy(e)}})(r)}static normalizeArguments(e,r,i){var o,A,a,c;const u=r;if(C.default.object(e)&&!C.default.urlInstance(e))r={...i,...e,...r};else{if(e&&r&&r.url)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...i,...r},e&&(r.url=e),C.default.urlInstance(r.url)&&(r.url=new s.URL(r.url.toString()))}if(!1===r.cache&&(r.cache=void 0),!1===r.dnsCache&&(r.dnsCache=void 0),C.assert.any([C.default.string,C.default.undefined],r.method),C.assert.any([C.default.object,C.default.undefined],r.headers),C.assert.any([C.default.string,C.default.urlInstance,C.default.undefined],r.prefixUrl),C.assert.any([C.default.object,C.default.undefined],r.cookieJar),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.searchParams),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.cache),C.assert.any([C.default.object,C.default.number,C.default.undefined],r.timeout),C.assert.any([C.default.object,C.default.undefined],r.context),C.assert.any([C.default.object,C.default.undefined],r.hooks),C.assert.any([C.default.boolean,C.default.undefined],r.decompress),C.assert.any([C.default.boolean,C.default.undefined],r.ignoreInvalidCookies),C.assert.any([C.default.boolean,C.default.undefined],r.followRedirect),C.assert.any([C.default.number,C.default.undefined],r.maxRedirects),C.assert.any([C.default.boolean,C.default.undefined],r.throwHttpErrors),C.assert.any([C.default.boolean,C.default.undefined],r.http2),C.assert.any([C.default.boolean,C.default.undefined],r.allowGetBody),C.assert.any([C.default.boolean,C.default.undefined],r.rejectUnauthorized),C.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(null==i?void 0:i.headers)?r.headers={...r.headers}:r.headers=p({...null==i?void 0:i.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(null==i?void 0:i.searchParams)){C.default.string(r.searchParams)||r.searchParams instanceof s.URLSearchParams||function(e){for(const t in e){const r=e[t];if(!(C.default.string(r)||C.default.number(r)||C.default.boolean(r)||C.default.null_(r)))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}(r.searchParams);const e=new s.URLSearchParams(r.searchParams);null===(o=null==i?void 0:i.searchParams)||void 0===o||o.forEach((t,r)=>{e.has(r)||e.append(r,t)}),r.searchParams=e}if(r.username=null!==(A=r.username)&&void 0!==A?A:"",r.password=null!==(a=r.password)&&void 0!==a?a:"",r.prefixUrl?(r.prefixUrl=r.prefixUrl.toString(),""===r.prefixUrl||r.prefixUrl.endsWith("/")||(r.prefixUrl+="/")):r.prefixUrl="",C.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=B.default(r.prefixUrl+r.url,r)}else(C.default.undefined(r.url)&&""!==r.prefixUrl||r.protocol)&&(r.url=B.default(r.prefixUrl,r));if(r.url){let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{const n=r.url;if(!n.href.startsWith(t))throw new Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new s.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if("unix:"===t&&(t="http:",r.url=new s.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),r.url.search){const e="_GOT_INTERNAL_TRIGGER_NORMALIZATION";r.url.searchParams.append(e,""),r.url.searchParams.delete(e)}if("http:"!==t&&"https:"!==t)throw new Z(r);""===r.username?r.username=r.url.username:r.url.username=r.username,""===r.password?r.password=r.url.password:r.url.password=r.password}const{cookieJar:l}=r;if(l){let{setCookie:e,getCookieString:t}=l;C.assert.function_(e),C.assert.function_(t),4===e.length&&0===t.length&&(e=n.promisify(e.bind(r.cookieJar)),t=n.promisify(t.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:t})}const{cache:f}=r;if(f&&(j.has(f)||j.set(f,new g((e,t)=>e[v](e,t),f))),!0===r.dnsCache)r.dnsCache=new h.default;else if(!(C.default.undefined(r.dnsCache)||r.dnsCache instanceof h.default))throw new TypeError("Parameter `dnsCache` must be a CacheableLookup instance or a boolean, got "+C.default(r.dnsCache));C.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout={...i.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});const d=r.hooks===(null==i?void 0:i.hooks);r.hooks={...r.hooks};for(const e of t.knownHookEvents)if(e in r.hooks){if(!C.default.array(r.hooks[e]))throw new TypeError(`Parameter \`${e}\` must be an Array, got ${C.default(r.hooks[e])}`);r.hooks[e]=[...r.hooks[e]]}else r.hooks[e]=[];if(i&&!d)for(const e of t.knownHookEvents){0!==i.hooks[e].length&&(r.hooks[e]=[...i.hooks[e],...r.hooks[e]])}if("followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent)for(const e in r.agent)if("http"!==e&&"https"!==e&&"http2"!==e)throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``);return r.maxRedirects=null!==(c=r.maxRedirects)&&void 0!==c?c:0,((e,t)=>{const r={};for(const t of e)if(t)for(const e of G)e in t&&(r[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,r)})([i,u],r),r}_lockWrite(){const e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){const{options:e}=this,{headers:r}=e,n=!C.default.undefined(e.form),o=!C.default.undefined(e.json),A=!C.default.undefined(e.body),a=n||o||A,c=t.withoutBody.has(e.method)&&!("GET"===e.method&&e.allowGetBody);if(this._cannotHaveBody=c,a){if(c)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([A,n,o].filter(e=>e).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(A&&!(e.body instanceof i.Readable)&&!C.default.string(e.body)&&!C.default.buffer(e.body)&&!I.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(n&&!C.default.object(e.form))throw new TypeError("The `form` option must be an Object");{const t=!C.default.string(r["content-type"]);A?(I.default(e.body)&&t&&(r["content-type"]="multipart/form-data; boundary="+e.body.getBoundary()),this[P]=e.body):n?(t&&(r["content-type"]="application/x-www-form-urlencoded"),this[P]=new s.URLSearchParams(e.form).toString()):(t&&(r["content-type"]="application/json"),this[P]=JSON.stringify(e.json));const i=await E.default(this[P],e.headers);C.default.undefined(r["content-length"])&&C.default.undefined(r["transfer-encoding"])&&(c||C.default.undefined(i)||(r["content-length"]=String(i)))}}else c?this._lockWrite():this._unlockWrite();this[k]=Number(r["content-length"])||void 0}async _onResponse(e){const{options:t}=this,{url:r}=t;this[_]=e,t.decompress&&(e=l(e));const n=e.statusCode,i=e;i.statusMessage=i.statusMessage?i.statusMessage:A.STATUS_CODES[n],i.url=t.url.toString(),i.requestUrl=this.requestUrl,i.redirectUrls=this.redirects,i.request=this,i.isFromCache=e.fromCache||!1,i.ip=this.ip,this[N]=i.isFromCache,this[b]=Number(e.headers["content-length"])||void 0,this[D]=e,e.once("end",()=>{this[b]=this[S],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",t=>{e.destroy(),this._beforeError(new X(t,this))}),e.once("aborted",()=>{this.aborted||this._beforeError(new X({name:"Error",message:"The server aborted the pending request"},this))}),this.emit("downloadProgress",this.downloadProgress);const o=e.headers["set-cookie"];if(C.default.object(t.cookieJar)&&o){let e=o.map(async e=>t.cookieJar.setCookie(e,r.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){return void this._beforeError(e)}}if(t.followRedirect&&e.headers.location&&Y.has(n)){e.resume(),this[v]&&(this[R](),delete this[v],this[M]());if(!(303===n&&"GET"!==t.method&&"HEAD"!==t.method)&&t.methodRewriting||(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form),this.redirects.length>=t.maxRedirects)return void this._beforeError(new H(this));try{const n=Buffer.from(e.headers.location,"binary").toString(),o=new s.URL(n,r),A=o.toString();decodeURI(A),o.hostname!==r.hostname&&("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(delete t.username,delete t.password)),this.redirects.push(A),t.url=o;for(const e of t.hooks.beforeRedirect)await e(t,i);this.emit("redirect",i,t),await this._makeRequest()}catch(e){return void this._beforeError(e)}return}const a=t.followRedirect?299:399,c=n>=200&&n<=a||304===n;if(!t.throwHttpErrors||c||(await this._beforeError(new q(i)),!this.destroyed)){e.on("readable",()=>{this[T]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(const r of this[F])if(!r.headersSent){for(const n in e.headers){const i=!t.decompress||"content-encoding"!==n,o=e.headers[n];i&&r.setHeader(n,o)}r.statusCode=n}}}_onRequest(e){const{options:t}=this,{timeout:r,url:n}=t;u.default(e),this[R]=y.default(e,r,n);const i=t.cache?"cacheableResponse":"response";e.once(i,e=>{this._onResponse(e)}),e.once("error",t=>{e.destroy(),t=t instanceof y.TimeoutError?new V(t,this.timings,this):new J(t.message,t,this),this._beforeError(t)}),this[M]=m.default(e,this,$),this[v]=e,this.emit("uploadProgress",this.uploadProgress);const o=this[P],s=0===this.redirects.length?this:e;C.default.nodeStream(o)?(o.pipe(s),o.once("error",e=>{this._beforeError(new W(e,this))}),o.once("end",()=>{delete t.body})):(this._unlockWrite(),C.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(s.end(),this._lockWrite()):(this._writeRequest(o,null,()=>{}),s.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((r,n)=>{Object.assign(t,w.default(e)),delete t.url;const i=j.get(t.cache)(t,e=>{const t=e,{req:n}=t;n&&n.emit("cacheableResponse",t),r(t)});t.url=e,i.once("error",n),i.once("request",r)})}async _makeRequest(){var e;const{options:t}=this,{url:r,headers:n,request:i,agent:o,timeout:s}=t;for(const e in n)if(C.default.undefined(n[e]))delete n[e];else if(C.default.null_(n[e]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(t.decompress&&C.default.undefined(n["accept-encoding"])&&(n["accept-encoding"]=O?"gzip, deflate, br":"gzip, deflate"),t.cookieJar){const e=await t.cookieJar.getCookieString(t.url.toString());C.default.nonEmptyString(e)&&(t.headers.cookie=e)}for(const e of t.hooks.beforeRequest){const r=await e(t);if(!C.default.undefined(r)){t.request=()=>r;break}}if(t.dnsCache&&!("lookup"in t)&&(t.lookup=t.dnsCache.lookup),"unix"===r.hostname){const e=/(?.+?):(?.+)/.exec(`${r.pathname}${r.search}`);if(null==e?void 0:e.groups){const{socketPath:r,path:n}=e.groups;Object.assign(t,{socketPath:r,path:n,host:""})}}const a="https:"===r.protocol;let u;u=t.http2?f.auto:a?c.request:A.request;const l=null!==(e=t.request)&&void 0!==e?e:u,h=t.cache?this._createCacheableRequest:l;o&&!t.http2&&(t.agent=o[a?"https":"http"]),t[v]=l,delete t.request,delete t.timeout;try{let e=await h(r,t);C.default.undefined(e)&&(e=u(r,t)),t.request=i,t.timeout=s,t.agent=o,p=e,C.default.object(p)&&!("statusCode"in p)?this._onRequest(e):this.writable?(this.once("finish",()=>{this._onResponse(e)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(e)}catch(e){if(e instanceof g.CacheError)throw new z(e,this);throw new J(e.message,e,this)}var p}async _beforeError(e){this[L]=!0,e instanceof J||(e=new J(e.message,e,this));try{const{response:t}=e;t&&(t.setEncoding(this._readableState.encoding),t.rawBody=await d.buffer(t),t.body=t.rawBody.toString())}catch(e){}try{for(const t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new J(t.message,t,this)}this.destroyed||this.destroy(e)}_read(){this[T]=!0;const e=this[D];if(e&&!this[L]){let t;for(e.readableLength&&(this[T]=!1);null!==(t=e.read());){this[S]+=t.length,this[K]=!0;const e=this.downloadProgress;e.percent<1&&this.emit("downloadProgress",e),this.push(t)}}}_write(e,t,r){const n=()=>{this._writeRequest(e,t,r)};this.requestInitialized?n():this[U].push(n)}_writeRequest(e,t,r){this._progressCallbacks.push(()=>{this[x]+=Buffer.byteLength(e,t);const r=this.uploadProgress;r.percent<1&&this.emit("uploadProgress",r)}),this[v].write(e,t,e=>{e||0===this._progressCallbacks.length||this._progressCallbacks.shift()(),r(e)})}_final(e){const t=()=>{for(;0!==this._progressCallbacks.length;)this._progressCallbacks.shift()();v in this?this[v].end(t=>{t||(this[k]=this[x],this.emit("uploadProgress",this.uploadProgress),this[v].emit("upload-complete")),e(t)}):e()};this.requestInitialized?t():this[U].push(t)}_destroy(e,t){var r;v in this&&(this[R](),(null===(r=this[D])||void 0===r?void 0:r.complete)||this[v].destroy()),null===e||C.default.undefined(e)||e instanceof J||(e=new J(e.message,e,this)),t(e)}get ip(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket.remoteAddress}get aborted(){var e,t,r;return(null!==(t=null===(e=this[v])||void 0===e?void 0:e.destroyed)&&void 0!==t?t:this.destroyed)&&!(null===(r=this[_])||void 0===r?void 0:r.complete)}get socket(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket}get downloadProgress(){let e;return e=this[b]?this[S]/this[b]:this[b]===this[S]?1:0,{percent:e,transferred:this[S],total:this[b]}}get uploadProgress(){let e;return e=this[k]?this[x]/this[k]:this[k]===this[x]?1:0,{percent:e,transferred:this[x],total:this[k]}}get timings(){var e;return null===(e=this[v])||void 0===e?void 0:e.timings}get isFromCache(){return this[N]}pipe(e,t){if(this[K])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof a.ServerResponse&&this[F].add(e),super.pipe(e,t)}unpipe(e){return e instanceof a.ServerResponse&&this[F].delete(e),super.unpipe(e),this}}t.default=ee},96596:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(31669),o=r(8189),s=r(35637),A=i.promisify(n.stat);t.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(o.default.string(e))return Buffer.byteLength(e);if(o.default.buffer(e))return e.length;if(s.default(e))return i.promisify(e.getLength.bind(e))();if(e instanceof n.ReadStream){const{size:t}=await A(e.path);return t}}},35637:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>n.default.nodeStream(e)&&n.default.function_(e.getBoundary)},80972:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(78835),i=["protocol","host","hostname","port","pathname","search"];t.default=(e,t)=>{var r,o;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${null!==(o=null!==(r=t.hostname)&&void 0!==r?r:t.host)&&void 0!==o?o:""}`}const s=new n.URL(e);if(t.path){const e=t.path.indexOf("?");-1===e?t.pathname=t.path:(t.pathname=t.path.slice(0,e),t.search=t.path.slice(e+1)),delete t.path}for(const e of i)t[e]&&(s[e]=t[e].toString());return s}},63227:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){const n={};for(const i of r)n[i]=(...e)=>{t.emit(i,...e)},e.on(i,n[i]);return()=>{for(const t of r)e.off(t,n[t])}}},32449:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(11631),i=r(46248),o=Symbol("reentry"),s=()=>{};class A extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}}t.TimeoutError=A,t.default=(e,t,r)=>{if(o in e)return s;e[o]=!0;const a=[],{once:c,unhandleAll:u}=i.default(),l=(e,t,r)=>{var n;const i=setTimeout(t,e,e,r);null===(n=i.unref)||void 0===n||n.call(i);const o=()=>{clearTimeout(i)};return a.push(o),o},{host:h,hostname:g}=r,f=(t,r)=>{e.destroy(new A(t,r))},p=()=>{for(const e of a)e();u()};if(e.once("error",t=>{if(p(),0===e.listenerCount("error"))throw t}),e.once("close",p),c(e,"response",e=>{c(e,"end",p)}),void 0!==t.request&&l(t.request,f,"request"),void 0!==t.socket){const r=()=>{f(t.socket,"socket")};e.setTimeout(t.socket,r),a.push(()=>{e.removeListener("timeout",r)})}return c(e,"socket",i=>{var o;const{socketPath:s}=e;if(i.connecting){const e=Boolean(null!=s?s:0!==n.isIP(null!==(o=null!=g?g:h)&&void 0!==o?o:""));if(void 0!==t.lookup&&!e&&void 0===i.address().address){const e=l(t.lookup,f,"lookup");c(i,"lookup",e)}if(void 0!==t.connect){const r=()=>l(t.connect,f,"connect");e?c(i,"connect",r()):c(i,"lookup",e=>{null===e&&c(i,"connect",r())})}void 0!==t.secureConnect&&"https:"===r.protocol&&c(i,"connect",()=>{const e=l(t.secureConnect,f,"secureConnect");c(i,"secureConnect",e)})}if(void 0!==t.send){const r=()=>l(t.send,f,"send");i.connecting?c(i,"connect",()=>{c(e,"upload-complete",r())}):c(e,"upload-complete",r())}}),void 0!==t.response&&c(e,"upload-complete",()=>{const r=l(t.response,f,"response");c(e,"response",r)}),p}},46248:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=()=>{const e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(const t of e){const{origin:e,event:r,fn:n}=t;e.removeListener(r,n)}e.length=0}}}},13656:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>{const t={protocol:(e=e).protocol,hostname:n.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return n.default.string(e.port)&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},30291:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){"object"==typeof e?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return"object"==typeof e?this.weakMap.get(e):this.map.get(e)}has(e){return"object"==typeof e?this.weakMap.has(e):this.map.has(e)}}},88190:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351),i=r(8189),o=r(74850),s=r(57019),A=r(8859),a=r(5571),c={RequestError:o.RequestError,CacheError:o.CacheError,ReadError:o.ReadError,HTTPError:o.HTTPError,MaxRedirectsError:o.MaxRedirectsError,TimeoutError:o.TimeoutError,ParseError:o.ParseError,CancelError:n.CancelError,UnsupportedProtocolError:o.UnsupportedProtocolError,UploadError:o.UploadError},{normalizeArguments:u,mergeOptions:l}=o.PromisableRequest,h=e=>e.isStream?new A.default(e.url,e):o.default(e),g=e=>"defaults"in e&&"options"in e.defaults,f=["get","post","put","patch","head","delete"];t.defaultHandler=(e,t)=>t(e);const p=(e,t)=>{if(e)for(const r of e)r(t)},d=e=>{e._rawHandlers=e.handlers,e.handlers=e.handlers.map(e=>(t,r)=>{let n;const i=e(t,e=>(n=r(e),n));if(i!==n&&!t.isStream&&n){const e=i,{then:t,catch:r,finally:o}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(n)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)),e.then=t,e.catch=r,e.finally=o}return i});const r=(t,r)=>{var n,a;let c=0;const l=t=>e.handlers[c++](t,c===e.handlers.length?h:l);i.default.plainObject(t)&&(r={...t,...r},t=void 0);try{let i;try{p(e.options.hooks.init,r),p(null===(n=null==r?void 0:r.hooks)||void 0===n?void 0:n.init,r)}catch(e){i=e}const s=u(t,r,e.options);if(s[A.kIsNormalizedAlready]=!0,i)throw new o.RequestError(i.message,i,s);return l(s)}catch(t){if(null==r?void 0:r.isStream)throw t;return s.default(t,e.options.hooks.beforeError,null===(a=null==r?void 0:r.hooks)||void 0===a?void 0:a.beforeError)}};r.extend=(...r)=>{const n=[e.options];let i,o=[...e._rawHandlers];for(const e of r)g(e)?(n.push(e.defaults.options),o.push(...e.defaults._rawHandlers),i=e.defaults.mutableDefaults):(n.push(e),"handlers"in e&&o.push(...e.handlers),i=e.mutableDefaults);return o=o.filter(e=>e!==t.defaultHandler),0===o.length&&o.push(t.defaultHandler),d({options:l(...n),handlers:o,mutableDefaults:Boolean(i)})},(r.paginate=async function*(t,n){let o=u(t,n,e.options);o.resolveBodyOnly=!1;const s=o.pagination;if(!i.default.object(s))throw new TypeError("`options.pagination` must be implemented");const A=[];let{countLimit:a}=s,c=0;for(;c{const n=[];for await(const i of r.paginate(e,t))n.push(i);return n},r.stream=(e,t)=>r(e,{...t,isStream:!0});for(const e of f)r[e]=(t,n)=>r(t,{...n,method:e}),r.stream[e]=(t,n)=>r(t,{...n,method:e,isStream:!0});return Object.assign(r,{...c,mergeOptions:l}),Object.defineProperty(r,"defaults",{value:e.mutableDefaults?e:a.default(e),writable:e.mutableDefaults,configurable:e.mutableDefaults,enumerable:!0}),r};t.default=d},22395:(e,t,r)=>{"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});const i=r(78835),o=r(88190),s={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,rejectUnauthorized:!0,pagination:{transform:e=>"json"===e.request.options.responseType?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,"link"))return!1;const t=e.headers.link.split(",");let r;for(const e of t){const t=e.split(";");if(t[1].includes("next")){r=t[0].trimStart().trim(),r=r.slice(1,-1);break}}if(r){return{url:new i.URL(r)}}return!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,requestLimit:1e4,stackAllItems:!0}},handlers:[o.defaultHandler],mutableDefaults:!1},A=o.default(s);t.default=A,e.exports=A,e.exports.default=A,n(r(88190)),n(r(74850))},5571:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=function e(t){for(const r of Object.values(t))(n.default.plainObject(r)||n.default.array(r))&&e(r);return Object.freeze(t)}},74988:e=>{e.exports&&(e.exports=function(){var e=3,t=4,r=12,n=13,i=16,o=17;function s(e,t){void 0===t&&(t=0);var r=e.charCodeAt(t);if(55296<=r&&r<=56319&&t=1){var i=r;return 55296<=(n=e.charCodeAt(t-1))&&n<=56319?1024*(n-55296)+(i-56320)+65536:i}return r}function A(s,A,a){var c=[s].concat(A).concat([a]),u=c[c.length-2],l=a,h=c.lastIndexOf(14);if(h>1&&c.slice(1,h).every((function(t){return t==e}))&&-1==[e,n,o].indexOf(s))return 2;var g=c.lastIndexOf(t);if(g>0&&c.slice(1,g).every((function(e){return e==t}))&&-1==[r,t].indexOf(u))return c.filter((function(e){return e==t})).length%2==1?3:4;if(0==u&&1==l)return 0;if(2==u||0==u||1==u)return 14==l&&A.every((function(t){return t==e}))?2:1;if(2==l||0==l||1==l)return 1;if(6==u&&(6==l||7==l||9==l||10==l))return 0;if(!(9!=u&&7!=u||7!=l&&8!=l))return 0;if((10==u||8==u)&&8==l)return 0;if(l==e||15==l)return 0;if(5==l)return 0;if(u==r)return 0;var f=-1!=c.indexOf(e)?c.lastIndexOf(e)-1:c.length-2;return-1!=[n,o].indexOf(c[f])&&c.slice(f+1,-1).every((function(t){return t==e}))&&14==l||15==u&&-1!=[i,o].indexOf(l)?0:-1!=A.indexOf(t)?2:u==t&&l==t?0:1}function a(s){return 1536<=s&&s<=1541||1757==s||1807==s||2274==s||3406==s||69821==s||70082<=s&&s<=70083||72250==s||72326<=s&&s<=72329||73030==s?r:13==s?0:10==s?1:0<=s&&s<=9||11<=s&&s<=12||14<=s&&s<=31||127<=s&&s<=159||173==s||1564==s||6158==s||8203==s||8206<=s&&s<=8207||8232==s||8233==s||8234<=s&&s<=8238||8288<=s&&s<=8292||8293==s||8294<=s&&s<=8303||55296<=s&&s<=57343||65279==s||65520<=s&&s<=65528||65529<=s&&s<=65531||113824<=s&&s<=113827||119155<=s&&s<=119162||917504==s||917505==s||917506<=s&&s<=917535||917632<=s&&s<=917759||918e3<=s&&s<=921599?2:768<=s&&s<=879||1155<=s&&s<=1159||1160<=s&&s<=1161||1425<=s&&s<=1469||1471==s||1473<=s&&s<=1474||1476<=s&&s<=1477||1479==s||1552<=s&&s<=1562||1611<=s&&s<=1631||1648==s||1750<=s&&s<=1756||1759<=s&&s<=1764||1767<=s&&s<=1768||1770<=s&&s<=1773||1809==s||1840<=s&&s<=1866||1958<=s&&s<=1968||2027<=s&&s<=2035||2070<=s&&s<=2073||2075<=s&&s<=2083||2085<=s&&s<=2087||2089<=s&&s<=2093||2137<=s&&s<=2139||2260<=s&&s<=2273||2275<=s&&s<=2306||2362==s||2364==s||2369<=s&&s<=2376||2381==s||2385<=s&&s<=2391||2402<=s&&s<=2403||2433==s||2492==s||2494==s||2497<=s&&s<=2500||2509==s||2519==s||2530<=s&&s<=2531||2561<=s&&s<=2562||2620==s||2625<=s&&s<=2626||2631<=s&&s<=2632||2635<=s&&s<=2637||2641==s||2672<=s&&s<=2673||2677==s||2689<=s&&s<=2690||2748==s||2753<=s&&s<=2757||2759<=s&&s<=2760||2765==s||2786<=s&&s<=2787||2810<=s&&s<=2815||2817==s||2876==s||2878==s||2879==s||2881<=s&&s<=2884||2893==s||2902==s||2903==s||2914<=s&&s<=2915||2946==s||3006==s||3008==s||3021==s||3031==s||3072==s||3134<=s&&s<=3136||3142<=s&&s<=3144||3146<=s&&s<=3149||3157<=s&&s<=3158||3170<=s&&s<=3171||3201==s||3260==s||3263==s||3266==s||3270==s||3276<=s&&s<=3277||3285<=s&&s<=3286||3298<=s&&s<=3299||3328<=s&&s<=3329||3387<=s&&s<=3388||3390==s||3393<=s&&s<=3396||3405==s||3415==s||3426<=s&&s<=3427||3530==s||3535==s||3538<=s&&s<=3540||3542==s||3551==s||3633==s||3636<=s&&s<=3642||3655<=s&&s<=3662||3761==s||3764<=s&&s<=3769||3771<=s&&s<=3772||3784<=s&&s<=3789||3864<=s&&s<=3865||3893==s||3895==s||3897==s||3953<=s&&s<=3966||3968<=s&&s<=3972||3974<=s&&s<=3975||3981<=s&&s<=3991||3993<=s&&s<=4028||4038==s||4141<=s&&s<=4144||4146<=s&&s<=4151||4153<=s&&s<=4154||4157<=s&&s<=4158||4184<=s&&s<=4185||4190<=s&&s<=4192||4209<=s&&s<=4212||4226==s||4229<=s&&s<=4230||4237==s||4253==s||4957<=s&&s<=4959||5906<=s&&s<=5908||5938<=s&&s<=5940||5970<=s&&s<=5971||6002<=s&&s<=6003||6068<=s&&s<=6069||6071<=s&&s<=6077||6086==s||6089<=s&&s<=6099||6109==s||6155<=s&&s<=6157||6277<=s&&s<=6278||6313==s||6432<=s&&s<=6434||6439<=s&&s<=6440||6450==s||6457<=s&&s<=6459||6679<=s&&s<=6680||6683==s||6742==s||6744<=s&&s<=6750||6752==s||6754==s||6757<=s&&s<=6764||6771<=s&&s<=6780||6783==s||6832<=s&&s<=6845||6846==s||6912<=s&&s<=6915||6964==s||6966<=s&&s<=6970||6972==s||6978==s||7019<=s&&s<=7027||7040<=s&&s<=7041||7074<=s&&s<=7077||7080<=s&&s<=7081||7083<=s&&s<=7085||7142==s||7144<=s&&s<=7145||7149==s||7151<=s&&s<=7153||7212<=s&&s<=7219||7222<=s&&s<=7223||7376<=s&&s<=7378||7380<=s&&s<=7392||7394<=s&&s<=7400||7405==s||7412==s||7416<=s&&s<=7417||7616<=s&&s<=7673||7675<=s&&s<=7679||8204==s||8400<=s&&s<=8412||8413<=s&&s<=8416||8417==s||8418<=s&&s<=8420||8421<=s&&s<=8432||11503<=s&&s<=11505||11647==s||11744<=s&&s<=11775||12330<=s&&s<=12333||12334<=s&&s<=12335||12441<=s&&s<=12442||42607==s||42608<=s&&s<=42610||42612<=s&&s<=42621||42654<=s&&s<=42655||42736<=s&&s<=42737||43010==s||43014==s||43019==s||43045<=s&&s<=43046||43204<=s&&s<=43205||43232<=s&&s<=43249||43302<=s&&s<=43309||43335<=s&&s<=43345||43392<=s&&s<=43394||43443==s||43446<=s&&s<=43449||43452==s||43493==s||43561<=s&&s<=43566||43569<=s&&s<=43570||43573<=s&&s<=43574||43587==s||43596==s||43644==s||43696==s||43698<=s&&s<=43700||43703<=s&&s<=43704||43710<=s&&s<=43711||43713==s||43756<=s&&s<=43757||43766==s||44005==s||44008==s||44013==s||64286==s||65024<=s&&s<=65039||65056<=s&&s<=65071||65438<=s&&s<=65439||66045==s||66272==s||66422<=s&&s<=66426||68097<=s&&s<=68099||68101<=s&&s<=68102||68108<=s&&s<=68111||68152<=s&&s<=68154||68159==s||68325<=s&&s<=68326||69633==s||69688<=s&&s<=69702||69759<=s&&s<=69761||69811<=s&&s<=69814||69817<=s&&s<=69818||69888<=s&&s<=69890||69927<=s&&s<=69931||69933<=s&&s<=69940||70003==s||70016<=s&&s<=70017||70070<=s&&s<=70078||70090<=s&&s<=70092||70191<=s&&s<=70193||70196==s||70198<=s&&s<=70199||70206==s||70367==s||70371<=s&&s<=70378||70400<=s&&s<=70401||70460==s||70462==s||70464==s||70487==s||70502<=s&&s<=70508||70512<=s&&s<=70516||70712<=s&&s<=70719||70722<=s&&s<=70724||70726==s||70832==s||70835<=s&&s<=70840||70842==s||70845==s||70847<=s&&s<=70848||70850<=s&&s<=70851||71087==s||71090<=s&&s<=71093||71100<=s&&s<=71101||71103<=s&&s<=71104||71132<=s&&s<=71133||71219<=s&&s<=71226||71229==s||71231<=s&&s<=71232||71339==s||71341==s||71344<=s&&s<=71349||71351==s||71453<=s&&s<=71455||71458<=s&&s<=71461||71463<=s&&s<=71467||72193<=s&&s<=72198||72201<=s&&s<=72202||72243<=s&&s<=72248||72251<=s&&s<=72254||72263==s||72273<=s&&s<=72278||72281<=s&&s<=72283||72330<=s&&s<=72342||72344<=s&&s<=72345||72752<=s&&s<=72758||72760<=s&&s<=72765||72767==s||72850<=s&&s<=72871||72874<=s&&s<=72880||72882<=s&&s<=72883||72885<=s&&s<=72886||73009<=s&&s<=73014||73018==s||73020<=s&&s<=73021||73023<=s&&s<=73029||73031==s||92912<=s&&s<=92916||92976<=s&&s<=92982||94095<=s&&s<=94098||113821<=s&&s<=113822||119141==s||119143<=s&&s<=119145||119150<=s&&s<=119154||119163<=s&&s<=119170||119173<=s&&s<=119179||119210<=s&&s<=119213||119362<=s&&s<=119364||121344<=s&&s<=121398||121403<=s&&s<=121452||121461==s||121476==s||121499<=s&&s<=121503||121505<=s&&s<=121519||122880<=s&&s<=122886||122888<=s&&s<=122904||122907<=s&&s<=122913||122915<=s&&s<=122916||122918<=s&&s<=122922||125136<=s&&s<=125142||125252<=s&&s<=125258||917536<=s&&s<=917631||917760<=s&&s<=917999?e:127462<=s&&s<=127487?t:2307==s||2363==s||2366<=s&&s<=2368||2377<=s&&s<=2380||2382<=s&&s<=2383||2434<=s&&s<=2435||2495<=s&&s<=2496||2503<=s&&s<=2504||2507<=s&&s<=2508||2563==s||2622<=s&&s<=2624||2691==s||2750<=s&&s<=2752||2761==s||2763<=s&&s<=2764||2818<=s&&s<=2819||2880==s||2887<=s&&s<=2888||2891<=s&&s<=2892||3007==s||3009<=s&&s<=3010||3014<=s&&s<=3016||3018<=s&&s<=3020||3073<=s&&s<=3075||3137<=s&&s<=3140||3202<=s&&s<=3203||3262==s||3264<=s&&s<=3265||3267<=s&&s<=3268||3271<=s&&s<=3272||3274<=s&&s<=3275||3330<=s&&s<=3331||3391<=s&&s<=3392||3398<=s&&s<=3400||3402<=s&&s<=3404||3458<=s&&s<=3459||3536<=s&&s<=3537||3544<=s&&s<=3550||3570<=s&&s<=3571||3635==s||3763==s||3902<=s&&s<=3903||3967==s||4145==s||4155<=s&&s<=4156||4182<=s&&s<=4183||4228==s||6070==s||6078<=s&&s<=6085||6087<=s&&s<=6088||6435<=s&&s<=6438||6441<=s&&s<=6443||6448<=s&&s<=6449||6451<=s&&s<=6456||6681<=s&&s<=6682||6741==s||6743==s||6765<=s&&s<=6770||6916==s||6965==s||6971==s||6973<=s&&s<=6977||6979<=s&&s<=6980||7042==s||7073==s||7078<=s&&s<=7079||7082==s||7143==s||7146<=s&&s<=7148||7150==s||7154<=s&&s<=7155||7204<=s&&s<=7211||7220<=s&&s<=7221||7393==s||7410<=s&&s<=7411||7415==s||43043<=s&&s<=43044||43047==s||43136<=s&&s<=43137||43188<=s&&s<=43203||43346<=s&&s<=43347||43395==s||43444<=s&&s<=43445||43450<=s&&s<=43451||43453<=s&&s<=43456||43567<=s&&s<=43568||43571<=s&&s<=43572||43597==s||43755==s||43758<=s&&s<=43759||43765==s||44003<=s&&s<=44004||44006<=s&&s<=44007||44009<=s&&s<=44010||44012==s||69632==s||69634==s||69762==s||69808<=s&&s<=69810||69815<=s&&s<=69816||69932==s||70018==s||70067<=s&&s<=70069||70079<=s&&s<=70080||70188<=s&&s<=70190||70194<=s&&s<=70195||70197==s||70368<=s&&s<=70370||70402<=s&&s<=70403||70463==s||70465<=s&&s<=70468||70471<=s&&s<=70472||70475<=s&&s<=70477||70498<=s&&s<=70499||70709<=s&&s<=70711||70720<=s&&s<=70721||70725==s||70833<=s&&s<=70834||70841==s||70843<=s&&s<=70844||70846==s||70849==s||71088<=s&&s<=71089||71096<=s&&s<=71099||71102==s||71216<=s&&s<=71218||71227<=s&&s<=71228||71230==s||71340==s||71342<=s&&s<=71343||71350==s||71456<=s&&s<=71457||71462==s||72199<=s&&s<=72200||72249==s||72279<=s&&s<=72280||72343==s||72751==s||72766==s||72873==s||72881==s||72884==s||94033<=s&&s<=94078||119142==s||119149==s?5:4352<=s&&s<=4447||43360<=s&&s<=43388?6:4448<=s&&s<=4519||55216<=s&&s<=55238?7:4520<=s&&s<=4607||55243<=s&&s<=55291?8:44032==s||44060==s||44088==s||44116==s||44144==s||44172==s||44200==s||44228==s||44256==s||44284==s||44312==s||44340==s||44368==s||44396==s||44424==s||44452==s||44480==s||44508==s||44536==s||44564==s||44592==s||44620==s||44648==s||44676==s||44704==s||44732==s||44760==s||44788==s||44816==s||44844==s||44872==s||44900==s||44928==s||44956==s||44984==s||45012==s||45040==s||45068==s||45096==s||45124==s||45152==s||45180==s||45208==s||45236==s||45264==s||45292==s||45320==s||45348==s||45376==s||45404==s||45432==s||45460==s||45488==s||45516==s||45544==s||45572==s||45600==s||45628==s||45656==s||45684==s||45712==s||45740==s||45768==s||45796==s||45824==s||45852==s||45880==s||45908==s||45936==s||45964==s||45992==s||46020==s||46048==s||46076==s||46104==s||46132==s||46160==s||46188==s||46216==s||46244==s||46272==s||46300==s||46328==s||46356==s||46384==s||46412==s||46440==s||46468==s||46496==s||46524==s||46552==s||46580==s||46608==s||46636==s||46664==s||46692==s||46720==s||46748==s||46776==s||46804==s||46832==s||46860==s||46888==s||46916==s||46944==s||46972==s||47e3==s||47028==s||47056==s||47084==s||47112==s||47140==s||47168==s||47196==s||47224==s||47252==s||47280==s||47308==s||47336==s||47364==s||47392==s||47420==s||47448==s||47476==s||47504==s||47532==s||47560==s||47588==s||47616==s||47644==s||47672==s||47700==s||47728==s||47756==s||47784==s||47812==s||47840==s||47868==s||47896==s||47924==s||47952==s||47980==s||48008==s||48036==s||48064==s||48092==s||48120==s||48148==s||48176==s||48204==s||48232==s||48260==s||48288==s||48316==s||48344==s||48372==s||48400==s||48428==s||48456==s||48484==s||48512==s||48540==s||48568==s||48596==s||48624==s||48652==s||48680==s||48708==s||48736==s||48764==s||48792==s||48820==s||48848==s||48876==s||48904==s||48932==s||48960==s||48988==s||49016==s||49044==s||49072==s||49100==s||49128==s||49156==s||49184==s||49212==s||49240==s||49268==s||49296==s||49324==s||49352==s||49380==s||49408==s||49436==s||49464==s||49492==s||49520==s||49548==s||49576==s||49604==s||49632==s||49660==s||49688==s||49716==s||49744==s||49772==s||49800==s||49828==s||49856==s||49884==s||49912==s||49940==s||49968==s||49996==s||50024==s||50052==s||50080==s||50108==s||50136==s||50164==s||50192==s||50220==s||50248==s||50276==s||50304==s||50332==s||50360==s||50388==s||50416==s||50444==s||50472==s||50500==s||50528==s||50556==s||50584==s||50612==s||50640==s||50668==s||50696==s||50724==s||50752==s||50780==s||50808==s||50836==s||50864==s||50892==s||50920==s||50948==s||50976==s||51004==s||51032==s||51060==s||51088==s||51116==s||51144==s||51172==s||51200==s||51228==s||51256==s||51284==s||51312==s||51340==s||51368==s||51396==s||51424==s||51452==s||51480==s||51508==s||51536==s||51564==s||51592==s||51620==s||51648==s||51676==s||51704==s||51732==s||51760==s||51788==s||51816==s||51844==s||51872==s||51900==s||51928==s||51956==s||51984==s||52012==s||52040==s||52068==s||52096==s||52124==s||52152==s||52180==s||52208==s||52236==s||52264==s||52292==s||52320==s||52348==s||52376==s||52404==s||52432==s||52460==s||52488==s||52516==s||52544==s||52572==s||52600==s||52628==s||52656==s||52684==s||52712==s||52740==s||52768==s||52796==s||52824==s||52852==s||52880==s||52908==s||52936==s||52964==s||52992==s||53020==s||53048==s||53076==s||53104==s||53132==s||53160==s||53188==s||53216==s||53244==s||53272==s||53300==s||53328==s||53356==s||53384==s||53412==s||53440==s||53468==s||53496==s||53524==s||53552==s||53580==s||53608==s||53636==s||53664==s||53692==s||53720==s||53748==s||53776==s||53804==s||53832==s||53860==s||53888==s||53916==s||53944==s||53972==s||54e3==s||54028==s||54056==s||54084==s||54112==s||54140==s||54168==s||54196==s||54224==s||54252==s||54280==s||54308==s||54336==s||54364==s||54392==s||54420==s||54448==s||54476==s||54504==s||54532==s||54560==s||54588==s||54616==s||54644==s||54672==s||54700==s||54728==s||54756==s||54784==s||54812==s||54840==s||54868==s||54896==s||54924==s||54952==s||54980==s||55008==s||55036==s||55064==s||55092==s||55120==s||55148==s||55176==s?9:44033<=s&&s<=44059||44061<=s&&s<=44087||44089<=s&&s<=44115||44117<=s&&s<=44143||44145<=s&&s<=44171||44173<=s&&s<=44199||44201<=s&&s<=44227||44229<=s&&s<=44255||44257<=s&&s<=44283||44285<=s&&s<=44311||44313<=s&&s<=44339||44341<=s&&s<=44367||44369<=s&&s<=44395||44397<=s&&s<=44423||44425<=s&&s<=44451||44453<=s&&s<=44479||44481<=s&&s<=44507||44509<=s&&s<=44535||44537<=s&&s<=44563||44565<=s&&s<=44591||44593<=s&&s<=44619||44621<=s&&s<=44647||44649<=s&&s<=44675||44677<=s&&s<=44703||44705<=s&&s<=44731||44733<=s&&s<=44759||44761<=s&&s<=44787||44789<=s&&s<=44815||44817<=s&&s<=44843||44845<=s&&s<=44871||44873<=s&&s<=44899||44901<=s&&s<=44927||44929<=s&&s<=44955||44957<=s&&s<=44983||44985<=s&&s<=45011||45013<=s&&s<=45039||45041<=s&&s<=45067||45069<=s&&s<=45095||45097<=s&&s<=45123||45125<=s&&s<=45151||45153<=s&&s<=45179||45181<=s&&s<=45207||45209<=s&&s<=45235||45237<=s&&s<=45263||45265<=s&&s<=45291||45293<=s&&s<=45319||45321<=s&&s<=45347||45349<=s&&s<=45375||45377<=s&&s<=45403||45405<=s&&s<=45431||45433<=s&&s<=45459||45461<=s&&s<=45487||45489<=s&&s<=45515||45517<=s&&s<=45543||45545<=s&&s<=45571||45573<=s&&s<=45599||45601<=s&&s<=45627||45629<=s&&s<=45655||45657<=s&&s<=45683||45685<=s&&s<=45711||45713<=s&&s<=45739||45741<=s&&s<=45767||45769<=s&&s<=45795||45797<=s&&s<=45823||45825<=s&&s<=45851||45853<=s&&s<=45879||45881<=s&&s<=45907||45909<=s&&s<=45935||45937<=s&&s<=45963||45965<=s&&s<=45991||45993<=s&&s<=46019||46021<=s&&s<=46047||46049<=s&&s<=46075||46077<=s&&s<=46103||46105<=s&&s<=46131||46133<=s&&s<=46159||46161<=s&&s<=46187||46189<=s&&s<=46215||46217<=s&&s<=46243||46245<=s&&s<=46271||46273<=s&&s<=46299||46301<=s&&s<=46327||46329<=s&&s<=46355||46357<=s&&s<=46383||46385<=s&&s<=46411||46413<=s&&s<=46439||46441<=s&&s<=46467||46469<=s&&s<=46495||46497<=s&&s<=46523||46525<=s&&s<=46551||46553<=s&&s<=46579||46581<=s&&s<=46607||46609<=s&&s<=46635||46637<=s&&s<=46663||46665<=s&&s<=46691||46693<=s&&s<=46719||46721<=s&&s<=46747||46749<=s&&s<=46775||46777<=s&&s<=46803||46805<=s&&s<=46831||46833<=s&&s<=46859||46861<=s&&s<=46887||46889<=s&&s<=46915||46917<=s&&s<=46943||46945<=s&&s<=46971||46973<=s&&s<=46999||47001<=s&&s<=47027||47029<=s&&s<=47055||47057<=s&&s<=47083||47085<=s&&s<=47111||47113<=s&&s<=47139||47141<=s&&s<=47167||47169<=s&&s<=47195||47197<=s&&s<=47223||47225<=s&&s<=47251||47253<=s&&s<=47279||47281<=s&&s<=47307||47309<=s&&s<=47335||47337<=s&&s<=47363||47365<=s&&s<=47391||47393<=s&&s<=47419||47421<=s&&s<=47447||47449<=s&&s<=47475||47477<=s&&s<=47503||47505<=s&&s<=47531||47533<=s&&s<=47559||47561<=s&&s<=47587||47589<=s&&s<=47615||47617<=s&&s<=47643||47645<=s&&s<=47671||47673<=s&&s<=47699||47701<=s&&s<=47727||47729<=s&&s<=47755||47757<=s&&s<=47783||47785<=s&&s<=47811||47813<=s&&s<=47839||47841<=s&&s<=47867||47869<=s&&s<=47895||47897<=s&&s<=47923||47925<=s&&s<=47951||47953<=s&&s<=47979||47981<=s&&s<=48007||48009<=s&&s<=48035||48037<=s&&s<=48063||48065<=s&&s<=48091||48093<=s&&s<=48119||48121<=s&&s<=48147||48149<=s&&s<=48175||48177<=s&&s<=48203||48205<=s&&s<=48231||48233<=s&&s<=48259||48261<=s&&s<=48287||48289<=s&&s<=48315||48317<=s&&s<=48343||48345<=s&&s<=48371||48373<=s&&s<=48399||48401<=s&&s<=48427||48429<=s&&s<=48455||48457<=s&&s<=48483||48485<=s&&s<=48511||48513<=s&&s<=48539||48541<=s&&s<=48567||48569<=s&&s<=48595||48597<=s&&s<=48623||48625<=s&&s<=48651||48653<=s&&s<=48679||48681<=s&&s<=48707||48709<=s&&s<=48735||48737<=s&&s<=48763||48765<=s&&s<=48791||48793<=s&&s<=48819||48821<=s&&s<=48847||48849<=s&&s<=48875||48877<=s&&s<=48903||48905<=s&&s<=48931||48933<=s&&s<=48959||48961<=s&&s<=48987||48989<=s&&s<=49015||49017<=s&&s<=49043||49045<=s&&s<=49071||49073<=s&&s<=49099||49101<=s&&s<=49127||49129<=s&&s<=49155||49157<=s&&s<=49183||49185<=s&&s<=49211||49213<=s&&s<=49239||49241<=s&&s<=49267||49269<=s&&s<=49295||49297<=s&&s<=49323||49325<=s&&s<=49351||49353<=s&&s<=49379||49381<=s&&s<=49407||49409<=s&&s<=49435||49437<=s&&s<=49463||49465<=s&&s<=49491||49493<=s&&s<=49519||49521<=s&&s<=49547||49549<=s&&s<=49575||49577<=s&&s<=49603||49605<=s&&s<=49631||49633<=s&&s<=49659||49661<=s&&s<=49687||49689<=s&&s<=49715||49717<=s&&s<=49743||49745<=s&&s<=49771||49773<=s&&s<=49799||49801<=s&&s<=49827||49829<=s&&s<=49855||49857<=s&&s<=49883||49885<=s&&s<=49911||49913<=s&&s<=49939||49941<=s&&s<=49967||49969<=s&&s<=49995||49997<=s&&s<=50023||50025<=s&&s<=50051||50053<=s&&s<=50079||50081<=s&&s<=50107||50109<=s&&s<=50135||50137<=s&&s<=50163||50165<=s&&s<=50191||50193<=s&&s<=50219||50221<=s&&s<=50247||50249<=s&&s<=50275||50277<=s&&s<=50303||50305<=s&&s<=50331||50333<=s&&s<=50359||50361<=s&&s<=50387||50389<=s&&s<=50415||50417<=s&&s<=50443||50445<=s&&s<=50471||50473<=s&&s<=50499||50501<=s&&s<=50527||50529<=s&&s<=50555||50557<=s&&s<=50583||50585<=s&&s<=50611||50613<=s&&s<=50639||50641<=s&&s<=50667||50669<=s&&s<=50695||50697<=s&&s<=50723||50725<=s&&s<=50751||50753<=s&&s<=50779||50781<=s&&s<=50807||50809<=s&&s<=50835||50837<=s&&s<=50863||50865<=s&&s<=50891||50893<=s&&s<=50919||50921<=s&&s<=50947||50949<=s&&s<=50975||50977<=s&&s<=51003||51005<=s&&s<=51031||51033<=s&&s<=51059||51061<=s&&s<=51087||51089<=s&&s<=51115||51117<=s&&s<=51143||51145<=s&&s<=51171||51173<=s&&s<=51199||51201<=s&&s<=51227||51229<=s&&s<=51255||51257<=s&&s<=51283||51285<=s&&s<=51311||51313<=s&&s<=51339||51341<=s&&s<=51367||51369<=s&&s<=51395||51397<=s&&s<=51423||51425<=s&&s<=51451||51453<=s&&s<=51479||51481<=s&&s<=51507||51509<=s&&s<=51535||51537<=s&&s<=51563||51565<=s&&s<=51591||51593<=s&&s<=51619||51621<=s&&s<=51647||51649<=s&&s<=51675||51677<=s&&s<=51703||51705<=s&&s<=51731||51733<=s&&s<=51759||51761<=s&&s<=51787||51789<=s&&s<=51815||51817<=s&&s<=51843||51845<=s&&s<=51871||51873<=s&&s<=51899||51901<=s&&s<=51927||51929<=s&&s<=51955||51957<=s&&s<=51983||51985<=s&&s<=52011||52013<=s&&s<=52039||52041<=s&&s<=52067||52069<=s&&s<=52095||52097<=s&&s<=52123||52125<=s&&s<=52151||52153<=s&&s<=52179||52181<=s&&s<=52207||52209<=s&&s<=52235||52237<=s&&s<=52263||52265<=s&&s<=52291||52293<=s&&s<=52319||52321<=s&&s<=52347||52349<=s&&s<=52375||52377<=s&&s<=52403||52405<=s&&s<=52431||52433<=s&&s<=52459||52461<=s&&s<=52487||52489<=s&&s<=52515||52517<=s&&s<=52543||52545<=s&&s<=52571||52573<=s&&s<=52599||52601<=s&&s<=52627||52629<=s&&s<=52655||52657<=s&&s<=52683||52685<=s&&s<=52711||52713<=s&&s<=52739||52741<=s&&s<=52767||52769<=s&&s<=52795||52797<=s&&s<=52823||52825<=s&&s<=52851||52853<=s&&s<=52879||52881<=s&&s<=52907||52909<=s&&s<=52935||52937<=s&&s<=52963||52965<=s&&s<=52991||52993<=s&&s<=53019||53021<=s&&s<=53047||53049<=s&&s<=53075||53077<=s&&s<=53103||53105<=s&&s<=53131||53133<=s&&s<=53159||53161<=s&&s<=53187||53189<=s&&s<=53215||53217<=s&&s<=53243||53245<=s&&s<=53271||53273<=s&&s<=53299||53301<=s&&s<=53327||53329<=s&&s<=53355||53357<=s&&s<=53383||53385<=s&&s<=53411||53413<=s&&s<=53439||53441<=s&&s<=53467||53469<=s&&s<=53495||53497<=s&&s<=53523||53525<=s&&s<=53551||53553<=s&&s<=53579||53581<=s&&s<=53607||53609<=s&&s<=53635||53637<=s&&s<=53663||53665<=s&&s<=53691||53693<=s&&s<=53719||53721<=s&&s<=53747||53749<=s&&s<=53775||53777<=s&&s<=53803||53805<=s&&s<=53831||53833<=s&&s<=53859||53861<=s&&s<=53887||53889<=s&&s<=53915||53917<=s&&s<=53943||53945<=s&&s<=53971||53973<=s&&s<=53999||54001<=s&&s<=54027||54029<=s&&s<=54055||54057<=s&&s<=54083||54085<=s&&s<=54111||54113<=s&&s<=54139||54141<=s&&s<=54167||54169<=s&&s<=54195||54197<=s&&s<=54223||54225<=s&&s<=54251||54253<=s&&s<=54279||54281<=s&&s<=54307||54309<=s&&s<=54335||54337<=s&&s<=54363||54365<=s&&s<=54391||54393<=s&&s<=54419||54421<=s&&s<=54447||54449<=s&&s<=54475||54477<=s&&s<=54503||54505<=s&&s<=54531||54533<=s&&s<=54559||54561<=s&&s<=54587||54589<=s&&s<=54615||54617<=s&&s<=54643||54645<=s&&s<=54671||54673<=s&&s<=54699||54701<=s&&s<=54727||54729<=s&&s<=54755||54757<=s&&s<=54783||54785<=s&&s<=54811||54813<=s&&s<=54839||54841<=s&&s<=54867||54869<=s&&s<=54895||54897<=s&&s<=54923||54925<=s&&s<=54951||54953<=s&&s<=54979||54981<=s&&s<=55007||55009<=s&&s<=55035||55037<=s&&s<=55063||55065<=s&&s<=55091||55093<=s&&s<=55119||55121<=s&&s<=55147||55149<=s&&s<=55175||55177<=s&&s<=55203?10:9757==s||9977==s||9994<=s&&s<=9997||127877==s||127938<=s&&s<=127940||127943==s||127946<=s&&s<=127948||128066<=s&&s<=128067||128070<=s&&s<=128080||128110==s||128112<=s&&s<=128120||128124==s||128129<=s&&s<=128131||128133<=s&&s<=128135||128170==s||128372<=s&&s<=128373||128378==s||128400==s||128405<=s&&s<=128406||128581<=s&&s<=128583||128587<=s&&s<=128591||128675==s||128692<=s&&s<=128694||128704==s||128716==s||129304<=s&&s<=129308||129310<=s&&s<=129311||129318==s||129328<=s&&s<=129337||129341<=s&&s<=129342||129489<=s&&s<=129501?n:127995<=s&&s<=127999?14:8205==s?15:9792==s||9794==s||9877<=s&&s<=9878||9992==s||10084==s||127752==s||127806==s||127859==s||127891==s||127908==s||127912==s||127979==s||127981==s||128139==s||128187<=s&&s<=128188||128295==s||128300==s||128488==s||128640==s||128658==s?i:128102<=s&&s<=128105?o:11}return this.nextBreak=function(e,t){if(void 0===t&&(t=0),t<0)return 0;if(t>=e.length-1)return e.length;for(var r,n,i=a(s(e,t)),o=[],c=t+1;c{"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return-1!==n&&(-1===i||n{"use strict";const t=[200,203,204,206,300,301,404,405,410,414,501],r=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],n={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},i={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function o(e){const t={};if(!e)return t;const r=e.trim().split(/\s*,\s*/);for(const e of r){const[r,n]=e.split(/\s*=\s*/,2);t[r]=void 0===n||n.replace(/^"|"$/g,"")}return t}function s(e){let t=[];for(const r in e){const n=e[r];t.push(!0===n?r:r+"="+n)}if(t.length)return t.join(", ")}e.exports=class{constructor(e,t,{shared:r,cacheHeuristic:n,immutableMinTimeToLive:i,ignoreCargoCult:A,trustServerDate:a,_fromObject:c}={}){if(c)this._fromObject(c);else{if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=!1!==r,this._trustServerDate=void 0===a||a,this._cacheHeuristic=void 0!==n?n:.1,this._immutableMinTtl=void 0!==i?i:864e5,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=o(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=o(e.headers["cache-control"]),A&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":s(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers["cache-control"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}}now(){return Date.now()}storable(){return!(this._reqcc["no-store"]||!("GET"===this._method||"HEAD"===this._method||"POST"===this._method&&this._hasExplicitExpiration())||-1===r.indexOf(this._status)||this._rescc["no-store"]||this._isShared&&this._rescc.private||this._isShared&&!this._noAuthorization&&!this._allowsStoringAuthenticated()||!(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||-1!==t.indexOf(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);const t=o(e.headers["cache-control"]);if(t["no-cache"]||/no-cache/.test(e.headers.pragma))return!1;if(t["max-age"]&&this.age()>t["max-age"])return!1;if(t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"])return!1;if(this.stale()){if(!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(!0===t["max-stale"]||t["max-stale"]>this.age()-this.maxAge())))return!1}return this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&"HEAD"===e.method)&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if("*"===this._resHeaders.vary)return!1;const t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(const r of t)if(e.headers[r]!==this._reqHeaders[r])return!1;return!0}_copyWithoutHopByHopHeaders(e){const t={};for(const r in e)n[r]||(t[r]=e[r]);if(e.connection){const r=e.connection.trim().split(/\s*,\s*/);for(const e of r)delete t[e]}if(t.warning){const e=t.warning.split(/,/).filter(e=>!/^\s*1[0-9][0-9]/.test(e));e.length?t.warning=e.join(",").trim():delete t.warning}return t}responseHeaders(){const e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>86400&&!this._hasExplicitExpiration()&&this.maxAge()>86400&&(e.warning=(e.warning?e.warning+", ":"")+'113 - "rfc7234 5.5.4"'),e.age=""+Math.round(t),e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){const e=Date.parse(this._resHeaders.date);if(isFinite(e)){const t=288e5;if(Math.abs(this._responseTime-e)e&&(e=t)}return e+(this.now()-this._responseTime)/1e3}_ageValue(){const e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"])return 0;if(this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable)return 0;if("*"===this._resHeaders.vary)return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);const e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){const r=Date.parse(this._resHeaders.expires);return Number.isNaN(r)||rr)return Math.max(e,(t-r)/1e3*this._cacheHeuristic)}return e}timeToLive(){return 1e3*Math.max(0,this.maxAge()-this.age())}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||1!==e.v)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=void 0!==e.imm?e.imm:864e5,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);const t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag);if(t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&"GET"!=this._method){if(delete t["if-modified-since"],t["if-none-match"]){const e=t["if-none-match"].split(/,/).filter(e=>!/^\s*W\//.test(e));e.length?t["if-none-match"]=e.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error("Response headers missing");let r=!1;if(void 0!==t.status&&304!=t.status?r=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?r=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?r=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?r=this._resHeaders["last-modified"]===t.headers["last-modified"]:this._resHeaders.etag||this._resHeaders["last-modified"]||t.headers.etag||t.headers["last-modified"]||(r=!0),!r)return{policy:new this.constructor(e,t),modified:304!=t.status,matches:!1};const n={};for(const e in this._resHeaders)n[e]=e in t.headers&&!i[e]?t.headers[e]:this._resHeaders[e];const o=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}},92967:(e,t,r)=>{"use strict";const n=r(28614),i=r(4016),o=r(97565),s=r(82905),A=Symbol("currentStreamsCount"),a=Symbol("request"),c=Symbol("cachedOriginSet"),u=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],l=(e,t,r)=>{if(t in e){const n=e[t].indexOf(r);if(-1!==n)return e[t].splice(n,1),0===e[t].length&&delete e[t],!0}return!1},h=(e,t,r)=>{t in e?e[t].push(r):e[t]=[r]},g=(e,t,r)=>t in e?e[t].filter(e=>!e.closed&&!e.destroyed&&e[c].includes(r)):[],f=(e,t,r)=>{if(t in e)for(const n of e[t])n[c].lengthr[c].includes(e))&&n[A]+r[A]<=r.remoteSettings.maxConcurrentStreams&&n.close()};class p extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:r=1,maxCachedTlsSessions:n=100}={}){super(),this.busySessions={},this.freeSessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=r,this.settings={enablePush:!1},this.tlsSessionCache=new s({maxSize:n})}static normalizeOrigin(e,t){return"string"==typeof e&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(const r of u)e[r]&&(t+=":"+e[r]);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;const r=g(this.busySessions,e,t).length,n=this.queue[e][t];r{Array.isArray(r)?(r=[...r],n()):r=[{resolve:n,reject:i}];const s=this.normalizeOptions(t),u=p.normalizeOrigin(e,t&&t.servername);if(void 0===u){for(const{reject:e}of r)e(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(s in this.freeSessions){const e=g(this.freeSessions,s,u);if(0!==e.length){const t=e.reduce((e,t)=>t.remoteSettings.maxConcurrentStreams>=e.remoteSettings.maxConcurrentStreams&&t[A]>e[A]?t:e);for(const{resolve:e}of r)e(t);return}}if(s in this.queue){if(u in this.queue[s])return void this.queue[s][u].listeners.push(...r)}else this.queue[s]={};const f=()=>{s in this.queue&&this.queue[s][u]===d&&(delete this.queue[s][u],0===Object.keys(this.queue[s]).length&&delete this.queue[s])},d=()=>{const n=`${u}:${s}`;let i,p=!1;try{const C=this.tlsSessionCache.get(n),E=o.connect(e,{createConnection:this.createConnection,settings:this.settings,session:C?C.session:void 0,...t});E[A]=0;const I=()=>E[c].reduce((e,t)=>Math.min(e,g(this.freeSessions,s,t).length),1/0)E[A]{setImmediate(()=>{this.tlsSessionCache.set(n,{session:e,servername:i})})}),E.socket.once("secureConnect",()=>{i=E.socket.servername,!1===i&&void 0!==C&&void 0!==C.servername&&(E.socket.servername=C.servername)}),E.once("error",e=>{if(!p)for(const{reject:t}of r)t(e);this.tlsSessionCache.delete(n)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(!p){const e=new Error("Session closed without receiving a SETTINGS frame");for(const{reject:t}of r)t(e)}f(),l(this.freeSessions,s,E),this._tryToCreateNewSession(s,u)});const y=()=>{if(s in this.queue)for(const e of E[c])if(e in this.queue[s]){const{listeners:t}=this.queue[s][e];for(;0!==t.length&&m();)t.shift().resolve(E);if(0===this.queue[s][e].listeners.length&&(delete this.queue[s][e],0===Object.keys(this.queue[s]).length)){delete this.queue[s];break}if(!m())break}};E.once("origin",()=>{E[c]=E.originSet,m()&&(this._closeCoveredSessions(s,E),y(),E.on("remoteSettings",()=>{this._closeCoveredSessions(s,E)}))}),E.once("remoteSettings",()=>{if(d.destroyed){const e=new Error("Agent has been destroyed");for(const t of r)t.reject(e);E.destroy()}else E[c]=E.originSet,this.emit("session",E),I()?y():0===this.maxFreeSessions?(y(),setImmediate(()=>{E.close()})):E.close(),f(),0!==r.length&&(this.getSession(u,t,r),r.length=0),p=!0,E.on("remoteSettings",()=>{m()&&l(this.busySessions,s,E)&&(I()?y():h(this.busySessions,s,E))})}),E[a]=E.request,E.request=e=>{const t=E[a](e,{endStream:!1});return E.ref(),++E[A],!m()&&l(this.freeSessions,s,E)&&h(this.busySessions,s,E),t.once("close",()=>{--E[A],m()&&(0===E[A]&&E.unref(),!l(this.busySessions,s,E)||E.destroyed||E.closed||(I()?(this._closeCoveredSessions(s,E),y()):E.close())),E.destroyed||E.closed||((e,t,r)=>{if(t in e)for(const n of e[t])r[c].lengthn[c].includes(e))&&r[A]+n[A]<=n.remoteSettings.maxConcurrentStreams&&r.close()})(this.freeSessions,s,E)}),t}}catch(e){for(const t of r)t.reject(e);f()}};d.listeners=r,d.completed=!1,d.destroyed=!1,this.queue[s][u]=d,this._tryToCreateNewSession(s,u)})}request(e,t,r){return new Promise((n,i)=>{this.getSession(e,t,[{reject:i,resolve:e=>{n(e.request(r))}}])})}createConnection(e,t){return p.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];const r=e.port||443,n=e.hostname||e.host;return void 0===t.servername&&(t.servername=n),i.connect(r,n,t)}closeFreeSessions(){for(const e of Object.values(this.freeSessions))for(const t of e)0===t[A]&&t.close()}destroy(e){for(const t of Object.values(this.busySessions))for(const r of t)r.destroy(e);for(const t of Object.values(this.freeSessions))for(const r of t)r.destroy(e);for(const e of Object.values(this.queue))for(const t of Object.values(e))t.destroyed=!0;this.queue={}}}e.exports={Agent:p,globalAgent:new p}},89018:(e,t,r)=>{"use strict";const n=r(98605),i=r(57211),o=r(19476),s=r(82905),A=r(46889),a=r(44294),c=r(95581),u=new s({maxSize:100}),l=new Map,h=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};const n=()=>{e.emit("free",t,r)};t.on("free",n);const i=()=>{e.removeSocket(t,r)};t.on("close",i);const o=()=>{e.removeSocket(t,r),t.off("close",i),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)};e.exports=async(e,t,r)=>{("string"==typeof e||e instanceof URL)&&(e=c(new URL(e))),"function"==typeof t&&(r=t,t=void 0);const s="https:"===(t={ALPNProtocols:["h2","http/1.1"],protocol:"https:",...e,...t,resolveSocket:!0}).protocol,g=t.agent;if(t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||a(t),t.port=t.port||(s?443:80),t._defaultAgent=s?i.globalAgent:n.globalAgent,g){if(g.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=g[s?"https":"http"]}if(s){if("h2"===await(async e=>{const t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!u.has(t)){if(l.has(t)){return(await l.get(t)).alpnProtocol}const{path:r,agent:n}=e;e.path=e.socketPath;const s=o(e);l.set(t,s);try{const{socket:o,alpnProtocol:A}=await s;if(u.set(t,A),e.path=r,"h2"===A)o.destroy();else{const{globalAgent:t}=i,r=i.Agent.prototype.createConnection;n?n.createConnection===r?h(n,o,e):o.destroy():t.createConnection===r?h(t,o,e):o.destroy()}return l.delete(t),A}catch(e){throw l.delete(t),e}}return u.get(t)})(t))return g&&(t.agent=g.http2),new A(t,r)}return n.request(t,r)},e.exports.protocolCache=u},46889:(e,t,r)=>{"use strict";const n=r(97565),{Writable:i}=r(92413),{Agent:o,globalAgent:s}=r(92967),A=r(75744),a=r(95581),c=r(17395),u=r(13110),{ERR_INVALID_ARG_TYPE:l,ERR_INVALID_PROTOCOL:h,ERR_HTTP_HEADERS_SENT:g,ERR_INVALID_HTTP_TOKEN:f,ERR_HTTP_INVALID_HEADER_VALUE:p,ERR_INVALID_CHAR:d}=r(91078),{HTTP2_HEADER_STATUS:C,HTTP2_HEADER_METHOD:E,HTTP2_HEADER_PATH:I,HTTP2_METHOD_CONNECT:m}=n.constants,y=Symbol("headers"),w=Symbol("origin"),B=Symbol("session"),Q=Symbol("options"),v=Symbol("flushedHeaders"),D=Symbol("jobs"),b=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,S=/[^\t\u0020-\u007E\u0080-\u00FF]/;e.exports=class extends i{constructor(e,t,r){super({autoDestroy:!1});const n="string"==typeof e||e instanceof URL;if(n&&(e=a(e instanceof URL?e:new URL(e))),"function"==typeof t||void 0===t?(r=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[B]=t.h2session;else if(!1===t.agent)this.agent=new o({maxFreeSessions:0});else if(void 0===t.agent||null===t.agent)"function"==typeof t.createConnection?(this.agent=new o({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=s;else{if("function"!=typeof t.agent.request)throw new l("options.agent",["Agent-like Object","undefined","false"],t.agent);this.agent=t.agent}if(t.port||(t.port=t.defaultPort||this.agent&&this.agent.defaultPort||443),t.host=t.hostname||t.host||"localhost",t.protocol&&"https:"!==t.protocol)throw new h(t.protocol,"https:");const{timeout:i}=t;if(t.timeout=void 0,this[y]=Object.create(null),this[D]=[],this.socket=null,this.connection=null,this.method=t.method,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(const[e,r]of Object.entries(t.headers))this.setHeader(e,r);t.auth&&!("authorization"in this[y])&&(this[y].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[Q]=t,443===t.port?(t.origin="https://"+t.host,":authority"in this[y]||(this[y][":authority"]=t.host)):(t.origin=`https://${t.host}:${t.port}`,":authority"in this[y]||(this[y][":authority"]=`${t.host}:${t.port}`)),this[w]=t,i&&this.setTimeout(i),r&&this.once("response",r),this[v]=!1}get method(){return this[y][E]}set method(e){e&&(this[y][E]=e.toUpperCase())}get path(){return this[y][I]}set path(e){e&&(this[y][I]=e)}_write(e,t,r){this.flushHeaders();const n=()=>this._request.write(e,t,r);this._request?n():this[D].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();const t=()=>this._request.end(e);this._request?t():this[D].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[v]||this.destroyed)return;this[v]=!0;const e=this.method===m,t=t=>{if(this._request=t,this.destroyed)return void t.destroy();e||c(t,this,["timeout","continue","close","error"]),t.once("response",(r,n,i)=>{const o=new A(this.socket,t.readableHighWaterMark);this.res=o,o.req=this,o.statusCode=r[C],o.headers=r,o.rawHeaders=i,o.once("end",()=>{this.aborted?(o.aborted=!0,o.emit("aborted")):(o.complete=!0,o.socket=null,o.connection=null)}),e?(o.upgrade=!0,this.emit("connect",o,t,Buffer.alloc(0))?this.emit("close"):t.destroy()):(t.on("data",e=>{o._dumped||o.push(e)||t.pause()}),t.once("end",()=>{o.push(null)}),this.emit("response",o)||o._dump())}),t.once("headers",e=>this.emit("information",{statusCode:e[C]})),t.once("trailers",(e,t,r)=>{const{res:n}=this;n.trailers=e,n.rawTrailers=r});const{socket:r}=t.session;this.socket=r,this.connection=r;for(const e of this[D])e();this.emit("socket",this.socket)};if(this[B])try{t(this[B].request(this[y],{endStream:!1}))}catch(e){this.emit("error",e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[w],this[Q],this[y]))}catch(e){this.emit("error",e)}}}getHeader(e){if("string"!=typeof e)throw new l("name","string",e);return this[y][e.toLowerCase()]}get headersSent(){return this[v]}removeHeader(e){if("string"!=typeof e)throw new l("name","string",e);if(this.headersSent)throw new g("remove");delete this[y][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new g("set");if("string"!=typeof e||!b.test(e)&&!u(e))throw new f("Header name",e);if(void 0===t)throw new p(t,e);if(S.test(t))throw new d("header content",e);this[y][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){const r=()=>this._request.setTimeout(e,t);return this._request?r():this[D].push(r),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}},75744:(e,t,r)=>{"use strict";const{Readable:n}=r(92413);e.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}}},9453:(e,t,r)=>{"use strict";const n=r(97565),i=r(92967),o=r(46889),s=r(75744),A=r(89018);e.exports={...n,ClientRequest:o,IncomingMessage:s,...i,request:(e,t,r)=>new o(e,t,r),get:(e,t,r)=>{const n=new o(e,t,r);return n.end(),n},auto:A}},44294:(e,t,r)=>{"use strict";const n=r(11631);e.exports=e=>{let t=e.host;const r=e.headers&&e.headers.host;if(r)if(r.startsWith("[")){t=-1===r.indexOf("]")?r:r.slice(1,-1)}else t=r.split(":",1)[0];return n.isIP(t)?"":t}},91078:e=>{"use strict";const t=(t,r,n)=>{e.exports[r]=class extends t{constructor(...e){super("string"==typeof n?n:n(e)),this.name=`${super.name} [${r}]`,this.code=r}}};t(TypeError,"ERR_INVALID_ARG_TYPE",e=>{const t=e[0].includes(".")?"property":"argument";let r=e[1];const n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`}),t(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`),t(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`),t(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`),t(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`),t(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)},13110:e=>{"use strict";e.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}},17395:e=>{"use strict";e.exports=(e,t,r)=>{for(const n of r)e.on(n,(...e)=>t.emit(n,...e))}},95581:e=>{"use strict";e.exports=e=>{const t={protocol:e.protocol,hostname:"string"==typeof e.hostname&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return"string"==typeof e.port&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},3870:(e,t,r)=>{"use strict";var n=r(44765).Buffer;t._dbcs=s;for(var i=new Array(256),o=0;o<256;o++)i[o]=-1;function s(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=i.slice(0),this.decodeTableSeq=[];for(var n=0;nt)return-1;for(var r=0,n=e.length;r0;e>>=8)t.push(255&e);0==t.length&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var o=r[t[n]];if(-1==o)r[t[n]]=-1e3-this.decodeTables.length,this.decodeTables.push(r=i.slice(0));else{if(!(o<=-1e3))throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16));r=this.decodeTables[-1e3-o]}}return r},s.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t&=255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)},s.prototype._getEncodeBucket=function(e){var t=e>>8;return void 0===this.encodeTable[t]&&(this.encodeTable[t]=i.slice(0)),this.encodeTable[t]},s.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=255&e;r[n]<=-10?this.encodeTableSeq[-10-r[n]][-1]=t:-1==r[n]&&(r[n]=t)},s.prototype._setEncodeSequence=function(e,t){var r,n=e[0],i=this._getEncodeBucket(n),o=255&n;i[o]<=-10?r=this.encodeTableSeq[-10-i[o]]:(r={},-1!==i[o]&&(r[-1]=i[o]),i[o]=-10-this.encodeTableSeq.length,this.encodeTableSeq.push(r));for(var s=1;s=0?this._setEncodeChar(o,s):o<=-1e3?this._fillEncodeTable(-1e3-o,s<<8,r):o<=-10&&this._setEncodeSequence(this.decodeTableSeq[-10-o],s))}},A.prototype.write=function(e){for(var t=n.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,i=this.seqObj,o=-1,s=0,A=0;;){if(-1===o){if(s==e.length)break;var a=e.charCodeAt(s++)}else{a=o;o=-1}if(55296<=a&&a<57344)if(a<56320){if(-1===r){r=a;continue}r=a,a=-1}else-1!==r?(a=65536+1024*(r-55296)+(a-56320),r=-1):a=-1;else-1!==r&&(o=a,a=-1,r=-1);var u=-1;if(void 0!==i&&-1!=a){var l=i[a];if("object"==typeof l){i=l;continue}"number"==typeof l?u=l:null==l&&void 0!==(l=i[-1])&&(u=l,o=a),i=void 0}else if(a>=0){var h=this.encodeTable[a>>8];if(void 0!==h&&(u=h[255&a]),u<=-10){i=this.encodeTableSeq[-10-u];continue}if(-1==u&&this.gb18030){var g=c(this.gb18030.uChars,a);if(-1!=g){u=this.gb18030.gbChars[g]+(a-this.gb18030.uChars[g]);t[A++]=129+Math.floor(u/12600),u%=12600,t[A++]=48+Math.floor(u/1260),u%=1260,t[A++]=129+Math.floor(u/10),u%=10,t[A++]=48+u;continue}}}-1===u&&(u=this.defaultCharSingleByte),u<256?t[A++]=u:u<65536?(t[A++]=u>>8,t[A++]=255&u):(t[A++]=u>>16,t[A++]=u>>8&255,t[A++]=255&u)}return this.seqObj=i,this.leadSurrogate=r,t.slice(0,A)},A.prototype.end=function(){if(-1!==this.leadSurrogate||void 0!==this.seqObj){var e=n.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[-1];void 0!==r&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=255&r)),this.seqObj=void 0}return-1!==this.leadSurrogate&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}},A.prototype.findIdx=c,a.prototype.write=function(e){var t=n.alloc(2*e.length),r=this.nodeIdx,i=this.prevBuf,o=this.prevBuf.length,s=-this.prevBuf.length;o>0&&(i=n.concat([i,e.slice(0,10)]));for(var A=0,a=0;A=0?e[A]:i[A+o];if((u=this.decodeTables[r][l])>=0);else if(-1===u)A=s,u=this.defaultCharUnicode.charCodeAt(0);else if(-2===u){var h=s>=0?e.slice(s,A+1):i.slice(s+o,A+1+o),g=12600*(h[0]-129)+1260*(h[1]-48)+10*(h[2]-129)+(h[3]-48),f=c(this.gb18030.gbChars,g);u=this.gb18030.uChars[f]+g-this.gb18030.gbChars[f]}else{if(u<=-1e3){r=-1e3-u;continue}if(!(u<=-10))throw new Error("iconv-lite internal error: invalid decoding table value "+u+" at "+r+"/"+l);for(var p=this.decodeTableSeq[-10-u],d=0;d>8;u=p[p.length-1]}if(u>65535){u-=65536;var C=55296+Math.floor(u/1024);t[a++]=255&C,t[a++]=C>>8,u=56320+u%1024}t[a++]=255&u,t[a++]=u>>8,r=0,s=A+1}return this.nodeIdx=r,this.prevBuf=s>=0?e.slice(s):i.slice(s+o),t.slice(0,a).toString("ucs2")},a.prototype.end=function(){for(var e="";this.prevBuf.length>0;){e+=this.defaultCharUnicode;var t=this.prevBuf.slice(1);this.prevBuf=n.alloc(0),this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.nodeIdx=0,e}},18476:(e,t,r)=>{"use strict";e.exports={shiftjis:{type:"_dbcs",table:function(){return r(49688)},encodeAdd:{"¥":92,"‾":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return r(20345)},encodeAdd:{"¥":92,"‾":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return r(2685)}},gbk:{type:"_dbcs",table:function(){return r(2685).concat(r(4764))}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return r(2685).concat(r(4764))},gb18030:function(){return r(39909)},encodeSkipVals:[128],encodeAdd:{"€":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return r(39192)}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return r(73691)}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return r(73691).concat(r(93701))},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}},15709:(e,t,r)=>{"use strict";for(var n=[r(70497),r(2682),r(46339),r(31658),r(1999),r(53522),r(3870),r(18476)],i=0;i{"use strict";var n=r(44765).Buffer;function i(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,"base64"===this.enc?this.encoder=a:"cesu8"===this.enc&&(this.enc="utf8",this.encoder=c,"💩"!==n.from("eda0bdedb2a9","hex").toString()&&(this.decoder=u,this.defaultCharUnicode=t.defaultCharUnicode))}e.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:i},i.prototype.encoder=A,i.prototype.decoder=s;var o=r(24304).StringDecoder;function s(e,t){o.call(this,t.enc)}function A(e,t){this.enc=t.enc}function a(e,t){this.prevStr=""}function c(e,t){}function u(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}o.prototype.end||(o.prototype.end=function(){}),s.prototype=o.prototype,A.prototype.write=function(e){return n.from(e,this.enc)},A.prototype.end=function(){},a.prototype.write=function(e){var t=(e=this.prevStr+e).length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),n.from(e,"base64")},a.prototype.end=function(){return n.from(this.prevStr,"base64")},c.prototype.write=function(e){for(var t=n.alloc(3*e.length),r=0,i=0;i>>6),t[r++]=128+(63&o)):(t[r++]=224+(o>>>12),t[r++]=128+(o>>>6&63),t[r++]=128+(63&o))}return t.slice(0,r)},c.prototype.end=function(){},u.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,i="",o=0;o0&&(i+=this.defaultCharUnicode,r=0),s<128?i+=String.fromCharCode(s):s<224?(t=31&s,r=1,n=1):s<240?(t=15&s,r=2,n=1):i+=this.defaultCharUnicode):r>0?(t=t<<6|63&s,n++,0===--r&&(i+=2===n&&t<128&&t>0||3===n&&t<2048?this.defaultCharUnicode:String.fromCharCode(t))):i+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,i},u.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}},31658:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||128!==e.chars.length&&256!==e.chars.length)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(128===e.chars.length){for(var r="",i=0;i<128;i++)r+=String.fromCharCode(i);e.chars=r+e.chars}this.decodeBuf=n.from(e.chars,"ucs2");var o=n.alloc(65536,t.defaultCharSingleByte.charCodeAt(0));for(i=0;i{"use strict";e.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�ݰħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Чš©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖרÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"},maccyrillic:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},macgreek:{type:"_sbcs",chars:"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"},maciceland:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macroman:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macromania:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macthai:{type:"_sbcs",chars:"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู\ufeff​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"},macturkish:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"},macukraine:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},koi8r:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8u:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8ru:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8t:{type:"_sbcs",chars:"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},armscii8:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"},rk1048:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},tcvn:{type:"_sbcs",chars:"\0ÚỤỪỬỮ\b\t\n\v\f\rỨỰỲỶỸÝỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"},georgianacademy:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},georgianps:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},pt154:{type:"_sbcs",chars:"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},viscii:{type:"_sbcs",chars:"\0ẲẴẪ\b\t\n\v\f\rỶỸỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"},iso646cn:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},iso646jp:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},hproman8:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"},macintosh:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},ascii:{type:"_sbcs",chars:"��������������������������������������������������������������������������������������������������������������������������������"},tis620:{type:"_sbcs",chars:"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"}}},1999:e=>{"use strict";e.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "},mik:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},93701:e=>{"use strict";e.exports=JSON.parse('[["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","■"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]]')},2685:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","!"#¥%",88," ̄"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]')},39192:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆÐªĦ"],["a8a6","IJ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]]')},73691:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"],["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21],["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]')},20345:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8ea1","。",62],["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨¬⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","ʼn♯♭♪†‡¶"],["a2fe","◯"],["a3b0","0",9],["a3c1","A",25],["a3e1","a",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"¬¦'""],["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","IJ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]]')},39909:e=>{"use strict";e.exports=JSON.parse('{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}')},4764:e=>{"use strict";e.exports=JSON.parse('[["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31," "],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]')},49688:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",128],["a1","。",62],["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"],["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨¬⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","ʼn♯♭♪†‡¶"],["81fc","◯"],["824f","0",9],["8260","A",25],["8281","a",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"¬¦'""],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]]')},2682:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(){}function o(){}function s(){this.overflowByte=-1}function A(e,t){this.iconv=t}function a(e,t){void 0===(e=e||{}).addBOM&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder("utf-16le",e)}function c(e,t){this.decoder=null,this.initialBytes=[],this.initialBytesLen=0,this.options=e||{},this.iconv=t.iconv}function u(e,t){var r=t||"utf-16le";if(e.length>=2)if(254==e[0]&&255==e[1])r="utf-16be";else if(255==e[0]&&254==e[1])r="utf-16le";else{for(var n=0,i=0,o=Math.min(e.length-e.length%2,64),s=0;sn?r="utf-16be":i{"use strict";var n=r(44765).Buffer;function i(e,t){this.iconv=t}t.utf7=i,t.unicode11utf7="utf7",i.prototype.encoder=s,i.prototype.decoder=A,i.prototype.bomAware=!0;var o=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function s(e,t){this.iconv=t.iconv}function A(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}s.prototype.write=function(e){return n.from(e.replace(o,function(e){return"+"+("+"===e?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))},s.prototype.end=function(){};for(var a=/[A-Za-z0-9\/+]/,c=[],u=0;u<256;u++)c[u]=a.test(String.fromCharCode(u));var l="+".charCodeAt(0),h="-".charCodeAt(0),g="&".charCodeAt(0);function f(e,t){this.iconv=t}function p(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=n.alloc(6),this.base64AccumIdx=0}function d(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}A.prototype.write=function(e){for(var t="",r=0,i=this.inBase64,o=this.base64Accum,s=0;s0&&(e=this.iconv.decode(n.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e},t.utf7imap=f,f.prototype.encoder=p,f.prototype.decoder=d,f.prototype.bomAware=!0,p.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,i=this.base64AccumIdx,o=n.alloc(5*e.length+10),s=0,A=0;A0&&(s+=o.write(r.slice(0,i).toString("base64").replace(/\//g,",").replace(/=+$/,""),s),i=0),o[s++]=h,t=!1),t||(o[s++]=a,a===g&&(o[s++]=h))):(t||(o[s++]=g,t=!0),t&&(r[i++]=a>>8,r[i++]=255&a,i==r.length&&(s+=o.write(r.toString("base64").replace(/\//g,","),s),i=0)))}return this.inBase64=t,this.base64AccumIdx=i,o.slice(0,s)},p.prototype.end=function(){var e=n.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=h,this.inBase64=!1),e.slice(0,t)};var C=c.slice();C[",".charCodeAt(0)]=!0,d.prototype.write=function(e){for(var t="",r=0,i=this.inBase64,o=this.base64Accum,s=0;s0&&(e=this.iconv.decode(n.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}},47773:(e,t)=>{"use strict";function r(e,t){this.encoder=e,this.addBOM=!0}function n(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}t.PrependBOM=r,r.prototype.write=function(e){return this.addBOM&&(e="\ufeff"+e,this.addBOM=!1),this.encoder.write(e)},r.prototype.end=function(){return this.encoder.end()},t.StripBOM=n,n.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||("\ufeff"===t[0]&&(t=t.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),t},n.prototype.end=function(){return this.decoder.end()}},819:(e,t,r)=>{"use strict";var n=r(64293).Buffer;e.exports=function(e){var t=void 0;e.supportsNodeEncodingsExtension=!(n.from||new n(0)instanceof Uint8Array),e.extendNodeEncodings=function(){if(!t){if(t={},!e.supportsNodeEncodingsExtension)return console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),void console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");var i={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};n.isNativeEncoding=function(e){return e&&i[e.toLowerCase()]};var o=r(64293).SlowBuffer;if(t.SlowBufferToString=o.prototype.toString,o.prototype.toString=function(r,i,o){return r=String(r||"utf8").toLowerCase(),n.isNativeEncoding(r)?t.SlowBufferToString.call(this,r,i,o):(void 0===i&&(i=0),void 0===o&&(o=this.length),e.decode(this.slice(i,o),r))},t.SlowBufferWrite=o.prototype.write,o.prototype.write=function(r,i,o,s){if(isFinite(i))isFinite(o)||(s=o,o=void 0);else{var A=s;s=i,i=o,o=A}i=+i||0;var a=this.length-i;if(o?(o=+o)>a&&(o=a):o=a,s=String(s||"utf8").toLowerCase(),n.isNativeEncoding(s))return t.SlowBufferWrite.call(this,r,i,o,s);if(r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var c=e.encode(r,s);return c.lengthl&&(o=l):o=l,r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var h=e.encode(r,s);return h.length{"use strict";var n=r(44765).Buffer,i=r(47773),o=e.exports;o.encodings=null,o.defaultCharUnicode="�",o.defaultCharSingleByte="?",o.encode=function(e,t,r){e=""+(e||"");var i=o.getEncoder(t,r),s=i.write(e),A=i.end();return A&&A.length>0?n.concat([s,A]):s},o.decode=function(e,t,r){"string"==typeof e&&(o.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),o.skipDecodeWarning=!0),e=n.from(""+(e||""),"binary"));var i=o.getDecoder(t,r),s=i.write(e),A=i.end();return A?s+A:s},o.encodingExists=function(e){try{return o.getCodec(e),!0}catch(e){return!1}},o.toEncoding=o.encode,o.fromEncoding=o.decode,o._codecDataCache={},o.getCodec=function(e){o.encodings||(o.encodings=r(15709));for(var t=o._canonicalizeEncoding(e),n={};;){var i=o._codecDataCache[t];if(i)return i;var s=o.encodings[t];switch(typeof s){case"string":t=s;break;case"object":for(var A in s)n[A]=s[A];n.encodingName||(n.encodingName=t),t=s.type;break;case"function":return n.encodingName||(n.encodingName=t),i=new s(n,o),o._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+t+"')")}}},o._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")},o.getEncoder=function(e,t){var r=o.getCodec(e),n=new r.encoder(t,r);return r.bomAware&&t&&t.addBOM&&(n=new i.PrependBOM(n,t)),n},o.getDecoder=function(e,t){var r=o.getCodec(e),n=new r.decoder(t,r);return!r.bomAware||t&&!1===t.stripBOM||(n=new i.StripBOM(n,t)),n};var s="undefined"!=typeof process&&process.versions&&process.versions.node;if(s){var A=s.split(".").map(Number);(A[0]>0||A[1]>=10)&&r(16034)(o),r(819)(o)}},16034:(e,t,r)=>{"use strict";var n=r(64293).Buffer,i=r(92413).Transform;function o(e,t){this.conv=e,(t=t||{}).decodeStrings=!1,i.call(this,t)}function s(e,t){this.conv=e,(t=t||{}).encoding=this.encoding="utf8",i.call(this,t)}e.exports=function(e){e.encodeStream=function(t,r){return new o(e.getEncoder(t,r),r)},e.decodeStream=function(t,r){return new s(e.getDecoder(t,r),r)},e.supportsStreams=!0,e.IconvLiteEncoderStream=o,e.IconvLiteDecoderStream=s,e._collect=s.prototype.collect},o.prototype=Object.create(i.prototype,{constructor:{value:o}}),o.prototype._transform=function(e,t,r){if("string"!=typeof e)return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(e);n&&n.length&&this.push(n),r()}catch(e){r(e)}},o.prototype._flush=function(e){try{var t=this.conv.end();t&&t.length&&this.push(t),e()}catch(t){e(t)}},o.prototype.collect=function(e){var t=[];return this.on("error",e),this.on("data",(function(e){t.push(e)})),this.on("end",(function(){e(null,n.concat(t))})),this},s.prototype=Object.create(i.prototype,{constructor:{value:s}}),s.prototype._transform=function(e,t,r){if(!n.isBuffer(e))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var i=this.conv.write(e);i&&i.length&&this.push(i,this.encoding),r()}catch(e){r(e)}},s.prototype._flush=function(e){try{var t=this.conv.end();t&&t.length&&this.push(t,this.encoding),e()}catch(t){e(t)}},s.prototype.collect=function(e){var t="";return this.on("error",e),this.on("data",(function(e){t+=e})),this.on("end",(function(){e(null,t)})),this}},46458:e=>{function t(e){return Array.isArray(e)?e:[e]}const r=/^\s+$/,n=/^\\!/,i=/^\\#/,o=/\r?\n/g,s=/^\.*\/|^\.+$/,A="undefined"!=typeof Symbol?Symbol.for("node-ignore"):"node-ignore",a=/([0-z])-([0-z])/g,c=[[/\\?\s+$/,e=>0===e.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,e=>"\\"+e],[/\[([^\]/]*)($|\])/g,(e,t,r)=>{return"]"===r?`[${n=t,n.replace(a,(e,t,r)=>t.charCodeAt(0)<=r.charCodeAt(0)?e:"")}]`:"\\"+e;var n}],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,e=>/\/$/.test(e)?e+"$":e+"(?=$|\\/$)"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6t+"[^\\/]*"],[/(\^|\\\/)?\\\*$/,(e,t)=>(t?t+"[^/]+":"[^/]*")+"(?=$|\\/$)"],[/\\\\\\/g,()=>"\\"]],u=Object.create(null),l=e=>"string"==typeof e;class h{constructor(e,t,r,n){this.origin=e,this.pattern=t,this.negative=r,this.regex=n}}const g=(e,t)=>{const r=e;let o=!1;0===e.indexOf("!")&&(o=!0,e=e.substr(1));const s=((e,t,r)=>{const n=u[e];if(n)return n;const i=c.reduce((t,r)=>t.replace(r[0],r[1].bind(e)),e);return u[e]=r?new RegExp(i,"i"):new RegExp(i)})(e=e.replace(n,"!").replace(i,"#"),0,t);return new h(r,e,o,s)},f=(e,t)=>{throw new t(e)},p=(e,t,r)=>{if(!l(e))return r(`path must be a string, but got \`${t}\``,TypeError);if(!e)return r("path must not be empty",TypeError);if(p.isNotRelative(e)){return r(`path should be a ${"`path.relative()`d"} string, but got "${t}"`,RangeError)}return!0},d=e=>s.test(e);p.isNotRelative=d,p.convert=e=>e;class C{constructor({ignorecase:e=!0}={}){var t,r,n;this._rules=[],this._ignorecase=e,t=this,r=A,n=!0,Object.defineProperty(t,r,{value:n}),this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[A])return this._rules=this._rules.concat(e._rules),void(this._added=!0);if((e=>e&&l(e)&&!r.test(e)&&0!==e.indexOf("#"))(e)){const t=g(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,t(l(e)?(e=>e.split(o))(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let r=!1,n=!1;return this._rules.forEach(i=>{const{negative:o}=i;if(n===o&&r!==n||o&&!r&&!n&&!t)return;i.regex.test(e)&&(r=!o,n=o)}),{ignored:r,unignored:n}}_test(e,t,r,n){const i=e&&p.convert(e);return p(i,e,f),this._t(i,t,r,n)}_t(e,t,r,n){if(e in t)return t[e];if(n||(n=e.split("/")),n.pop(),!n.length)return t[e]=this._testOne(e,r);const i=this._t(n.join("/")+"/",t,r,n);return t[e]=i.ignored?i:this._testOne(e,r)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return t(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}}const E=e=>new C(e),I=()=>!1;if(E.isPathValid=e=>p(e&&p.convert(e),e,I),E.default=E,e.exports=E,"undefined"!=typeof process&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){const e=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");p.convert=e;const t=/^[a-z]:\//i;p.isNotRelative=e=>t.test(e)||d(e)}},24679:(e,t,r)=>{var n=r(98984),i=Object.create(null),o=r(91162);function s(e){for(var t=e.length,r=[],n=0;nn?(r.splice(0,n),process.nextTick((function(){t.apply(null,o)}))):delete i[e]}}))}(e))}))},85870:(e,t,r)=>{try{var n=r(31669);if("function"!=typeof n.inherits)throw"";e.exports=n.inherits}catch(t){e.exports=r(48145)}},48145:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},9494:(e,t,r)=>{"use strict";var n=e.exports;n.prompts={},n.Separator=r(88249),n.ui={BottomBar:r(36896),Prompt:r(87380)},n.createPromptModule=function(e){var t=function(r,i){var o;try{o=new n.ui.Prompt(t.prompts,e)}catch(e){return Promise.reject(e)}var s=o.run(r,i);return s.ui=o,s};return t.prompts={},t.registerPrompt=function(e,r){return t.prompts[e]=r,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",r(89336)),this.registerPrompt("input",r(90013)),this.registerPrompt("number",r(90307)),this.registerPrompt("confirm",r(32107)),this.registerPrompt("rawlist",r(942)),this.registerPrompt("expand",r(73870)),this.registerPrompt("checkbox",r(33375)),this.registerPrompt("password",r(30428)),this.registerPrompt("editor",r(48748))},t.restoreDefaultPrompts(),t},n.prompt=n.createPromptModule(),n.registerPrompt=function(e,t){n.prompt.registerPrompt(e,t)},n.restoreDefaultPrompts=function(){n.prompt.restoreDefaultPrompts()}},1996:(e,t,r)=>{"use strict";var n={isString:r(221),isNumber:r(71044),extend:r(94501),isFunction:r(92533)};e.exports=class e{constructor(t,r){if(t instanceof e||"separator"===t.type)return t;n.isString(t)||n.isNumber(t)?(this.name=String(t),this.value=t,this.short=String(t)):n.extend(this,t,{name:t.name||t.value,value:"value"in t?t.value:t.name,short:t.short||t.name||t.value}),n.isFunction(t.disabled)?this.disabled=t.disabled(r):this.disabled=t.disabled}}},21027:(e,t,r)=>{"use strict";var n=r(42357),i={isNumber:r(71044),filter:r(59181),map:r(27869),find:r(98347)},o=r(88249),s=r(1996);e.exports=class{constructor(e,t){this.choices=e.map(e=>"separator"===e.type?(e instanceof o||(e=new o(e.line)),e):new s(e,t)),this.realChoices=this.choices.filter(o.exclude).filter(e=>!e.disabled),Object.defineProperty(this,"length",{get(){return this.choices.length},set(e){this.choices.length=e}}),Object.defineProperty(this,"realLength",{get(){return this.realChoices.length},set(){throw new Error("Cannot set `realLength` of a Choices collection")}})}getChoice(e){return n(i.isNumber(e)),this.realChoices[e]}get(e){return n(i.isNumber(e)),this.choices[e]}where(e){return i.filter(this.realChoices,e)}pluck(e){return i.map(this.realChoices,e)}indexOf(){return this.choices.indexOf.apply(this.choices,arguments)}forEach(){return this.choices.forEach.apply(this.choices,arguments)}filter(){return this.choices.filter.apply(this.choices,arguments)}find(e){return i.find(this.choices,e)}push(){var e=i.map(arguments,e=>new s(e));return this.choices.push.apply(this.choices,e),this.realChoices=this.choices.filter(o.exclude).filter(e=>!e.disabled),this.choices}}},88249:(e,t,r)=>{"use strict";var n=r(95882),i=r(51938);class o{constructor(e){this.type="separator",this.line=n.dim(e||new Array(15).join(i.line))}toString(){return this.line}}o.exclude=function(e){return"separator"!==e.type},e.exports=o},10485:(e,t,r)=>{"use strict";var n={assign:r(9682),defaults:r(99906),clone:r(22254)},i=r(95882),o=r(28855),{filter:s,flatMap:A,share:a,take:c,takeUntil:u}=r(20683),l=r(21027),h=r(32542);e.exports=class{constructor(e,t,r){n.assign(this,{answers:r,status:"pending"}),this.opt=n.defaults(n.clone(e),{validate:()=>!0,filter:e=>e,when:()=>!0,suffix:"",prefix:i.green("?")}),this.opt.name||this.throwParamError("name"),this.opt.message||(this.opt.message=this.opt.name+":"),Array.isArray(this.opt.choices)&&(this.opt.choices=new l(this.opt.choices,r)),this.rl=t,this.screen=new h(this.rl)}run(){return new Promise(e=>{this._run(t=>e(t))})}_run(e){e()}throwParamError(e){throw new Error("You must provide a `"+e+"` parameter")}close(){this.screen.releaseCursor()}handleSubmitEvents(e){var t=this,r=o(this.opt.validate),n=o(this.opt.filter),i=e.pipe(A(e=>n(e,t.answers).then(e=>r(e,t.answers).then(t=>({isValid:t,value:e}),t=>({isValid:t,value:e})),e=>({isValid:e}))),a()),l=i.pipe(s(e=>!0===e.isValid),c(1));return{success:l,error:i.pipe(s(e=>!0!==e.isValid),u(l))}}getQuestion(){var e=this.opt.prefix+" "+i.bold(this.opt.message)+this.opt.suffix+i.reset(" ");return null!=this.opt.default&&"answered"!==this.status&&("password"===this.opt.type?e+=i.italic.dim("[hidden] "):e+=i.dim("("+this.opt.default+") ")),e}}},33375:(e,t,r)=>{"use strict";var n={isArray:r(82664),map:r(27869),isString:r(221)},i=r(95882),o=r(61696),s=r(51938),{map:A,takeUntil:a}=r(20683),c=r(10485),u=r(92330),l=r(78635);e.exports=class extends c{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),n.isArray(this.opt.default)&&this.opt.choices.forEach((function(e){this.opt.default.indexOf(e.value)>=0&&(e.checked=!0)}),this),this.pointer=0,this.opt.default=null,this.paginator=new l(this.screen)}_run(e){this.done=e;var t=u(this.rl),r=this.handleSubmitEvents(t.line.pipe(A(this.getCurrentValue.bind(this))));return r.success.forEach(this.onEnd.bind(this)),r.error.forEach(this.onError.bind(this)),t.normalizedUpKey.pipe(a(r.success)).forEach(this.onUpKey.bind(this)),t.normalizedDownKey.pipe(a(r.success)).forEach(this.onDownKey.bind(this)),t.numberKey.pipe(a(r.success)).forEach(this.onNumberKey.bind(this)),t.spaceKey.pipe(a(r.success)).forEach(this.onSpaceKey.bind(this)),t.aKey.pipe(a(r.success)).forEach(this.onAllKey.bind(this)),t.iKey.pipe(a(r.success)).forEach(this.onInverseKey.bind(this)),o.hide(),this.render(),this.firstRender=!1,this}render(e){var t,r,o,A,a=this.getQuestion(),c="";if(this.spaceKeyPressed||(a+="(Press "+i.cyan.bold("")+" to select, "+i.cyan.bold("")+" to toggle all, "+i.cyan.bold("")+" to invert selection)"),"answered"===this.status)a+=i.cyan(this.selection.join(", "));else{var u=(t=this.opt.choices,r=this.pointer,o="",A=0,t.forEach((function(e,t){if("separator"===e.type)return A++,void(o+=" "+e+"\n");if(e.disabled)A++,o+=" - "+e.name,o+=" ("+(n.isString(e.disabled)?e.disabled:"Disabled")+")";else{var a=(e.checked?i.green(s.radioOn):s.radioOff)+" "+e.name;o+=t-A===r?i.cyan(s.pointer+a):" "+a}o+="\n"})),o.replace(/\n$/,"")),l=this.opt.choices.indexOf(this.opt.choices.getChoice(this.pointer));a+="\n"+this.paginator.paginate(u,l,this.opt.pageSize)}e&&(c=i.red(">> ")+e),this.screen.render(a,c)}onEnd(e){this.status="answered",this.spaceKeyPressed=!0,this.render(),this.screen.done(),o.show(),this.done(e.value)}onError(e){this.render(e.isValid)}getCurrentValue(){var e=this.opt.choices.filter((function(e){return Boolean(e.checked)&&!e.disabled}));return this.selection=n.map(e,"short"),n.map(e,"value")}onUpKey(){var e=this.opt.choices.realLength;this.pointer=this.pointer>0?this.pointer-1:e-1,this.render()}onDownKey(){var e=this.opt.choices.realLength;this.pointer=this.pointer{"use strict";var n={extend:r(94501),isBoolean:r(66807)},i=r(95882),{take:o,takeUntil:s}=r(20683),A=r(10485),a=r(92330);e.exports=class extends A{constructor(e,t,r){super(e,t,r);var i=!0;n.extend(this.opt,{filter:function(e){var t=i;return null!=e&&""!==e&&(t=/^y(es)?/i.test(e)),t}}),n.isBoolean(this.opt.default)&&(i=this.opt.default),this.opt.default=i?"Y/n":"y/N"}_run(e){this.done=e;var t=a(this.rl);return t.keypress.pipe(s(t.line)).forEach(this.onKeypress.bind(this)),t.line.pipe(o(1)).forEach(this.onEnd.bind(this)),this.render(),this}render(e){var t=this.getQuestion();return t+="boolean"==typeof e?i.cyan(e?"Yes":"No"):this.rl.line,this.screen.render(t),this}onEnd(e){this.status="answered";var t=this.opt.filter(e);this.render(t),this.screen.done(),this.done(t)}onKeypress(){this.render()}}},48748:(e,t,r)=>{"use strict";var n=r(95882),i=r(48011).Wl,o=r(10485),s=r(92330),{Subject:A}=r(86596);e.exports=class extends o{_run(e){this.done=e,this.editorResult=new A;var t=s(this.rl);this.lineSubscription=t.line.subscribe(this.startExternalEditor.bind(this));var r=this.handleSubmitEvents(this.editorResult);return r.success.forEach(this.onEnd.bind(this)),r.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,this.render(),this}render(e){var t="",r=this.getQuestion();"answered"===this.status?r+=n.dim("Received"):r+=n.dim("Press to launch your preferred editor."),e&&(t=n.red(">> ")+e),this.screen.render(r,t)}startExternalEditor(){this.rl.pause(),i(this.currentText,this.endExternalEditor.bind(this))}endExternalEditor(e,t){this.rl.resume(),e?this.editorResult.error(e):this.editorResult.next(t)}onEnd(e){this.editorResult.unsubscribe(),this.lineSubscription.unsubscribe(),this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(this.answer)}onError(e){this.render(e.isValid)}}},73870:(e,t,r)=>{"use strict";var n={uniq:r(44852),isString:r(221),isNumber:r(71044),findIndex:r(17506)},i=r(95882),{map:o,takeUntil:s}=r(20683),A=r(10485),a=r(88249),c=r(92330),u=r(78635);e.exports=class extends A{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.validateChoices(this.opt.choices),this.opt.choices.push({key:"h",name:"Help, list all options",value:"help"}),this.opt.validate=e=>null==e?"Please enter a valid command":"help"!==e,this.opt.default=this.generateChoicesString(this.opt.choices,this.opt.default),this.paginator=new u(this.screen)}_run(e){this.done=e;var t=c(this.rl),r=this.handleSubmitEvents(t.line.pipe(o(this.getCurrentValue.bind(this))));return r.success.forEach(this.onSubmit.bind(this)),r.error.forEach(this.onError.bind(this)),this.keypressObs=t.keypress.pipe(s(r.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e,t){var r,n,o,s=this.getQuestion(),A="";if("answered"===this.status)s+=i.cyan(this.answer);else if("expanded"===this.status){var a=(r=this.opt.choices,n=this.selectedKey,o="",r.forEach(e=>{if(o+="\n ","separator"!==e.type){var t=e.key+") "+e.name;n===e.key&&(t=i.cyan(t)),o+=t}else o+=" "+e}),o);s+=this.paginator.paginate(a,this.selectedKey,this.opt.pageSize),s+="\n Answer: "}s+=this.rl.line,e&&(A=i.red(">> ")+e),t&&(A=i.cyan(">> ")+t),this.screen.render(s,A)}getCurrentValue(e){e||(e=this.rawDefault);var t=this.opt.choices.where({key:e.toLowerCase().trim()})[0];return t?t.value:null}getChoices(){var e="";return this.opt.choices.forEach(t=>{if(e+="\n ","separator"!==t.type){var r=t.key+") "+t.name;this.selectedKey===t.key&&(r=i.cyan(r)),e+=r}else e+=" "+t}),e}onError(e){if("help"===e.value)return this.selectedKey="",this.status="expanded",void this.render();this.render(e.isValid)}onSubmit(e){this.status="answered";var t=this.opt.choices.where({value:e.value})[0];this.answer=t.short||t.name,this.render(),this.screen.done(),this.done(e.value)}onKeypress(){this.selectedKey=this.rl.line.toLowerCase();var e=this.opt.choices.where({key:this.selectedKey})[0];"expanded"===this.status?this.render():this.render(null,e?e.name:null)}validateChoices(e){var t,r=[],i={};if(e.filter(a.exclude).forEach(e=>{e.key&&1===e.key.length||(t=!0),i[e.key]&&r.push(e.key),i[e.key]=!0,e.key=String(e.key).toLowerCase()}),t)throw new Error("Format error: `key` param must be a single letter and is required.");if(i.h)throw new Error("Reserved key error: `key` param cannot be `h` - this value is reserved.");if(r.length)throw new Error("Duplicate key error: `key` param must be unique. Duplicates: "+n.uniq(r).join(", "))}generateChoicesString(e,t){var r=e.realLength-1;if(n.isNumber(t)&&this.opt.choices.getChoice(t))r=t;else if(n.isString(t)){let i=n.findIndex(e.realChoices,({value:e})=>e===t);r=-1===i?r:i}var i=this.opt.choices.pluck("key");return this.rawDefault=i[r],i[r]=String(i[r]).toUpperCase(),i.join("")}}},90013:(e,t,r)=>{"use strict";var n=r(95882),{map:i,takeUntil:o}=r(20683),s=r(10485),A=r(92330);e.exports=class extends s{_run(e){this.done=e;var t=A(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t="",r="",i=this.getQuestion(),o=this.opt.transformer,s="answered"===this.status;r=s?this.answer:this.rl.line,i+=o?o(r,this.answers,{isFinal:s}):s?n.cyan(r):r,e&&(t=n.red(">> ")+e),this.screen.render(i,t)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(e.value)}onError({value:e="",isValid:t}){this.rl.line+=e,this.rl.cursor+=e.length,this.render(t)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},89336:(e,t,r)=>{"use strict";var n={isNumber:r(71044),findIndex:r(17506),isString:r(221)},i=r(95882),o=r(51938),s=r(61696),A=r(28855),{flatMap:a,map:c,take:u,takeUntil:l}=r(20683),h=r(10485),g=r(92330),f=r(78635);e.exports=class extends h{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.firstRender=!0,this.selected=0;var i=this.opt.default;if(n.isNumber(i)&&i>=0&&ie===i);this.selected=Math.max(e,0)}this.opt.default=null,this.paginator=new f(this.screen)}_run(e){this.done=e;var t=this,r=g(this.rl);return r.normalizedUpKey.pipe(l(r.line)).forEach(this.onUpKey.bind(this)),r.normalizedDownKey.pipe(l(r.line)).forEach(this.onDownKey.bind(this)),r.numberKey.pipe(l(r.line)).forEach(this.onNumberKey.bind(this)),r.line.pipe(u(1),c(this.getCurrentValue.bind(this)),a(e=>A(t.opt.filter)(e).catch(e=>e))).forEach(this.onSubmit.bind(this)),s.hide(),this.render(),this}render(){var e,t,r,s,A=this.getQuestion();if(this.firstRender&&(A+=i.dim("(Use arrow keys)")),"answered"===this.status)A+=i.cyan(this.opt.choices.getChoice(this.selected).short);else{var a=(e=this.opt.choices,t=this.selected,r="",s=0,e.forEach((e,A)=>{if("separator"===e.type)return s++,void(r+=" "+e+"\n");if(e.disabled)return s++,r+=" - "+e.name,r+=" ("+(n.isString(e.disabled)?e.disabled:"Disabled")+")",void(r+="\n");var a=A-s===t,c=(a?o.pointer+" ":" ")+e.name;a&&(c=i.cyan(c)),r+=c+" \n"}),r.replace(/\n$/,"")),c=this.opt.choices.indexOf(this.opt.choices.getChoice(this.selected));A+="\n"+this.paginator.paginate(a,c,this.opt.pageSize)}this.firstRender=!1,this.screen.render(A)}onSubmit(e){this.status="answered",this.render(),this.screen.done(),s.show(),this.done(e)}getCurrentValue(){return this.opt.choices.getChoice(this.selected).value}onUpKey(){var e=this.opt.choices.realLength;this.selected=this.selected>0?this.selected-1:e-1,this.render()}onDownKey(){var e=this.opt.choices.realLength;this.selected=this.selected{"use strict";var n=r(90013);e.exports=class extends n{filterInput(e){if(e&&"string"==typeof e){let t=(e=e.trim()).match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/);if(t)return Number(t[0])}return null==this.opt.default?NaN:this.opt.default}}},30428:(e,t,r)=>{"use strict";var n=r(95882),{map:i,takeUntil:o}=r(20683),s=r(10485),A=r(92330);function a(e,t){return t="string"==typeof t?t:"*",0===(e=String(e)).length?"":new Array(e.length+1).join(t)}e.exports=class extends s{_run(e){this.done=e;var t=A(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t=this.getQuestion(),r="";"answered"===this.status?t+=this.opt.mask?n.cyan(a(this.answer,this.opt.mask)):n.italic.dim("[hidden]"):this.opt.mask?t+=a(this.rl.line||"",this.opt.mask):t+=n.italic.dim("[input is hidden] "),e&&(r="\n"+n.red(">> ")+e),this.screen.render(t,r)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.status="answered",this.answer=e.value,this.render(),this.screen.done(),this.done(e.value)}onError(e){this.render(e.isValid)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},942:(e,t,r)=>{"use strict";var n={extend:r(94501),isNumber:r(71044),findIndex:r(17506)},i=r(95882),{map:o,takeUntil:s}=r(20683),A=r(10485),a=r(88249),c=r(92330),u=r(78635);e.exports=class extends A{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.opt.validChoices=this.opt.choices.filter(a.exclude),this.selected=0,this.rawDefault=0,n.extend(this.opt,{validate:function(e){return null!=e}});var i=this.opt.default;if(n.isNumber(i)&&i>=0&&ie===i),t=Math.max(e,0);this.selected=t,this.rawDefault=t}this.opt.default=null,this.paginator=new u}_run(e){this.done=e;var t=c(this.rl),r=t.line.pipe(o(this.getCurrentValue.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.normalizedUpKey.pipe(s(t.line)).forEach(this.onUpKey.bind(this)),t.normalizedDownKey.pipe(s(t.line)).forEach(this.onDownKey.bind(this)),t.keypress.pipe(s(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t,r,n,o,s=this.getQuestion(),A="";if("answered"===this.status)s+=i.cyan(this.answer);else{var a=(t=this.opt.choices,r=this.selected,n="",o=0,t.forEach((function(e,t){if(n+="\n ","separator"===e.type)return o++,void(n+=" "+e);var s=t-o,A=s+1+") "+e.name;s===r&&(A=i.cyan(A)),n+=A})),n);s+="\n"+this.paginator.paginate(a,this.selected,this.opt.pageSize),s+="\n Answer: "}s+=this.rl.line,e&&(A="\n"+i.red(">> ")+e),this.screen.render(s,A)}getCurrentValue(e){null==e?e=this.rawDefault:""===e?e=this.selected:e-=1;var t=this.opt.choices.getChoice(e);return t?t.value:null}onEnd(e){this.status="answered",this.answer=e.value,this.render(),this.screen.done(),this.done(e.value)}onError(){this.render("Please enter a valid index")}onKeypress(){var e=this.rl.line.length?Number(this.rl.line)-1:0;this.opt.choices.getChoice(e)?this.selected=e:this.selected=void 0,this.render()}onUpKey(){this.onArrowKey("up")}onDownKey(){this.onArrowKey("down")}onArrowKey(e){var t=this.opt.choices.realLength;this.selected="up"===e?this.selected>0?this.selected-1:t-1:this.selected{"use strict";var n={extend:r(94501),omit:r(82740)},i=r(75319),o=r(51058);e.exports=class{constructor(e){this.rl||(this.rl=o.createInterface(function(e){(e=e||{}).skipTTYChecks=void 0===e.skipTTYChecks||e.skipTTYChecks;var t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){const e=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw e.isTtyError=!0,e}var r=new i;r.pipe(e.output||process.stdout);var o=r;return n.extend({terminal:!0,input:t,output:o},n.omit(e,["input","output"]))}(e))),this.rl.resume(),this.onForceClose=this.onForceClose.bind(this),process.on("exit",this.onForceClose),this.rl.on("SIGINT",this.onForceClose)}onForceClose(){this.close(),process.kill(process.pid,"SIGINT"),console.log("")}close(){this.rl.removeListener("SIGINT",this.onForceClose),process.removeListener("exit",this.onForceClose),this.rl.output.unmute(),this.activePrompt&&"function"==typeof this.activePrompt.close&&this.activePrompt.close(),this.rl.output.end(),this.rl.pause(),this.rl.close()}}},36896:(e,t,r)=>{"use strict";var n=r(94864),i=r(89127),o=r(4446),s={last:r(49845)};e.exports=class extends i{constructor(e){super(e=e||{}),this.log=n(this.writeLog.bind(this)),this.bottomBar=e.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return o.clearLine(this.rl,this.bottomBar.split("\n").length),this}updateBottomBar(e){return o.clearLine(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=e,this.render(),this.rl.output.mute(),this}writeLog(e){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(e.toString())),this.render(),this.rl.output.mute(),this}enforceLF(e){return e.match(/[\r\n]$/)?e:e+"\n"}write(e){var t=e.split(/\n/);this.height=t.length,this.rl.setPrompt(s.last(t)),0===this.rl.output.rows&&0===this.rl.output.columns&&o.left(this.rl,e.length+this.rl.line.length),this.rl.output.write(e)}}},87380:(e,t,r)=>{"use strict";var n={isPlainObject:r(11672),clone:r(22254),isArray:r(82664),set:r(81534),isFunction:r(92533)},{defer:i,empty:o,from:s,of:A}=r(86596),{concatMap:a,filter:c,publish:u,reduce:l}=r(20683),h=r(28855),g=r(74941),f=r(89127);e.exports=class extends f{constructor(e,t){super(t),this.prompts=e}run(e,t){n.isPlainObject(t)?this.answers=n.clone(t):this.answers={},n.isPlainObject(e)&&(e=[e]);var r=n.isArray(e)?s(e):e;return this.process=r.pipe(a(this.processQuestion.bind(this)),u()),this.process.connect(),this.process.pipe(l((e,t)=>(n.set(e,t.name,t.answer),e),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this))}onCompletion(){return this.close(),this.answers}processQuestion(e){return e=n.clone(e),i(()=>A(e).pipe(a(this.setDefaultType.bind(this)),a(this.filterIfRunnable.bind(this)),a(()=>g.fetchAsyncQuestionProperty(e,"message",this.answers)),a(()=>g.fetchAsyncQuestionProperty(e,"default",this.answers)),a(()=>g.fetchAsyncQuestionProperty(e,"choices",this.answers)),a(this.fetchAnswer.bind(this))))}fetchAnswer(e){var t=this.prompts[e.type];return this.activePrompt=new t(e,this.rl,this.answers),i(()=>s(this.activePrompt.run().then(t=>({name:e.name,answer:t}))))}setDefaultType(e){return this.prompts[e.type]||(e.type="input"),i(()=>A(e))}filterIfRunnable(e){if(!0!==e.askAnswered&&void 0!==this.answers[e.name])return o();if(!1===e.when)return o();if(!n.isFunction(e.when))return A(e);var t=this.answers;return i(()=>s(h(e.when)(t).then(t=>{if(t)return e})).pipe(c(e=>null!=e)))}}},92330:(e,t,r)=>{"use strict";var{fromEvent:n}=r(86596),{filter:i,map:o,share:s,takeUntil:A}=r(20683);function a(e,t){return{value:e,key:t||{}}}e.exports=function(e){var t=n(e.input,"keypress",a).pipe(A(n(e,"close"))).pipe(i(({key:e})=>"enter"!==e.name&&"return"!==e.name));return{line:n(e,"line"),keypress:t,normalizedUpKey:t.pipe(i(({key:e})=>"up"===e.name||"k"===e.name||"p"===e.name&&e.ctrl),s()),normalizedDownKey:t.pipe(i(({key:e})=>"down"===e.name||"j"===e.name||"n"===e.name&&e.ctrl),s()),numberKey:t.pipe(i(e=>e.value&&"123456789".indexOf(e.value)>=0),o(e=>Number(e.value)),s()),spaceKey:t.pipe(i(({key:e})=>e&&"space"===e.name),s()),aKey:t.pipe(i(({key:e})=>e&&"a"===e.name),s()),iKey:t.pipe(i(({key:e})=>e&&"i"===e.name),s())}}},78635:(e,t,r)=>{"use strict";var n={sum:r(2614),flatten:r(54690)},i=r(95882);e.exports=class{constructor(e){this.pointer=0,this.lastIndex=0,this.screen=e}paginate(e,t,r){r=r||7;var o=Math.floor(r/2),s=e.split("\n");if(this.screen&&(s=this.screen.breakLines(s),t=n.sum(s.map(e=>e.length).splice(0,t)),s=n.flatten(s)),s.length<=r)return e;this.pointer{"use strict";var n=r(27589);t.left=function(e,t){e.output.write(n.cursorBackward(t))},t.right=function(e,t){e.output.write(n.cursorForward(t))},t.up=function(e,t){e.output.write(n.cursorUp(t))},t.down=function(e,t){e.output.write(n.cursorDown(t))},t.clearLine=function(e,t){e.output.write(n.eraseLines(t))}},32542:(e,t,r)=>{"use strict";var n={last:r(49845),flatten:r(54690)},i=r(4446),o=r(17945),s=r(7915),A=r(55043);function a(e){return e.split("\n").length}function c(e){return n.last(e.split("\n"))}e.exports=class{constructor(e){this.height=0,this.extraLinesUnderPrompt=0,this.rl=e}render(e,t){this.rl.output.unmute(),this.clean(this.extraLinesUnderPrompt);var r=c(e),n=s(r),o=n;this.rl.line.length&&(o=o.slice(0,-this.rl.line.length)),this.rl.setPrompt(o);var u=this.rl._getCursorPos(),l=this.normalizedCliWidth();e=this.forceLineReturn(e,l),t&&(t=this.forceLineReturn(t,l)),n.length%l==0&&(e+="\n");var h=e+(t?"\n"+t:"");this.rl.output.write(h);var g=Math.floor(n.length/l)-u.rows+(t?a(t):0);g>0&&i.up(this.rl,g),i.left(this.rl,A(c(h))),u.cols>0&&i.right(this.rl,u.cols),this.extraLinesUnderPrompt=g,this.height=a(h),this.rl.output.mute()}clean(e){e>0&&i.down(this.rl,e),i.clearLine(this.rl,this.height)}done(){this.rl.setPrompt(""),this.rl.output.unmute(),this.rl.output.write("\n")}releaseCursor(){this.extraLinesUnderPrompt>0&&i.down(this.rl,this.extraLinesUnderPrompt)}normalizedCliWidth(){return o({defaultWidth:80,output:this.rl.output})}breakLines(e,t){t=t||this.normalizedCliWidth();var r=new RegExp("(?:(?:\\033[[0-9;]*m)*.?){1,"+t+"}","g");return e.map(e=>{var t=e.match(r);return t.pop(),t||""})}forceLineReturn(e,t){return t=t||this.normalizedCliWidth(),n.flatten(this.breakLines(e.split("\n"),t)).join("\n")}}},74941:(e,t,r)=>{"use strict";var n={isFunction:r(92533)},{from:i,of:o}=r(86596),s=r(28855);t.fetchAsyncQuestionProperty=function(e,t,r){return n.isFunction(e[t])?i(s(e[t])(r).then(r=>(e[t]=r,e))):o(e)}},44486:e=>{ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ +e.exports=function(e){if("string"!=typeof e||""===e)return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}},7347:e=>{"use strict";const t=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));e.exports=t,e.exports.default=t},18193:(e,t,r)=>{ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ +var n=r(44486),i={"{":"}","(":")","[":"]"},o=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,s=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;e.exports=function(e,t){if("string"!=typeof e||""===e)return!1;if(n(e))return!0;var r,A=o;for(t&&!1===t.strict&&(A=s);r=A.exec(e);){if(r[2])return!0;var a=r.index+r[0].length,c=r[1],u=c?i[c]:null;if(c&&u){var l=e.indexOf(u,a);-1!==l&&(a=l+1)}e=e.slice(a)}return!1}},59235:e=>{"use strict"; +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */e.exports=function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(Number.isFinite?Number.isFinite(+e):isFinite(+e))}},61047:e=>{e.exports=function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}},97369:(e,t)=>{var r,n,i,o; +/*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + */o=function(){"use strict";return function(){return process&&("win32"===process.platform||/^(msys|cygwin)$/.test(process.env.OSTYPE))}},t&&"object"==typeof t?e.exports=o():(n=[],void 0===(i="function"==typeof(r=o)?r.apply(t,n):r)||(e.exports=i))},64151:(e,t,r)=>{var n;r(35747);function i(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise((function(r,n){i(e,t||{},(function(e,t){e?n(e):r(t)}))}))}n(e,t||{},(function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n)}))}n="win32"===process.platform||global.TESTING_WINDOWS?r(3202):r(2151),e.exports=i,i.sync=function(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}},2151:(e,t,r)=>{e.exports=i,i.sync=function(e,t){return o(n.statSync(e),t)};var n=r(35747);function i(e,t,r){n.stat(e,(function(e,n){r(e,!e&&o(n,t))}))}function o(e,t){return e.isFile()&&function(e,t){var r=e.mode,n=e.uid,i=e.gid,o=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),s=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),a=parseInt("010",8),c=parseInt("001",8),u=A|a;return r&c||r&a&&i===s||r&A&&n===o||r&u&&0===o}(e,t)}},3202:(e,t,r)=>{e.exports=o,o.sync=function(e,t){return i(n.statSync(e),e,t)};var n=r(35747);function i(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{"use strict";var n=r(40744);e.exports=n},40744:(e,t,r)=>{"use strict";var n=r(55384),i=r(24129);function o(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=r(81704),e.exports.Schema=r(8212),e.exports.FAILSAFE_SCHEMA=r(44413),e.exports.JSON_SCHEMA=r(45247),e.exports.CORE_SCHEMA=r(8769),e.exports.DEFAULT_SAFE_SCHEMA=r(65483),e.exports.DEFAULT_FULL_SCHEMA=r(5235),e.exports.load=n.load,e.exports.loadAll=n.loadAll,e.exports.safeLoad=n.safeLoad,e.exports.safeLoadAll=n.safeLoadAll,e.exports.dump=i.dump,e.exports.safeDump=i.safeDump,e.exports.YAMLException=r(17345),e.exports.MINIMAL_SCHEMA=r(44413),e.exports.SAFE_SCHEMA=r(65483),e.exports.DEFAULT_SCHEMA=r(5235),e.exports.scan=o("scan"),e.exports.parse=o("parse"),e.exports.compose=o("compose"),e.exports.addConstructor=o("addConstructor")},28149:e=>{"use strict";function t(e){return null==e}e.exports.isNothing=t,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:t(e)?[]:[e]},e.exports.repeat=function(e,t){var r,n="";for(r=0;r{"use strict";var n=r(28149),i=r(17345),o=r(5235),s=r(65483),A=Object.prototype.toString,a=Object.prototype.hasOwnProperty,c={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},u=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function l(e){var t,r,o;if(t=e.toString(16).toUpperCase(),e<=255)r="x",o=2;else if(e<=65535)r="u",o=4;else{if(!(e<=4294967295))throw new i("code point within a string may not be greater than 0xFFFFFFFF");r="U",o=8}return"\\"+r+n.repeat("0",o-t.length)+t}function h(e){this.schema=e.schema||o,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,i,o,s,A,c;if(null===t)return{};for(r={},i=0,o=(n=Object.keys(t)).length;in&&" "!==e[l+1],l=o);else if(!d(s))return 5;h=h&&C(s)}c=c||u&&o-l-1>n&&" "!==e[l+1]}return a||c?r>9&&E(e)?5:c?4:3:h&&!i(e)?1:2}function m(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==u.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),A=n||e.flowLevel>-1&&r>=e.flowLevel;switch(I(t,A,e.indent,s,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+y(t,e.indent)+w(g(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(A=e.indexOf("\n"),A=-1!==A?A:e.length,i.lastIndex=A,B(e.slice(0,A),t)),s="\n"===e[0]||" "===e[0];var A;for(;n=i.exec(e);){var a=n[1],c=n[2];r=" "===c[0],o+=a+(s||r||""===c?"":"\n")+B(c,t),s=r}return o}(t,s),o));case 5:return'"'+function(e){for(var t,r,n,i="",o=0;o=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(i+=l(1024*(t-55296)+r-56320+65536),o++):(n=c[t],i+=!n&&d(t)?e[o]:n||l(t));return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function y(e,t){var r=E(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function w(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function B(e,t){if(""===e||" "===e[0])return e;for(var r,n,i=/ [^ ]/g,o=0,s=0,A=0,a="";r=i.exec(e);)(A=r.index)-o>t&&(n=s>o?s:A,a+="\n"+e.slice(o,n),o=n+1),s=A;return a+="\n",e.length-o>t&&s>o?a+=e.slice(o,s)+"\n"+e.slice(s+1):a+=e.slice(o),a.slice(1)}function Q(e,t,r){var n,o,s,c,u,l;for(s=0,c=(o=r?e.explicitTypes:e.implicitTypes).length;s tag resolver accepts not "'+l+'" style');n=u.represent[l](t,l)}e.dump=n}return!0}return!1}function v(e,t,r,n,o,s){e.tag=null,e.dump=r,Q(e,r,!1)||Q(e,r,!0);var a=A.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var c,u,l="[object Object]"===a||"[object Array]"===a;if(l&&(u=-1!==(c=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(o=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(l&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var o,s,A,a,c,u,l="",h=e.tag,g=Object.keys(r);if(!0===e.sortKeys)g.sort();else if("function"==typeof e.sortKeys)g.sort(e.sortKeys);else if(e.sortKeys)throw new i("sortKeys must be a boolean or a function");for(o=0,s=g.length;o1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,c&&(u+=f(e,t)),v(e,t+1,a,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",l+=u+=e.dump));e.tag=h,e.dump=l||"{}"}(e,t,e.dump,o),u&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,o,s,A,a="",c=e.tag,u=Object.keys(r);for(n=0,i=u.length;n1024&&(A+="? "),A+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),v(e,t,s,!1,!1)&&(a+=A+=e.dump));e.tag=c,e.dump="{"+a+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===a){var h=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,o,s="",A=e.tag;for(i=0,o=r.length;i "+e.dump)}return!0}function D(e,t){var r,n,i=[],o=[];for(function e(t,r,n){var i,o,s;if(null!==t&&"object"==typeof t)if(-1!==(o=r.indexOf(t)))-1===n.indexOf(o)&&n.push(o);else if(r.push(t),Array.isArray(t))for(o=0,s=t.length;o{"use strict";function t(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=t},55384:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(30399),s=r(65483),A=r(5235),a=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,u=/[\x85\u2028\u2029]/,l=/[,\[\]\{\}]/,h=/^(?:!|!!|![a-z\-]+!)$/i,g=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function f(e){return 10===e||13===e}function p(e){return 9===e||32===e}function d(e){return 9===e||32===e||10===e||13===e}function C(e){return 44===e||91===e||93===e||123===e||125===e}function E(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function I(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function m(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var y=new Array(256),w=new Array(256),B=0;B<256;B++)y[B]=I(B)?1:0,w[B]=I(B);function Q(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||A,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function v(e,t){return new i(t,new o(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function D(e,t){throw v(e,t)}function b(e,t){e.onWarning&&e.onWarning.call(null,v(e,t))}var S={YAML:function(e,t,r){var n,i,o;null!==e.version&&D(e,"duplication of %YAML directive"),1!==r.length&&D(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&D(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&D(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&b(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&D(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],h.test(n)||D(e,"ill-formed tag handle (first argument) of the TAG directive"),a.call(e.tagMap,n)&&D(e,'there is a previously declared suffix for "'+n+'" tag handle'),g.test(i)||D(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function k(e,t,r,n){var i,o,s,A;if(t1&&(e.result+=n.repeat("\n",t-1))}function L(e,t){var r,n,i=e.tag,o=e.anchor,s=[],A=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=s),n=e.input.charCodeAt(e.position);0!==n&&45===n&&d(e.input.charCodeAt(e.position+1));)if(A=!0,e.position++,N(e,!0,-1)&&e.lineIndent<=t)s.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,U(e,t,3,!1,!0),s.push(e.result),N(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)D(e,"bad indentation of a sequence entry");else if(e.lineIndentt?B=1:e.lineIndent===t?B=0:e.lineIndentt?B=1:e.lineIndent===t?B=0:e.lineIndentt)&&(U(e,t,4,!0,i)&&(C?g=e.result:f=e.result),C||(F(e,u,l,h,g,f,o,s),h=g=f=null),N(e,!0,-1),A=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==A)D(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===o?D(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?D(e,"repeat of an indentation width identifier"):(l=t+o-1,u=!0)}if(p(s)){do{s=e.input.charCodeAt(++e.position)}while(p(s));if(35===s)do{s=e.input.charCodeAt(++e.position)}while(!f(s)&&0!==s)}for(;0!==s;){for(M(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!u||e.lineIndentl&&(l=e.lineIndent),f(s))h++;else{if(e.lineIndent0){for(i=s,o=0;i>0;i--)(s=E(A=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+s:D(e,"expected hexadecimal character");e.result+=m(o),e.position++}else D(e,"unknown escape sequence");r=n=e.position}else f(A)?(k(e,r,n,!0),K(e,N(e,!1,t)),r=n=e.position):e.position===e.lineStart&&R(e)?D(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}D(e,"unexpected end of the stream within a double quoted scalar")}(e,g)?v=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!d(n)&&!C(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&D(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||D(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],N(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,s,A,a,c,u,l=e.kind,h=e.result;if(d(u=e.input.charCodeAt(e.position))||C(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(d(n=e.input.charCodeAt(e.position+1))||r&&C(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,s=!1;0!==u;){if(58===u){if(d(n=e.input.charCodeAt(e.position+1))||r&&C(n))break}else if(35===u){if(d(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&R(e)||r&&C(u))break;if(f(u)){if(A=e.line,a=e.lineStart,c=e.lineIndent,N(e,!1,-1),e.lineIndent>=t){s=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=A,e.lineStart=a,e.lineIndent=c;break}}s&&(k(e,i,o,!1),K(e,e.line-A),i=o=e.position,s=!1),p(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return k(e,i,o,!1),!!e.result||(e.kind=l,e.result=h,!1)}(e,g,1===r)&&(v=!0,null===e.tag&&(e.tag="?")):(v=!0,null===e.tag&&null===e.anchor||D(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===B&&(v=c&&L(e,I))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,l=e.implicitTypes.length;u tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result)?(e.result=h.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):D(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):D(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||v}function _(e){var t,r,n,i,o=e.position,s=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(N(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(s=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&D(e,"directive name must not be less than one character in length");0!==i;){for(;p(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!f(i));break}if(f(i))break;for(t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&M(e),a.call(S,r)?S[r](e,r,n):b(e,'unknown document directive "'+r+'"')}N(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,N(e,!0,-1)):s&&D(e,"directives end mark is expected"),U(e,e.lineIndent-1,4,!1,!0),N(e,!0,-1),e.checkLineBreaks&&u.test(e.input.slice(o,e.position))&&b(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&R(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,N(e,!0,-1)):e.position{"use strict";var n=r(28149);function i(e,t,r,n,i){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=i}i.prototype.getSnippet=function(e,t){var r,i,o,s,A;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",i=this.position;i>0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=" ... ",i+=5;break}for(o="",s=this.position;st/2-1){o=" ... ",s-=5;break}return A=this.buffer.slice(i,s),n.repeat(" ",e)+r+A+o+"\n"+n.repeat(" ",e+this.position-i+r.length)+"^"},i.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},e.exports=i},8212:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(81704);function s(e,t,r){var n=[];return e.include.forEach((function(e){r=s(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function A(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new i("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=s(this,"implicit",[]),this.compiledExplicit=s(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e{"use strict";var n=r(8212);e.exports=new n({include:[r(45247)]})},5235:(e,t,r)=>{"use strict";var n=r(8212);e.exports=n.DEFAULT=new n({include:[r(65483)],explicit:[r(61425),r(61872),r(79982)]})},65483:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(8769)],implicit:[r(83516),r(95441)],explicit:[r(34836),r(6847),r(65173),r(92025)]})},44413:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({explicit:[r(19952),r(46557),r(90173)]})},45247:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(44413)],implicit:[r(40188),r(58357),r(82106),r(71945)]})},81704:(e,t,r)=>{"use strict";var n=r(17345),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];e.exports=function(e,t){var r,s;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,s={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){s[String(t)]=e}))})),s),-1===o.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},34836:(e,t,r)=>{"use strict";var n;try{n=r(64293).Buffer}catch(e){}var i=r(81704),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,s=o;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,i=e.replace(/[\r\n=]/g,""),s=i.length,A=o,a=0,c=[];for(t=0;t>16&255),c.push(a>>8&255),c.push(255&a)),a=a<<6|A.indexOf(i.charAt(t));return 0===(r=s%4*6)?(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)):18===r?(c.push(a>>10&255),c.push(a>>2&255)):12===r&&c.push(a>>4&255),n?n.from?n.from(c):new n(c):c},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n="",i=0,s=e.length,A=o;for(t=0;t>18&63],n+=A[i>>12&63],n+=A[i>>6&63],n+=A[63&i]),i=(i<<8)+e[t];return 0===(r=s%3)?(n+=A[i>>18&63],n+=A[i>>12&63],n+=A[i>>6&63],n+=A[63&i]):2===r?(n+=A[i>>10&63],n+=A[i>>4&63],n+=A[i<<2&63],n+=A[64]):1===r&&(n+=A[i>>2&63],n+=A[i<<4&63],n+=A[64],n+=A[64]),n}})},58357:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},71945:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var s=/^[-+]?[0-9]+e/;e.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,i;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),s.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},82106:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704);function o(e){return 48<=e&&e<=55}function s(e){return 48<=e&&e<=57}e.exports=new i("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,i=0,A=!1;if(!n)return!1;if("-"!==(t=e[i])&&"+"!==t||(t=e[++i]),"0"===t){if(i+1===n)return!0;if("b"===(t=e[++i])){for(i++;i=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},79982:(e,t,r)=>{"use strict";var n;try{n=r(41313)}catch(e){"undefined"!=typeof window&&(n=window.esprima)}var i=r(81704);e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=n.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r="("+e+")",i=n.parse(r,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},61872:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},61425:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},90173:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},95441:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},40188:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},6847:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,s,A,a=[],c=e;for(t=0,r=c.length;t{"use strict";var n=r(81704),i=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,s,A=e;for(s=new Array(A.length),t=0,r=A.length;t{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},92025:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty;e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(i.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},19952:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},83516:(e,t,r)=>{"use strict";var n=r(81704),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==i.exec(e)||null!==o.exec(e))},construct:function(e){var t,r,n,s,A,a,c,u,l=0,h=null;if(null===(t=i.exec(e))&&(t=o.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,s=+t[3],!t[4])return new Date(Date.UTC(r,n,s));if(A=+t[4],a=+t[5],c=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(h=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(h=-h)),u=new Date(Date.UTC(r,n,s,A,a,c,l)),h&&u.setTime(u.getTime()-h),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},7427:(e,t)=>{t.stringify=function e(t){if(void 0===t)return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&"object"==typeof t){var r="",n=Array.isArray(t);r=n?"[":"{";var i=!0;for(var o in t){var s="function"==typeof t[o]||!n&&void 0===t[o];Object.hasOwnProperty.call(t,o)&&!s&&(i||(r+=","),i=!1,n?null==t[o]?r+="null":r+=e(t[o]):void 0!==t[o]&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}"}return"string"==typeof t?JSON.stringify(/^:/.test(t)?":"+t:t):void 0===t?"null":JSON.stringify(t)},t.parse=function(e){return JSON.parse(e,(function(e,t){return"string"==typeof t?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t}))}},72515:(e,t,r)=>{"use strict";const n=r(28614),i=r(7427);e.exports=class extends n{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:i.stringify,deserialize:i.parse},"string"==typeof e?{uri:e}:e,t),!this.opts.store){const e=Object.assign({},this.opts);this.opts.store=(e=>{const t={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(e.adapter||e.uri){const n=e.adapter||/^[^:]*/.exec(e.uri)[0];return new(r(89112)(t[n]))(e)}return new Map})(e)}"function"==typeof this.opts.store.on&&this.opts.store.on("error",e=>this.emit("error",e)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);const{store:r}=this.opts;return Promise.resolve().then(()=>r.get(e)).then(e=>"string"==typeof e?this.opts.deserialize(e):e).then(r=>{if(void 0!==r){if(!("number"==typeof r.expires&&Date.now()>r.expires))return t&&t.raw?r:r.value;this.delete(e)}})}set(e,t,r){e=this._getKeyPrefix(e),void 0===r&&(r=this.opts.ttl),0===r&&(r=void 0);const{store:n}=this.opts;return Promise.resolve().then(()=>{const e="number"==typeof r?Date.now()+r:null;return t={value:t,expires:e},this.opts.serialize(t)}).then(t=>n.set(e,t,r)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);const{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){const{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}}},89112:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=89112,e.exports=t},78962:(e,t,r)=>{var n=r(99513)(r(76169),"DataView");e.exports=n},72574:(e,t,r)=>{var n=r(31713),i=r(86688),o=r(45937),s=r(5017),A=r(79457);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t{var n=r(14620),i=r(73682),o=r(43112),s=r(90640),A=r(9380);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t{var n=r(99513)(r(76169),"Map");e.exports=n},75009:(e,t,r)=>{var n=r(18209),i=r(89706),o=r(43786),s=r(17926),A=r(87345);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t{var n=r(99513)(r(76169),"Promise");e.exports=n},43231:(e,t,r)=>{var n=r(99513)(r(76169),"Set");e.exports=n},46235:(e,t,r)=>{var n=r(75009),i=r(74785),o=r(87760);function s(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t{var n=r(29197),i=r(35678),o=r(33336),s=r(97163),A=r(43737),a=r(48548);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=A,c.prototype.set=a,e.exports=c},69976:(e,t,r)=>{var n=r(76169).Symbol;e.exports=n},2740:(e,t,r)=>{var n=r(76169).Uint8Array;e.exports=n},47063:(e,t,r)=>{var n=r(99513)(r(76169),"WeakMap");e.exports=n},66636:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},33326:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r{var n=r(37872);e.exports=function(e,t){return!!(null==e?0:e.length)&&n(e,t,0)>-1}},36669:e=>{e.exports=function(e,t,r){for(var n=-1,i=null==e?0:e.length;++n{var n=r(7089),i=r(61771),o=r(82664),s=r(10667),A=r(98041),a=r(32565),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=o(e),u=!r&&i(e),l=!r&&!u&&s(e),h=!r&&!u&&!l&&a(e),g=r||u||l||h,f=g?n(e.length,String):[],p=f.length;for(var d in e)!t&&!c.call(e,d)||g&&("length"==d||l&&("offset"==d||"parent"==d)||h&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||A(d,p))||f.push(d);return f}},60783:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r{e.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r{e.exports=function(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r{e.exports=function(e){return e.split("")}},11852:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},65759:(e,t,r)=>{var n=r(91198),i=r(71074),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){var s=e[t];o.call(e,t)&&i(s,r)&&(void 0!==r||t in e)||n(e,t,r)}},39836:(e,t,r)=>{var n=r(71074);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},28628:(e,t,r)=>{var n=r(75182),i=r(42185);e.exports=function(e,t){return e&&n(t,i(t),e)}},78707:(e,t,r)=>{var n=r(75182),i=r(24887);e.exports=function(e,t){return e&&n(t,i(t),e)}},91198:(e,t,r)=>{var n=r(65);e.exports=function(e,t,r){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}},41076:(e,t,r)=>{var n=r(22851),i=r(33326),o=r(65759),s=r(28628),A=r(78707),a=r(64266),c=r(87229),u=r(23105),l=r(60741),h=r(60753),g=r(64420),f=r(79435),p=r(27908),d=r(37836),C=r(88438),E=r(82664),I=r(10667),m=r(13349),y=r(46778),w=r(33931),B=r(42185),Q={};Q["[object Arguments]"]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q["[object Object]"]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q["[object Function]"]=Q["[object WeakMap]"]=!1,e.exports=function e(t,r,v,D,b,S){var k,x=1&r,F=2&r,M=4&r;if(v&&(k=b?v(t,D,b,S):v(t)),void 0!==k)return k;if(!y(t))return t;var N=E(t);if(N){if(k=p(t),!x)return c(t,k)}else{var R=f(t),K="[object Function]"==R||"[object GeneratorFunction]"==R;if(I(t))return a(t,x);if("[object Object]"==R||"[object Arguments]"==R||K&&!b){if(k=F||K?{}:C(t),!x)return F?l(t,A(k,t)):u(t,s(k,t))}else{if(!Q[R])return b?t:{};k=d(t,R,x)}}S||(S=new n);var L=S.get(t);if(L)return L;S.set(t,k),w(t)?t.forEach((function(n){k.add(e(n,r,v,n,t,S))})):m(t)&&t.forEach((function(n,i){k.set(i,e(n,r,v,i,t,S))}));var T=M?F?g:h:F?keysIn:B,P=N?void 0:T(t);return i(P||t,(function(n,i){P&&(n=t[i=n]),o(k,i,e(n,r,v,i,t,S))})),k}},15178:(e,t,r)=>{var n=r(46778),i=Object.create,o=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=o},50773:(e,t,r)=>{var n=r(62164),i=r(85115)(n);e.exports=i},3691:(e,t,r)=>{var n=r(50773);e.exports=function(e,t){var r=[];return n(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}},72151:e=>{e.exports=function(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o{var n=r(40945),i=r(958);e.exports=function e(t,r,o,s,A){var a=-1,c=t.length;for(o||(o=i),A||(A=[]);++a0&&o(u)?r>1?e(u,r-1,o,s,A):n(A,u):s||(A[A.length]=u)}return A}},31689:(e,t,r)=>{var n=r(59907)();e.exports=n},62164:(e,t,r)=>{var n=r(31689),i=r(42185);e.exports=function(e,t){return e&&n(e,t,i)}},84173:(e,t,r)=>{var n=r(56725),i=r(49874);e.exports=function(e,t){for(var r=0,o=(t=n(t,e)).length;null!=e&&r{var n=r(40945),i=r(82664);e.exports=function(e,t,r){var o=t(e);return i(e)?o:n(o,r(e))}},52502:(e,t,r)=>{var n=r(69976),i=r(2854),o=r(87427),s=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?i(e):o(e)}},95325:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e,r){return null!=e&&t.call(e,r)}},3881:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},37872:(e,t,r)=>{var n=r(72151),i=r(14564),o=r(95145);e.exports=function(e,t,r){return t==t?o(e,t,r):n(e,i,r)}},76357:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return i(e)&&"[object Arguments]"==n(e)}},74195:(e,t,r)=>{var n=r(48957),i=r(38496);e.exports=function e(t,r,o,s,A){return t===r||(null==t||null==r||!i(t)&&!i(r)?t!=t&&r!=r:n(t,r,o,s,e,A))}},48957:(e,t,r)=>{var n=r(22851),i=r(75500),o=r(28475),s=r(50245),A=r(79435),a=r(82664),c=r(10667),u=r(32565),l="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,g,f,p){var d=a(e),C=a(t),E=d?"[object Array]":A(e),I=C?"[object Array]":A(t),m=(E="[object Arguments]"==E?l:E)==l,y=(I="[object Arguments]"==I?l:I)==l,w=E==I;if(w&&c(e)){if(!c(t))return!1;d=!0,m=!1}if(w&&!m)return p||(p=new n),d||u(e)?i(e,t,r,g,f,p):o(e,t,E,r,g,f,p);if(!(1&r)){var B=m&&h.call(e,"__wrapped__"),Q=y&&h.call(t,"__wrapped__");if(B||Q){var v=B?e.value():e,D=Q?t.value():t;return p||(p=new n),f(v,D,r,g,p)}}return!!w&&(p||(p=new n),s(e,t,r,g,f,p))}},55994:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Map]"==n(e)}},66470:(e,t,r)=>{var n=r(22851),i=r(74195);e.exports=function(e,t,r,o){var s=r.length,A=s,a=!o;if(null==e)return!A;for(e=Object(e);s--;){var c=r[s];if(a&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++s{e.exports=function(e){return e!=e}},91686:(e,t,r)=>{var n=r(92533),i=r(15061),o=r(46778),s=r(76384),A=/^\[object .+?Constructor\]$/,a=Function.prototype,c=Object.prototype,u=a.toString,l=c.hasOwnProperty,h=RegExp("^"+u.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(n(e)?h:A).test(s(e))}},28612:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Set]"==n(e)}},98998:(e,t,r)=>{var n=r(52502),i=r(46369),o=r(38496),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!s[n(e)]}},42208:(e,t,r)=>{var n=r(96962),i=r(90348),o=r(61977),s=r(82664),A=r(7430);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?s(e)?i(e[0],e[1]):n(e):A(e)}},50994:(e,t,r)=>{var n=r(89513),i=r(60657),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return i(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}},8372:(e,t,r)=>{var n=r(46778),i=r(89513),o=r(95632),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=i(e),r=[];for(var A in e)("constructor"!=A||!t&&s.call(e,A))&&r.push(A);return r}},26309:(e,t,r)=>{var n=r(50773),i=r(41929);e.exports=function(e,t){var r=-1,o=i(e)?Array(e.length):[];return n(e,(function(e,n,i){o[++r]=t(e,n,i)})),o}},96962:(e,t,r)=>{var n=r(66470),i=r(98705),o=r(12757);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},90348:(e,t,r)=>{var n=r(74195),i=r(44674),o=r(34878),s=r(70474),A=r(20925),a=r(12757),c=r(49874);e.exports=function(e,t){return s(e)&&A(t)?a(c(e),t):function(r){var s=i(r,e);return void 0===s&&s===t?o(r,e):n(t,s,3)}}},35400:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},43018:(e,t,r)=>{var n=r(84173);e.exports=function(e){return function(t){return n(t,e)}}},51587:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},30383:(e,t,r)=>{var n=r(61977),i=r(44322),o=r(3111);e.exports=function(e,t){return o(i(e,t,n),e+"")}},10624:(e,t,r)=>{var n=r(65759),i=r(56725),o=r(98041),s=r(46778),A=r(49874);e.exports=function(e,t,r,a){if(!s(e))return e;for(var c=-1,u=(t=i(t,e)).length,l=u-1,h=e;null!=h&&++c{var n=r(4967),i=r(65),o=r(61977),s=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:o;e.exports=s},27708:e=>{e.exports=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(i);++n{e.exports=function(e,t){for(var r,n=-1,i=e.length;++n{e.exports=function(e,t){for(var r=-1,n=Array(e);++r{var n=r(69976),i=r(60783),o=r(82664),s=r(65558),A=n?n.prototype:void 0,a=A?A.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(s(t))return a?a.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},73635:e=>{e.exports=function(e){return function(t){return e(t)}}},42150:(e,t,r)=>{var n=r(46235),i=r(24066),o=r(36669),s=r(93022),A=r(17879),a=r(7442);e.exports=function(e,t,r){var c=-1,u=i,l=e.length,h=!0,g=[],f=g;if(r)h=!1,u=o;else if(l>=200){var p=t?null:A(e);if(p)return a(p);h=!1,u=s,f=new n}else f=t?[]:g;e:for(;++c{var n=r(56725),i=r(49845),o=r(37574),s=r(49874);e.exports=function(e,t){return t=n(t,e),null==(e=o(e,t))||delete e[s(i(t))]}},18290:(e,t,r)=>{var n=r(60783);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},93022:e=>{e.exports=function(e,t){return e.has(t)}},56725:(e,t,r)=>{var n=r(82664),i=r(70474),o=r(8689),s=r(33580);e.exports=function(e,t){return n(e)?e:i(e,t)?[e]:o(s(e))}},92568:(e,t,r)=>{var n=r(27708);e.exports=function(e,t,r){var i=e.length;return r=void 0===r?i:r,!t&&r>=i?e:n(e,t,r)}},76255:(e,t,r)=>{var n=r(2740);e.exports=function(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}},64266:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,s=o&&o.exports===i?n.Buffer:void 0,A=s?s.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var r=e.length,n=A?A(r):new e.constructor(r);return e.copy(n),n}},63749:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}},41705:e=>{var t=/\w*$/;e.exports=function(e){var r=new e.constructor(e.source,t.exec(e));return r.lastIndex=e.lastIndex,r}},25791:(e,t,r)=>{var n=r(69976),i=n?n.prototype:void 0,o=i?i.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},58042:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}},87229:e=>{e.exports=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r{var n=r(65759),i=r(91198);e.exports=function(e,t,r,o){var s=!r;r||(r={});for(var A=-1,a=t.length;++A{var n=r(75182),i=r(68727);e.exports=function(e,t){return n(e,i(e),t)}},60741:(e,t,r)=>{var n=r(75182),i=r(35368);e.exports=function(e,t){return n(e,i(e),t)}},14429:(e,t,r)=>{var n=r(76169)["__core-js_shared__"];e.exports=n},27913:(e,t,r)=>{var n=r(30383),i=r(33193);e.exports=function(e){return n((function(t,r){var n=-1,o=r.length,s=o>1?r[o-1]:void 0,A=o>2?r[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,A&&i(r[0],r[1],A)&&(s=o<3?void 0:s,o=1),t=Object(t);++n{var n=r(41929);e.exports=function(e,t){return function(r,i){if(null==r)return r;if(!n(r))return e(r,i);for(var o=r.length,s=t?o:-1,A=Object(r);(t?s--:++s{e.exports=function(e){return function(t,r,n){for(var i=-1,o=Object(t),s=n(t),A=s.length;A--;){var a=s[e?A:++i];if(!1===r(o[a],a,o))break}return t}}},56989:(e,t,r)=>{var n=r(92568),i=r(93024),o=r(30475),s=r(33580);e.exports=function(e){return function(t){t=s(t);var r=i(t)?o(t):void 0,A=r?r[0]:t.charAt(0),a=r?n(r,1).join(""):t.slice(1);return A[e]()+a}}},30369:(e,t,r)=>{var n=r(66054),i=r(68968),o=r(97684),s=RegExp("['’]","g");e.exports=function(e){return function(t){return n(o(i(t).replace(s,"")),e,"")}}},80937:(e,t,r)=>{var n=r(42208),i=r(41929),o=r(42185);e.exports=function(e){return function(t,r,s){var A=Object(t);if(!i(t)){var a=n(r,3);t=o(t),r=function(e){return a(A[e],e,A)}}var c=e(t,r,s);return c>-1?A[a?t[c]:c]:void 0}}},17879:(e,t,r)=>{var n=r(43231),i=r(34791),o=r(7442),s=n&&1/o(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;e.exports=s},37306:(e,t,r)=>{var n=r(11672);e.exports=function(e){return n(e)?void 0:e}},69922:(e,t,r)=>{var n=r(51587)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"});e.exports=n},65:(e,t,r)=>{var n=r(99513),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},75500:(e,t,r)=>{var n=r(46235),i=r(17765),o=r(93022);e.exports=function(e,t,r,s,A,a){var c=1&r,u=e.length,l=t.length;if(u!=l&&!(c&&l>u))return!1;var h=a.get(e);if(h&&a.get(t))return h==t;var g=-1,f=!0,p=2&r?new n:void 0;for(a.set(e,t),a.set(t,e);++g{var n=r(69976),i=r(2740),o=r(71074),s=r(75500),A=r(7877),a=r(7442),c=n?n.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,l,h){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!l(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var g=A;case"[object Set]":var f=1&n;if(g||(g=a),e.size!=t.size&&!f)return!1;var p=h.get(e);if(p)return p==t;n|=2,h.set(e,t);var d=s(g(e),g(t),n,c,l,h);return h.delete(e),d;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},50245:(e,t,r)=>{var n=r(60753),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,o,s,A){var a=1&r,c=n(e),u=c.length;if(u!=n(t).length&&!a)return!1;for(var l=u;l--;){var h=c[l];if(!(a?h in t:i.call(t,h)))return!1}var g=A.get(e);if(g&&A.get(t))return g==t;var f=!0;A.set(e,t),A.set(t,e);for(var p=a;++l{var n=r(54690),i=r(44322),o=r(3111);e.exports=function(e){return o(i(e,void 0,n),e+"")}},68399:e=>{var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},60753:(e,t,r)=>{var n=r(40104),i=r(68727),o=r(42185);e.exports=function(e){return n(e,o,i)}},64420:(e,t,r)=>{var n=r(40104),i=r(35368),o=r(24887);e.exports=function(e){return n(e,o,i)}},59253:(e,t,r)=>{var n=r(69448);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},98705:(e,t,r)=>{var n=r(20925),i=r(42185);e.exports=function(e){for(var t=i(e),r=t.length;r--;){var o=t[r],s=e[o];t[r]=[o,s,n(s)]}return t}},99513:(e,t,r)=>{var n=r(91686),i=r(98054);e.exports=function(e,t){var r=i(e,t);return n(r)?r:void 0}},41181:(e,t,r)=>{var n=r(64309)(Object.getPrototypeOf,Object);e.exports=n},2854:(e,t,r)=>{var n=r(69976),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,A=n?n.toStringTag:void 0;e.exports=function(e){var t=o.call(e,A),r=e[A];try{e[A]=void 0;var n=!0}catch(e){}var i=s.call(e);return n&&(t?e[A]=r:delete e[A]),i}},68727:(e,t,r)=>{var n=r(9073),i=r(62162),o=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,A=s?function(e){return null==e?[]:(e=Object(e),n(s(e),(function(t){return o.call(e,t)})))}:i;e.exports=A},35368:(e,t,r)=>{var n=r(40945),i=r(41181),o=r(68727),s=r(62162),A=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,o(e)),e=i(e);return t}:s;e.exports=A},79435:(e,t,r)=>{var n=r(78962),i=r(63603),o=r(5825),s=r(43231),A=r(47063),a=r(52502),c=r(76384),u=c(n),l=c(i),h=c(o),g=c(s),f=c(A),p=a;(n&&"[object DataView]"!=p(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=p(new i)||o&&"[object Promise]"!=p(o.resolve())||s&&"[object Set]"!=p(new s)||A&&"[object WeakMap]"!=p(new A))&&(p=function(e){var t=a(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case u:return"[object DataView]";case l:return"[object Map]";case h:return"[object Promise]";case g:return"[object Set]";case f:return"[object WeakMap]"}return t}),e.exports=p},98054:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},71507:(e,t,r)=>{var n=r(56725),i=r(61771),o=r(82664),s=r(98041),A=r(46369),a=r(49874);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,l=!1;++c{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},60466:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},31713:(e,t,r)=>{var n=r(52437);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},86688:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},45937:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return i.call(t,e)?t[e]:void 0}},5017:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:i.call(t,e)}},79457:(e,t,r)=>{var n=r(52437);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},27908:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var r=e.length,n=new e.constructor(r);return r&&"string"==typeof e[0]&&t.call(e,"index")&&(n.index=e.index,n.input=e.input),n}},37836:(e,t,r)=>{var n=r(76255),i=r(63749),o=r(41705),s=r(25791),A=r(58042);e.exports=function(e,t,r){var a=e.constructor;switch(t){case"[object ArrayBuffer]":return n(e);case"[object Boolean]":case"[object Date]":return new a(+e);case"[object DataView]":return i(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return A(e,r);case"[object Map]":return new a;case"[object Number]":case"[object String]":return new a(e);case"[object RegExp]":return o(e);case"[object Set]":return new a;case"[object Symbol]":return s(e)}}},88438:(e,t,r)=>{var n=r(15178),i=r(41181),o=r(89513);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:n(i(e))}},958:(e,t,r)=>{var n=r(69976),i=r(61771),o=r(82664),s=n?n.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(s&&e&&e[s])}},98041:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e{var n=r(71074),i=r(41929),o=r(98041),s=r(46778);e.exports=function(e,t,r){if(!s(r))return!1;var A=typeof t;return!!("number"==A?i(r)&&o(t,r.length):"string"==A&&t in r)&&n(r[t],e)}},70474:(e,t,r)=>{var n=r(82664),i=r(65558),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||(s.test(e)||!o.test(e)||null!=t&&e in Object(t))}},69448:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15061:(e,t,r)=>{var n,i=r(14429),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!o&&o in e}},89513:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},20925:(e,t,r)=>{var n=r(46778);e.exports=function(e){return e==e&&!n(e)}},82262:e=>{e.exports=function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}},14620:e=>{e.exports=function(){this.__data__=[],this.size=0}},73682:(e,t,r)=>{var n=r(39836),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0)&&(r==t.length-1?t.pop():i.call(t,r,1),--this.size,!0)}},43112:(e,t,r)=>{var n=r(39836);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},90640:(e,t,r)=>{var n=r(39836);e.exports=function(e){return n(this.__data__,e)>-1}},9380:(e,t,r)=>{var n=r(39836);e.exports=function(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}},18209:(e,t,r)=>{var n=r(72574),i=r(29197),o=r(63603);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},89706:(e,t,r)=>{var n=r(59253);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},43786:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).get(e)}},17926:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).has(e)}},87345:(e,t,r)=>{var n=r(59253);e.exports=function(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}},7877:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},12757:e=>{e.exports=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}},31948:(e,t,r)=>{var n=r(74499);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},52437:(e,t,r)=>{var n=r(99513)(Object,"create");e.exports=n},60657:(e,t,r)=>{var n=r(64309)(Object.keys,Object);e.exports=n},95632:e=>{e.exports=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}},26391:(e,t,r)=>{e=r.nmd(e);var n=r(68399),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,s=o&&o.exports===i&&n.process,A=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=A},87427:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},64309:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},44322:(e,t,r)=>{var n=r(66636),i=Math.max;e.exports=function(e,t,r){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,s=-1,A=i(o.length-t,0),a=Array(A);++s{var n=r(84173),i=r(27708);e.exports=function(e,t){return t.length<2?e:n(e,i(t,0,-1))}},76169:(e,t,r)=>{var n=r(68399),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();e.exports=o},74785:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},87760:e=>{e.exports=function(e){return this.__data__.has(e)}},7442:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},3111:(e,t,r)=>{var n=r(4899),i=r(19908)(n);e.exports=i},19908:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var i=t(),o=16-(i-n);if(n=i,o>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},35678:(e,t,r)=>{var n=r(29197);e.exports=function(){this.__data__=new n,this.size=0}},33336:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},97163:e=>{e.exports=function(e){return this.__data__.get(e)}},43737:e=>{e.exports=function(e){return this.__data__.has(e)}},48548:(e,t,r)=>{var n=r(29197),i=r(63603),o=r(75009);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var s=r.__data__;if(!i||s.length<199)return s.push([e,t]),this.size=++r.size,this;r=this.__data__=new o(s)}return r.set(e,t),this.size=r.size,this}},95145:e=>{e.exports=function(e,t,r){for(var n=r-1,i=e.length;++n{var n=r(1051),i=r(93024),o=r(297);e.exports=function(e){return i(e)?o(e):n(e)}},8689:(e,t,r)=>{var n=r(31948),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,s=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,r,n,i){t.push(n?i.replace(o,"$1"):r||e)})),t}));e.exports=s},49874:(e,t,r)=>{var n=r(65558);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},76384:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},297:e=>{var t="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",i="[^\\ud800-\\udfff]",o="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",A="(?:"+r+"|"+n+")"+"?",a="[\\ufe0e\\ufe0f]?"+A+("(?:\\u200d(?:"+[i,o,s].join("|")+")[\\ufe0e\\ufe0f]?"+A+")*"),c="(?:"+[i+r+"?",r,o,s,t].join("|")+")",u=RegExp(n+"(?="+n+")|"+c+a,"g");e.exports=function(e){return e.match(u)||[]}},89887:e=>{var t="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",r="["+t+"]",n="\\d+",i="[\\u2700-\\u27bf]",o="[a-z\\xdf-\\xf6\\xf8-\\xff]",s="[^\\ud800-\\udfff"+t+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",A="(?:\\ud83c[\\udde6-\\uddff]){2}",a="[\\ud800-\\udbff][\\udc00-\\udfff]",c="[A-Z\\xc0-\\xd6\\xd8-\\xde]",u="(?:"+o+"|"+s+")",l="(?:"+c+"|"+s+")",h="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",g="[\\ufe0e\\ufe0f]?"+h+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",A,a].join("|")+")[\\ufe0e\\ufe0f]?"+h+")*"),f="(?:"+[i,A,a].join("|")+")"+g,p=RegExp([c+"?"+o+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[r,c,"$"].join("|")+")",l+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[r,c+u,"$"].join("|")+")",c+"?"+u+"+(?:['’](?:d|ll|m|re|s|t|ve))?",c+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(p)||[]}},9682:(e,t,r)=>{var n=r(65759),i=r(75182),o=r(27913),s=r(41929),A=r(89513),a=r(42185),c=Object.prototype.hasOwnProperty,u=o((function(e,t){if(A(t)||s(t))i(t,a(t),e);else for(var r in t)c.call(t,r)&&n(e,r,t[r])}));e.exports=u},88863:(e,t,r)=>{var n=r(75182),i=r(27913),o=r(24887),s=i((function(e,t){n(t,o(t),e)}));e.exports=s},89170:(e,t,r)=>{var n=r(61814),i=r(30369)((function(e,t,r){return t=t.toLowerCase(),e+(r?n(t):t)}));e.exports=i},61814:(e,t,r)=>{var n=r(33580),i=r(72609);e.exports=function(e){return i(n(e).toLowerCase())}},22254:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,4)}},82558:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,5)}},26052:(e,t,r)=>{var n=r(41076);e.exports=function(e,t){return n(e,5,t="function"==typeof t?t:void 0)}},4967:e=>{e.exports=function(e){return function(){return e}}},68968:(e,t,r)=>{var n=r(69922),i=r(33580),o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,s=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=i(e))&&e.replace(o,n).replace(s,"")}},99906:(e,t,r)=>{var n=r(30383),i=r(71074),o=r(33193),s=r(24887),A=Object.prototype,a=A.hasOwnProperty,c=n((function(e,t){e=Object(e);var r=-1,n=t.length,c=n>2?t[2]:void 0;for(c&&o(t[0],t[1],c)&&(n=1);++r{e.exports=function(e,t){return e===t||e!=e&&t!=t}},94501:(e,t,r)=>{e.exports=r(88863)},59181:(e,t,r)=>{var n=r(9073),i=r(3691),o=r(42208),s=r(82664);e.exports=function(e,t){return(s(e)?n:i)(e,o(t,3))}},98347:(e,t,r)=>{var n=r(80937)(r(17506));e.exports=n},17506:(e,t,r)=>{var n=r(72151),i=r(42208),o=r(864),s=Math.max;e.exports=function(e,t,r){var A=null==e?0:e.length;if(!A)return-1;var a=null==r?0:o(r);return a<0&&(a=s(A+a,0)),n(e,i(t,3),a)}},54690:(e,t,r)=>{var n=r(93274);e.exports=function(e){return(null==e?0:e.length)?n(e,1):[]}},44674:(e,t,r)=>{var n=r(84173);e.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},15215:(e,t,r)=>{var n=r(95325),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},34878:(e,t,r)=>{var n=r(3881),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},61977:e=>{e.exports=function(e){return e}},61771:(e,t,r)=>{var n=r(76357),i=r(38496),o=Object.prototype,s=o.hasOwnProperty,A=o.propertyIsEnumerable,a=n(function(){return arguments}())?n:function(e){return i(e)&&s.call(e,"callee")&&!A.call(e,"callee")};e.exports=a},82664:e=>{var t=Array.isArray;e.exports=t},41929:(e,t,r)=>{var n=r(92533),i=r(46369);e.exports=function(e){return null!=e&&i(e.length)&&!n(e)}},66807:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return!0===e||!1===e||i(e)&&"[object Boolean]"==n(e)}},10667:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=r(88988),o=t&&!t.nodeType&&t,s=o&&e&&!e.nodeType&&e,A=s&&s.exports===o?n.Buffer:void 0,a=(A?A.isBuffer:void 0)||i;e.exports=a},92533:(e,t,r)=>{var n=r(52502),i=r(46778);e.exports=function(e){if(!i(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},46369:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},13349:(e,t,r)=>{var n=r(55994),i=r(73635),o=r(26391),s=o&&o.isMap,A=s?i(s):n;e.exports=A},71044:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"number"==typeof e||i(e)&&"[object Number]"==n(e)}},46778:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},38496:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},11672:(e,t,r)=>{var n=r(52502),i=r(41181),o=r(38496),s=Function.prototype,A=Object.prototype,a=s.toString,c=A.hasOwnProperty,u=a.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=n(e))return!1;var t=i(e);if(null===t)return!0;var r=c.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&a.call(r)==u}},33931:(e,t,r)=>{var n=r(28612),i=r(73635),o=r(26391),s=o&&o.isSet,A=s?i(s):n;e.exports=A},221:(e,t,r)=>{var n=r(52502),i=r(82664),o=r(38496);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==n(e)}},65558:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==n(e)}},32565:(e,t,r)=>{var n=r(98998),i=r(73635),o=r(26391),s=o&&o.isTypedArray,A=s?i(s):n;e.exports=A},42185:(e,t,r)=>{var n=r(11886),i=r(50994),o=r(41929);e.exports=function(e){return o(e)?n(e):i(e)}},24887:(e,t,r)=>{var n=r(11886),i=r(8372),o=r(41929);e.exports=function(e){return o(e)?n(e,!0):i(e)}},49845:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},7564:function(e,t,r){var n; +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */e=r.nmd(e),function(){var i="Expected a function",o="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],A="[object Arguments]",a="[object Array]",c="[object Boolean]",u="[object Date]",l="[object Error]",h="[object Function]",g="[object GeneratorFunction]",f="[object Map]",p="[object Number]",d="[object Object]",C="[object RegExp]",E="[object Set]",I="[object String]",m="[object Symbol]",y="[object WeakMap]",w="[object ArrayBuffer]",B="[object DataView]",Q="[object Float32Array]",v="[object Float64Array]",D="[object Int8Array]",b="[object Int16Array]",S="[object Int32Array]",k="[object Uint8Array]",x="[object Uint16Array]",F="[object Uint32Array]",M=/\b__p \+= '';/g,N=/\b(__p \+=) '' \+/g,R=/(__e\(.*?\)|\b__t\)) \+\n'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,T=RegExp(K.source),P=RegExp(L.source),U=/<%-([\s\S]+?)%>/g,_=/<%([\s\S]+?)%>/g,O=/<%=([\s\S]+?)%>/g,j=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Y=/^\w*$/,G=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/[\\^$.*+?()[\]{}|]/g,H=RegExp(J.source),q=/^\s+|\s+$/g,z=/^\s+/,W=/\s+$/,V=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,X=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,$=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/\\(\\)?/g,te=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ne=/^[-+]0x[0-9a-f]+$/i,ie=/^0b[01]+$/i,oe=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,Ae=/^(?:0|[1-9]\d*)$/,ae=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ce=/($^)/,ue=/['\n\r\u2028\u2029\\]/g,le="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",he="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ge="[\\ud800-\\udfff]",fe="["+he+"]",pe="["+le+"]",de="\\d+",Ce="[\\u2700-\\u27bf]",Ee="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ie="[^\\ud800-\\udfff"+he+de+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",me="\\ud83c[\\udffb-\\udfff]",ye="[^\\ud800-\\udfff]",we="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",Qe="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ve="(?:"+Ee+"|"+Ie+")",De="(?:"+Qe+"|"+Ie+")",be="(?:"+pe+"|"+me+")"+"?",Se="[\\ufe0e\\ufe0f]?"+be+("(?:\\u200d(?:"+[ye,we,Be].join("|")+")[\\ufe0e\\ufe0f]?"+be+")*"),ke="(?:"+[Ce,we,Be].join("|")+")"+Se,xe="(?:"+[ye+pe+"?",pe,we,Be,ge].join("|")+")",Fe=RegExp("['’]","g"),Me=RegExp(pe,"g"),Ne=RegExp(me+"(?="+me+")|"+xe+Se,"g"),Re=RegExp([Qe+"?"+Ee+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[fe,Qe,"$"].join("|")+")",De+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[fe,Qe+ve,"$"].join("|")+")",Qe+"?"+ve+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Qe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",de,ke].join("|"),"g"),Ke=RegExp("[\\u200d\\ud800-\\udfff"+le+"\\ufe0e\\ufe0f]"),Le=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Te=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Pe=-1,Ue={};Ue[Q]=Ue[v]=Ue[D]=Ue[b]=Ue[S]=Ue[k]=Ue["[object Uint8ClampedArray]"]=Ue[x]=Ue[F]=!0,Ue[A]=Ue[a]=Ue[w]=Ue[c]=Ue[B]=Ue[u]=Ue[l]=Ue[h]=Ue[f]=Ue[p]=Ue[d]=Ue[C]=Ue[E]=Ue[I]=Ue[y]=!1;var _e={};_e[A]=_e[a]=_e[w]=_e[B]=_e[c]=_e[u]=_e[Q]=_e[v]=_e[D]=_e[b]=_e[S]=_e[f]=_e[p]=_e[d]=_e[C]=_e[E]=_e[I]=_e[m]=_e[k]=_e["[object Uint8ClampedArray]"]=_e[x]=_e[F]=!0,_e[l]=_e[h]=_e[y]=!1;var Oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},je=parseFloat,Ye=parseInt,Ge="object"==typeof global&&global&&global.Object===Object&&global,Je="object"==typeof self&&self&&self.Object===Object&&self,He=Ge||Je||Function("return this")(),qe=t&&!t.nodeType&&t,ze=qe&&e&&!e.nodeType&&e,We=ze&&ze.exports===qe,Ve=We&&Ge.process,Xe=function(){try{var e=ze&&ze.require&&ze.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch(e){}}(),Ze=Xe&&Xe.isArrayBuffer,$e=Xe&&Xe.isDate,et=Xe&&Xe.isMap,tt=Xe&&Xe.isRegExp,rt=Xe&&Xe.isSet,nt=Xe&&Xe.isTypedArray;function it(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function ot(e,t,r,n){for(var i=-1,o=null==e?0:e.length;++i-1}function lt(e,t,r){for(var n=-1,i=null==e?0:e.length;++n-1;);return r}function Nt(e,t){for(var r=e.length;r--&&mt(t,e[r],0)>-1;);return r}function Rt(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}var Kt=vt({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),Lt=vt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Tt(e){return"\\"+Oe[e]}function Pt(e){return Ke.test(e)}function Ut(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function _t(e,t){return function(r){return e(t(r))}}function Ot(e,t){for(var r=-1,n=e.length,i=0,s=[];++r",""":'"',"'":"'"});var qt=function e(t){var r,n=(t=null==t?He:qt.defaults(He.Object(),t,qt.pick(He,Te))).Array,le=t.Date,he=t.Error,ge=t.Function,fe=t.Math,pe=t.Object,de=t.RegExp,Ce=t.String,Ee=t.TypeError,Ie=n.prototype,me=ge.prototype,ye=pe.prototype,we=t["__core-js_shared__"],Be=me.toString,Qe=ye.hasOwnProperty,ve=0,De=(r=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",be=ye.toString,Se=Be.call(pe),ke=He._,xe=de("^"+Be.call(Qe).replace(J,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ne=We?t.Buffer:void 0,Ke=t.Symbol,Oe=t.Uint8Array,Ge=Ne?Ne.allocUnsafe:void 0,Je=_t(pe.getPrototypeOf,pe),qe=pe.create,ze=ye.propertyIsEnumerable,Ve=Ie.splice,Xe=Ke?Ke.isConcatSpreadable:void 0,Ct=Ke?Ke.iterator:void 0,vt=Ke?Ke.toStringTag:void 0,zt=function(){try{var e=$i(pe,"defineProperty");return e({},"",{}),e}catch(e){}}(),Wt=t.clearTimeout!==He.clearTimeout&&t.clearTimeout,Vt=le&&le.now!==He.Date.now&&le.now,Xt=t.setTimeout!==He.setTimeout&&t.setTimeout,Zt=fe.ceil,$t=fe.floor,er=pe.getOwnPropertySymbols,tr=Ne?Ne.isBuffer:void 0,rr=t.isFinite,nr=Ie.join,ir=_t(pe.keys,pe),or=fe.max,sr=fe.min,Ar=le.now,ar=t.parseInt,cr=fe.random,ur=Ie.reverse,lr=$i(t,"DataView"),hr=$i(t,"Map"),gr=$i(t,"Promise"),fr=$i(t,"Set"),pr=$i(t,"WeakMap"),dr=$i(pe,"create"),Cr=pr&&new pr,Er={},Ir=bo(lr),mr=bo(hr),yr=bo(gr),wr=bo(fr),Br=bo(pr),Qr=Ke?Ke.prototype:void 0,vr=Qr?Qr.valueOf:void 0,Dr=Qr?Qr.toString:void 0;function br(e){if(Gs(e)&&!Ns(e)&&!(e instanceof Fr)){if(e instanceof xr)return e;if(Qe.call(e,"__wrapped__"))return So(e)}return new xr(e)}var Sr=function(){function e(){}return function(t){if(!Ys(t))return{};if(qe)return qe(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function kr(){}function xr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Fr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Wr(e,t,r,n,i,o){var s,a=1&t,l=2&t,y=4&t;if(r&&(s=i?r(e,n,i,o):r(e)),void 0!==s)return s;if(!Ys(e))return e;var M=Ns(e);if(M){if(s=function(e){var t=e.length,r=new e.constructor(t);t&&"string"==typeof e[0]&&Qe.call(e,"index")&&(r.index=e.index,r.input=e.input);return r}(e),!a)return Ci(e,s)}else{var N=ro(e),R=N==h||N==g;if(Ts(e))return li(e,a);if(N==d||N==A||R&&!i){if(s=l||R?{}:io(e),!a)return l?function(e,t){return Ei(e,to(e),t)}(e,function(e,t){return e&&Ei(t,yA(t),e)}(s,e)):function(e,t){return Ei(e,eo(e),t)}(e,Jr(s,e))}else{if(!_e[N])return i?e:{};s=function(e,t,r){var n=e.constructor;switch(t){case w:return hi(e);case c:case u:return new n(+e);case B:return function(e,t){var r=t?hi(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case Q:case v:case D:case b:case S:case k:case"[object Uint8ClampedArray]":case x:case F:return gi(e,r);case f:return new n;case p:case I:return new n(e);case C:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case E:return new n;case m:return i=e,vr?pe(vr.call(i)):{}}var i}(e,N,a)}}o||(o=new Lr);var K=o.get(e);if(K)return K;o.set(e,s),Ws(e)?e.forEach((function(n){s.add(Wr(n,t,r,n,e,o))})):Js(e)&&e.forEach((function(n,i){s.set(i,Wr(n,t,r,i,e,o))}));var L=M?void 0:(y?l?Hi:Ji:l?yA:mA)(e);return st(L||e,(function(n,i){L&&(n=e[i=n]),jr(s,i,Wr(n,t,r,i,e,o))})),s}function Vr(e,t,r){var n=r.length;if(null==e)return!n;for(e=pe(e);n--;){var i=r[n],o=t[i],s=e[i];if(void 0===s&&!(i in e)||!o(s))return!1}return!0}function Xr(e,t,r){if("function"!=typeof e)throw new Ee(i);return mo((function(){e.apply(void 0,r)}),t)}function Zr(e,t,r,n){var i=-1,o=ut,s=!0,A=e.length,a=[],c=t.length;if(!A)return a;r&&(t=ht(t,kt(r))),n?(o=lt,s=!1):t.length>=200&&(o=Ft,s=!1,t=new Kr(t));e:for(;++i-1},Nr.prototype.set=function(e,t){var r=this.__data__,n=Yr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},Rr.prototype.clear=function(){this.size=0,this.__data__={hash:new Mr,map:new(hr||Nr),string:new Mr}},Rr.prototype.delete=function(e){var t=Xi(this,e).delete(e);return this.size-=t?1:0,t},Rr.prototype.get=function(e){return Xi(this,e).get(e)},Rr.prototype.has=function(e){return Xi(this,e).has(e)},Rr.prototype.set=function(e,t){var r=Xi(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},Kr.prototype.add=Kr.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Kr.prototype.has=function(e){return this.__data__.has(e)},Lr.prototype.clear=function(){this.__data__=new Nr,this.size=0},Lr.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Lr.prototype.get=function(e){return this.__data__.get(e)},Lr.prototype.has=function(e){return this.__data__.has(e)},Lr.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Nr){var n=r.__data__;if(!hr||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Rr(n)}return r.set(e,t),this.size=r.size,this};var $r=yi(an),en=yi(cn,!0);function tn(e,t){var r=!0;return $r(e,(function(e,n,i){return r=!!t(e,n,i)})),r}function rn(e,t,r){for(var n=-1,i=e.length;++n0&&r(A)?t>1?on(A,t-1,r,n,i):gt(i,A):n||(i[i.length]=A)}return i}var sn=wi(),An=wi(!0);function an(e,t){return e&&sn(e,t,mA)}function cn(e,t){return e&&An(e,t,mA)}function un(e,t){return ct(t,(function(t){return _s(e[t])}))}function ln(e,t){for(var r=0,n=(t=Ai(t,e)).length;null!=e&&rt}function pn(e,t){return null!=e&&Qe.call(e,t)}function dn(e,t){return null!=e&&t in pe(e)}function Cn(e,t,r){for(var i=r?lt:ut,o=e[0].length,s=e.length,A=s,a=n(s),c=1/0,u=[];A--;){var l=e[A];A&&t&&(l=ht(l,kt(t))),c=sr(l.length,c),a[A]=!r&&(t||o>=120&&l.length>=120)?new Kr(A&&l):void 0}l=e[0];var h=-1,g=a[0];e:for(;++h=A)return a;var c=r[n];return a*("desc"==c?-1:1)}}return e.index-t.index}(e,t,r)}))}function Nn(e,t,r){for(var n=-1,i=t.length,o={};++n-1;)A!==e&&Ve.call(A,a,1),Ve.call(e,a,1);return e}function Kn(e,t){for(var r=e?t.length:0,n=r-1;r--;){var i=t[r];if(r==n||i!==o){var o=i;so(i)?Ve.call(e,i,1):$n(e,i)}}return e}function Ln(e,t){return e+$t(cr()*(t-e+1))}function Tn(e,t){var r="";if(!e||t<1||t>9007199254740991)return r;do{t%2&&(r+=e),(t=$t(t/2))&&(e+=e)}while(t);return r}function Pn(e,t){return yo(fo(e,t,HA),e+"")}function Un(e){return Pr(kA(e))}function _n(e,t){var r=kA(e);return Qo(r,zr(t,0,r.length))}function On(e,t,r,n){if(!Ys(e))return e;for(var i=-1,o=(t=Ai(t,e)).length,s=o-1,A=e;null!=A&&++io?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=n(o);++i>>1,s=e[o];null!==s&&!Xs(s)&&(r?s<=t:s=200){var c=t?null:Ti(e);if(c)return jt(c);s=!1,i=Ft,a=new Kr}else a=t?[]:A;e:for(;++n=n?e:Jn(e,t,r)}var ui=Wt||function(e){return He.clearTimeout(e)};function li(e,t){if(t)return e.slice();var r=e.length,n=Ge?Ge(r):new e.constructor(r);return e.copy(n),n}function hi(e){var t=new e.constructor(e.byteLength);return new Oe(t).set(new Oe(e)),t}function gi(e,t){var r=t?hi(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function fi(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=e==e,o=Xs(e),s=void 0!==t,A=null===t,a=t==t,c=Xs(t);if(!A&&!c&&!o&&e>t||o&&s&&a&&!A&&!c||n&&s&&a||!r&&a||!i)return 1;if(!n&&!o&&!c&&e1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,s&&Ao(r[0],r[1],s)&&(o=i<3?void 0:o,i=1),t=pe(t);++n-1?i[o?t[s]:s]:void 0}}function bi(e){return Gi((function(t){var r=t.length,n=r,o=xr.prototype.thru;for(e&&t.reverse();n--;){var s=t[n];if("function"!=typeof s)throw new Ee(i);if(o&&!A&&"wrapper"==zi(s))var A=new xr([],!0)}for(n=A?n:r;++n1&&I.reverse(),l&&cA))return!1;var c=o.get(e);if(c&&o.get(t))return c==t;var u=-1,l=!0,h=2&r?new Kr:void 0;for(o.set(e,t),o.set(t,e);++u-1&&e%1==0&&e1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(V,"{\n/* [wrapped with "+t+"] */\n")}(n,function(e,t){return st(s,(function(r){var n="_."+r[0];t&r[1]&&!ut(e,n)&&e.push(n)})),e.sort()}(function(e){var t=e.match(X);return t?t[1].split(Z):[]}(n),r)))}function Bo(e){var t=0,r=0;return function(){var n=Ar(),i=16-(n-r);if(r=n,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Qo(e,t){var r=-1,n=e.length,i=n-1;for(t=void 0===t?n:t;++r1?e[t-1]:void 0;return r="function"==typeof r?(e.pop(),r):void 0,zo(e,r)}));function ts(e){var t=br(e);return t.__chain__=!0,t}function rs(e,t){return t(e)}var ns=Gi((function(e){var t=e.length,r=t?e[0]:0,n=this.__wrapped__,i=function(t){return qr(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Fr&&so(r)?((n=n.slice(r,+r+(t?1:0))).__actions__.push({func:rs,args:[i],thisArg:void 0}),new xr(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var is=Ii((function(e,t,r){Qe.call(e,r)?++e[r]:Hr(e,r,1)}));var os=Di(Mo),ss=Di(No);function As(e,t){return(Ns(e)?st:$r)(e,Vi(t,3))}function as(e,t){return(Ns(e)?At:en)(e,Vi(t,3))}var cs=Ii((function(e,t,r){Qe.call(e,r)?e[r].push(t):Hr(e,r,[t])}));var us=Pn((function(e,t,r){var i=-1,o="function"==typeof t,s=Ks(e)?n(e.length):[];return $r(e,(function(e){s[++i]=o?it(t,e,r):En(e,t,r)})),s})),ls=Ii((function(e,t,r){Hr(e,r,t)}));function hs(e,t){return(Ns(e)?ht:bn)(e,Vi(t,3))}var gs=Ii((function(e,t,r){e[r?0:1].push(t)}),(function(){return[[],[]]}));var fs=Pn((function(e,t){if(null==e)return[];var r=t.length;return r>1&&Ao(e,t[0],t[1])?t=[]:r>2&&Ao(t[0],t[1],t[2])&&(t=[t[0]]),Mn(e,on(t,1),[])})),ps=Vt||function(){return He.Date.now()};function ds(e,t,r){return t=r?void 0:t,Ui(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function Cs(e,t){var r;if("function"!=typeof t)throw new Ee(i);return e=nA(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=void 0),r}}var Es=Pn((function(e,t,r){var n=1;if(r.length){var i=Ot(r,Wi(Es));n|=32}return Ui(e,n,t,r,i)})),Is=Pn((function(e,t,r){var n=3;if(r.length){var i=Ot(r,Wi(Is));n|=32}return Ui(t,n,e,r,i)}));function ms(e,t,r){var n,o,s,A,a,c,u=0,l=!1,h=!1,g=!0;if("function"!=typeof e)throw new Ee(i);function f(t){var r=n,i=o;return n=o=void 0,u=t,A=e.apply(i,r)}function p(e){return u=e,a=mo(C,t),l?f(e):A}function d(e){var r=e-c;return void 0===c||r>=t||r<0||h&&e-u>=s}function C(){var e=ps();if(d(e))return E(e);a=mo(C,function(e){var r=t-(e-c);return h?sr(r,s-(e-u)):r}(e))}function E(e){return a=void 0,g&&n?f(e):(n=o=void 0,A)}function I(){var e=ps(),r=d(e);if(n=arguments,o=this,c=e,r){if(void 0===a)return p(c);if(h)return ui(a),a=mo(C,t),f(c)}return void 0===a&&(a=mo(C,t)),A}return t=oA(t)||0,Ys(r)&&(l=!!r.leading,s=(h="maxWait"in r)?or(oA(r.maxWait)||0,t):s,g="trailing"in r?!!r.trailing:g),I.cancel=function(){void 0!==a&&ui(a),u=0,n=c=o=a=void 0},I.flush=function(){return void 0===a?A:E(ps())},I}var ys=Pn((function(e,t){return Xr(e,1,t)})),ws=Pn((function(e,t,r){return Xr(e,oA(t)||0,r)}));function Bs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ee(i);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(Bs.Cache||Rr),r}function Qs(e){if("function"!=typeof e)throw new Ee(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Bs.Cache=Rr;var vs=ai((function(e,t){var r=(t=1==t.length&&Ns(t[0])?ht(t[0],kt(Vi())):ht(on(t,1),kt(Vi()))).length;return Pn((function(n){for(var i=-1,o=sr(n.length,r);++i=t})),Ms=In(function(){return arguments}())?In:function(e){return Gs(e)&&Qe.call(e,"callee")&&!ze.call(e,"callee")},Ns=n.isArray,Rs=Ze?kt(Ze):function(e){return Gs(e)&&gn(e)==w};function Ks(e){return null!=e&&js(e.length)&&!_s(e)}function Ls(e){return Gs(e)&&Ks(e)}var Ts=tr||oa,Ps=$e?kt($e):function(e){return Gs(e)&&gn(e)==u};function Us(e){if(!Gs(e))return!1;var t=gn(e);return t==l||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!qs(e)}function _s(e){if(!Ys(e))return!1;var t=gn(e);return t==h||t==g||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Os(e){return"number"==typeof e&&e==nA(e)}function js(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ys(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Gs(e){return null!=e&&"object"==typeof e}var Js=et?kt(et):function(e){return Gs(e)&&ro(e)==f};function Hs(e){return"number"==typeof e||Gs(e)&&gn(e)==p}function qs(e){if(!Gs(e)||gn(e)!=d)return!1;var t=Je(e);if(null===t)return!0;var r=Qe.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&Be.call(r)==Se}var zs=tt?kt(tt):function(e){return Gs(e)&&gn(e)==C};var Ws=rt?kt(rt):function(e){return Gs(e)&&ro(e)==E};function Vs(e){return"string"==typeof e||!Ns(e)&&Gs(e)&&gn(e)==I}function Xs(e){return"symbol"==typeof e||Gs(e)&&gn(e)==m}var Zs=nt?kt(nt):function(e){return Gs(e)&&js(e.length)&&!!Ue[gn(e)]};var $s=Ri(Dn),eA=Ri((function(e,t){return e<=t}));function tA(e){if(!e)return[];if(Ks(e))return Vs(e)?Jt(e):Ci(e);if(Ct&&e[Ct])return function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}(e[Ct]());var t=ro(e);return(t==f?Ut:t==E?jt:kA)(e)}function rA(e){return e?(e=oA(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function nA(e){var t=rA(e),r=t%1;return t==t?r?t-r:t:0}function iA(e){return e?zr(nA(e),0,4294967295):0}function oA(e){if("number"==typeof e)return e;if(Xs(e))return NaN;if(Ys(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ys(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(q,"");var r=ie.test(e);return r||se.test(e)?Ye(e.slice(2),r?2:8):ne.test(e)?NaN:+e}function sA(e){return Ei(e,yA(e))}function AA(e){return null==e?"":Xn(e)}var aA=mi((function(e,t){if(lo(t)||Ks(t))Ei(t,mA(t),e);else for(var r in t)Qe.call(t,r)&&jr(e,r,t[r])})),cA=mi((function(e,t){Ei(t,yA(t),e)})),uA=mi((function(e,t,r,n){Ei(t,yA(t),e,n)})),lA=mi((function(e,t,r,n){Ei(t,mA(t),e,n)})),hA=Gi(qr);var gA=Pn((function(e,t){e=pe(e);var r=-1,n=t.length,i=n>2?t[2]:void 0;for(i&&Ao(t[0],t[1],i)&&(n=1);++r1),t})),Ei(e,Hi(e),r),n&&(r=Wr(r,7,ji));for(var i=t.length;i--;)$n(r,t[i]);return r}));var vA=Gi((function(e,t){return null==e?{}:function(e,t){return Nn(e,t,(function(t,r){return dA(e,r)}))}(e,t)}));function DA(e,t){if(null==e)return{};var r=ht(Hi(e),(function(e){return[e]}));return t=Vi(t),Nn(e,r,(function(e,r){return t(e,r[0])}))}var bA=Pi(mA),SA=Pi(yA);function kA(e){return null==e?[]:xt(e,mA(e))}var xA=Qi((function(e,t,r){return t=t.toLowerCase(),e+(r?FA(t):t)}));function FA(e){return UA(AA(e).toLowerCase())}function MA(e){return(e=AA(e))&&e.replace(ae,Kt).replace(Me,"")}var NA=Qi((function(e,t,r){return e+(r?"-":"")+t.toLowerCase()})),RA=Qi((function(e,t,r){return e+(r?" ":"")+t.toLowerCase()})),KA=Bi("toLowerCase");var LA=Qi((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));var TA=Qi((function(e,t,r){return e+(r?" ":"")+UA(t)}));var PA=Qi((function(e,t,r){return e+(r?" ":"")+t.toUpperCase()})),UA=Bi("toUpperCase");function _A(e,t,r){return e=AA(e),void 0===(t=r?void 0:t)?function(e){return Le.test(e)}(e)?function(e){return e.match(Re)||[]}(e):function(e){return e.match($)||[]}(e):e.match(t)||[]}var OA=Pn((function(e,t){try{return it(e,void 0,t)}catch(e){return Us(e)?e:new he(e)}})),jA=Gi((function(e,t){return st(t,(function(t){t=Do(t),Hr(e,t,Es(e[t],e))})),e}));function YA(e){return function(){return e}}var GA=bi(),JA=bi(!0);function HA(e){return e}function qA(e){return Bn("function"==typeof e?e:Wr(e,1))}var zA=Pn((function(e,t){return function(r){return En(r,e,t)}})),WA=Pn((function(e,t){return function(r){return En(e,r,t)}}));function VA(e,t,r){var n=mA(t),i=un(t,n);null!=r||Ys(t)&&(i.length||!n.length)||(r=t,t=e,e=this,i=un(t,mA(t)));var o=!(Ys(r)&&"chain"in r&&!r.chain),s=_s(e);return st(i,(function(r){var n=t[r];e[r]=n,s&&(e.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=e(this.__wrapped__),i=r.__actions__=Ci(this.__actions__);return i.push({func:n,args:arguments,thisArg:e}),r.__chain__=t,r}return n.apply(e,gt([this.value()],arguments))})})),e}function XA(){}var ZA=Fi(ht),$A=Fi(at),ea=Fi(dt);function ta(e){return ao(e)?Qt(Do(e)):function(e){return function(t){return ln(t,e)}}(e)}var ra=Ni(),na=Ni(!0);function ia(){return[]}function oa(){return!1}var sa=xi((function(e,t){return e+t}),0),Aa=Li("ceil"),aa=xi((function(e,t){return e/t}),1),ca=Li("floor");var ua,la=xi((function(e,t){return e*t}),1),ha=Li("round"),ga=xi((function(e,t){return e-t}),0);return br.after=function(e,t){if("function"!=typeof t)throw new Ee(i);return e=nA(e),function(){if(--e<1)return t.apply(this,arguments)}},br.ary=ds,br.assign=aA,br.assignIn=cA,br.assignInWith=uA,br.assignWith=lA,br.at=hA,br.before=Cs,br.bind=Es,br.bindAll=jA,br.bindKey=Is,br.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ns(e)?e:[e]},br.chain=ts,br.chunk=function(e,t,r){t=(r?Ao(e,t,r):void 0===t)?1:or(nA(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,s=0,A=n(Zt(i/t));oi?0:i+r),(n=void 0===n||n>i?i:nA(n))<0&&(n+=i),n=r>n?0:iA(n);r>>0)?(e=AA(e))&&("string"==typeof t||null!=t&&!zs(t))&&!(t=Xn(t))&&Pt(e)?ci(Jt(e),0,r):e.split(t,r):[]},br.spread=function(e,t){if("function"!=typeof e)throw new Ee(i);return t=null==t?0:or(nA(t),0),Pn((function(r){var n=r[t],i=ci(r,0,t);return n&>(i,n),it(e,this,i)}))},br.tail=function(e){var t=null==e?0:e.length;return t?Jn(e,1,t):[]},br.take=function(e,t,r){return e&&e.length?Jn(e,0,(t=r||void 0===t?1:nA(t))<0?0:t):[]},br.takeRight=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,(t=n-(t=r||void 0===t?1:nA(t)))<0?0:t,n):[]},br.takeRightWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!1,!0):[]},br.takeWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3)):[]},br.tap=function(e,t){return t(e),e},br.throttle=function(e,t,r){var n=!0,o=!0;if("function"!=typeof e)throw new Ee(i);return Ys(r)&&(n="leading"in r?!!r.leading:n,o="trailing"in r?!!r.trailing:o),ms(e,t,{leading:n,maxWait:t,trailing:o})},br.thru=rs,br.toArray=tA,br.toPairs=bA,br.toPairsIn=SA,br.toPath=function(e){return Ns(e)?ht(e,Do):Xs(e)?[e]:Ci(vo(AA(e)))},br.toPlainObject=sA,br.transform=function(e,t,r){var n=Ns(e),i=n||Ts(e)||Zs(e);if(t=Vi(t,4),null==r){var o=e&&e.constructor;r=i?n?new o:[]:Ys(e)&&_s(o)?Sr(Je(e)):{}}return(i?st:an)(e,(function(e,n,i){return t(r,e,n,i)})),r},br.unary=function(e){return ds(e,1)},br.union=Go,br.unionBy=Jo,br.unionWith=Ho,br.uniq=function(e){return e&&e.length?Zn(e):[]},br.uniqBy=function(e,t){return e&&e.length?Zn(e,Vi(t,2)):[]},br.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Zn(e,void 0,t):[]},br.unset=function(e,t){return null==e||$n(e,t)},br.unzip=qo,br.unzipWith=zo,br.update=function(e,t,r){return null==e?e:ei(e,t,si(r))},br.updateWith=function(e,t,r,n){return n="function"==typeof n?n:void 0,null==e?e:ei(e,t,si(r),n)},br.values=kA,br.valuesIn=function(e){return null==e?[]:xt(e,yA(e))},br.without=Wo,br.words=_A,br.wrap=function(e,t){return Ds(si(t),e)},br.xor=Vo,br.xorBy=Xo,br.xorWith=Zo,br.zip=$o,br.zipObject=function(e,t){return ii(e||[],t||[],jr)},br.zipObjectDeep=function(e,t){return ii(e||[],t||[],On)},br.zipWith=es,br.entries=bA,br.entriesIn=SA,br.extend=cA,br.extendWith=uA,VA(br,br),br.add=sa,br.attempt=OA,br.camelCase=xA,br.capitalize=FA,br.ceil=Aa,br.clamp=function(e,t,r){return void 0===r&&(r=t,t=void 0),void 0!==r&&(r=(r=oA(r))==r?r:0),void 0!==t&&(t=(t=oA(t))==t?t:0),zr(oA(e),t,r)},br.clone=function(e){return Wr(e,4)},br.cloneDeep=function(e){return Wr(e,5)},br.cloneDeepWith=function(e,t){return Wr(e,5,t="function"==typeof t?t:void 0)},br.cloneWith=function(e,t){return Wr(e,4,t="function"==typeof t?t:void 0)},br.conformsTo=function(e,t){return null==t||Vr(e,t,mA(t))},br.deburr=MA,br.defaultTo=function(e,t){return null==e||e!=e?t:e},br.divide=aa,br.endsWith=function(e,t,r){e=AA(e),t=Xn(t);var n=e.length,i=r=void 0===r?n:zr(nA(r),0,n);return(r-=t.length)>=0&&e.slice(r,i)==t},br.eq=ks,br.escape=function(e){return(e=AA(e))&&P.test(e)?e.replace(L,Lt):e},br.escapeRegExp=function(e){return(e=AA(e))&&H.test(e)?e.replace(J,"\\$&"):e},br.every=function(e,t,r){var n=Ns(e)?at:tn;return r&&Ao(e,t,r)&&(t=void 0),n(e,Vi(t,3))},br.find=os,br.findIndex=Mo,br.findKey=function(e,t){return Et(e,Vi(t,3),an)},br.findLast=ss,br.findLastIndex=No,br.findLastKey=function(e,t){return Et(e,Vi(t,3),cn)},br.floor=ca,br.forEach=As,br.forEachRight=as,br.forIn=function(e,t){return null==e?e:sn(e,Vi(t,3),yA)},br.forInRight=function(e,t){return null==e?e:An(e,Vi(t,3),yA)},br.forOwn=function(e,t){return e&&an(e,Vi(t,3))},br.forOwnRight=function(e,t){return e&&cn(e,Vi(t,3))},br.get=pA,br.gt=xs,br.gte=Fs,br.has=function(e,t){return null!=e&&no(e,t,pn)},br.hasIn=dA,br.head=Ko,br.identity=HA,br.includes=function(e,t,r,n){e=Ks(e)?e:kA(e),r=r&&!n?nA(r):0;var i=e.length;return r<0&&(r=or(i+r,0)),Vs(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&mt(e,t,r)>-1},br.indexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:nA(r);return i<0&&(i=or(n+i,0)),mt(e,t,i)},br.inRange=function(e,t,r){return t=rA(t),void 0===r?(r=t,t=0):r=rA(r),function(e,t,r){return e>=sr(t,r)&&e=-9007199254740991&&e<=9007199254740991},br.isSet=Ws,br.isString=Vs,br.isSymbol=Xs,br.isTypedArray=Zs,br.isUndefined=function(e){return void 0===e},br.isWeakMap=function(e){return Gs(e)&&ro(e)==y},br.isWeakSet=function(e){return Gs(e)&&"[object WeakSet]"==gn(e)},br.join=function(e,t){return null==e?"":nr.call(e,t)},br.kebabCase=NA,br.last=Uo,br.lastIndexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=n;return void 0!==r&&(i=(i=nA(r))<0?or(n+i,0):sr(i,n-1)),t==t?function(e,t,r){for(var n=r+1;n--;)if(e[n]===t)return n;return n}(e,t,i):It(e,wt,i,!0)},br.lowerCase=RA,br.lowerFirst=KA,br.lt=$s,br.lte=eA,br.max=function(e){return e&&e.length?rn(e,HA,fn):void 0},br.maxBy=function(e,t){return e&&e.length?rn(e,Vi(t,2),fn):void 0},br.mean=function(e){return Bt(e,HA)},br.meanBy=function(e,t){return Bt(e,Vi(t,2))},br.min=function(e){return e&&e.length?rn(e,HA,Dn):void 0},br.minBy=function(e,t){return e&&e.length?rn(e,Vi(t,2),Dn):void 0},br.stubArray=ia,br.stubFalse=oa,br.stubObject=function(){return{}},br.stubString=function(){return""},br.stubTrue=function(){return!0},br.multiply=la,br.nth=function(e,t){return e&&e.length?Fn(e,nA(t)):void 0},br.noConflict=function(){return He._===this&&(He._=ke),this},br.noop=XA,br.now=ps,br.pad=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;if(!t||n>=t)return e;var i=(t-n)/2;return Mi($t(i),r)+e+Mi(Zt(i),r)},br.padEnd=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;return t&&nt){var n=e;e=t,t=n}if(r||e%1||t%1){var i=cr();return sr(e+i*(t-e+je("1e-"+((i+"").length-1))),t)}return Ln(e,t)},br.reduce=function(e,t,r){var n=Ns(e)?ft:Dt,i=arguments.length<3;return n(e,Vi(t,4),r,i,$r)},br.reduceRight=function(e,t,r){var n=Ns(e)?pt:Dt,i=arguments.length<3;return n(e,Vi(t,4),r,i,en)},br.repeat=function(e,t,r){return t=(r?Ao(e,t,r):void 0===t)?1:nA(t),Tn(AA(e),t)},br.replace=function(){var e=arguments,t=AA(e[0]);return e.length<3?t:t.replace(e[1],e[2])},br.result=function(e,t,r){var n=-1,i=(t=Ai(t,e)).length;for(i||(i=1,e=void 0);++n9007199254740991)return[];var r=4294967295,n=sr(e,4294967295);e-=4294967295;for(var i=St(n,t=Vi(t));++r=o)return e;var A=r-Gt(n);if(A<1)return n;var a=s?ci(s,0,A).join(""):e.slice(0,A);if(void 0===i)return a+n;if(s&&(A+=a.length-A),zs(i)){if(e.slice(A).search(i)){var c,u=a;for(i.global||(i=de(i.source,AA(re.exec(i))+"g")),i.lastIndex=0;c=i.exec(u);)var l=c.index;a=a.slice(0,void 0===l?A:l)}}else if(e.indexOf(Xn(i),A)!=A){var h=a.lastIndexOf(i);h>-1&&(a=a.slice(0,h))}return a+n},br.unescape=function(e){return(e=AA(e))&&T.test(e)?e.replace(K,Ht):e},br.uniqueId=function(e){var t=++ve;return AA(e)+t},br.upperCase=PA,br.upperFirst=UA,br.each=As,br.eachRight=as,br.first=Ko,VA(br,(ua={},an(br,(function(e,t){Qe.call(br.prototype,t)||(ua[t]=e)})),ua),{chain:!1}),br.VERSION="4.17.15",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){br[e].placeholder=br})),st(["drop","take"],(function(e,t){Fr.prototype[e]=function(r){r=void 0===r?1:or(nA(r),0);var n=this.__filtered__&&!t?new Fr(this):this.clone();return n.__filtered__?n.__takeCount__=sr(r,n.__takeCount__):n.__views__.push({size:sr(r,4294967295),type:e+(n.__dir__<0?"Right":"")}),n},Fr.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var r=t+1,n=1==r||3==r;Fr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Vi(e,3),type:r}),t.__filtered__=t.__filtered__||n,t}})),st(["head","last"],(function(e,t){var r="take"+(t?"Right":"");Fr.prototype[e]=function(){return this[r](1).value()[0]}})),st(["initial","tail"],(function(e,t){var r="drop"+(t?"":"Right");Fr.prototype[e]=function(){return this.__filtered__?new Fr(this):this[r](1)}})),Fr.prototype.compact=function(){return this.filter(HA)},Fr.prototype.find=function(e){return this.filter(e).head()},Fr.prototype.findLast=function(e){return this.reverse().find(e)},Fr.prototype.invokeMap=Pn((function(e,t){return"function"==typeof e?new Fr(this):this.map((function(r){return En(r,e,t)}))})),Fr.prototype.reject=function(e){return this.filter(Qs(Vi(e)))},Fr.prototype.slice=function(e,t){e=nA(e);var r=this;return r.__filtered__&&(e>0||t<0)?new Fr(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),void 0!==t&&(r=(t=nA(t))<0?r.dropRight(-t):r.take(t-e)),r)},Fr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Fr.prototype.toArray=function(){return this.take(4294967295)},an(Fr.prototype,(function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),i=br[n?"take"+("last"==t?"Right":""):t],o=n||/^find/.test(t);i&&(br.prototype[t]=function(){var t=this.__wrapped__,s=n?[1]:arguments,A=t instanceof Fr,a=s[0],c=A||Ns(t),u=function(e){var t=i.apply(br,gt([e],s));return n&&l?t[0]:t};c&&r&&"function"==typeof a&&1!=a.length&&(A=c=!1);var l=this.__chain__,h=!!this.__actions__.length,g=o&&!l,f=A&&!h;if(!o&&c){t=f?t:new Fr(this);var p=e.apply(t,s);return p.__actions__.push({func:rs,args:[u],thisArg:void 0}),new xr(p,l)}return g&&f?e.apply(this,s):(p=this.thru(u),g?n?p.value()[0]:p.value():p)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ie[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);br.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return t.apply(Ns(i)?i:[],e)}return this[r]((function(r){return t.apply(Ns(r)?r:[],e)}))}})),an(Fr.prototype,(function(e,t){var r=br[t];if(r){var n=r.name+"";Qe.call(Er,n)||(Er[n]=[]),Er[n].push({name:t,func:r})}})),Er[Si(void 0,2).name]=[{name:"wrapper",func:void 0}],Fr.prototype.clone=function(){var e=new Fr(this.__wrapped__);return e.__actions__=Ci(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ci(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ci(this.__views__),e},Fr.prototype.reverse=function(){if(this.__filtered__){var e=new Fr(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Fr.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,r=Ns(e),n=t<0,i=r?e.length:0,o=function(e,t,r){var n=-1,i=r.length;for(;++n=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},br.prototype.plant=function(e){for(var t,r=this;r instanceof kr;){var n=So(r);n.__index__=0,n.__values__=void 0,t?i.__wrapped__=n:t=n;var i=n;r=r.__wrapped__}return i.__wrapped__=e,t},br.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Fr){var t=e;return this.__actions__.length&&(t=new Fr(this)),(t=t.reverse()).__actions__.push({func:rs,args:[Yo],thisArg:void 0}),new xr(t,this.__chain__)}return this.thru(Yo)},br.prototype.toJSON=br.prototype.valueOf=br.prototype.value=function(){return ri(this.__wrapped__,this.__actions__)},br.prototype.first=br.prototype.head,Ct&&(br.prototype[Ct]=function(){return this}),br}();He._=qt,void 0===(n=function(){return qt}.call(t,r,t,e))||(e.exports=n)}.call(this)},27869:(e,t,r)=>{var n=r(60783),i=r(42208),o=r(26309),s=r(82664);e.exports=function(e,t){return(s(e)?n:o)(e,i(t,3))}},5253:(e,t,r)=>{var n=r(91198),i=r(62164),o=r(42208);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,t(e,i,o),e)})),r}},89612:(e,t,r)=>{var n=r(91198),i=r(62164),o=r(42208);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,i,t(e,i,o))})),r}},74499:(e,t,r)=>{var n=r(75009);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(i.Cache||n),r}i.Cache=n,e.exports=i},34791:e=>{e.exports=function(){}},82740:(e,t,r)=>{var n=r(60783),i=r(41076),o=r(81622),s=r(56725),A=r(75182),a=r(37306),c=r(87298),u=r(64420),l=c((function(e,t){var r={};if(null==e)return r;var c=!1;t=n(t,(function(t){return t=s(t,e),c||(c=t.length>1),t})),A(e,u(e),r),c&&(r=i(r,7,a));for(var l=t.length;l--;)o(r,t[l]);return r}));e.exports=l},7430:(e,t,r)=>{var n=r(35400),i=r(43018),o=r(70474),s=r(49874);e.exports=function(e){return o(e)?n(s(e)):i(e)}},81534:(e,t,r)=>{var n=r(10624);e.exports=function(e,t,r){return null==e?e:n(e,t,r)}},36494:(e,t,r)=>{var n=r(30369)((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));e.exports=n},62162:e=>{e.exports=function(){return[]}},88988:e=>{e.exports=function(){return!1}},2614:(e,t,r)=>{var n=r(96815),i=r(61977);e.exports=function(e){return e&&e.length?n(e,i):0}},78700:(e,t,r)=>{var n=r(69976),i=r(87229),o=r(79435),s=r(41929),A=r(221),a=r(82262),c=r(7877),u=r(7442),l=r(30475),h=r(24448),g=n?n.iterator:void 0;e.exports=function(e){if(!e)return[];if(s(e))return A(e)?l(e):i(e);if(g&&e[g])return a(e[g]());var t=o(e);return("[object Map]"==t?c:"[object Set]"==t?u:h)(e)}},67770:(e,t,r)=>{var n=r(90257);e.exports=function(e){return e?(e=n(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},864:(e,t,r)=>{var n=r(67770);e.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},90257:(e,t,r)=>{var n=r(46778),i=r(65558),o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,A=/^0b[01]+$/i,a=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=A.test(e);return r||a.test(e)?c(e.slice(2),r?2:8):s.test(e)?NaN:+e}},33580:(e,t,r)=>{var n=r(35);e.exports=function(e){return null==e?"":n(e)}},44852:(e,t,r)=>{var n=r(42150);e.exports=function(e){return e&&e.length?n(e):[]}},72609:(e,t,r)=>{var n=r(56989)("toUpperCase");e.exports=n},24448:(e,t,r)=>{var n=r(18290),i=r(42185);e.exports=function(e){return null==e?[]:n(e,i(e))}},97684:(e,t,r)=>{var n=r(11852),i=r(60466),o=r(33580),s=r(89887);e.exports=function(e,t,r){return e=o(e),void 0===(t=r?void 0:t)?i(e)?s(e):n(e):e.match(t)||[]}},58708:(e,t,r)=>{var n,i=r(73789),o=r(5817),s=function(e,t){return t.description=e,t},A=function(e,t,r){return s(e,(function(e){return e instanceof t[r]}))};(n={}).isNumTerm=s("a NumTerm (non-zero integer)",(function(e){return e===(0|e)&&0!==e})),n.isNameTerm=s("a NameTerm (string)",(function(e){return"string"==typeof e&&!/^-*[0-9]*$/.test(e)})),n.isTerm=s("a Term (appropriate string or number)",(function(e){return n.isNumTerm(e)||n.isNameTerm(e)})),n.isWholeNumber=s("a whole number (integer >= 0)",(function(e){return e===(0|e)&&e>=0})),n.isFormula=A("a Formula",n,"Formula"),n.isClause=A("a Clause",n,"Clause"),n.isBits=A("a Bits",n,"Bits"),n._isInteger=s("an integer",(function(e){return e===(0|e)})),n._isFunction=s("a Function",(function(e){return"function"==typeof e})),n._isString=s("a String",(function(e){return"string"==typeof e})),n._isArrayWhere=function(e){var t="an array";return e.description&&(t+=" of "+e.description),s(t,(function(t){if(o.isArray(t)){for(var r=0;r=t.length)throw new Error("Bad variable num: "+e);return t[e]},n.Solver.prototype.toNumTerm=function(e,t){if(p&&p(e,n.isTerm),"number"==typeof e)return e;for(var r=!1;"-"===e.charAt(0);)e=e.slice(1),r=!r;var i=this.getVarNum(e,t);return i?r?-i:i:0},n.Solver.prototype.toNameTerm=function(e){if(p&&p(e,n.isTerm),"string"==typeof e){for(;"--"===e.slice(0,2);)e=e.slice(2);return e}var t=!1;return e<0&&(t=!0,e=-e),e=this.getVarName(e),t&&(e="-"+e),e},n.Solver.prototype._addClause=function(e,t,r){p&&p(e,n.isClause);var i=null;t&&(i=t,p&&p(i,l(n.isNumTerm)));var o=!1,s=!1,A=e.terms.length;i&&(e=e.append(i));for(var a=0;a=this._num2name.length)throw new Error("Bad variable number: "+u);a0,u=null;if(t?s=t:(u=[],s=function(e,t){u.push({clauses:e,extraTerms:t})}),c&&!a.occursPositively){a.occursPositively=!0;var l=r._generateFormula(!0,A);s(l,[-i])}else if(!c&&!a.occursNegatively){a.occursNegatively=!0;l=r._generateFormula(!1,A);s(l,[i])}if(a.occursPositively&&a.occursNegatively&&delete r._ungeneratedFormulas[i],u&&u.length)for(var h=function(e){r._useFormulaTerm(e,s)};u.length;){var g=u.pop();r._addClauses(g.clauses,g.extraTerms,h)}}},n.Solver.prototype._addClauses=function(e,t,r){p&&p(e,l(n.isClause));var i=this;o.each(e,(function(e){i._addClause(e,t,r)}))},n.Solver.prototype.require=function(){this._requireForbidImpl(!0,o.flatten(arguments))},n.Solver.prototype.forbid=function(){this._requireForbidImpl(!1,o.flatten(arguments))},n.Solver.prototype._requireForbidImpl=function(e,t){var r=this;p&&p(t,l(h)),o.each(t,(function(t){if(t instanceof n.NotFormula)r._requireForbidImpl(!e,[t.operand]);else if(t instanceof n.Formula){var i=r._getFormulaInfo(t);if(null!==i.varNum){var o=e?1:-1;r._addClause(new n.Clause(o*i.varNum))}else r._addClauses(r._generateFormula(e,t));e?i.isRequired=!0:i.isForbidden=!0}else r._addClauses(r._generateFormula(e,t))}))},n.Solver.prototype._generateFormula=function(e,t,r){if(p&&p(t,h),t instanceof n.NotFormula)return this._generateFormula(!e,t.operand);if(t instanceof n.Formula){var i=this._getFormulaInfo(t);if(e&&i.isRequired||!e&&i.isForbidden)return[];if(e&&i.isForbidden||!e&&i.isRequired)return[new n.Clause];var s=t.generateClauses(e,r||this._termifier);return o.isArray(s)?s:[s]}var A=this.toNumTerm(t),a=e?1:-1;return A===a*n.NUM_TRUE||A===-a*n.NUM_FALSE?[]:A===a*n.NUM_FALSE||A===-a*n.NUM_TRUE?[new n.Clause]:[new n.Clause(a*A)]},n.Solver.prototype._clauseData=function(){var e=o.pluck(this.clauses,"terms");return this._T_used||e.splice(1,1),this._F_used||e.splice(0,1),e},n.Solver.prototype._clauseStrings=function(){var e=this,t=e._clauseData();return o.map(t,(function(t){return o.map(t,(function(t){var r=e.toNameTerm(t);if(/\s/.test(r)){var n="";"-"===r.charAt(0)&&(n="-",r=r.slice(1)),r=n+'"'+r+'"'}return r})).join(" v ")}))},n.Solver.prototype._getFormulaInfo=function(e,t){var r=e.guid();if(!this._formulaInfo[r]){if(t)return null;this._formulaInfo[r]=new d}return this._formulaInfo[r]},n.Solver.prototype._formulaToTerm=function(e){if(o.isArray(e))return p&&p(e,l(h)),o.map(e,o.bind(this._formulaToTerm,this));if(p&&p(e,h),e instanceof n.NotFormula)return n.not(this._formulaToTerm(e.operand));if(e instanceof n.Formula){var t=this._getFormulaInfo(e);if(t.isRequired)return n.NUM_TRUE;if(t.isForbidden)return n.NUM_FALSE;if(null===t.varNum){var r=e.type;this._nextFormulaNumByType[r]||(this._nextFormulaNumByType[r]=1);var i=this._nextFormulaNumByType[r]++;t.varName="$"+e.type+i,t.varNum=this.getVarNum(t.varName,!1,!0),this._ungeneratedFormulas[t.varNum]=e}return t.varNum}return this.toNumTerm(e)},n.or=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.OrFormula(e)},n.OrFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.OrFormula,"or",{generateClauses:function(e,t){if(e)return t.clause(this.operands);var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!1,e))})),r}}),n.NotFormula=function(e){p&&p(e,h),this.operand=e},n._defineFormula(n.NotFormula,"not"),n.and=function(){var e=o.flatten(arguments);return 0===e.length?n.TRUE:1===e.length?(p&&p(e[0],h),e[0]):new n.AndFormula(e)},n.AndFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AndFormula,"and",{generateClauses:function(e,t){if(e){var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!0,e))})),r}return t.clause(o.map(this.operands,n.not))}});var C=function(e,t){for(var r=[],n=0;n3)return t.generate(e,n.xor(o.map(C(this.operands,3),(function(e){return n.xor(e)}))));if(e){if(0===r.length)return t.clause();if(1===r.length)return t.clause(r[0]);if(2===r.length){var s=r[0],A=r[1];return[t.clause(s,A),t.clause(i(s),i(A))]}if(3===r.length){s=r[0],A=r[1];var a=r[2];return[t.clause(s,A,a),t.clause(s,i(A),i(a)),t.clause(i(s),A,i(a)),t.clause(i(s),i(A),a)]}}else{if(0===r.length)return[];if(1===r.length)return t.clause(i(r[0]));if(2===r.length){s=r[0],A=r[1];return[t.clause(s,i(A)),t.clause(i(s),A)]}if(3===r.length){s=r[0],A=r[1],a=r[2];return[t.clause(i(s),i(A),i(a)),t.clause(i(s),A,a),t.clause(s,i(A),a),t.clause(s,A,i(a))]}}}}),n.atMostOne=function(){var e=o.flatten(arguments);return e.length<=1?n.TRUE:new n.AtMostOneFormula(e)},n.AtMostOneFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AtMostOneFormula,"atMostOne",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length<=1)return[];if(2===r.length)return t.generate(e,n.not(n.and(r)));if(e&&3===r.length){for(var s=[],A=0;A>>=1;return new n.Bits(t)},n.variableBits=function(e,t){p&&p(t,n.isWholeNumber);for(var r=[],i=0;ia.length;){var c=A.pop();s.push(r.clause(n.not(c)))}for(var u=o.map(a,(function(e,t){return t=0;l--)s.push(r.clause(u.slice(l+1),n.not(A[l]),a[l]));return i&&s.push.apply(s,r.generate(!0,n.or(u))),s};n._defineFormula(n.LessThanOrEqualFormula,"lte",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!1):E(this.bits2,this.bits1,t,!0)}}),n.lessThan=function(e,t){return new n.LessThanFormula(e,t)},n.LessThanFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t},n._defineFormula(n.LessThanFormula,"lt",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!0):E(this.bits2,this.bits1,t,!1)}}),n.greaterThan=function(e,t){return n.lessThan(t,e)},n.greaterThanOrEqual=function(e,t){return n.lessThanOrEqual(t,e)},n.equalBits=function(e,t){return new n.EqualBitsFormula(e,t)},n.EqualBitsFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Logic.equalBits"),this.bits1=e,this.bits2=t},n._defineFormula(n.EqualBitsFormula,"equalBits",{generateClauses:function(e,t){for(var r=this.bits1.bits,i=this.bits2.bits,o=Math.max(r.length,i.length),s=[],A=0;A=r.length?s.push(n.not(i[A])):A>=i.length?s.push(n.not(r[A])):s.push(n.equiv(r[A],i[A]));return t.generate(e,n.and(s))}}),n.HalfAdderSum=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderSum"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderSum,"hsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b))}}),n.HalfAdderCarry=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderCarry"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderCarry,"hcarry",{generateClauses:function(e,t){return t.generate(e,n.and(this.a,this.b))}}),n.FullAdderSum=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderSum"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderSum,"fsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b,this.c))}}),n.FullAdderCarry=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderCarry"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderCarry,"fcarry",{generateClauses:function(e,t){return t.generate(!e,n.atMostOne(this.a,this.b,this.c))}});var I=function(e){p&&p(e,l(l(h)));for(var t=o.map(e,o.clone),r=0,i=[];r=e.length;)e.push([]);e[t].push(r)},y=function(e,t){if(p&&p(e,l(h)),"number"==typeof t)p&&p(t,n.isWholeNumber);else if(p&&p(t,l(n.isWholeNumber)),e.length!==t.length)throw new Error("Formula array and weight array must be same length; they are "+e.length+" and "+t.length)};n.weightedSum=function(e,t){if(y(e,t),0===e.length)return new n.Bits([]);"number"==typeof t&&(t=o.map(e,(function(){return t})));var r=[];return o.each(e,(function(e,n){for(var i=t[n],o=0;i;)1&i&&m(r,o,e),i>>>=1,o++})),new n.Bits(I(r))},n.sum=function(){var e=o.flatten(arguments);p&&p(e,l(g));var t=[];return o.each(e,(function(e){e instanceof n.Bits?o.each(e.bits,(function(e,r){m(t,r,e)})):m(t,0,e)})),new n.Bits(I(t))},n.Solver.prototype.solve=function(e){if(void 0!==e&&!(e>=1))throw new Error("_assumpVar must be a variable number");if(this._unsat)return null;for(;this._numClausesAddedToMiniSat0))throw new Error("Assertion failure: not a positive numeric term");this._useFormulaTerm(r);var i=this.solve(r);return this._minisat.retireVar(r),i},n.Assumption=function(e){p&&p(e,h),this.formula=e},n._defineFormula(n.Assumption,"assump",{generateClauses:function(e,t){return e?t.clause(this.formula):t.clause(n.not(this.formula))}}),n.Solution=function(e,t){var r=this;r._solver=e,r._assignment=t,r._ungeneratedFormulas=o.clone(e._ungeneratedFormulas),r._formulaValueCache={},r._termifier=new n.Termifier(r._solver),r._termifier.term=function(e){return r.evaluate(e)?n.NUM_TRUE:n.NUM_FALSE},r._ignoreUnknownVariables=!1},n.Solution.prototype.ignoreUnknownVariables=function(){this._ignoreUnknownVariables=!0},n.Solution.prototype.getMap=function(){for(var e=this._solver,t=this._assignment,r={},n=1;n=A.length){d=C;if(C>=1&&C0){u&&u("trying",0);var g=null;h=w(r,i),(g=e.solveAssuming(n.not(n.or(h))))&&(A=g,a=0)}if(s&&"bottom-up"===l)for(var f=1;f0;){u&&u("improving",a);var d,C=(s?n.lessThan:n.greaterThan)(c,n.constantBits(a));if(!(d=e.solveAssuming(C)))break;e.require(C),a=(A=d).getWeightedSum(r,i)}return s&&0===a?(h||(h=w(r,i)),e.forbid(h)):e.require(n.equalBits(c,n.constantBits(a))),u&&u("finished",a),A};n.Solver.prototype.minimizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!0)},n.Solver.prototype.maximizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!1)},e.exports=n},98312:module=>{var C_MINISAT;C_MINISAT=function(){var module={},require=function(){},process={argv:["node","minisat"],on:function(){},stdout:{write:function(e){console.log("MINISAT-out:",e.replace(/\n$/,""))}},stderr:{write:function(e){console.log("MINISAT-err:",e.replace(/\n$/,""))}}},window=0,Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,t){e=nodePath.normalize(e);var r=nodeFS.readFileSync(e);return r||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),r=nodeFS.readFileSync(e)),r&&!t&&(r=r.toString()),r},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program",Module.arguments=process.argv.slice(2),void 0!==module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e}))}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module;else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WEB?window.Module=Module:Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,t,r){return r||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,r){return r&&r.length?(r.splice||(r=Array.prototype.slice.call(r)),r.splice(0,0,t),Module["dynCall_"+e].apply(null,r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t0))return"";var n,i=e[0],o=e[1],s=e[2],A=e[3];if(2==e.length)n=String.fromCharCode((31&i)<<6|63&o);else if(3==e.length)n=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s);else{var a=(7&i)<<18|(63&o)<<12|(63&s)<<6|63&A;n=String.fromCharCode(55296+((a-65536)/1024|0),(a-65536)%1024+56320)}return e.length=0,n},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r=TOTAL_MEMORY&&enlargeMemory(),t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,r){return r?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,t){e||abort("Assertion failed: "+t)}var globalScope=this,cwrap,ccall;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}function getValue(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!=e&&0!==e&&writeStringToMemory(e,t=Runtime.stackAlloc(1+(e.length<<2))),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,r,n){var i=getCFunc(e),o=[],s=0;if(n)for(var A=0;A>2]=0;for(a=s+o;n>0]=0;return s}if("i8"===A)return e.subarray||e.slice?HEAPU8.set(e,s):HEAPU8.set(new Uint8Array(e),s),s;for(var c,u,l,h=0;h>0])>=128)n=!0;else if(0==r&&!t)break;if(i++,t&&i==t)break}t||(t=i);var o="";if(!n){for(var s;t>0;)s=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+s:s,e+=1024,t-=1024;return o}var A=new Runtime.UTF8Processor;for(i=0;i>0],o+=A.processCChar(r);return o}function UTF16ToString(e){for(var t=0,r="";;){var n=HEAP16[e+2*t>>1];if(0==n)return r;++t,r+=String.fromCharCode(n)}}function stringToUTF16(e,t){for(var r=0;r>1]=n}HEAP16[t+2*e.length>>1]=0}function UTF32ToString(e){for(var t=0,r="";;){var n=HEAP32[e+4*t>>2];if(0==n)return r;if(++t,n>=65536){var i=n-65536;r+=String.fromCharCode(55296|i>>10,56320|1023&i)}else r+=String.fromCharCode(n)}}function stringToUTF32(e,t){for(var r=0,n=0;n=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n);HEAP32[t+4*r>>2]=i,++r}HEAP32[t+4*r>>2]=0}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var r=_malloc(e.length);writeStringToMemory(e.substr(1),r);var n=_malloc(4),i=Module.___cxa_demangle(r,0,0,n);if(0===getValue(n,"i32")&&i)return Pointer_stringify(i)}catch(e){}finally{r&&_free(r),n&&_free(n),i&&_free(i)}var o=3,s={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},A=[],a=!0;var c=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}c=function t(r,n,i){n=n||1/0;var c,u="",l=[];if("N"===e[o]){if(c=function(){o++,"K"===e[o]&&o++;for(var t=[];"E"!==e[o];)if("S"!==e[o])if("C"!==e[o]){var r=parseInt(e.substr(o)),n=r.toString().length;if(!r||!n){o--;break}var i=e.substr(o+n,r);t.push(i),A.push(i),o+=n+r}else t.push(t[t.length-1]),o+=2;else{o++;var s=e.indexOf("_",o),a=e.substring(o,s)||0;t.push(A[a]||"?"),o=s+1}return o++,t}().join("::"),0===--n)return r?[c]:c}else if(("K"===e[o]||a&&"L"===e[o])&&o++,p=parseInt(e.substr(o))){var h=p.toString().length;c=e.substr(o+h,p),o+=h+p}if(a=!1,"I"===e[o]){o++;var g=t(!0);u+=t(!0,1,!0)[0]+" "+c+"<"+g.join(", ")+">"}else u=c;e:for(;o0;){var f=e[o++];if(f in s)l.push(s[f]);else switch(f){case"P":l.push(t(!0,1,!0)[0]+"*");break;case"R":l.push(t(!0,1,!0)[0]+"&");break;case"L":o++;var p=e.indexOf("E",o)-o;l.push(e.substr(o,p)),o+=p+2;break;case"A":p=parseInt(e.substr(o));if(o+=p.toString().length,"_"!==e[o])throw"?";o++,l.push(t(!0,1,!0)[0]+" ["+p+"]");break;case"E":break e;default:u+="?"+f;break e}}return i||1!==l.length||"void"!==l[0]||(l=[]),r?(u&&l.push(u+"?"),l):u+"("+l.join(", ")+")"}()}catch(e){c+="?"}return c.indexOf("?")>=0&&!t&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),c}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.stackTrace=stackTrace;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e+4095&-4096}var STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,FAST_MEMORY=Module.FAST_MEMORY||2097152,totalMemory=65536;totalMemory0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Runtime.dynCall("v",r):Runtime.dynCall("vi",r,[t.arg]):r(void 0===t.arg?null:t.arg)}else t()}}HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,r){var n=(new Runtime.UTF8Processor).processJSString(e);return r&&(n.length=r),t||n.push(0),n}function intArrayToString(e){for(var t=[],r=0;r255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}function writeStringToMemory(e,t,r){for(var n=intArrayFromString(e,r),i=0;i>0]=o,i+=1}}function writeArrayToMemory(e,t){for(var r=0;r>0]=e[r]}function writeAsciiToMemory(e,t,r){for(var n=0;n>0]=e.charCodeAt(n);r||(HEAP8[t+e.length>>0]=0)}function unSign(e,t,r){return e>=0?e:t<=32?2*Math.abs(1<=n&&(t<=32||e>n)&&(e=-2*n+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var r=65535&e,n=65535&t;return r*n+((e>>>16)*n+r*(t>>>16)<<16)|0}),Math.imul=Math.imul;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+5664,__ATINIT__.push({func:function(){__GLOBAL__I_a()}},{func:function(){__GLOBAL__I_a127()}}),allocate([78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,88,18,0,0,8,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,88,18,0,0,56,0,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,128,18,0,0,176,0,0,0,80,0,0,0,0,0,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,111,110,0,0,0,0,0,0,111,102,102,0,0,0,0,0,110,111,45,0,0,0,0,0,0,0,0,0,64,1,0,0,1,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,128,18,0,0,40,1,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,105,109,105,110,0,0,0,0,37,52,100,0,0,0,0,0,32,46,46,32,0,0,0,0,105,109,97,120,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,117,98,121,0,0,0,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,102,105,114,115,116,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,105,110,99,0,0,0,0,82,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,99,45,102,114,97,99,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,77,105,110,105,109,117,109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,192,7,0,0,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,88,18,0,0,168,7,0,0,60,98,111,111,108,62,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,60,105,110,116,51,50,62,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,79,82,69,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,0,0,0,0,168,8,0,0,1,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,128,18,0,0,136,8,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,32,32,32,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,99,104,101,99,107,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,108,105,109,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,114,111,119,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,45,108,105,109,0,0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,117,98,45,108,105,109,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,0,0,0,0,120,14,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,115,117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,128,18,0,0,96,14,0,0,192,7,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,60,105,110,116,51,50,62,0,83,73,77,80,0,0,0,0,60,98,111,111,108,62,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,79,33,0,0,0,0,0,2,0,0,0,0,0,0,0,48,15,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,16,0,0,12,0,0,0,13,0,0,0,1,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,18,0,0,184,16,0,0,80,17,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,18,0,0,64,17,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,18,0,0,88,17,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,128,18,0,0,112,17,0,0,104,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,168,17,0,0,152,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,8,18,0,0,152,17,0,0,0,0,0,0,128,18,0,0,224,17,0,0,48,18,0,0,0,0,0,0,0,0,0,0,208,17,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,200,18,0,0,14,0,0,0,18,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,128,18,0,0,160,18,0,0,208,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3],HEAP8[tempDoublePtr+4]=HEAP8[e+4],HEAP8[tempDoublePtr+5]=HEAP8[e+5],HEAP8[tempDoublePtr+6]=HEAP8[e+6],HEAP8[tempDoublePtr+7]=HEAP8[e+7]}function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}assert(tempDoublePtr%8==0),Module._i64Subtract=_i64Subtract;var ___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var t in EXCEPTIONS.infos){if(EXCEPTIONS.infos[t].adjusted===e)return t}return e},addRef:function(e){e&&EXCEPTIONS.infos[e].refcount++},decRef:function(e){if(e){var t=EXCEPTIONS.infos[e];assert(t.refcount>0),t.refcount--,0===t.refcount&&(t.destructor&&Runtime.dynCall("vi",t.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){e&&(EXCEPTIONS.infos[e].refcount=0)}};function ___resumeException(e){throw EXCEPTIONS.last||(EXCEPTIONS.last=e),EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(e)),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var e=EXCEPTIONS.last;if(!e)return 0|(asm.setTempRet0(0),0);var t=EXCEPTIONS.infos[e],r=t.type;if(!r)return 0|(asm.setTempRet0(0),e);var n=Array.prototype.slice.call(arguments);Module.___cxa_is_pointer_type(r);___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=e,e=___cxa_find_matching_catch.buffer;for(var i=0;i>2],t.adjusted=e,0|(asm.setTempRet0(n[i]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(r),e)}function ___cxa_throw(e,t,r){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:t,destructor:r,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _abort(){Module.abort()}Module._memset=_memset,Module._bitshift64Shl=_bitshift64Shl;var FS=void 0,SOCKFS=void 0;function _send(e,t,r,n){return SOCKFS.getSocket(e)?_write(e,t,r):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,t,r,n){var i=FS.getStream(e);if(!i)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var o=HEAP8;return FS.write(i,o,t,r,n)}catch(e){return FS.handleFSError(e),-1}}function _write(e,t,r){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var i=HEAP8;return FS.write(n,i,t,r)}catch(e){return FS.handleFSError(e),-1}}function _fileno(e){return(e=FS.getStreamFromPtr(e))?e.fd:-1}function _fwrite(e,t,r,n){var i=r*t;if(0==i)return 0;var o=_write(_fileno(n),e,i);if(-1==o){var s=FS.getStreamFromPtr(n);return s&&(s.error=!0),0}return o/t|0}function __reallyNegative(e){return e<0||0===e&&1/e==-1/0}function __formatString(e,t){var r=e,n=0;function i(e){var r;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[t+n>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[t+(n+4)>>2],r=+HEAPF64[tempDoublePtr>>3]):"i64"==e?r=[HEAP32[t+n>>2],HEAP32[t+(n+4)>>2]]:(e="i32",r=HEAP32[t+n>>2]),n+=Runtime.getNativeFieldSize(e),r}for(var o,s,A=[];;){var a=r;if(0===(o=HEAP8[r>>0]))break;if(s=HEAP8[r+1>>0],37==o){var c=!1,u=!1,l=!1,h=!1,g=!1;e:for(;;){switch(s){case 43:c=!0;break;case 45:u=!0;break;case 35:l=!0;break;case 48:if(h)break e;h=!0;break;case 32:g=!0;break;default:break e}r++,s=HEAP8[r+1>>0]}var f=0;if(42==s)f=i("i32"),r++,s=HEAP8[r+1>>0];else for(;s>=48&&s<=57;)f=10*f+(s-48),r++,s=HEAP8[r+1>>0];var p,d=!1,C=-1;if(46==s){if(C=0,d=!0,r++,42==(s=HEAP8[r+1>>0]))C=i("i32"),r++;else for(;;){var E=HEAP8[r+1>>0];if(E<48||E>57)break;C=10*C+(E-48),r++}s=HEAP8[r+1>>0]}switch(C<0&&(C=6,d=!1),String.fromCharCode(s)){case"h":104==HEAP8[r+2>>0]?(r++,p=1):p=2;break;case"l":108==HEAP8[r+2>>0]?(r++,p=8):p=4;break;case"L":case"q":case"j":p=8;break;case"z":case"t":case"I":p=4;break;default:p=null}switch(p&&r++,s=HEAP8[r+1>>0],String.fromCharCode(s)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var I=100==s||105==s,m=b=i("i"+8*(p=p||4));if(8==p&&(b=Runtime.makeBigInt(b[0],b[1],117==s)),p<=4)b=(I?reSign:unSign)(b&Math.pow(256,p)-1,8*p);var y=Math.abs(b),w="";if(100==s||105==s)D=8==p&&i64Math?i64Math.stringify(m[0],m[1],null):reSign(b,8*p,1).toString(10);else if(117==s)D=8==p&&i64Math?i64Math.stringify(m[0],m[1],!0):unSign(b,8*p,1).toString(10),b=Math.abs(b);else if(111==s)D=(l?"0":"")+y.toString(8);else if(120==s||88==s){if(w=l&&0!=b?"0x":"",8==p&&i64Math)if(m[1]){D=(m[1]>>>0).toString(16);for(var B=(m[0]>>>0).toString(16);B.length<8;)B="0"+B;D+=B}else D=(m[0]>>>0).toString(16);else if(b<0){b=-b,D=(y-1).toString(16);for(var Q=[],v=0;v=0&&(c?w="+"+w:g&&(w=" "+w)),"-"==D.charAt(0)&&(w="-"+w,D=D.substr(1));w.length+D.lengthx&&x>=-4?(s=(103==s?"f":"F").charCodeAt(0),C-=x+1):(s=(103==s?"e":"E").charCodeAt(0),C--),k=Math.min(C,20)}101==s||69==s?(D=b.toExponential(k),/[eE][-+]\d$/.test(D)&&(D=D.slice(0,-1)+"0"+D.slice(-1))):102!=s&&70!=s||(D=b.toFixed(k),0===b&&__reallyNegative(b)&&(D="-"+D));var F=D.split("e");if(S&&!l)for(;F[0].length>1&&-1!=F[0].indexOf(".")&&("0"==F[0].slice(-1)||"."==F[0].slice(-1));)F[0]=F[0].slice(0,-1);else for(l&&-1==D.indexOf(".")&&(F[0]+=".");C>k++;)F[0]+="0";D=F[0]+(F.length>1?"e"+F[1]:""),69==s&&(D=D.toUpperCase()),b>=0&&(c?D="+"+D:g&&(D=" "+D))}else D=(b<0?"-":"")+"inf",h=!1;for(;D.length>0]);else A=A.concat(intArrayFromString("(null)".substr(0,N),!0));if(u)for(;N0;)A.push(32);u||A.push(i("i8"));break;case"n":var R=i("i32*");HEAP32[R>>2]=A.length;break;case"%":A.push(o);break;default:for(v=a;v>0])}r+=2}else A.push(o),r+=1}return A}function _fprintf(e,t,r){var n=__formatString(t,r),i=Runtime.stackSave(),o=_fwrite(allocate(n,"i8",ALLOC_STACK),1,n.length,e);return Runtime.stackRestore(i),o}function _printf(e,t){var r=__formatString(e,t),n=intArrayToString(r);return"\n"===n[n.length-1]&&(n=n.substr(0,n.length-1)),Module.print(n),r.length}function _pthread_once(e,t){_pthread_once.seen||(_pthread_once.seen={}),e in _pthread_once.seen||(Runtime.dynCall("v",t),_pthread_once.seen[e]=1)}function _fputc(e,t){var r=unSign(255&e);if(HEAP8[_fputc.ret>>0]=r,-1==_write(_fileno(t),_fputc.ret,1)){var n=FS.getStreamFromPtr(t);return n&&(n.error=!0),-1}return r}Module._strlen=_strlen;var PTHREAD_SPECIFIC={};function _pthread_getspecific(e){return PTHREAD_SPECIFIC[e]||0}function _fputs(e,t){return _write(_fileno(t),e,_strlen(e))}Module._i64Add=_i64Add;var _stdout=allocate(1,"i32*",ALLOC_STATIC);function _puts(e){var t=Pointer_stringify(e),r=t.substr(0);return"\n"===r[r.length-1]&&(r=r.substr(0,r.length-1)),Module.print(r),t.length}function _pthread_setspecific(e,t){return e in PTHREAD_SPECIFIC?(PTHREAD_SPECIFIC[e]=t,0):ERRNO_CODES.EINVAL}function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}var _UItoD=!0;function _malloc(e){return Runtime.dynamicAlloc(e+8)+8&4294967288}function ___cxa_allocate_exception(e){return _malloc(e)}function _fmod(e,t){return e%t}function _fmodl(){return _fmod.apply(null,arguments)}function ___cxa_pure_virtual(){throw ABORT=!0,"Pure virtual function called!"}function _time(e){var t=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=t),t}Module._malloc=_malloc,Module._bitshift64Lshr=_bitshift64Lshr;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(e,t){return 0==e?ERRNO_CODES.EINVAL:(HEAP32[e>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}function ___cxa_guard_acquire(e){return HEAP8[e>>0]?0:(HEAP8[e>>0]=1,1)}function ___cxa_guard_release(){}function _vfprintf(e,t,r){return _fprintf(e,t,HEAP32[r>>2])}function ___cxa_begin_catch(e){return __ZSt18uncaught_exceptionv.uncaught_exception--,EXCEPTIONS.caught.push(e),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(e)),e}function _emscripten_memcpy_big(e,t,r){return HEAPU8.set(HEAPU8.subarray(t,t+r),e),e}Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;function _sbrk(e){var t=_sbrk;t.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),t.called=!0,assert(Runtime.dynamicAlloc),t.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var r=DYNAMICTOP;return 0!=e&&t.alloc(e),r}var _fabs=Math_abs;function ___errno_location(){return ___errno_state}var _BItoD=!0;function _copysign(e,t){return __reallyNegative(e)===__reallyNegative(t)?e:-e}function _copysignl(){return _copysign.apply(null,arguments)}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC);___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,_fputc.ret=allocate([0],"i8",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE>0]=n[e>>0];n[g+1>>0]=n[e+1>>0];n[g+2>>0]=n[e+2>>0];n[g+3>>0]=n[e+3>>0]}function ht(e){e=e|0;n[g>>0]=n[e>>0];n[g+1>>0]=n[e+1>>0];n[g+2>>0]=n[e+2>>0];n[g+3>>0]=n[e+3>>0];n[g+4>>0]=n[e+4>>0];n[g+5>>0]=n[e+5>>0];n[g+6>>0]=n[e+6>>0];n[g+7>>0]=n[e+7>>0]}function gt(e){e=e|0;R=e}function ft(){return R|0}function pt(e){e=e|0;xe(e|0)|0;pn()}function dt(e){e=e|0;return}function Ct(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;A=l;o[e>>2]=112;o[e+4>>2]=t;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=s;if((n[144]|0)==0?(ye(144)|0)!=0:0){o[32]=0;o[33]=0;o[34]=0;Je(19,128,C|0)|0;De(144)}s=o[33]|0;if((s|0)==(o[34]|0)){i=(s>>1)+2&-2;i=(i|0)<2?2:i;if((i|0)>(2147483647-s|0)){t=Qe(1)|0;ze(t|0,48,0)}r=o[32]|0;t=i+s|0;o[34]=t;t=On(r,t<<2)|0;o[32]=t;if((t|0)==0?(o[(Ye()|0)>>2]|0)==12:0){t=Qe(1)|0;ze(t|0,48,0)}s=o[33]|0}o[33]=s+1;s=(o[32]|0)+(s<<2)|0;if(!s){l=A;return}o[s>>2]=e;l=A;return}function Et(e){e=e|0;var t=0;t=l;un(e);l=t;return}function It(e){e=e|0;var t=0,r=0;t=l;r=o[e>>2]|0;if(!r){l=t;return}o[e+4>>2]=0;_n(r);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function mt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function yt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0;r=l;if((n[t>>0]|0)!=45){c=0;l=r;return c|0}i=t+1|0;s=110;a=i;c=0;while(1){A=c+1|0;if((n[a>>0]|0)!=s<<24>>24){s=1;break}a=t+(c+2)|0;if((A|0)==3){s=0;i=a;break}else{s=n[264+A>>0]|0;c=A}}if($n(i,o[e+4>>2]|0)|0){c=0;l=r;return c|0}n[e+20>>0]=s;c=1;l=r;return c|0}function wt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0;A=l;l=l+16|0;r=A;i=o[E>>2]|0;s=e+4|0;a=o[s>>2]|0;o[r>>2]=a;o[r+4>>2]=a;et(i|0,216,r|0)|0;a=0;while(1){c=a>>>0<(32-((Ai(o[s>>2]|0)|0)<<1)|0)>>>0;qe(32,i|0)|0;if(c)a=a+1|0;else break}o[r>>2]=(n[e+20>>0]|0)!=0?248:256;et(i|0,232,r|0)|0;if(!t){l=A;return}o[r>>2]=o[e+8>>2];et(i|0,88,r|0)|0;qe(10,i|0)|0;l=A;return}function Bt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Qt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;r=l;l=l+16|0;A=r;s=r+8|0;if((n[t>>0]|0)!=45){g=0;l=r;return g|0}u=t+1|0;i=e+4|0;a=o[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){h=0;while(1){g=h;h=h+1|0;if((n[u>>0]|0)!=c<<24>>24){e=0;break}c=n[a+h>>0]|0;u=t+(g+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[u>>0]|0)!=61){g=0;l=r;return g|0}t=u+1|0;a=Zn(t,s,10)|0;if(!(o[s>>2]|0)){g=0;l=r;return g|0}if((a|0)>(o[e+24>>2]|0)){g=o[E>>2]|0;h=o[i>>2]|0;o[A>>2]=t;o[A+4>>2]=h;et(g|0,416,A|0)|0;nt(1)}if((a|0)<(o[e+20>>2]|0)){g=o[E>>2]|0;h=o[i>>2]|0;o[A>>2]=t;o[A+4>>2]=h;et(g|0,472,A|0)|0;nt(1)}o[e+28>>2]=a;g=1;l=r;return g|0}function vt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;l=l+16|0;n=r;i=o[E>>2]|0;s=o[e+16>>2]|0;o[n>>2]=o[e+4>>2];o[n+4>>2]=s;et(i|0,336,n|0)|0;s=o[e+20>>2]|0;if((s|0)==-2147483648)Ze(360,4,1,i|0)|0;else{o[n>>2]=s;et(i|0,368,n|0)|0}Ze(376,4,1,i|0)|0;s=o[e+24>>2]|0;if((s|0)==2147483647)Ze(384,4,1,i|0)|0;else{o[n>>2]=s;et(i|0,368,n|0)|0}o[n>>2]=o[e+28>>2];et(i|0,392,n|0)|0;if(!t){l=r;return}o[n>>2]=o[e+8>>2];et(i|0,88,n|0)|0;qe(10,i|0)|0;l=r;return}function Dt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0;s=l;o[e>>2]=1816;i=e+4|0;r=e+32|0;A=e+48|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;o[i+20>>2]=0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;u[A>>3]=+u[75];u[e+56>>3]=+u[89];u[e+64>>3]=+u[103];u[e+72>>3]=+u[123];n[e+80>>0]=n[1364]|0;o[e+84>>2]=o[269];o[e+88>>2]=o[297];n[e+92>>0]=0;n[e+93>>0]=n[1292]|0;u[e+96>>3]=+u[204];o[e+104>>2]=o[439];o[e+108>>2]=o[359];u[e+112>>3]=+u[191];u[e+120>>3]=.3333333333333333;u[e+128>>3]=1.1;o[e+136>>2]=100;u[e+144>>3]=1.5;A=e+316|0;o[e+332>>2]=0;o[e+336>>2]=0;o[e+340>>2]=0;o[e+348>>2]=0;o[e+352>>2]=0;o[e+356>>2]=0;o[e+364>>2]=0;o[e+368>>2]=0;o[e+372>>2]=0;o[e+380>>2]=0;o[e+384>>2]=0;o[e+388>>2]=0;o[e+396>>2]=0;o[e+400>>2]=0;o[e+404>>2]=0;r=e+544|0;o[e+412>>2]=0;o[e+416>>2]=0;o[e+420>>2]=0;o[e+428>>2]=0;o[e+432>>2]=0;o[e+436>>2]=0;o[e+444>>2]=0;o[e+448>>2]=0;o[e+452>>2]=0;oi(e+152|0,0,176)|0;o[e+456>>2]=r;i=e+460|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;o[i+20>>2]=0;o[e+488>>2]=A;n[e+492>>0]=1;u[e+496>>3]=1.0;u[e+504>>3]=1.0;o[e+512>>2]=0;o[e+516>>2]=-1;A=e+520|0;i=e+536|0;o[A+0>>2]=0;o[A+4>>2]=0;o[A+8>>2]=0;o[A+12>>2]=0;n[i>>0]=1;i=e+540|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;er(r,1048576);n[e+560>>0]=0;r=e+604|0;i=e+664|0;A=e+564|0;t=A+36|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(t|0));A=r+0|0;t=A+36|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(t|0));A=e+680|0;o[i+0>>2]=-1;o[i+4>>2]=-1;o[i+8>>2]=-1;o[i+12>>2]=-1;n[A>>0]=0;l=s;return}function bt(e){e=e|0;var t=0;t=l;St(e);un(e);l=t;return}function St(e){e=e|0;var t=0,r=0,n=0;t=l;o[e>>2]=1816;r=e+628|0;n=o[r>>2]|0;if(n){o[e+632>>2]=0;_n(n);o[r>>2]=0;o[e+636>>2]=0}r=e+616|0;n=o[r>>2]|0;if(n){o[e+620>>2]=0;_n(n);o[r>>2]=0;o[e+624>>2]=0}r=e+604|0;n=o[r>>2]|0;if(n){o[e+608>>2]=0;_n(n);o[r>>2]=0;o[e+612>>2]=0}r=e+588|0;n=o[r>>2]|0;if(n){o[e+592>>2]=0;_n(n);o[r>>2]=0;o[e+596>>2]=0}r=e+576|0;n=o[r>>2]|0;if(n){o[e+580>>2]=0;_n(n);o[r>>2]=0;o[e+584>>2]=0}r=e+564|0;n=o[r>>2]|0;if(n){o[e+568>>2]=0;_n(n);o[r>>2]=0;o[e+572>>2]=0}r=o[e+544>>2]|0;if(r)_n(r);r=e+472|0;n=o[r>>2]|0;if(n){o[e+476>>2]=0;_n(n);o[r>>2]=0;o[e+480>>2]=0}r=e+460|0;n=o[r>>2]|0;if(n){o[e+464>>2]=0;_n(n);o[r>>2]=0;o[e+468>>2]=0}tr(e+412|0);r=e+396|0;n=o[r>>2]|0;if(n){o[e+400>>2]=0;_n(n);o[r>>2]=0;o[e+404>>2]=0}r=e+380|0;n=o[r>>2]|0;if(n){o[e+384>>2]=0;_n(n);o[r>>2]=0;o[e+388>>2]=0}n=e+364|0;r=o[n>>2]|0;if(r){o[e+368>>2]=0;_n(r);o[n>>2]=0;o[e+372>>2]=0}r=e+348|0;n=o[r>>2]|0;if(n){o[e+352>>2]=0;_n(n);o[r>>2]=0;o[e+356>>2]=0}r=e+332|0;n=o[r>>2]|0;if(n){o[e+336>>2]=0;_n(n);o[r>>2]=0;o[e+340>>2]=0}r=e+316|0;n=o[r>>2]|0;if(n){o[e+320>>2]=0;_n(n);o[r>>2]=0;o[e+324>>2]=0}r=e+304|0;n=o[r>>2]|0;if(n){o[e+308>>2]=0;_n(n);o[r>>2]=0;o[e+312>>2]=0}r=e+292|0;n=o[r>>2]|0;if(n){o[e+296>>2]=0;_n(n);o[r>>2]=0;o[e+300>>2]=0}r=e+280|0;n=o[r>>2]|0;if(n){o[e+284>>2]=0;_n(n);o[r>>2]=0;o[e+288>>2]=0}r=e+268|0;n=o[r>>2]|0;if(n){o[e+272>>2]=0;_n(n);o[r>>2]=0;o[e+276>>2]=0}r=e+256|0;n=o[r>>2]|0;if(n){o[e+260>>2]=0;_n(n);o[r>>2]=0;o[e+264>>2]=0}r=e+32|0;n=o[r>>2]|0;if(n){o[e+36>>2]=0;_n(n);o[r>>2]=0;o[e+40>>2]=0}r=e+16|0;n=o[r>>2]|0;if(n){o[e+20>>2]=0;_n(n);o[r>>2]=0;o[e+24>>2]=0}n=e+4|0;r=o[n>>2]|0;if(!r){l=t;return}o[e+8>>2]=0;_n(r);o[n>>2]=0;o[e+12>>2]=0;l=t;return}function kt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0.0,h=0,g=0,f=0,p=0,d=0,C=0;i=l;l=l+16|0;a=i+4|0;A=i;s=e+580|0;h=o[s>>2]|0;if((h|0)>0){f=h+-1|0;p=o[(o[e+576>>2]|0)+(f<<2)>>2]|0;o[s>>2]=f;s=p}else{p=e+540|0;s=o[p>>2]|0;o[p>>2]=s+1}h=e+412|0;p=s<<1;o[a>>2]=p;rr(h,a);o[A>>2]=p|1;rr(h,A);a=e+332|0;h=n[544]|0;A=s+1|0;nr(a,A);n[(o[a>>2]|0)+s>>0]=h;a=e+396|0;h=e+400|0;if((o[h>>2]|0)<(A|0)){f=e+404|0;p=o[f>>2]|0;if((p|0)<(A|0)){d=s+2-p&-2;g=(p>>1)+2&-2;g=(d|0)>(g|0)?d:g;if((g|0)>(2147483647-p|0)){d=Qe(1)|0;ze(d|0,48,0)}C=o[a>>2]|0;d=g+p|0;o[f>>2]=d;d=On(C,d<<3)|0;o[a>>2]=d;if((d|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}f=o[h>>2]|0;if((f|0)<(A|0))do{g=(o[a>>2]|0)+(f<<3)|0;if(g){C=g;o[C>>2]=0;o[C+4>>2]=0}f=f+1|0}while((f|0)!=(A|0));o[h>>2]=A}h=(o[a>>2]|0)+(s<<3)|0;o[h>>2]=-1;o[h+4>>2]=0;h=e+316|0;if(!(n[e+93>>0]|0))c=0.0;else{C=e+72|0;c=+u[C>>3]*1389796.0;c=c-+(~~(c/2147483647.0)|0)*2147483647.0;u[C>>3]=c;c=c/2147483647.0*1.0e-5}a=e+320|0;if((o[a>>2]|0)<(A|0)){g=e+324|0;f=o[g>>2]|0;if((f|0)<(A|0)){C=s+2-f&-2;p=(f>>1)+2&-2;p=(C|0)>(p|0)?C:p;if((p|0)>(2147483647-f|0)){C=Qe(1)|0;ze(C|0,48,0)}d=o[h>>2]|0;C=p+f|0;o[g>>2]=C;C=On(d,C<<3)|0;o[h>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}p=o[a>>2]|0;if((p|0)<(A|0)){g=o[h>>2]|0;do{f=g+(p<<3)|0;if(f)u[f>>3]=0.0;p=p+1|0}while((p|0)!=(A|0))}o[a>>2]=A}u[(o[h>>2]|0)+(s<<3)>>3]=c;ir(e+588|0,s,0);ir(e+348|0,s,1);a=e+364|0;t=n[t>>0]|0;nr(a,A);n[(o[a>>2]|0)+s>>0]=t;a=e+380|0;t=e+384|0;if((o[t>>2]|0)<(A|0)){h=e+388|0;f=o[h>>2]|0;if((f|0)<(A|0)){C=s+2-f&-2;g=(f>>1)+2&-2;g=(C|0)>(g|0)?C:g;if((g|0)>(2147483647-f|0)){C=Qe(1)|0;ze(C|0,48,0)}d=o[a>>2]|0;C=g+f|0;o[h>>2]=C;C=On(d,C)|0;o[a>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}h=o[t>>2]|0;if((h|0)<(A|0))do{g=(o[a>>2]|0)+h|0;if(g)n[g>>0]=0;h=h+1|0}while((h|0)!=(A|0));o[t>>2]=A}t=e+288|0;a=o[t>>2]|0;if((a|0)<(A|0)){C=s+2-a&-2;A=(a>>1)+2&-2;A=(C|0)>(A|0)?C:A;if((A|0)>(2147483647-a|0)){C=Qe(1)|0;ze(C|0,48,0)}d=e+280|0;p=o[d>>2]|0;C=A+a|0;o[t>>2]=C;C=On(p,C<<2)|0;o[d>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}A=e+380|0;t=(o[A>>2]|0)+s|0;a=(n[t>>0]|0)==0;if(r){if(a){C=e+200|0;d=C;d=ai(o[d>>2]|0,o[d+4>>2]|0,1,0)|0;o[C>>2]=d;o[C+4>>2]=R}}else if(!a){C=e+200|0;d=C;d=ai(o[d>>2]|0,o[d+4>>2]|0,-1,-1)|0;o[C>>2]=d;o[C+4>>2]=R}n[t>>0]=r&1;r=e+460|0;if((o[e+476>>2]|0)>(s|0)?(o[(o[e+472>>2]|0)+(s<<2)>>2]|0)>-1:0){l=i;return s|0}if(!(n[(o[A>>2]|0)+s>>0]|0)){l=i;return s|0}or(r,s);l=i;return s|0}function xt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;l=l+16|0;c=r+1|0;a=r;i=e+492|0;if(!(n[i>>0]|0)){E=0;l=r;return E|0}E=o[t>>2]|0;A=t+4|0;u=o[A>>2]|0;n[c+0>>0]=n[a+0>>0]|0;ar(E,u,c);u=o[A>>2]|0;e:do{if((u|0)>0){c=e+332|0;a=n[528]|0;h=0;g=0;p=-2;while(1){E=o[t>>2]|0;f=o[E+(h<<2)>>2]|0;C=s[(o[c>>2]|0)+(f>>1)>>0]|0;I=C^f&1;d=I&255;m=a&255;if((f|0)==(p^1|0)?1:(d<<24>>24==a<<24>>24&(m>>>1^1)|m&2&I|0)!=0){e=1;break}I=n[536]|0;m=I&255;if((f|0)!=(p|0)?((m>>>1^1)&d<<24>>24==I<<24>>24|C&2&m|0)==0:0){o[E+(g<<2)>>2]=f;u=o[A>>2]|0;g=g+1|0}else f=p;h=h+1|0;if((h|0)<(u|0))p=f;else break e}l=r;return e|0}else{h=0;g=0}}while(0);a=h-g|0;if((a|0)>0){u=u-a|0;o[A>>2]=u}if(!u){n[i>>0]=0;m=0;l=r;return m|0}else if((u|0)==1){I=o[o[t>>2]>>2]|0;E=I>>1;n[(o[e+332>>2]|0)+E>>0]=(I&1^1)&255^1;m=o[e+296>>2]|0;E=(o[e+396>>2]|0)+(E<<3)|0;o[E>>2]=-1;o[E+4>>2]=m;E=e+284|0;m=o[E>>2]|0;o[E>>2]=m+1;o[(o[e+280>>2]|0)+(m<<2)>>2]=I;m=(Mt(e)|0)==-1;n[i>>0]=m&1;l=r;return m|0}else{t=cr(e+544|0,t,0)|0;A=e+256|0;i=e+260|0;c=o[i>>2]|0;a=e+264|0;if((c|0)==(o[a>>2]|0)){u=(c>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-c|0)){m=Qe(1)|0;ze(m|0,48,0)}I=o[A>>2]|0;m=u+c|0;o[a>>2]=m;m=On(I,m<<2)|0;o[A>>2]=m;if((m|0)==0?(o[(Ye()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}c=o[i>>2]|0}o[i>>2]=c+1;i=(o[A>>2]|0)+(c<<2)|0;if(i)o[i>>2]=t;Nt(e,t);m=1;l=r;return m|0}return 0}function Ft(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0;i=o[t>>2]|0;t=i>>1;n[(o[e+332>>2]|0)+t>>0]=(i&1^1)&255^1;s=o[e+296>>2]|0;t=(o[e+396>>2]|0)+(t<<3)|0;o[t>>2]=r;o[t+4>>2]=s;r=e+284|0;t=o[r>>2]|0;o[r>>2]=t+1;o[(o[e+280>>2]|0)+(t<<2)>>2]=i;return}function Mt(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0;c=l;l=l+16|0;C=c;A=e+512|0;I=o[A>>2]|0;d=e+284|0;if((I|0)>=(o[d>>2]|0)){P=0;L=0;_=-1;U=e+184|0;N=U;T=N;T=o[T>>2]|0;N=N+4|0;N=o[N>>2]|0;N=ai(T|0,N|0,P|0,L|0)|0;T=R;K=U;o[K>>2]=N;U=U+4|0;o[U>>2]=T;U=e+520|0;T=U;K=T;K=o[K>>2]|0;T=T+4|0;T=o[T>>2]|0;L=ii(K|0,T|0,P|0,L|0)|0;P=R;T=U;o[T>>2]=L;U=U+4|0;o[U>>2]=P;l=c;return _|0}f=e+280|0;a=e+428|0;i=e+412|0;u=e+332|0;h=e+544|0;g=C+4|0;t=e+396|0;p=e+296|0;r=e+456|0;v=-1;E=0;do{o[A>>2]=I+1;w=o[(o[f>>2]|0)+(I<<2)>>2]|0;if(n[(o[a>>2]|0)+w>>0]|0){m=o[i>>2]|0;I=m+(w*12|0)+4|0;Q=o[I>>2]|0;if((Q|0)>0){m=m+(w*12|0)|0;y=0;B=0;do{b=o[m>>2]|0;D=b+(y<<3)|0;if((o[(o[o[r>>2]>>2]|0)+(o[D>>2]<<2)>>2]&3|0)!=1){U=D;_=o[U+4>>2]|0;Q=b+(B<<3)|0;o[Q>>2]=o[U>>2];o[Q+4>>2]=_;Q=o[I>>2]|0;B=B+1|0}y=y+1|0}while((y|0)<(Q|0))}else{y=0;B=0}m=y-B|0;if((m|0)>0)o[I>>2]=Q-m;n[(o[a>>2]|0)+w>>0]=0}I=o[i>>2]|0;E=E+1|0;m=o[I+(w*12|0)>>2]|0;I=I+(w*12|0)+4|0;B=o[I>>2]|0;y=m+(B<<3)|0;e:do{if(!B){y=m;Q=m}else{w=w^1;B=(B<<3)+-1|0;b=m;Q=m;while(1){while(1){t:while(1){M=o[b+4>>2]|0;_=s[(o[u>>2]|0)+(M>>1)>>0]^M&1;K=n[528]|0;N=K&255;L=N&2;N=N>>>1^1;if((_&255)<<24>>24==K<<24>>24&N|L&_){x=19;break}D=o[b>>2]|0;x=o[h>>2]|0;F=x+(D<<2)|0;S=x+(D+1<<2)|0;k=o[S>>2]|0;if((k|0)==(w|0)){_=x+(D+2<<2)|0;k=o[_>>2]|0;o[S>>2]=k;o[_>>2]=w}S=b+8|0;o[C>>2]=D;o[g>>2]=k;if((k|0)!=(M|0)?(_=s[(o[u>>2]|0)+(k>>1)>>0]^k&1,((_&255)<<24>>24==K<<24>>24&N|L&_|0)!=0):0){x=27;break}L=o[F>>2]|0;if(L>>>0<=95){x=31;break}N=o[u>>2]|0;K=n[536]|0;M=K&255;_=M&2;M=M>>>1^1;U=2;while(1){T=F+(U<<2)+4|0;P=o[T>>2]|0;O=s[N+(P>>1)>>0]^P&1;U=U+1|0;if(!((O&255)<<24>>24==K<<24>>24&M|_&O))break;if((U|0)>=(L>>>5|0)){x=32;break t}}O=x+(D+2<<2)|0;o[O>>2]=P;o[T>>2]=w;ur((o[i>>2]|0)+((o[O>>2]^1)*12|0)|0,C);if((S|0)==(y|0))break e;else b=S}if((x|0)==19){x=0;U=b;_=o[U+4>>2]|0;O=Q;o[O>>2]=o[U>>2];o[O+4>>2]=_;b=b+8|0;Q=Q+8|0}else if((x|0)==27){x=0;_=C;O=o[_+4>>2]|0;b=Q;o[b>>2]=o[_>>2];o[b+4>>2]=O;b=S;Q=Q+8|0}else if((x|0)==31){K=n[536]|0;x=32}if((x|0)==32){x=Q+8|0;F=C;N=o[F+4>>2]|0;M=Q;o[M>>2]=o[F>>2];o[M+4>>2]=N;M=k>>1;N=k&1;F=(o[u>>2]|0)+M|0;O=s[F>>0]^N;_=K&255;if((O&255)<<24>>24==K<<24>>24&(_>>>1^1)|_&2&O)break;n[F>>0]=(N^1)&255^1;Q=o[p>>2]|0;b=(o[t>>2]|0)+(M<<3)|0;o[b>>2]=D;o[b+4>>2]=Q;b=o[d>>2]|0;o[d>>2]=b+1;o[(o[f>>2]|0)+(b<<2)>>2]=k;b=S;Q=x}if((b|0)==(y|0))break e}o[A>>2]=o[d>>2];if(S>>>0>>0){v=(m+(B-S)|0)>>>3;while(1){U=S;S=S+8|0;_=o[U+4>>2]|0;O=x;o[O>>2]=o[U>>2];o[O+4>>2]=_;if(S>>>0>=y>>>0)break;else x=x+8|0}b=b+(v+2<<3)|0;Q=Q+(v+2<<3)|0}else{b=S;Q=x}if((b|0)==(y|0)){v=D;break}else v=D}}}while(0);m=y-Q|0;if((m|0)>0)o[I>>2]=(o[I>>2]|0)-(m>>3);I=o[A>>2]|0}while((I|0)<(o[d>>2]|0));U=E;T=((E|0)<0)<<31>>31;O=v;_=e+184|0;K=_;P=K;P=o[P>>2]|0;K=K+4|0;K=o[K>>2]|0;K=ai(P|0,K|0,U|0,T|0)|0;P=R;L=_;o[L>>2]=K;_=_+4|0;o[_>>2]=P;_=e+520|0;P=_;L=P;L=o[L>>2]|0;P=P+4|0;P=o[P>>2]|0;T=ii(L|0,P|0,U|0,T|0)|0;U=R;P=_;o[P>>2]=T;_=_+4|0;o[_>>2]=U;l=c;return O|0}function Nt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;l=l+16|0;c=r+8|0;i=r;s=o[e+544>>2]|0;n=s+(t<<2)|0;A=s+(t+1<<2)|0;a=e+412|0;u=(o[a>>2]|0)+((o[A>>2]^1)*12|0)|0;s=s+(t+2<<2)|0;h=o[s>>2]|0;o[c>>2]=t;o[c+4>>2]=h;ur(u,c);s=(o[a>>2]|0)+((o[s>>2]^1)*12|0)|0;A=o[A>>2]|0;o[i>>2]=t;o[i+4>>2]=A;ur(s,i);if(!(o[n>>2]&4)){h=e+208|0;u=h;u=ai(o[u>>2]|0,o[u+4>>2]|0,1,0)|0;o[h>>2]=u;o[h+4>>2]=R;h=e+224|0;u=h;u=ai((o[n>>2]|0)>>>5|0,0,o[u>>2]|0,o[u+4>>2]|0)|0;o[h>>2]=u;o[h+4>>2]=R;l=r;return}else{h=e+216|0;u=h;u=ai(o[u>>2]|0,o[u+4>>2]|0,1,0)|0;o[h>>2]=u;o[h+4>>2]=R;h=e+232|0;u=h;u=ai((o[n>>2]|0)>>>5|0,0,o[u>>2]|0,o[u+4>>2]|0)|0;o[h>>2]=u;o[h+4>>2]=R;l=r;return}}function Rt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0;s=l;l=l+16|0;u=s+4|0;a=s;A=o[e+544>>2]|0;i=A+(t<<2)|0;c=o[A+(t+1<<2)>>2]^1;if(!r){o[u>>2]=c;r=e+428|0;h=o[r>>2]|0;c=h+c|0;if(!(n[c>>0]|0)){n[c>>0]=1;sr(e+444|0,u);h=o[r>>2]|0}t=o[A+(t+2<<2)>>2]^1;o[a>>2]=t;t=h+t|0;if(!(n[t>>0]|0)){n[t>>0]=1;sr(e+444|0,a)}}else{a=e+412|0;r=o[a>>2]|0;u=r+(c*12|0)|0;A=A+(t+2<<2)|0;c=r+(c*12|0)+4|0;h=o[c>>2]|0;e:do{if((h|0)>0){p=o[u>>2]|0;f=0;while(1){g=f+1|0;if((o[p+(f<<3)>>2]|0)==(t|0)){g=f;break e}if((g|0)<(h|0))f=g;else break}}else g=0}while(0);h=h+-1|0;if((g|0)<(h|0)){do{r=o[u>>2]|0;h=g;g=g+1|0;f=r+(g<<3)|0;p=o[f+4>>2]|0;h=r+(h<<3)|0;o[h>>2]=o[f>>2];o[h+4>>2]=p;h=(o[c>>2]|0)+-1|0}while((g|0)<(h|0));r=o[a>>2]|0}o[c>>2]=h;a=o[A>>2]^1;A=r+(a*12|0)|0;a=r+(a*12|0)+4|0;c=o[a>>2]|0;e:do{if((c|0)>0){r=o[A>>2]|0;h=0;while(1){u=h+1|0;if((o[r+(h<<3)>>2]|0)==(t|0)){u=h;break e}if((u|0)<(c|0))h=u;else break}}else u=0}while(0);t=c+-1|0;if((u|0)<(t|0))do{g=o[A>>2]|0;t=u;u=u+1|0;f=g+(u<<3)|0;p=o[f+4>>2]|0;t=g+(t<<3)|0;o[t>>2]=o[f>>2];o[t+4>>2]=p;t=(o[a>>2]|0)+-1|0}while((u|0)<(t|0));o[a>>2]=t}if(!(o[i>>2]&4)){p=e+208|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,-1,-1)|0;o[p>>2]=f;o[p+4>>2]=R;p=e+224|0;f=p;f=ii(o[f>>2]|0,o[f+4>>2]|0,(o[i>>2]|0)>>>5|0,0)|0;o[p>>2]=f;o[p+4>>2]=R;l=s;return}else{p=e+216|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,-1,-1)|0;o[p>>2]=f;o[p+4>>2]=R;p=e+232|0;f=p;f=ii(o[f>>2]|0,o[f+4>>2]|0,(o[i>>2]|0)>>>5|0,0)|0;o[p>>2]=f;o[p+4>>2]=R;l=s;return}}function Kt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;A=l;i=e+544|0;h=o[i>>2]|0;r=h+(t<<2)|0;Rt(e,t,0);h=o[h+(t+1<<2)>>2]|0;a=h>>1;h=(s[(o[e+332>>2]|0)+a>>0]|0)^h&1;f=n[528]|0;g=f&255;if((((h&255)<<24>>24==f<<24>>24&(g>>>1^1)|g&2&h|0)!=0?(c=(o[e+396>>2]|0)+(a<<3)|0,u=o[c>>2]|0,(u|0)!=-1):0)?((o[i>>2]|0)+(u<<2)|0)==(r|0):0)o[c>>2]=-1;o[r>>2]=o[r>>2]&-4|1;g=o[(o[i>>2]|0)+(t<<2)>>2]|0;f=e+556|0;o[f>>2]=((((g>>>3&1)+(g>>>5)<<2)+4|0)>>>2)+(o[f>>2]|0);l=A;return}function Lt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0;r=l;i=o[t>>2]|0;if(i>>>0<=31){u=0;l=r;return u|0}A=o[e+332>>2]|0;a=n[528]|0;c=a&255;u=c&2;c=c>>>1^1;e=0;while(1){h=o[t+(e<<2)+4>>2]|0;h=(s[A+(h>>1)>>0]|0)^h&1;e=e+1|0;if((h&255)<<24>>24==a<<24>>24&c|u&h){i=1;t=5;break}if((e|0)>=(i>>>5|0)){i=0;t=5;break}}if((t|0)==5){l=r;return i|0}return 0}function Tt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;s=l;r=e+296|0;if((o[r>>2]|0)<=(t|0)){l=s;return}i=e+284|0;E=o[i>>2]|0;a=e+292|0;I=o[a>>2]|0;m=o[I+(t<<2)>>2]|0;if((E|0)>(m|0)){C=e+280|0;h=e+332|0;u=e+88|0;c=e+348|0;g=e+460|0;p=e+476|0;d=e+472|0;f=e+380|0;do{E=E+-1|0;m=o[(o[C>>2]|0)+(E<<2)>>2]>>1;n[(o[h>>2]|0)+m>>0]=n[544]|0;I=o[u>>2]|0;if((I|0)<=1){if((I|0)==1?(E|0)>(o[(o[a>>2]|0)+((o[r>>2]|0)+-1<<2)>>2]|0):0)A=7}else A=7;if((A|0)==7){A=0;n[(o[c>>2]|0)+m>>0]=o[(o[C>>2]|0)+(E<<2)>>2]&1}if(!((o[p>>2]|0)>(m|0)?(o[(o[d>>2]|0)+(m<<2)>>2]|0)>-1:0))A=11;if((A|0)==11?(A=0,(n[(o[f>>2]|0)+m>>0]|0)!=0):0)or(g,m);I=o[a>>2]|0;m=o[I+(t<<2)>>2]|0}while((E|0)>(m|0));E=o[i>>2]|0}o[e+512>>2]=m;e=o[I+(t<<2)>>2]|0;if((E-e|0)>0)o[i>>2]=e;if(((o[r>>2]|0)-t|0)<=0){l=s;return}o[r>>2]=t;l=s;return}function Pt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0;t=l;i=e+72|0;d=+u[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;c=e+464|0;if(d/2147483647.0<+u[e+64>>3]?(h=o[c>>2]|0,(h|0)!=0):0){d=d*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;h=o[(o[e+460>>2]|0)+(~~(+(h|0)*(d/2147483647.0))<<2)>>2]|0;f=n[(o[e+332>>2]|0)+h>>0]|0;g=n[544]|0;p=g&255;if(((p>>>1^1)&f<<24>>24==g<<24>>24|f&2&p|0)!=0?(n[(o[e+380>>2]|0)+h>>0]|0)!=0:0){p=e+176|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,1,0)|0;o[p>>2]=f;o[p+4>>2]=R}}else h=-1;g=e+460|0;p=e+332|0;f=e+380|0;while(1){if(((h|0)!=-1?(C=n[(o[p>>2]|0)+h>>0]|0,A=n[544]|0,r=A&255,s=r>>>1^1,(s&C<<24>>24==A<<24>>24|C&2&r|0)!=0):0)?(n[(o[f>>2]|0)+h>>0]|0)!=0:0)break;if(!(o[c>>2]|0)){r=-2;a=17;break}h=lr(g)|0}if((a|0)==17){l=t;return r|0}c=n[(o[e+364>>2]|0)+h>>0]|0;a=c&255;if(!(s&c<<24>>24==A<<24>>24|r&2&a)){p=n[528]|0;C=p&255;C=((C>>>1^1)&c<<24>>24==p<<24>>24|a&2&C|0)!=0|h<<1;l=t;return C|0}if(!(n[e+92>>0]|0)){C=(n[(o[e+348>>2]|0)+h>>0]|0)!=0|h<<1;l=t;return C|0}else{d=+u[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;C=d/2147483647.0<.5|h<<1;l=t;return C|0}return 0}function Ut(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,A=0,a=0,h=0,g=0,f=0,p=0,d=0,C=0.0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0.0,H=0;s=l;l=l+16|0;p=s+8|0;I=s+4|0;g=s;h=r+4|0;A=o[h>>2]|0;a=r+8|0;if((A|0)==(o[a>>2]|0)){d=(A>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-A|0)){G=Qe(1)|0;ze(G|0,48,0)}Y=o[r>>2]|0;G=d+A|0;o[a>>2]=G;G=On(Y,G<<2)|0;o[r>>2]=G;if((G|0)==0?(o[(Ye()|0)>>2]|0)==12:0){G=Qe(1)|0;ze(G|0,48,0)}A=o[h>>2]|0}a=(o[r>>2]|0)+(A<<2)|0;if(a){o[a>>2]=0;A=o[h>>2]|0}o[h>>2]=A+1;d=e+544|0;M=e+280|0;A=e+588|0;a=e+396|0;S=e+504|0;x=e+316|0;k=e+540|0;b=e+476|0;D=e+472|0;v=e+460|0;Q=e+488|0;B=e+296|0;y=e+496|0;w=e+272|0;F=e+268|0;K=-2;N=(o[e+284>>2]|0)+-1|0;L=0;do{T=o[d>>2]|0;t=T+(t<<2)|0;P=o[t>>2]|0;if((P&4|0)!=0?(C=+u[y>>3],G=t+(P>>>5<<2)+4|0,J=C+ +c[G>>2],c[G>>2]=J,J>1.0e20):0){_=o[w>>2]|0;if((_|0)>0){U=o[F>>2]|0;P=0;do{G=T+(o[U+(P<<2)>>2]<<2)|0;G=G+((o[G>>2]|0)>>>5<<2)+4|0;c[G>>2]=+c[G>>2]*1.0e-20;P=P+1|0}while((P|0)!=(_|0))}u[y>>3]=C*1.0e-20}K=(K|0)!=-2&1;if(K>>>0<(o[t>>2]|0)>>>5>>>0)do{P=o[t+(K<<2)+4>>2]|0;o[I>>2]=P;P=P>>1;T=(o[A>>2]|0)+P|0;do{if((n[T>>0]|0)==0?(o[(o[a>>2]|0)+(P<<3)+4>>2]|0)>0:0){_=o[x>>2]|0;G=_+(P<<3)|0;J=+u[S>>3]+ +u[G>>3];u[G>>3]=J;if(J>1.0e+100){O=o[k>>2]|0;if((O|0)>0){U=0;do{G=_+(U<<3)|0;u[G>>3]=+u[G>>3]*1.0e-100;U=U+1|0}while((U|0)!=(O|0))}u[S>>3]=+u[S>>3]*1.0e-100}if((o[b>>2]|0)>(P|0)?(m=o[D>>2]|0,E=o[m+(P<<2)>>2]|0,(E|0)>-1):0){U=o[v>>2]|0;_=o[U+(E<<2)>>2]|0;e:do{if(!E)Y=0;else{G=E;while(1){Y=G;G=G+-1>>1;j=U+(G<<2)|0;O=o[j>>2]|0;H=o[o[Q>>2]>>2]|0;if(!(+u[H+(_<<3)>>3]>+u[H+(O<<3)>>3]))break e;o[U+(Y<<2)>>2]=O;o[m+(o[j>>2]<<2)>>2]=Y;if(!G){Y=0;break}}}}while(0);o[U+(Y<<2)>>2]=_;o[m+(_<<2)>>2]=Y}n[T>>0]=1;if((o[(o[a>>2]|0)+(P<<3)+4>>2]|0)<(o[B>>2]|0)){sr(r,I);break}else{L=L+1|0;break}}}while(0);K=K+1|0}while((K|0)<((o[t>>2]|0)>>>5|0));t=o[M>>2]|0;T=o[A>>2]|0;do{K=N;N=N+-1|0;K=o[t+(K<<2)>>2]|0;U=K>>1;P=T+U|0}while((n[P>>0]|0)==0);t=o[(o[a>>2]|0)+(U<<3)>>2]|0;n[P>>0]=0;L=L+-1|0}while((L|0)>0);o[o[r>>2]>>2]=K^1;I=e+616|0;y=o[I>>2]|0;E=e+620|0;if(!y)w=o[E>>2]|0;else{o[E>>2]=0;w=0}m=o[h>>2]|0;if((w|0)<(m|0)){Q=e+624|0;B=o[Q>>2]|0;if((B|0)<(m|0)){H=m+1-B&-2;w=(B>>1)+2&-2;w=(H|0)>(w|0)?H:w;if((w|0)>(2147483647-B|0)){H=Qe(1)|0;ze(H|0,48,0)}H=w+B|0;o[Q>>2]=H;y=On(y,H<<2)|0;o[I>>2]=y;if((y|0)==0?(o[(Ye()|0)>>2]|0)==12:0){H=Qe(1)|0;ze(H|0,48,0)}}w=o[E>>2]|0;e:do{if((w|0)<(m|0))while(1){y=y+(w<<2)|0;if(y)o[y>>2]=0;w=w+1|0;if((w|0)==(m|0))break e;y=o[I>>2]|0}}while(0);o[E>>2]=m;m=o[h>>2]|0}if((m|0)>0){w=o[I>>2]|0;y=o[r>>2]|0;B=0;do{o[w+(B<<2)>>2]=o[y+(B<<2)>>2];B=B+1|0;m=o[h>>2]|0}while((B|0)<(m|0))}y=o[e+84>>2]|0;if((y|0)==1)if((m|0)>1){g=o[r>>2]|0;f=1;y=1;while(1){m=o[g+(f<<2)>>2]|0;p=o[a>>2]|0;w=o[p+(m>>1<<3)>>2]|0;e:do{if((w|0)!=-1){B=(o[d>>2]|0)+(w<<2)|0;Q=o[B>>2]|0;if(Q>>>0>63){w=o[A>>2]|0;v=1;while(1){H=o[B+(v<<2)+4>>2]>>1;if((n[w+H>>0]|0)==0?(o[p+(H<<3)+4>>2]|0)>0:0)break;v=v+1|0;if((v|0)>=(Q>>>5|0))break e}o[g+(y<<2)>>2]=m;y=y+1|0}}else{o[g+(y<<2)>>2]=m;y=y+1|0}}while(0);f=f+1|0;p=o[h>>2]|0;if((f|0)>=(p|0)){g=p;break}}}else{g=m;f=1;y=1}else if((y|0)==2)if((m|0)>1){d=1;y=1;do{w=o[r>>2]|0;m=o[w+(d<<2)>>2]|0;if((o[(o[a>>2]|0)+(m>>1<<3)>>2]|0)!=-1){o[g>>2]=m;o[p+0>>2]=o[g+0>>2];if(!(_t(e,p)|0)){m=o[r>>2]|0;w=m;m=o[m+(d<<2)>>2]|0;f=62}}else f=62;if((f|0)==62){f=0;o[w+(y<<2)>>2]=m;y=y+1|0}d=d+1|0;m=o[h>>2]|0}while((d|0)<(m|0));g=m;f=d}else{g=m;f=1;y=1}else{g=m;f=m;y=m}H=e+240|0;G=H;G=ai(o[G>>2]|0,o[G+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;o[H>>2]=G;o[H+4>>2]=R;f=f-y|0;if((f|0)>0){g=g-f|0;o[h>>2]=g}H=e+248|0;G=H;G=ai(o[G>>2]|0,o[G+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;o[H>>2]=G;o[H+4>>2]=R;if((g|0)==1)r=0;else{r=o[r>>2]|0;if((g|0)>2){e=o[a>>2]|0;h=2;f=1;do{f=(o[e+(o[r+(h<<2)>>2]>>1<<3)+4>>2]|0)>(o[e+(o[r+(f<<2)>>2]>>1<<3)+4>>2]|0)?h:f;h=h+1|0}while((h|0)<(g|0))}else f=1;G=r+(f<<2)|0;H=o[G>>2]|0;r=r+4|0;o[G>>2]=o[r>>2];o[r>>2]=H;r=o[(o[a>>2]|0)+(H>>1<<3)+4>>2]|0}o[i>>2]=r;if((o[E>>2]|0)>0)i=0;else{l=s;return}do{n[(o[A>>2]|0)+(o[(o[I>>2]|0)+(i<<2)>>2]>>1)>>0]=0;i=i+1|0}while((i|0)<(o[E>>2]|0));l=s;return}function _t(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;g=o[t>>2]|0;u=e+396|0;d=o[u>>2]|0;c=e+544|0;E=(o[c>>2]|0)+(o[d+(g>>1<<3)>>2]<<2)|0;A=e+604|0;i=e+608|0;if(o[A>>2]|0)o[i>>2]=0;s=e+588|0;a=e+612|0;e=e+616|0;f=1;while(1){if(f>>>0<(o[E>>2]|0)>>>5>>>0){C=o[E+(f<<2)+4>>2]|0;p=C>>1;if((o[d+(p<<3)+4>>2]|0)!=0?(h=n[(o[s>>2]|0)+p>>0]|0,(h+-1<<24>>24&255)>=2):0){E=o[i>>2]|0;I=(E|0)==(o[a>>2]|0);if(h<<24>>24==3?1:(o[d+(p<<3)>>2]|0)==-1){c=8;break}if(I){d=(E>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-E|0)){c=24;break}m=o[A>>2]|0;I=d+E|0;o[a>>2]=I;I=On(m,I<<3)|0;o[A>>2]=I;if((I|0)==0?(o[(Ye()|0)>>2]|0)==12:0){c=24;break}E=o[i>>2]|0}o[i>>2]=E+1;d=(o[A>>2]|0)+(E<<3)|0;if(d){m=d;o[m>>2]=f;o[m+4>>2]=g}o[t>>2]=C;E=o[u>>2]|0;g=C;d=E;E=(o[c>>2]|0)+(o[E+(p<<3)>>2]<<2)|0;f=0}}else{g=(o[s>>2]|0)+(g>>1)|0;if(!(n[g>>0]|0)){n[g>>0]=2;sr(e,t)}g=o[i>>2]|0;if(!g){i=1;c=34;break}m=g+-1|0;g=o[A>>2]|0;f=o[g+(m<<3)>>2]|0;g=o[g+(m<<3)+4>>2]|0;o[t>>2]=g;d=o[u>>2]|0;E=(o[c>>2]|0)+(o[d+(g>>1<<3)>>2]<<2)|0;o[i>>2]=m}f=f+1|0}if((c|0)==8){if(I){c=(E>>1)+2&-2;c=(c|0)<2?2:c;if((c|0)>(2147483647-E|0)){m=Qe(1)|0;ze(m|0,48,0)}I=o[A>>2]|0;m=c+E|0;o[a>>2]=m;m=On(I,m<<3)|0;o[A>>2]=m;if((m|0)==0?(o[(Ye()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}E=o[i>>2]|0}a=E+1|0;o[i>>2]=a;c=(o[A>>2]|0)+(E<<3)|0;if(c){a=c;o[a>>2]=0;o[a+4>>2]=g;a=o[i>>2]|0}if((a|0)>0)c=0;else{m=0;l=r;return m|0}do{u=(o[s>>2]|0)+(o[(o[A>>2]|0)+(c<<3)+4>>2]>>1)|0;if(!(n[u>>0]|0)){n[u>>0]=3;sr(e,(o[A>>2]|0)+(c<<3)+4|0);a=o[i>>2]|0}c=c+1|0}while((c|0)<(a|0));i=0;l=r;return i|0}else if((c|0)==24)ze(Qe(1)|0,48,0);else if((c|0)==34){l=r;return i|0}return 0}function Ot(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;a=l;l=l+32|0;A=a+16|0;s=a+12|0;c=a+8|0;i=a;g=r+20|0;u=r+16|0;if((o[g>>2]|0)>0){h=0;do{n[(o[r>>2]|0)+(o[(o[u>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(o[g>>2]|0))}if(o[u>>2]|0)o[g>>2]=0;h=o[t>>2]|0;o[c>>2]=h;o[s>>2]=h;o[A+0>>2]=o[s+0>>2];hr(r,A,0);u=(o[r>>2]|0)+h|0;if(!(n[u>>0]|0)){n[u>>0]=1;sr(r+16|0,c)}if(!(o[e+296>>2]|0)){l=a;return}t=h>>1;f=e+588|0;n[(o[f>>2]|0)+t>>0]=1;p=o[e+284>>2]|0;g=e+292|0;E=o[o[g>>2]>>2]|0;if((p|0)>(E|0)){c=e+280|0;u=e+396|0;h=r+16|0;e=e+544|0;do{p=p+-1|0;C=o[(o[c>>2]|0)+(p<<2)>>2]|0;d=C>>1;if(n[(o[f>>2]|0)+d>>0]|0){E=o[u>>2]|0;I=o[E+(d<<3)>>2]|0;e:do{if((I|0)==-1){C=C^1;o[i>>2]=C;o[s>>2]=C;o[A+0>>2]=o[s+0>>2];hr(r,A,0);C=(o[r>>2]|0)+C|0;if(!(n[C>>0]|0)){n[C>>0]=1;sr(h,i)}}else{C=(o[e>>2]|0)+(I<<2)|0;I=o[C>>2]|0;if(I>>>0>63){m=1;while(1){y=o[C+(m<<2)+4>>2]>>1;if((o[E+(y<<3)+4>>2]|0)>0){n[(o[f>>2]|0)+y>>0]=1;I=o[C>>2]|0}m=m+1|0;if((m|0)>=(I>>>5|0))break e;E=o[u>>2]|0}}}}while(0);n[(o[f>>2]|0)+d>>0]=0;E=o[o[g>>2]>>2]|0}}while((p|0)>(E|0))}n[(o[f>>2]|0)+t>>0]=0;l=a;return}function jt(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,h=0,g=0.0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0;r=l;l=l+16|0;p=r+4|0;m=r;t=e+272|0;w=o[t>>2]|0;g=+u[e+496>>3]/+(w|0);A=e+544|0;a=e+268|0;y=o[a>>2]|0;o[m>>2]=A;o[p+0>>2]=o[m+0>>2];gr(y,w,p);p=o[t>>2]|0;if((p|0)>0){h=e+332|0;f=e+396|0;d=0;y=0;do{I=o[a>>2]|0;m=o[I+(d<<2)>>2]|0;w=o[A>>2]|0;C=w+(m<<2)|0;E=o[C>>2]|0;do{if(E>>>0>95){B=o[w+(m+1<<2)>>2]|0;w=B>>1;B=(s[(o[h>>2]|0)+w>>0]|0)^B&1;v=n[528]|0;Q=v&255;if(((B&255)<<24>>24==v<<24>>24&(Q>>>1^1)|Q&2&B|0)!=0?(v=o[(o[f>>2]|0)+(w<<3)>>2]|0,(v|0)!=-1&(v|0)==(m|0)):0){i=9;break}if((d|0)>=((p|0)/2|0|0)?!(+c[C+(E>>>5<<2)+4>>2]>2]=m;y=y+1|0}d=d+1|0;p=o[t>>2]|0}while((d|0)<(p|0))}else{d=0;y=0}i=d-y|0;if((i|0)>0)o[t>>2]=p-i;if(!(+((o[e+556>>2]|0)>>>0)>+u[e+96>>3]*+((o[e+548>>2]|0)>>>0))){l=r;return}ji[o[(o[e>>2]|0)+8>>2]&31](e);l=r;return}function Yt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0;r=l;i=t+4|0;h=o[i>>2]|0;if((h|0)>0){a=e+544|0;A=e+332|0;c=0;u=0;do{m=o[t>>2]|0;p=o[m+(c<<2)>>2]|0;h=(o[a>>2]|0)+(p<<2)|0;f=o[h>>2]|0;do{if(f>>>0>31){y=o[A>>2]|0;C=n[528]|0;d=C&255;w=d&2;d=d>>>1^1;E=f>>>5;I=0;do{B=o[h+(I<<2)+4>>2]|0;B=(s[y+(B>>1)>>0]|0)^B&1;I=I+1|0;if((B&255)<<24>>24==C<<24>>24&d|w&B){g=7;break}}while((I|0)<(E|0));if((g|0)==7){g=0;Kt(e,p);break}if(f>>>0>95){g=n[536]|0;d=f>>>5;p=2;do{C=h+(p<<2)+4|0;B=o[C>>2]|0;B=(s[(o[A>>2]|0)+(B>>1)>>0]|0)^B&1;w=g&255;if((B&255)<<24>>24==g<<24>>24&(w>>>1^1)|w&2&B){o[C>>2]=o[h+(d+-1<<2)+4>>2];f=o[h>>2]|0;if(f&8){f=f>>>5;o[h+(f+-1<<2)+4>>2]=o[h+(f<<2)+4>>2];f=o[h>>2]|0}f=f+-32|0;o[h>>2]=f;p=p+-1|0}p=p+1|0;d=f>>>5}while((p|0)<(d|0));p=o[t>>2]|0;m=p;p=o[p+(c<<2)>>2]|0;g=16}else g=16}else g=16}while(0);if((g|0)==16){g=0;o[m+(u<<2)>>2]=p;u=u+1|0}c=c+1|0;h=o[i>>2]|0}while((c|0)<(h|0))}else{c=0;u=0}t=c-u|0;if((t|0)<=0){l=r;return}o[i>>2]=h-t;l=r;return}function Gt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;s=l;l=l+16|0;r=s+4|0;A=s;o[r>>2]=0;t=r+4|0;o[t>>2]=0;i=r+8|0;o[i>>2]=0;o[A>>2]=0;a=e+540|0;g=o[a>>2]|0;if((g|0)>0){u=e+380|0;c=e+332|0;h=0;do{if((n[(o[u>>2]|0)+h>>0]|0)!=0?(p=n[(o[c>>2]|0)+h>>0]|0,d=n[544]|0,f=d&255,((f>>>1^1)&p<<24>>24==d<<24>>24|p&2&f|0)!=0):0){Ar(r,A);g=o[a>>2]|0}h=h+1|0;o[A>>2]=h}while((h|0)<(g|0))}fr(e+460|0,r);e=o[r>>2]|0;if(!e){l=s;return}o[t>>2]=0;_n(e);o[r>>2]=0;o[i>>2]=0;l=s;return}function Jt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;t=l;i=e+492|0;if((n[i>>0]|0)!=0?(Mt(e)|0)==-1:0){i=e+284|0;s=e+516|0;if((o[i>>2]|0)==(o[s>>2]|0)){E=1;l=t;return E|0}A=e+520|0;E=A;C=o[E+4>>2]|0;if((C|0)>0|(C|0)==0&(o[E>>2]|0)>>>0>0){E=1;l=t;return E|0}Yt(e,e+268|0);if(n[e+536>>0]|0){Yt(e,e+256|0);c=e+564|0;a=e+568|0;if((o[a>>2]|0)>0){g=e+588|0;h=0;do{n[(o[g>>2]|0)+(o[(o[c>>2]|0)+(h<<2)>>2]|0)>>0]=1;h=h+1|0}while((h|0)<(o[a>>2]|0))}p=o[i>>2]|0;if((p|0)>0){h=o[e+280>>2]|0;g=o[e+588>>2]|0;d=0;f=0;do{C=o[h+(d<<2)>>2]|0;if(!(n[g+(C>>1)>>0]|0)){o[h+(f<<2)>>2]=C;p=o[i>>2]|0;f=f+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;f=0}h=d-f|0;if((h|0)>0){p=p-h|0;o[i>>2]=p}o[e+512>>2]=p;e:do{if((o[a>>2]|0)>0){f=e+588|0;h=0;do{n[(o[f>>2]|0)+(o[(o[c>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0;g=o[a>>2]|0}while((h|0)<(g|0));if((g|0)>0){g=e+580|0;f=e+584|0;h=e+576|0;p=0;while(1){C=o[g>>2]|0;if((C|0)==(o[f>>2]|0)){d=(C>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-C|0)){r=28;break}E=o[h>>2]|0;d=d+C|0;o[f>>2]=d;d=On(E,d<<2)|0;o[h>>2]=d;if((d|0)==0?(o[(Ye()|0)>>2]|0)==12:0){r=28;break}C=o[g>>2]|0}else d=o[h>>2]|0;E=d+(C<<2)|0;if(E){o[E>>2]=0;C=o[g>>2]|0}o[g>>2]=C+1;E=o[c>>2]|0;o[d+(C<<2)>>2]=o[E+(p<<2)>>2];p=p+1|0;if((p|0)>=(o[a>>2]|0))break e}if((r|0)==28)ze(Qe(1)|0,48,0)}else r=21}else r=21}while(0);if((r|0)==21)E=o[c>>2]|0;if(E)o[a>>2]=0}if(+((o[e+556>>2]|0)>>>0)>+u[e+96>>3]*+((o[e+548>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e);Gt(e);o[s>>2]=o[i>>2];C=e+224|0;E=e+232|0;C=ai(o[E>>2]|0,o[E+4>>2]|0,o[C>>2]|0,o[C+4>>2]|0)|0;E=A;o[E>>2]=C;o[E+4>>2]=R;E=1;l=t;return E|0}n[i>>0]=0;E=0;l=t;return E|0}function Ht(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,h=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0,H=0,z=0,W=0,V=0,X=0,Z=0,$=0,ee=0,te=0,re=0,ne=0,ie=0,oe=0.0,se=0,Ae=0,ae=0,ce=0.0,ue=0,le=0,he=0,ge=0,fe=0,pe=0,de=0.0,Ce=0,Ee=0,Ie=0.0;h=l;l=l+64|0;Z=h;F=h+60|0;b=h+56|0;i=h+44|0;$=h+40|0;o[i>>2]=0;a=i+4|0;o[a>>2]=0;A=i+8|0;o[A>>2]=0;U=t+160|0;P=U;P=ai(o[P>>2]|0,o[P+4>>2]|0,1,0)|0;o[U>>2]=P;o[U+4>>2]=R;U=(r|0)<0;P=t+680|0;T=t+664|0;L=t+672|0;d=t+296|0;w=t+272|0;f=t+284|0;N=t+640|0;x=t+308|0;k=t+304|0;C=t+332|0;M=t+292|0;te=t+168|0;I=t+396|0;y=t+280|0;K=t+184|0;S=t+192|0;m=t+48|0;J=t+504|0;V=t+56|0;ee=t+496|0;re=t+656|0;_=t+144|0;O=t+648|0;j=t+128|0;Y=t+44|0;G=t+200|0;H=t+208|0;z=t+224|0;W=t+216|0;E=t+232|0;X=t+540|0;p=t+292|0;B=t+544|0;v=t+276|0;Q=t+268|0;D=t+268|0;ne=0;e:while(1){ie=U|(ne|0)<(r|0);while(1){se=Mt(t)|0;if((se|0)!=-1)break;if(!ie){se=41;break e}if(n[P>>0]|0){se=41;break e}se=T;Ae=o[se+4>>2]|0;if((Ae|0)>=0?(Ee=S,Ce=o[Ee+4>>2]|0,!(Ce>>>0>>0|((Ce|0)==(Ae|0)?(o[Ee>>2]|0)>>>0<(o[se>>2]|0)>>>0:0))):0){se=41;break e}se=L;Ae=o[se+4>>2]|0;if((Ae|0)>=0?(Ee=K,Ce=o[Ee+4>>2]|0,!(Ce>>>0>>0|((Ce|0)==(Ae|0)?(o[Ee>>2]|0)>>>0<(o[se>>2]|0)>>>0:0))):0){se=41;break e}if((o[d>>2]|0)==0?!(Jt(t)|0):0){se=50;break e}if(+((o[w>>2]|0)-(o[f>>2]|0)|0)>=+u[N>>3])jt(t);while(1){se=o[d>>2]|0;if((se|0)>=(o[x>>2]|0)){se=59;break}ue=o[(o[k>>2]|0)+(se<<2)>>2]|0;Ae=s[(o[C>>2]|0)+(ue>>1)>>0]|0;Ee=Ae^ue&1;ae=Ee&255;pe=n[528]|0;Ce=pe&255;if(!(ae<<24>>24==pe<<24>>24&(Ce>>>1^1)|Ce&2&Ee)){se=56;break}o[F>>2]=o[f>>2];Ar(M,F)}if((se|0)==56){se=0;Ce=n[536]|0;Ee=Ce&255;if((Ee>>>1^1)&ae<<24>>24==Ce<<24>>24|Ae&2&Ee){se=57;break e}if((ue|0)==-2)se=59}if((se|0)==59){Ee=te;Ee=ai(o[Ee>>2]|0,o[Ee+4>>2]|0,1,0)|0;ue=te;o[ue>>2]=Ee;o[ue+4>>2]=R;ue=Pt(t)|0;if((ue|0)==-2){se=60;break e}}o[Z>>2]=o[f>>2];Ar(M,Z);Ee=ue>>1;n[(o[C>>2]|0)+Ee>>0]=(ue&1^1)&255^1;Ce=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=-1;o[Ee+4>>2]=Ce;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=ue}Ce=S;Ce=ai(o[Ce>>2]|0,o[Ce+4>>2]|0,1,0)|0;Ee=S;o[Ee>>2]=Ce;o[Ee+4>>2]=R;ne=ne+1|0;if(!(o[d>>2]|0)){se=5;break}if(o[i>>2]|0)o[a>>2]=0;Ut(t,se,i,b);Tt(t,o[b>>2]|0);if((o[a>>2]|0)==1){Ce=o[o[i>>2]>>2]|0;Ee=Ce>>1;n[(o[C>>2]|0)+Ee>>0]=(Ce&1^1)&255^1;pe=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=-1;o[Ee+4>>2]=pe;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=Ce}else{ie=cr(B,i,1)|0;se=o[w>>2]|0;if((se|0)==(o[v>>2]|0)){Ae=(se>>1)+2&-2;Ae=(Ae|0)<2?2:Ae;if((Ae|0)>(2147483647-se|0)){se=14;break}Ce=o[Q>>2]|0;Ee=Ae+se|0;o[v>>2]=Ee;Ee=On(Ce,Ee<<2)|0;o[Q>>2]=Ee;if((Ee|0)==0?(o[(Ye()|0)>>2]|0)==12:0){se=14;break}se=o[w>>2]|0}o[w>>2]=se+1;se=(o[Q>>2]|0)+(se<<2)|0;if(se)o[se>>2]=ie;Nt(t,ie);ae=o[B>>2]|0;Ee=ae+(ie<<2)|0;oe=+u[ee>>3];Ee=Ee+((o[Ee>>2]|0)>>>5<<2)+4|0;Ie=oe+ +c[Ee>>2];c[Ee>>2]=Ie;if(Ie>1.0e20){Ae=o[w>>2]|0;if((Ae|0)>0){se=o[D>>2]|0;ue=0;do{Ee=ae+(o[se+(ue<<2)>>2]<<2)|0;Ee=Ee+((o[Ee>>2]|0)>>>5<<2)+4|0;c[Ee>>2]=+c[Ee>>2]*1.0e-20;ue=ue+1|0}while((ue|0)!=(Ae|0))}u[ee>>3]=oe*1.0e-20}Ce=o[o[i>>2]>>2]|0;Ee=Ce>>1;n[(o[C>>2]|0)+Ee>>0]=(Ce&1^1)&255^1;pe=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=ie;o[Ee+4>>2]=pe;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=Ce}u[J>>3]=1.0/+u[m>>3]*+u[J>>3];u[ee>>3]=1.0/+u[V>>3]*+u[ee>>3];Ee=(o[re>>2]|0)+-1|0;o[re>>2]=Ee;if(Ee)continue;oe=+u[_>>3]*+u[O>>3];u[O>>3]=oe;o[re>>2]=~~oe;oe=+u[j>>3]*+u[N>>3];u[N>>3]=oe;if((o[Y>>2]|0)<=0)continue;se=o[S>>2]|0;ie=o[G>>2]|0;fe=o[d>>2]|0;if(!fe)Ae=f;else Ae=o[p>>2]|0;Ae=o[Ae>>2]|0;ge=o[H>>2]|0;he=o[z>>2]|0;le=o[W>>2]|0;ue=E;ae=o[ue>>2]|0;ue=o[ue+4>>2]|0;ce=+(o[X>>2]|0);de=1.0/ce;if((fe|0)<0)Ie=0.0;else{pe=0;Ie=0.0;while(1){if(!pe)Ce=0;else Ce=o[(o[p>>2]|0)+(pe+-1<<2)>>2]|0;if((pe|0)==(fe|0))Ee=f;else Ee=(o[p>>2]|0)+(pe<<2)|0;Ie=Ie+ +q(+de,+ +(pe|0))*+((o[Ee>>2]|0)-Ce|0);if((pe|0)==(fe|0))break;else pe=pe+1|0}}o[Z>>2]=se;o[Z+4>>2]=ie-Ae;o[Z+8>>2]=ge;o[Z+12>>2]=he;o[Z+16>>2]=~~oe;o[Z+20>>2]=le;Ee=Z+24|0;u[g>>3]=(+(ae>>>0)+4294967296.0*+(ue>>>0))/+(le|0);o[Ee>>2]=o[g>>2];o[Ee+4>>2]=o[g+4>>2];Ee=Z+32|0;u[g>>3]=Ie/ce*100.0;o[Ee>>2]=o[g>>2];o[Ee+4>>2]=o[g+4>>2];_e(1832,Z|0)|0}if((se|0)==5)n[e>>0]=n[536]|0;else if((se|0)==14)ze(Qe(1)|0,48,0);else if((se|0)==41){oe=+(o[X>>2]|0);ce=1.0/oe;C=o[d>>2]|0;if((C|0)<0)de=0.0;else{d=0;de=0.0;while(1){if(!d)E=0;else E=o[(o[p>>2]|0)+(d+-1<<2)>>2]|0;if((d|0)==(C|0))I=f;else I=(o[p>>2]|0)+(d<<2)|0;de=de+ +q(+ce,+ +(d|0))*+((o[I>>2]|0)-E|0);if((d|0)==(C|0))break;else d=d+1|0}}u[t+528>>3]=de/oe;Tt(t,0);n[e>>0]=n[544]|0}else if((se|0)==50)n[e>>0]=n[536]|0;else if((se|0)==57){o[$>>2]=ue^1;Ee=t+16|0;o[Z+0>>2]=o[$+0>>2];Ot(t,Z,Ee);n[e>>0]=n[536]|0}else if((se|0)==60)n[e>>0]=n[528]|0;e=o[i>>2]|0;if(!e){l=h;return}o[a>>2]=0;_n(e);o[i>>2]=0;o[A>>2]=0;l=h;return}function qt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0.0,w=0,B=0,Q=0,v=0.0,D=0,b=0;i=l;l=l+16|0;A=i;r=t+4|0;if(o[r>>2]|0)o[t+8>>2]=0;s=t+36|0;a=t+32|0;if((o[s>>2]|0)>0){c=t+16|0;h=0;do{n[(o[c>>2]|0)+(o[(o[a>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(o[s>>2]|0))}if(o[a>>2]|0)o[s>>2]=0;a=t+492|0;if(!(n[a>>0]|0)){n[e>>0]=n[536]|0;l=i;return}c=t+152|0;Q=c;Q=ai(o[Q>>2]|0,o[Q+4>>2]|0,1,0)|0;o[c>>2]=Q;o[c+4>>2]=R;v=+u[t+120>>3]*+(o[t+208>>2]|0);c=t+640|0;u[c>>3]=v;y=+(o[t+104>>2]|0);if(v>3]=y;w=o[t+136>>2]|0;u[t+648>>3]=+(w|0);o[t+656>>2]=w;w=n[544]|0;c=t+44|0;if((o[c>>2]|0)>0){Ue(2288)|0;Ue(2368)|0;Ue(2448)|0;Ue(2528)|0;f=n[544]|0}else f=w;g=t+192|0;h=t+184|0;Q=f&255;e:do{if((Q>>>1^1)&w<<24>>24==f<<24>>24|w&2&Q){d=t+80|0;I=t+112|0;p=t+108|0;f=t+680|0;C=t+664|0;E=t+672|0;m=0;while(1){y=+u[I>>3];if(!(n[d>>0]|0))y=+q(+y,+ +(m|0));else{Q=m+1|0;if((m|0)>0){B=0;w=1;do{B=B+1|0;w=w<<1|1}while((w|0)<(Q|0));Q=w+-1|0}else{B=0;Q=0}if((Q|0)!=(m|0)){w=m;do{D=Q>>1;B=B+-1|0;w=(w|0)%(D|0)|0;Q=D+-1|0}while((Q|0)!=(w|0))}y=+q(+y,+ +(B|0))}Ht(A,t,~~(y*+(o[p>>2]|0)));w=n[A>>0]|0;if(n[f>>0]|0)break e;Q=C;B=o[Q+4>>2]|0;if((B|0)>=0?(D=g,b=o[D+4>>2]|0,!(b>>>0>>0|((b|0)==(B|0)?(o[D>>2]|0)>>>0<(o[Q>>2]|0)>>>0:0))):0)break e;Q=E;B=o[Q+4>>2]|0;if((B|0)>=0?(b=h,D=o[b+4>>2]|0,!(D>>>0>>0|((D|0)==(B|0)?(o[b>>2]|0)>>>0<(o[Q>>2]|0)>>>0:0))):0)break e;D=n[544]|0;b=D&255;if(!((b>>>1^1)&w<<24>>24==D<<24>>24|w&2&b))break;else m=m+1|0}}}while(0);if((o[c>>2]|0)>0)Ue(2528)|0;D=n[528]|0;b=D&255;A=w&2;if(!((b>>>1^1)&w<<24>>24==D<<24>>24|A&b)){D=n[536]|0;b=D&255;if(((b>>>1^1)&w<<24>>24==D<<24>>24|A&b|0)!=0?(o[s>>2]|0)==0:0)n[a>>0]=0}else{s=t+540|0;nr(r,o[s>>2]|0);if((o[s>>2]|0)>0){A=t+332|0;a=0;do{n[(o[r>>2]|0)+a>>0]=n[(o[A>>2]|0)+a>>0]|0;a=a+1|0}while((a|0)<(o[s>>2]|0))}}Tt(t,0);n[e>>0]=w;l=i;return}function zt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;r=l;A=e+412|0;pr(A);c=e+540|0;if((o[c>>2]|0)>0){a=e+544|0;i=0;do{u=i<<1;g=o[A>>2]|0;h=g+(u*12|0)+4|0;if((o[h>>2]|0)>0){p=g+(u*12|0)|0;f=0;do{E=(o[p>>2]|0)+(f<<3)|0;g=o[E>>2]|0;d=o[a>>2]|0;C=d+(g<<2)|0;if(!(o[C>>2]&16)){I=dr(t,C)|0;o[E>>2]=I;o[C>>2]=o[C>>2]|16;o[d+(g+1<<2)>>2]=I}else o[E>>2]=o[d+(g+1<<2)>>2];f=f+1|0}while((f|0)<(o[h>>2]|0));h=o[A>>2]|0}else h=g;g=u|1;u=h+(g*12|0)+4|0;if((o[u>>2]|0)>0){C=h+(g*12|0)|0;d=0;do{h=(o[C>>2]|0)+(d<<3)|0;p=o[h>>2]|0;f=o[a>>2]|0;g=f+(p<<2)|0;if(!(o[g>>2]&16)){I=dr(t,g)|0;o[h>>2]=I;o[g>>2]=o[g>>2]|16;o[f+(p+1<<2)>>2]=I}else o[h>>2]=o[f+(p+1<<2)>>2];d=d+1|0}while((d|0)<(o[u>>2]|0))}i=i+1|0}while((i|0)<(o[c>>2]|0))}i=e+284|0;if((o[i>>2]|0)>0){u=e+280|0;c=e+396|0;a=e+544|0;A=e+332|0;h=0;do{C=o[c>>2]|0;p=C+(o[(o[u>>2]|0)+(h<<2)>>2]>>1<<3)|0;d=o[p>>2]|0;do{if((d|0)!=-1){I=o[a>>2]|0;E=I+(d<<2)|0;f=(o[E>>2]&16|0)==0;if(f){m=o[I+(d+1<<2)>>2]|0;g=m>>1;m=(s[(o[A>>2]|0)+g>>0]|0)^m&1;w=n[528]|0;y=w&255;if(!((m&255)<<24>>24==w<<24>>24&(y>>>1^1)|y&2&m))break;w=o[C+(g<<3)>>2]|0;if(!((w|0)!=-1&(w|0)==(d|0)))break;if(f){w=dr(t,E)|0;o[p>>2]=w;o[E>>2]=o[E>>2]|16;o[I+(d+1<<2)>>2]=w;break}}o[p>>2]=o[I+(d+1<<2)>>2]}}while(0);h=h+1|0}while((h|0)<(o[i>>2]|0))}i=e+272|0;g=o[i>>2]|0;if((g|0)>0){a=e+268|0;A=e+544|0;h=o[a>>2]|0;c=0;u=0;do{p=h+(c<<2)|0;f=o[p>>2]|0;C=o[A>>2]|0;d=C+(f<<2)|0;E=o[d>>2]|0;if((E&3|0)!=1){if(!(E&16)){g=dr(t,d)|0;o[p>>2]=g;o[d>>2]=o[d>>2]|16;o[C+(f+1<<2)>>2]=g;g=o[a>>2]|0;h=g;g=o[g+(c<<2)>>2]|0}else{g=o[C+(f+1<<2)>>2]|0;o[p>>2]=g}o[h+(u<<2)>>2]=g;g=o[i>>2]|0;u=u+1|0}c=c+1|0}while((c|0)<(g|0))}else{c=0;u=0}A=c-u|0;if((A|0)>0)o[i>>2]=g-A;i=e+260|0;h=o[i>>2]|0;if((h|0)>0){A=e+256|0;e=e+544|0;u=o[A>>2]|0;a=0;c=0;do{g=u+(a<<2)|0;p=o[g>>2]|0;f=o[e>>2]|0;C=f+(p<<2)|0;d=o[C>>2]|0;if((d&3|0)!=1){if(!(d&16)){h=dr(t,C)|0;o[g>>2]=h;o[C>>2]=o[C>>2]|16;o[f+(p+1<<2)>>2]=h;h=o[A>>2]|0;u=h;h=o[h+(a<<2)>>2]|0}else{h=o[f+(p+1<<2)>>2]|0;o[g>>2]=h}o[u+(c<<2)>>2]=h;h=o[i>>2]|0;c=c+1|0}a=a+1|0}while((a|0)<(h|0))}else{a=0;c=0}t=a-c|0;if((t|0)<=0){l=r;return}o[i>>2]=h-t;l=r;return}function Wt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0;s=l;l=l+32|0;a=s;t=s+8|0;r=e+548|0;i=e+556|0;A=(o[r>>2]|0)-(o[i>>2]|0)|0;o[t+0>>2]=0;o[t+4>>2]=0;o[t+8>>2]=0;o[t+12>>2]=0;er(t,A);A=t+16|0;n[A>>0]=0;zt(e,t);if((o[e+44>>2]|0)>1){c=o[t+4>>2]<<2;o[a>>2]=o[r>>2]<<2;o[a+4>>2]=c;_e(1888,a|0)|0}n[e+560>>0]=n[A>>0]|0;A=e+544|0;a=o[A>>2]|0;if(a)_n(a);o[A>>2]=o[t>>2];o[r>>2]=o[t+4>>2];o[e+552>>2]=o[t+8>>2];o[i>>2]=o[t+12>>2];l=s;return}function Vt(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[528]=0;n[536]=1;n[544]=2;Ct(552,608,624,2136,2144);o[138]=2168;u[72]=0.0;u[73]=1.0;n[592]=0;n[593]=0;i[297]=i[t+0>>1]|0;i[298]=i[t+2>>1]|0;i[299]=i[t+4>>1]|0;u[75]=.95;Ct(664,720,736,2136,2144);o[166]=2168;u[86]=0.0;u[87]=1.0;n[704]=0;n[705]=0;i[353]=i[t+0>>1]|0;i[354]=i[t+2>>1]|0;i[355]=i[t+4>>1]|0;u[89]=.999;Ct(776,832,848,2136,2144);o[194]=2168;u[100]=0.0;u[101]=1.0;n[816]=1;n[817]=1;i[409]=i[t+0>>1]|0;i[410]=i[t+2>>1]|0;i[411]=i[t+4>>1]|0;u[103]=0.0;Ct(936,992,1008,2136,2144);o[234]=2168;u[120]=0.0;u[121]=Q;n[976]=0;n[977]=0;i[489]=i[t+0>>1]|0;i[490]=i[t+2>>1]|0;i[491]=i[t+4>>1]|0;u[123]=91648253.0;Ct(1048,1080,1096,2136,2016);o[262]=280;r=1068|0;o[r>>2]=0;o[r+4>>2]=2;o[269]=2;Ct(1160,1192,1208,2136,2016);o[290]=280;r=1180|0;o[r>>2]=0;o[r+4>>2]=2;o[297]=2;Ct(1272,1296,1312,2136,1992);o[318]=160;n[1292]=0;Ct(1344,1368,1376,2136,1992);o[336]=160;n[1364]=1;Ct(1408,1440,1448,2136,2016);o[352]=280;r=1428|0;o[r>>2]=1;o[r+4>>2]=2147483647;o[359]=100;Ct(1480,1536,1544,2136,2144);o[370]=2168;u[188]=1.0;u[189]=Q;n[1520]=0;n[1521]=0;i[761]=i[t+0>>1]|0;i[762]=i[t+2>>1]|0;i[763]=i[t+4>>1]|0;u[191]=2.0;Ct(1584,1640,1648,2136,2144);o[396]=2168;u[201]=0.0;u[202]=Q;n[1624]=0;n[1625]=0;i[813]=i[t+0>>1]|0;i[814]=i[t+2>>1]|0;i[815]=i[t+4>>1]|0;u[204]=.2;Ct(1728,1760,1776,2136,2016);o[432]=280;t=1748|0;o[t>>2]=0;o[t+4>>2]=2147483647;o[439]=0;l=e;return}function Xt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Zt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0.0,d=0.0;r=l;l=l+16|0;A=r;s=r+8|0;if((n[t>>0]|0)!=45){f=0;l=r;return f|0}h=t+1|0;i=e+4|0;a=o[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){g=0;while(1){f=g;g=g+1|0;if((n[h>>0]|0)!=c<<24>>24){e=0;break}c=n[a+g>>0]|0;h=t+(f+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[h>>0]|0)!=61){f=0;l=r;return f|0}a=h+1|0;p=+Xn(a,s);if(!(o[s>>2]|0)){f=0;l=r;return f|0}d=+u[e+32>>3];if(p>=d?(n[e+41>>0]|0)==0|p!=d:0){f=o[E>>2]|0;g=o[i>>2]|0;o[A>>2]=a;o[A+4>>2]=g;et(f|0,2024,A|0)|0;nt(1)}d=+u[e+24>>3];if(p<=d?(n[e+40>>0]|0)==0|p!=d:0){f=o[E>>2]|0;g=o[i>>2]|0;o[A>>2]=a;o[A+4>>2]=g;et(f|0,2080,A|0)|0;nt(1)}u[e+48>>3]=p;f=1;l=r;return f|0}function $t(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0.0,c=0,h=0.0,f=0.0,p=0;r=l;l=l+48|0;i=r;s=o[E>>2]|0;p=o[e+16>>2]|0;c=(n[e+40>>0]|0)!=0?91:40;f=+u[e+24>>3];h=+u[e+32>>3];A=(n[e+41>>0]|0)!=0?93:41;a=+u[e+48>>3];o[i>>2]=o[e+4>>2];o[i+4>>2]=p;o[i+8>>2]=c;c=i+12|0;u[g>>3]=f;o[c>>2]=o[g>>2];o[c+4>>2]=o[g+4>>2];c=i+20|0;u[g>>3]=h;o[c>>2]=o[g>>2];o[c+4>>2]=o[g+4>>2];o[i+28>>2]=A;A=i+32|0;u[g>>3]=a;o[A>>2]=o[g>>2];o[A+4>>2]=o[g+4>>2];et(s|0,2232,i|0)|0;if(!t){l=r;return}o[i>>2]=o[e+8>>2];et(s|0,2e3,i|0)|0;qe(10,s|0)|0;l=r;return}function er(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0;r=l;n=e+8|0;i=o[n>>2]|0;if(i>>>0>>0)A=i;else{l=r;return}while(1){if(A>>>0>=t>>>0)break;A=((A>>>3)+2+(A>>>1)&-2)+A|0;o[n>>2]=A;if(A>>>0<=i>>>0){s=4;break}}if((s|0)==4)ze(Qe(1)|0,48,0);n=On(o[e>>2]|0,A<<2)|0;if((n|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);o[e>>2]=n;l=r;return}function tr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0;t=l;n=e+32|0;r=o[n>>2]|0;if(r){o[e+36>>2]=0;_n(r);o[n>>2]=0;o[e+40>>2]=0}n=e+16|0;r=o[n>>2]|0;if(r){o[e+20>>2]=0;_n(r);o[n>>2]=0;o[e+24>>2]=0}n=o[e>>2]|0;if(!n){l=t;return}r=e+4|0;s=o[r>>2]|0;if((s|0)>0){i=0;do{a=n+(i*12|0)|0;A=o[a>>2]|0;if(A){o[n+(i*12|0)+4>>2]=0;_n(A);o[a>>2]=0;o[n+(i*12|0)+8>>2]=0;n=o[e>>2]|0;s=o[r>>2]|0}i=i+1|0}while((i|0)<(s|0))}o[r>>2]=0;_n(n);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function rr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;i=l;l=l+16|0;n=i+4|0;r=i;u=o[t>>2]|0;A=u+1|0;s=e+4|0;if((o[s>>2]|0)<(A|0)){c=e+8|0;a=o[c>>2]|0;if((a|0)<(A|0)){h=u+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[e>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h*12|0)|0;o[e>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}c=o[s>>2]|0;if((c|0)<(A|0)){a=o[e>>2]|0;do{u=a+(c*12|0)|0;if(u){o[u>>2]=0;o[a+(c*12|0)+4>>2]=0;o[a+(c*12|0)+8>>2]=0}c=c+1|0}while((c|0)!=(A|0))}o[s>>2]=A;u=o[t>>2]|0}s=o[e>>2]|0;if(!(o[s+(u*12|0)>>2]|0)){h=u;g=e+16|0;o[r>>2]=h;o[n+0>>2]=o[r+0>>2];hr(g,n,0);l=i;return}o[s+(u*12|0)+4>>2]=0;h=o[t>>2]|0;g=e+16|0;o[r>>2]=h;o[n+0>>2]=o[r+0>>2];hr(g,n,0);l=i;return}function nr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0;i=l;r=e+4|0;if((o[r>>2]|0)>=(t|0)){l=i;return}A=e+8|0;s=o[A>>2]|0;if((s|0)<(t|0)){c=t+1-s&-2;a=(s>>1)+2&-2;a=(c|0)>(a|0)?c:a;if((a|0)>(2147483647-s|0)){c=Qe(1)|0;ze(c|0,48,0)}u=o[e>>2]|0;c=a+s|0;o[A>>2]=c;c=On(u,c)|0;o[e>>2]=c;if((c|0)==0?(o[(Ye()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}s=o[r>>2]|0;if((s|0)<(t|0)){e=o[e>>2]|0;do{A=e+s|0;if(A)n[A>>0]=0;s=s+1|0}while((s|0)!=(t|0))}o[r>>2]=t;l=i;return}function ir(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;A=l;s=t+1|0;i=e+4|0;if((o[i>>2]|0)>=(s|0)){u=o[e>>2]|0;u=u+t|0;n[u>>0]=r;l=A;return}c=e+8|0;a=o[c>>2]|0;if((a|0)<(s|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[e>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h)|0;o[e>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}a=o[i>>2]|0;if((a|0)<(s|0))do{c=(o[e>>2]|0)+a|0;if(c)n[c>>0]=0;a=a+1|0}while((a|0)!=(s|0));o[i>>2]=s;g=o[e>>2]|0;g=g+t|0;n[g>>0]=r;l=A;return}function or(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0;r=l;l=l+16|0;s=r;o[s>>2]=t;A=e+12|0;i=t+1|0;n=e+16|0;if((o[n>>2]|0)<(i|0)){c=e+20|0;a=o[c>>2]|0;if((a|0)<(i|0)){g=t+2-a&-2;h=(a>>1)+2&-2;h=(g|0)>(h|0)?g:h;if((h|0)>(2147483647-a|0)){g=Qe(1)|0;ze(g|0,48,0)}f=o[A>>2]|0;g=h+a|0;o[c>>2]=g;g=On(f,g<<2)|0;o[A>>2]=g;if((g|0)==0?(o[(Ye()|0)>>2]|0)==12:0){f=Qe(1)|0;ze(f|0,48,0)}}a=o[n>>2]|0;if((i|0)>(a|0))oi((o[A>>2]|0)+(a<<2)|0,-1,i-a<<2|0)|0;o[n>>2]=i}o[(o[A>>2]|0)+(t<<2)>>2]=o[e+4>>2];Ar(e,s);n=o[A>>2]|0;s=o[n+(t<<2)>>2]|0;t=o[e>>2]|0;i=o[t+(s<<2)>>2]|0;if(!s){g=0;f=t+(g<<2)|0;o[f>>2]=i;f=n+(i<<2)|0;o[f>>2]=g;l=r;return}e=e+28|0;while(1){A=s;s=s+-1>>1;a=t+(s<<2)|0;c=o[a>>2]|0;f=o[o[e>>2]>>2]|0;if(!(+u[f+(i<<3)>>3]>+u[f+(c<<3)>>3])){e=14;break}o[t+(A<<2)>>2]=c;o[n+(o[a>>2]<<2)>>2]=A;if(!s){A=0;e=14;break}}if((e|0)==14){f=t+(A<<2)|0;o[f>>2]=i;f=n+(i<<2)|0;o[f>>2]=A;l=r;return}}function sr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function Ar(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function ar(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0;r=l;l=l+16|0;i=r+2|0;A=r+1|0;s=r;if((t|0)<16){s=t+-1|0;if((s|0)>0)A=0;else{l=r;return}do{i=A;A=A+1|0;if((A|0)<(t|0)){c=i;a=A;do{c=(o[e+(a<<2)>>2]|0)<(o[e+(c<<2)>>2]|0)?a:c;a=a+1|0}while((a|0)!=(t|0))}else c=i;g=e+(i<<2)|0;f=o[g>>2]|0;p=e+(c<<2)|0;o[g>>2]=o[p>>2];o[p>>2]=f}while((A|0)!=(s|0));l=r;return}a=o[e+(((t|0)/2|0)<<2)>>2]|0;h=-1;g=t;while(1){do{h=h+1|0;u=e+(h<<2)|0;c=o[u>>2]|0}while((c|0)<(a|0));do{g=g+-1|0;f=e+(g<<2)|0;p=o[f>>2]|0}while((a|0)<(p|0));if((h|0)>=(g|0))break;o[u>>2]=p;o[f>>2]=c}n[i+0>>0]=n[A+0>>0]|0;ar(e,h,i);p=t-h|0;n[i+0>>0]=n[s+0>>0]|0;ar(u,p,i);l=r;return}function cr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,A=0,a=0,u=0,h=0;n=l;a=r&1;A=s[e+16>>0]|0|a;i=t+4|0;u=((A+(o[i>>2]|0)<<2)+4|0)>>>2;h=e+4|0;er(e,u+(o[h>>2]|0)|0);r=o[h>>2]|0;u=u+r|0;o[h>>2]=u;if(u>>>0>>0)ze(Qe(1)|0,48,0);e=(o[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}A=A<<3|a<<2;o[e>>2]=o[e>>2]&-32|A;A=o[i>>2]<<5|A;o[e>>2]=A;if((o[i>>2]|0)>0){A=o[t>>2]|0;t=0;do{o[e+(t<<2)+4>>2]=o[A+(t<<2)>>2];t=t+1|0}while((t|0)<(o[i>>2]|0));A=o[e>>2]|0}if(!(A&8)){l=n;return r|0}i=A>>>5;if(A&4){c[e+(i<<2)+4>>2]=0.0;l=n;return r|0}if(!i){i=0;A=0}else{A=0;t=0;do{A=1<<((o[e+(t<<2)+4>>2]|0)>>>1&31)|A;t=t+1|0}while((t|0)<(i|0))}o[e+(i<<2)+4>>2]=A;l=n;return r|0}function ur(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<3)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<3)|0;if(!n){l=r;return}s=t;A=o[s+4>>2]|0;a=n;o[a>>2]=o[s>>2];o[a+4>>2]=A;l=r;return}function lr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0.0,E=0;t=l;r=o[e>>2]|0;i=o[r>>2]|0;a=e+4|0;f=o[r+((o[a>>2]|0)+-1<<2)>>2]|0;o[r>>2]=f;n=o[e+12>>2]|0;o[n+(f<<2)>>2]=0;o[n+(i<<2)>>2]=-1;f=(o[a>>2]|0)+-1|0;o[a>>2]=f;if((f|0)<=1){l=t;return i|0}s=o[r>>2]|0;c=e+28|0;e=0;h=1;while(1){g=(e<<1)+2|0;if((g|0)<(f|0)){p=o[r+(g<<2)>>2]|0;E=o[r+(h<<2)>>2]|0;f=o[o[c>>2]>>2]|0;d=+u[f+(p<<3)>>3];C=+u[f+(E<<3)>>3];if(!(d>C)){p=E;d=C;A=6}}else{f=o[o[c>>2]>>2]|0;A=o[r+(h<<2)>>2]|0;p=A;d=+u[f+(A<<3)>>3];A=6}if((A|0)==6){A=0;g=h}if(!(d>+u[f+(s<<3)>>3]))break;o[r+(e<<2)>>2]=p;o[n+(p<<2)>>2]=e;h=g<<1|1;f=o[a>>2]|0;if((h|0)>=(f|0)){e=g;break}else e=g}o[r+(e<<2)>>2]=s;o[n+(s<<2)>>2]=e;l=t;return i|0}function hr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0;i=l;c=o[t>>2]|0;t=c+1|0;s=e+4|0;if((o[s>>2]|0)>=(t|0)){l=i;return}a=e+8|0;A=o[a>>2]|0;if((A|0)<(t|0)){u=c+2-A&-2;c=(A>>1)+2&-2;c=(u|0)>(c|0)?u:c;if((c|0)>(2147483647-A|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=c+A|0;o[a>>2]=u;u=On(h,u)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}A=o[s>>2]|0;if((A|0)<(t|0))do{n[(o[e>>2]|0)+A>>0]=r;A=A+1|0}while((A|0)!=(t|0));o[s>>2]=t;l=i;return}function gr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0,a=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;n=l;l=l+16|0;s=n+8|0;i=n+4|0;A=n;if((t|0)<16){i=t+-1|0;if((i|0)<=0){l=n;return}s=o[r>>2]|0;r=0;do{A=r;r=r+1|0;if((r|0)<(t|0)){a=o[s>>2]|0;h=A;u=r;do{g=a+(o[e+(u<<2)>>2]<<2)|0;m=o[g>>2]|0;d=m>>>5;if(m>>>0>95){f=a+(o[e+(h<<2)>>2]<<2)|0;p=(o[f>>2]|0)>>>5;if((p|0)==2)h=u;else h=+c[g+(d<<2)+4>>2]<+c[f+(p<<2)+4>>2]?u:h}u=u+1|0}while((u|0)!=(t|0))}else h=A;E=e+(A<<2)|0;I=o[E>>2]|0;m=e+(h<<2)|0;o[E>>2]=o[m>>2];o[m>>2]=I}while((r|0)!=(i|0));l=n;return}a=o[e+(((t|0)/2|0)<<2)>>2]|0;d=-1;f=t;while(1){I=d+1|0;p=e+(I<<2)|0;m=o[p>>2]|0;u=o[r>>2]|0;h=o[u>>2]|0;E=h+(m<<2)|0;C=o[E>>2]|0;d=h+(a<<2)|0;g=o[d>>2]|0;e:do{if(C>>>0>95)while(1){y=g>>>5;if((y|0)!=2?!(+c[E+(C>>>5<<2)+4>>2]<+c[d+(y<<2)+4>>2]):0){d=I;break e}I=I+1|0;p=e+(I<<2)|0;m=o[p>>2]|0;E=h+(m<<2)|0;C=o[E>>2]|0;if(C>>>0<=95){d=I;break}}else d=I}while(0);f=f+-1|0;E=e+(f<<2)|0;C=h+(a<<2)|0;e:do{if(g>>>0>95)while(1){I=h+(o[E>>2]<<2)|0;y=(o[I>>2]|0)>>>5;if((y|0)!=2?!(+c[C+(g>>>5<<2)+4>>2]<+c[I+(y<<2)+4>>2]):0)break e;y=f+-1|0;E=e+(y<<2)|0;f=y}}while(0);if((d|0)>=(f|0))break;o[p>>2]=o[E>>2];o[E>>2]=m}o[i>>2]=u;o[s+0>>2]=o[i+0>>2];gr(e,d,s);y=t-d|0;o[A>>2]=u;o[s+0>>2]=o[A+0>>2];gr(p,y,s);l=n;return}function fr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0.0,E=0;n=l;i=e+4|0;A=o[i>>2]|0;s=o[e>>2]|0;if((A|0)>0){c=o[e+12>>2]|0;a=0;do{o[c+(o[s+(a<<2)>>2]<<2)>>2]=-1;a=a+1|0;A=o[i>>2]|0}while((a|0)<(A|0))}if(s){o[i>>2]=0;A=0}s=t+4|0;if((o[s>>2]|0)>0){a=e+12|0;A=0;do{E=(o[t>>2]|0)+(A<<2)|0;o[(o[a>>2]|0)+(o[E>>2]<<2)>>2]=A;Ar(e,E);A=A+1|0}while((A|0)<(o[s>>2]|0));A=o[i>>2]|0}if((A|0)<=1){l=n;return}s=o[e>>2]|0;t=e+28|0;e=e+12|0;f=A;a=(A|0)/2|0;while(1){a=a+-1|0;A=o[s+(a<<2)>>2]|0;h=a<<1|1;e:do{if((h|0)<(f|0)){c=a;while(1){g=(c<<1)+2|0;if((g|0)<(f|0)){p=o[s+(g<<2)>>2]|0;E=o[s+(h<<2)>>2]|0;f=o[o[t>>2]>>2]|0;d=+u[f+(p<<3)>>3];C=+u[f+(E<<3)>>3];if(!(d>C)){p=E;d=C;r=16}}else{f=o[o[t>>2]>>2]|0;r=o[s+(h<<2)>>2]|0;p=r;d=+u[f+(r<<3)>>3];r=16}if((r|0)==16){r=0;g=h}if(!(d>+u[f+(A<<3)>>3]))break e;o[s+(c<<2)>>2]=p;o[(o[e>>2]|0)+(p<<2)>>2]=c;h=g<<1|1;f=o[i>>2]|0;if((h|0)>=(f|0)){c=g;break}else c=g}}else c=a}while(0);o[s+(c<<2)>>2]=A;o[(o[e>>2]|0)+(A<<2)>>2]=c;if((a|0)<=0)break;f=o[i>>2]|0}l=n;return}function pr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;r=l;t=e+36|0;u=o[t>>2]|0;i=e+32|0;g=o[i>>2]|0;if((u|0)>0){A=e+16|0;s=e+44|0;a=0;do{c=g+(a<<2)|0;h=o[c>>2]|0;if(n[(o[A>>2]|0)+h>>0]|0){g=o[e>>2]|0;u=g+(h*12|0)+4|0;p=o[u>>2]|0;if((p|0)>0){h=g+(h*12|0)|0;g=0;f=0;do{d=o[h>>2]|0;C=d+(g<<3)|0;if((o[(o[o[s>>2]>>2]|0)+(o[C>>2]<<2)>>2]&3|0)!=1){E=C;C=o[E+4>>2]|0;p=d+(f<<3)|0;o[p>>2]=o[E>>2];o[p+4>>2]=C;p=o[u>>2]|0;f=f+1|0}g=g+1|0}while((g|0)<(p|0))}else{g=0;f=0}h=g-f|0;if((h|0)>0)o[u>>2]=p-h;n[(o[A>>2]|0)+(o[c>>2]|0)>>0]=0;u=o[t>>2]|0;g=o[i>>2]|0}a=a+1|0}while((a|0)<(u|0))}if(!g){l=r;return}o[t>>2]=0;l=r;return}function dr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0,a=0;n=l;A=o[t>>2]|0;i=A>>>2&1|(s[e+16>>0]|0);A=((i+(A>>>5)<<2)+4|0)>>>2;a=e+4|0;er(e,A+(o[a>>2]|0)|0);r=o[a>>2]|0;A=A+r|0;o[a>>2]=A;if(A>>>0>>0)ze(Qe(1)|0,48,0);e=(o[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}i=o[t>>2]&-9|i<<3;o[e>>2]=i;if((o[t>>2]|0)>>>0>31){i=0;do{o[e+(i<<2)+4>>2]=o[t+(i<<2)+4>>2];i=i+1|0}while((i|0)<((o[t>>2]|0)>>>5|0));i=o[e>>2]|0}if(!(i&8)){l=n;return r|0}A=i>>>5;t=t+(A<<2)+4|0;if(!(i&4)){o[e+(A<<2)+4>>2]=o[t>>2];l=n;return r|0}else{c[e+(A<<2)+4>>2]=+c[t>>2];l=n;return r|0}return 0}function Cr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0;t=l;l=l+16|0;s=t;Dt(e);o[e>>2]=3424;o[e+684>>2]=o[719];o[e+688>>2]=o[747];o[e+692>>2]=o[785];u[e+696>>3]=+u[411];n[e+704>>0]=n[2652]|0;n[e+705>>0]=n[2724]|0;n[e+706>>0]=n[2804]|0;n[e+707>>0]=1;o[e+708>>2]=0;o[e+712>>2]=0;o[e+716>>2]=0;o[e+720>>2]=1;n[e+724>>0]=1;r=e+732|0;a=e+544|0;o[e+760>>2]=0;o[e+764>>2]=0;o[e+768>>2]=0;o[e+776>>2]=0;o[e+780>>2]=0;o[e+784>>2]=0;o[e+792>>2]=0;o[e+796>>2]=0;o[e+800>>2]=0;A=e+804|0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;o[A>>2]=a;A=e+808|0;o[A>>2]=0;o[e+812>>2]=0;o[e+816>>2]=0;r=e+824|0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;o[e+852>>2]=A;Lr(e+856|0,1);A=e+868|0;r=e+892|0;o[e+920>>2]=0;o[e+924>>2]=0;o[A+0>>2]=0;o[A+4>>2]=0;o[A+8>>2]=0;o[A+12>>2]=0;o[A+16>>2]=0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;r=s+4|0;o[r>>2]=0;A=s+8|0;o[A>>2]=2;i=On(0,8)|0;o[s>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);o[i>>2]=-2;o[r>>2]=1;n[e+560>>0]=1;o[e+928>>2]=cr(a,s,0)|0;n[e+536>>0]=0;if(!i){l=t;return}o[r>>2]=0;_n(i);o[s>>2]=0;o[A>>2]=0;l=t;return}function Er(e){e=e|0;var t=0;t=l;Ir(e);un(e);l=t;return}function Ir(e){e=e|0;var t=0,r=0,n=0;t=l;o[e>>2]=3424;r=e+904|0;n=o[r>>2]|0;if(n){o[e+908>>2]=0;_n(n);o[r>>2]=0;o[e+912>>2]=0}r=e+892|0;n=o[r>>2]|0;if(n){o[e+896>>2]=0;_n(n);o[r>>2]=0;o[e+900>>2]=0}r=e+876|0;n=o[r>>2]|0;if(n){o[e+880>>2]=0;_n(n);o[r>>2]=0;o[e+884>>2]=0}r=e+856|0;n=o[r>>2]|0;if(n){o[e+860>>2]=0;_n(n);o[r>>2]=0;o[e+864>>2]=0}n=e+836|0;r=o[n>>2]|0;if(r){o[e+840>>2]=0;_n(r);o[n>>2]=0;o[e+844>>2]=0}r=e+824|0;n=o[r>>2]|0;if(n){o[e+828>>2]=0;_n(n);o[r>>2]=0;o[e+832>>2]=0}r=e+808|0;n=o[r>>2]|0;if(n){o[e+812>>2]=0;_n(n);o[r>>2]=0;o[e+816>>2]=0}Tr(e+760|0);r=e+744|0;n=o[r>>2]|0;if(n){o[e+748>>2]=0;_n(n);o[r>>2]=0;o[e+752>>2]=0}r=e+732|0;n=o[r>>2]|0;if(!n){St(e);l=t;return}o[e+736>>2]=0;_n(n);o[r>>2]=0;o[e+740>>2]=0;St(e);l=t;return}function mr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0;i=l;l=l+32|0;A=i+12|0;c=i+8|0;u=i+16|0;s=i+4|0;a=i;n[u>>0]=n[t>>0]|0;n[A+0>>0]=n[u+0>>0]|0;r=kt(e,A,r)|0;o[c>>2]=r;ir(e+876|0,r,0);ir(e+904|0,r,0);if(!(n[e+724>>0]|0)){l=i;return r|0}u=e+808|0;t=r<<1;o[s>>2]=t;o[A+0>>2]=o[s+0>>2];Pr(u,A,0);o[a>>2]=t|1;o[A+0>>2]=o[a+0>>2];Pr(u,A,0);Ur(e+760|0,c);ir(e+744|0,r,0);_r(e+824|0,r);l=i;return r|0}function yr(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0;c=l;l=l+32|0;A=c+4|0;C=c;p=c+16|0;o[A>>2]=0;a=A+4|0;o[a>>2]=0;u=A+8|0;o[u>>2]=0;E=n[2608]|0;n[e>>0]=E;h=t+724|0;r=(s[h>>0]&(r&1)|0)!=0;if(r){m=t+308|0;B=o[m>>2]|0;if((B|0)>0){I=t+304|0;E=t+876|0;y=0;do{w=o[(o[I>>2]|0)+(y<<2)>>2]>>1;o[C>>2]=w;w=(o[E>>2]|0)+w|0;if(!(n[w>>0]|0)){n[w>>0]=1;Ar(A,C);B=o[m>>2]|0}y=y+1|0}while((y|0)<(B|0))}C=(wr(t,i)|0)&1^1;n[e>>0]=C;i=n[2608]|0}else{i=E;C=E}B=i&255;if(!((B>>>1^1)&C<<24>>24==i<<24>>24|B&2&(C&255))){if((o[t+44>>2]|0)>0)Ue(3760)|0}else{qt(p,t);C=n[p>>0]|0;n[e>>0]=C}w=n[2608]|0;B=w&255;if((((B>>>1^1)&C<<24>>24==w<<24>>24|B&2&(C&255)|0)!=0?(n[t+707>>0]|0)!=0:0)?(d=(o[t+736>>2]|0)+-1|0,(d|0)>0):0){e=t+732|0;p=t+4|0;do{i=o[e>>2]|0;m=o[i+(d<<2)>>2]|0;y=d+-1|0;w=o[i+(y<<2)>>2]|0;d=o[p>>2]|0;e:do{if((m|0)>1){E=n[2616]|0;C=E&255;I=C&2;C=C>>>1^1;B=y;while(1){w=s[d+(w>>1)>>0]^w&1;y=m+-1|0;if(!((w&255)<<24>>24==E<<24>>24&C|I&w))break e;m=B+-1|0;w=o[i+(m<<2)>>2]|0;if((y|0)>1){B=m;m=y}else{B=m;m=y;f=20;break}}}else{B=y;f=20}}while(0);if((f|0)==20){f=0;n[d+(w>>1)>>0]=(w&1^1)&255^1}d=B-m|0}while((d|0)>0)}if(r?(g=o[a>>2]|0,(g|0)>0):0){f=o[A>>2]|0;r=t+876|0;p=0;do{e=o[f+(p<<2)>>2]|0;n[(o[r>>2]|0)+e>>0]=0;if(n[h>>0]|0)Or(t,e);p=p+1|0}while((p|0)<(g|0))}t=o[A>>2]|0;if(!t){l=c;return}o[a>>2]=0;_n(t);o[A>>2]=0;o[u>>2]=0;l=c;return}function wr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,R=0,K=0;c=l;l=l+16|0;A=c;if(!(Jt(e)|0)){N=0;l=c;return N|0}a=e+724|0;if(!(n[a>>0]|0)){N=1;l=c;return N|0}B=e+924|0;y=e+872|0;w=e+868|0;m=e+860|0;C=e+680|0;Q=e+824|0;s=e+828|0;f=e+836|0;v=e+904|0;D=e+332|0;r=e+44|0;b=e+704|0;k=e+706|0;x=e+696|0;p=e+556|0;d=e+548|0;S=e+876|0;E=e+920|0;I=e+284|0;e:while(1){if(((o[B>>2]|0)<=0?(o[E>>2]|0)>=(o[I>>2]|0):0)?(o[s>>2]|0)<=0:0)break;Sr(e);M=o[y>>2]|0;N=o[w>>2]|0;F=M-N|0;if((M|0)<(N|0))F=(o[m>>2]|0)+F|0;if(!((F|0)<=0?(o[E>>2]|0)>=(o[I>>2]|0):0))h=11;if((h|0)==11?(h=0,!(kr(e,1)|0)):0){h=12;break}N=o[s>>2]|0;if(n[C>>0]|0){h=15;break}if(!N)continue;else F=0;while(1){K=o[Q>>2]|0;M=o[K>>2]|0;R=o[K+(N+-1<<2)>>2]|0;o[K>>2]=R;N=o[f>>2]|0;o[N+(R<<2)>>2]=0;o[N+(M<<2)>>2]=-1;N=(o[s>>2]|0)+-1|0;o[s>>2]=N;if((N|0)>1)jr(Q,0);if(n[C>>0]|0)continue e;if((n[(o[v>>2]|0)+M>>0]|0)==0?(R=n[(o[D>>2]|0)+M>>0]|0,N=n[2624]|0,K=N&255,((K>>>1^1)&R<<24>>24==N<<24>>24|R&2&K|0)!=0):0){if((o[r>>2]|0)>1&((F|0)%100|0|0)==0){o[A>>2]=o[s>>2];_e(3504,A|0)|0}if(n[b>>0]|0){K=(o[S>>2]|0)+M|0;N=n[K>>0]|0;n[K>>0]=1;if(!(Fr(e,M)|0)){h=29;break e}n[(o[S>>2]|0)+M>>0]=N<<24>>24!=0&1}if((((n[k>>0]|0)!=0?(R=n[(o[D>>2]|0)+M>>0]|0,N=n[2624]|0,K=N&255,((K>>>1^1)&R<<24>>24==N<<24>>24|R&2&K|0)!=0):0)?(n[(o[S>>2]|0)+M>>0]|0)==0:0)?!(Mr(e,M)|0):0){h=35;break e}if(+((o[p>>2]|0)>>>0)>+u[x>>3]*+((o[d>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e)}N=o[s>>2]|0;if(!N)continue e;else F=F+1|0}}do{if((h|0)==12)n[e+492>>0]=0;else if((h|0)==15){C=o[e+824>>2]|0;if((N|0)<=0){if(!C)break}else{I=o[f>>2]|0;E=0;do{o[I+(o[C+(E<<2)>>2]<<2)>>2]=-1;E=E+1|0}while((E|0)<(o[s>>2]|0))}o[s>>2]=0}else if((h|0)==29)n[e+492>>0]=0;else if((h|0)==35)n[e+492>>0]=0}while(0);if(!t){if(+((o[p>>2]|0)>>>0)>+u[e+96>>3]*+((o[d>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e)}else{t=e+744|0;p=o[t>>2]|0;if(p){o[e+748>>2]=0;_n(p);o[t>>2]=0;o[e+752>>2]=0}Yr(e+760|0,1);t=e+808|0;p=o[t>>2]|0;if(p){o[e+812>>2]=0;_n(p);o[t>>2]=0;o[e+816>>2]=0}p=e+824|0;t=o[p>>2]|0;if((o[s>>2]|0)<=0){if(t)h=48}else{h=o[f>>2]|0;f=0;do{o[h+(o[t+(f<<2)>>2]<<2)>>2]=-1;f=f+1|0}while((f|0)<(o[s>>2]|0));h=48}if((h|0)==48){o[s>>2]=0;_n(t);o[p>>2]=0;o[e+832>>2]=0}Gr(e+856|0,1);n[a>>0]=0;n[e+536>>0]=1;n[e+560>>0]=0;o[e+728>>2]=o[e+540>>2];Gt(e);ji[o[(o[e>>2]|0)+8>>2]&31](e)}if((o[r>>2]|0)>0?(i=o[e+736>>2]|0,(i|0)>0):0){u[g>>3]=+(i<<2>>>0)*9.5367431640625e-7;o[A>>2]=o[g>>2];o[A+4>>2]=o[g+4>>2];_e(3528,A|0)|0}K=(n[e+492>>0]|0)!=0;l=c;return K|0}function Br(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;r=l;l=l+16|0;s=r;a=e+256|0;c=e+260|0;A=o[c>>2]|0;if((n[e+705>>0]|0)!=0?Qr(e,t)|0:0){p=1;l=r;return p|0}if(!(xt(e,t)|0)){p=0;l=r;return p|0}if(!(n[e+724>>0]|0)){p=1;l=r;return p|0}t=o[c>>2]|0;if((t|0)!=(A+1|0)){p=1;l=r;return p|0}p=o[(o[a>>2]|0)+(t+-1<<2)>>2]|0;o[s>>2]=p;h=(o[e+544>>2]|0)+(p<<2)|0;Jr(e+856|0,p);if((o[h>>2]|0)>>>0<=31){p=1;l=r;return p|0}u=e+760|0;c=e+808|0;a=e+744|0;A=e+924|0;t=e+824|0;g=e+840|0;e=e+836|0;f=0;do{p=h+(f<<2)+4|0;Hr((o[u>>2]|0)+((o[p>>2]>>1)*12|0)|0,s);d=(o[c>>2]|0)+(o[p>>2]<<2)|0;o[d>>2]=(o[d>>2]|0)+1;n[(o[a>>2]|0)+(o[p>>2]>>1)>>0]=1;o[A>>2]=(o[A>>2]|0)+1;p=o[p>>2]>>1;if((o[g>>2]|0)>(p|0)?(i=o[(o[e>>2]|0)+(p<<2)>>2]|0,(i|0)>-1):0)jr(t,i);f=f+1|0}while((f|0)<((o[h>>2]|0)>>>5|0));i=1;l=r;return i|0}function Qr(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;c=l;l=l+16|0;A=c+8|0;a=c+4|0;i=c;o[a>>2]=o[e+284>>2];Ar(e+292|0,a);a=t+4|0;h=o[a>>2]|0;e:do{if((h|0)>0){r=e+332|0;u=0;while(1){g=o[(o[t>>2]|0)+(u<<2)>>2]|0;p=s[(o[r>>2]|0)+(g>>1)>>0]|0;d=p^g&1;f=d&255;E=n[2608]|0;C=E&255;if(f<<24>>24==E<<24>>24&(C>>>1^1)|C&2&d)break;C=n[2616]|0;E=C&255;if(!((E>>>1^1)&f<<24>>24==C<<24>>24|p&2&E)){o[i>>2]=g^1;o[A+0>>2]=o[i+0>>2];Ft(e,A,-1);h=o[a>>2]|0}u=u+1|0;if((u|0)>=(h|0))break e}Tt(e,0);E=1;l=c;return E|0}}while(0);E=(Mt(e)|0)!=-1;Tt(e,0);l=c;return E|0}function vr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;r=l;l=l+16|0;s=r;i=(o[e+544>>2]|0)+(t<<2)|0;if(!(n[e+724>>0]|0)){Kt(e,t);l=r;return}if((o[i>>2]|0)>>>0<=31){Kt(e,t);l=r;return}a=e+808|0;c=e+776|0;A=e+792|0;u=0;do{h=i+(u<<2)+4|0;g=(o[a>>2]|0)+(o[h>>2]<<2)|0;o[g>>2]=(o[g>>2]|0)+-1;Or(e,o[h>>2]>>1);h=o[h>>2]>>1;o[s>>2]=h;h=(o[c>>2]|0)+h|0;if(!(n[h>>0]|0)){n[h>>0]=1;Ar(A,s)}u=u+1|0}while((u|0)<((o[i>>2]|0)>>>5|0));Kt(e,t);l=r;return}function Dr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;i=l;l=l+16|0;a=i+4|0;A=i;u=o[e+544>>2]|0;c=u+(t<<2)|0;Jr(e+856|0,t);if((o[c>>2]&-32|0)==64){vr(e,t);p=o[r>>2]|0;r=o[c>>2]|0;e:do{if(r>>>0>31){h=r>>>5;g=0;while(1){f=g+1|0;if((o[c+(g<<2)+4>>2]|0)==(p|0)){f=g;break e}if((f|0)<(h|0))g=f;else break}}else{h=0;f=0}}while(0);g=h+-1|0;if((f|0)<(g|0))do{r=f;f=f+1|0;o[c+(r<<2)+4>>2]=o[c+(f<<2)+4>>2];r=o[c>>2]|0;h=r>>>5;g=h+-1|0}while((f|0)<(g|0));if(r&8){o[c+(g<<2)+4>>2]=o[c+(h<<2)+4>>2];r=o[c>>2]|0}h=r+-32|0;o[c>>2]=h;h=h>>>5;if(!h){h=0;r=0}else{r=0;g=0;do{r=1<<((o[c+(g<<2)+4>>2]|0)>>>1&31)|r;g=g+1|0}while((g|0)<(h|0))}o[c+(h<<2)+4>>2]=r}else{Rt(e,t,1);r=o[r>>2]|0;g=o[c>>2]|0;e:do{if(g>>>0>31){h=g>>>5;f=0;while(1){p=f+1|0;if((o[c+(f<<2)+4>>2]|0)==(r|0)){p=f;break e}if((p|0)<(h|0))f=p;else break}}else{h=0;p=0}}while(0);f=h+-1|0;if((p|0)<(f|0))do{g=p;p=p+1|0;o[c+(g<<2)+4>>2]=o[c+(p<<2)+4>>2];g=o[c>>2]|0;h=g>>>5;f=h+-1|0}while((p|0)<(f|0));if(g&8){o[c+(f<<2)+4>>2]=o[c+(h<<2)+4>>2];g=o[c>>2]|0}f=g+-32|0;o[c>>2]=f;f=f>>>5;if(!f){f=0;h=0}else{h=0;g=0;do{h=1<<((o[c+(g<<2)+4>>2]|0)>>>1&31)|h;g=g+1|0}while((g|0)<(f|0))}o[c+(f<<2)+4>>2]=h;Nt(e,t);h=r>>1;g=o[e+760>>2]|0;f=g+(h*12|0)|0;g=g+(h*12|0)+4|0;p=o[g>>2]|0;e:do{if((p|0)>0){E=o[f>>2]|0;d=0;while(1){C=d+1|0;if((o[E+(d<<2)>>2]|0)==(t|0))break e;if((C|0)<(p|0))d=C;else{d=C;break}}}else d=0}while(0);p=p+-1|0;if((d|0)<(p|0)){f=o[f>>2]|0;do{p=d;d=d+1|0;o[f+(p<<2)>>2]=o[f+(d<<2)>>2];p=(o[g>>2]|0)+-1|0}while((d|0)<(p|0))}o[g>>2]=p;E=(o[e+808>>2]|0)+(r<<2)|0;o[E>>2]=(o[E>>2]|0)+-1;Or(e,h)}if((o[c>>2]&-32|0)!=32){E=1;l=i;return E|0}u=o[u+(t+1<<2)>>2]|0;c=s[(o[e+332>>2]|0)+(u>>1)>>0]|0;E=c^u&1;t=E&255;d=n[2624]|0;C=d&255;if(!(t<<24>>24==d<<24>>24&(C>>>1^1)|C&2&E)){C=n[2616]|0;E=C&255;if((E>>>1^1)&t<<24>>24==C<<24>>24|c&2&E){E=0;l=i;return E|0}}else{o[A>>2]=u;o[a+0>>2]=o[A+0>>2];Ft(e,a,-1)}E=(Mt(e)|0)==-1;l=i;return E|0}function br(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;s=l;l=l+16|0;a=s+4|0;A=s;f=e+708|0;o[f>>2]=(o[f>>2]|0)+1;if(o[i>>2]|0)o[i+4>>2]=0;c=(o[t>>2]|0)>>>5>>>0<(o[r>>2]|0)>>>5>>>0;e=c?r:t;t=c?t:r;c=o[t>>2]|0;e:do{if(c>>>0>31){r=0;t:while(1){u=o[t+(r<<2)+4>>2]|0;r:do{if((u>>1|0)!=(n|0)){h=o[e>>2]|0;n:do{if(h>>>0>31){g=0;while(1){f=o[e+(g<<2)+4>>2]|0;g=g+1|0;if((u^f)>>>0<2)break;if((g|0)>=(h>>>5|0))break n}if((f|0)==(u^1|0)){i=0;break t}else break r}}while(0);o[a>>2]=u;sr(i,a);c=o[t>>2]|0}}while(0);r=r+1|0;if((r|0)>=(c>>>5|0))break e}l=s;return i|0}}while(0);r=o[e>>2]|0;if(r>>>0<=31){f=1;l=s;return f|0}a=0;do{t=o[e+(a<<2)+4>>2]|0;if((t>>1|0)!=(n|0)){o[A>>2]=t;sr(i,A);r=o[e>>2]|0}a=a+1|0}while((a|0)<(r>>>5|0));i=1;l=s;return i|0}function Sr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;t=l;c=e+924|0;if(!(o[c>>2]|0)){l=t;return}A=e+856|0;r=e+872|0;i=e+868|0;a=e+860|0;s=e+544|0;u=0;while(1){w=o[r>>2]|0;h=o[i>>2]|0;g=w-h|0;if((w|0)<(h|0))g=(o[a>>2]|0)+g|0;if((u|0)>=(g|0))break;g=(o[s>>2]|0)+(o[(o[A>>2]|0)+(((h+u|0)%(o[a>>2]|0)|0)<<2)>>2]<<2)|0;h=o[g>>2]|0;if(!(h&3))o[g>>2]=h&-4|2;u=u+1|0}u=e+540|0;d=o[u>>2]|0;if((d|0)>0){g=e+744|0;f=e+776|0;h=e+760|0;e=e+804|0;p=0;do{if(n[(o[g>>2]|0)+p>>0]|0){C=(o[f>>2]|0)+p|0;if(n[C>>0]|0){E=o[h>>2]|0;d=E+(p*12|0)+4|0;m=o[d>>2]|0;if((m|0)>0){E=o[E+(p*12|0)>>2]|0;y=0;I=0;do{w=o[E+(y<<2)>>2]|0;if((o[(o[o[e>>2]>>2]|0)+(w<<2)>>2]&3|0)!=1){o[E+(I<<2)>>2]=w;m=o[d>>2]|0;I=I+1|0}y=y+1|0}while((y|0)<(m|0))}else{y=0;I=0}E=y-I|0;if((E|0)>0)o[d>>2]=m-E;n[C>>0]=0}C=o[h>>2]|0;d=C+(p*12|0)+4|0;I=o[d>>2]|0;if((I|0)>0){C=C+(p*12|0)|0;E=0;do{m=o[(o[C>>2]|0)+(E<<2)>>2]|0;if(!(o[(o[s>>2]|0)+(m<<2)>>2]&3)){Jr(A,m);I=(o[s>>2]|0)+(o[(o[C>>2]|0)+(E<<2)>>2]<<2)|0;o[I>>2]=o[I>>2]&-4|2;I=o[d>>2]|0}E=E+1|0}while((E|0)<(I|0))}n[(o[g>>2]|0)+p>>0]=0;d=o[u>>2]|0}p=p+1|0}while((p|0)<(d|0));u=0}else u=0;while(1){w=o[r>>2]|0;h=o[i>>2]|0;g=w-h|0;if((w|0)<(h|0))g=(o[a>>2]|0)+g|0;if((u|0)>=(g|0))break;h=(o[s>>2]|0)+(o[(o[A>>2]|0)+(((h+u|0)%(o[a>>2]|0)|0)<<2)>>2]<<2)|0;g=o[h>>2]|0;if((g&3|0)==2)o[h>>2]=g&-4;u=u+1|0}o[c>>2]=0;l=t;return}function kr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,R=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0;r=l;l=l+16|0;h=r;B=r+12|0;s=e+856|0;u=e+872|0;d=e+868|0;a=e+860|0;m=e+680|0;i=e+920|0;A=e+284|0;I=e+280|0;C=e+544|0;E=e+928|0;f=e+44|0;g=e+776|0;y=e+692|0;p=e+804|0;c=e+760|0;S=0;F=0;k=0;e:while(1){x=o[d>>2]|0;do{D=o[u>>2]|0;b=(D|0)<(x|0);D=D-x|0;if(b)M=(o[a>>2]|0)+D|0;else M=D;if((M|0)<=0?(o[i>>2]|0)>=(o[A>>2]|0):0){i=1;a=53;break e}if(n[m>>0]|0){a=8;break e}if(b)D=(o[a>>2]|0)+D|0;if((D|0)==0?(v=o[i>>2]|0,(v|0)<(o[A>>2]|0)):0){o[i>>2]=v+1;o[(o[C>>2]|0)+((o[E>>2]|0)+1<<2)>>2]=o[(o[I>>2]|0)+(v<<2)>>2];D=(o[C>>2]|0)+(o[E>>2]<<2)|0;b=(o[D>>2]|0)>>>5;if(!b){b=0;M=0}else{M=0;x=0;do{M=1<<((o[D+(x<<2)+4>>2]|0)>>>1&31)|M;x=x+1|0}while((x|0)<(b|0))}o[D+(b<<2)+4>>2]=M;Jr(s,o[E>>2]|0);x=o[d>>2]|0}D=o[(o[s>>2]|0)+(x<<2)>>2]|0;x=x+1|0;K=o[a>>2]|0;x=(x|0)==(K|0)?0:x;o[d>>2]=x;M=o[C>>2]|0;b=M+(D<<2)|0;R=o[b>>2]|0}while((R&3|0)!=0);if(t?(o[f>>2]|0)>1:0){N=S+1|0;if(!((S|0)%1e3|0)){R=o[u>>2]|0;o[h>>2]=R-x+((R|0)<(x|0)?K:0);o[h+4>>2]=k;o[h+8>>2]=F;_e(3440,h|0)|0;R=o[b>>2]|0;S=N}else S=N}x=M+(D+1<<2)|0;M=o[x>>2]>>1;if(R>>>0>63){N=o[c>>2]|0;R=R>>>5;K=1;do{O=o[b+(K<<2)+4>>2]>>1;M=(o[N+(O*12|0)+4>>2]|0)<(o[N+(M*12|0)+4>>2]|0)?O:M;K=K+1|0}while((K|0)<(R|0))}R=(o[g>>2]|0)+M|0;if(n[R>>0]|0){K=o[c>>2]|0;N=K+(M*12|0)+4|0;P=o[N>>2]|0;if((P|0)>0){K=o[K+(M*12|0)>>2]|0;T=0;L=0;do{U=o[K+(T<<2)>>2]|0;if((o[(o[o[p>>2]>>2]|0)+(U<<2)>>2]&3|0)!=1){o[K+(L<<2)>>2]=U;P=o[N>>2]|0;L=L+1|0}T=T+1|0}while((T|0)<(P|0))}else{T=0;L=0}K=T-L|0;if((K|0)>0)o[N>>2]=P-K;n[R>>0]=0}R=o[c>>2]|0;N=o[R+(M*12|0)>>2]|0;R=R+(M*12|0)+4|0;if((o[R>>2]|0)>0)K=0;else continue;while(1){U=o[b>>2]|0;if(U&3)continue e;L=o[N+(K<<2)>>2]|0;T=o[C>>2]|0;_=T+(L<<2)|0;P=o[_>>2]|0;t:do{if(((!((P&3|0)!=0|(L|0)==(D|0))?(O=o[y>>2]|0,Q=P>>>5,(O|0)==-1|(Q|0)<(O|0)):0)?(w=U>>>5,Q>>>0>=w>>>0):0)?(o[b+(w<<2)+4>>2]&~o[_+(Q<<2)+4>>2]|0)==0:0){T=T+(L+1<<2)|0;do{if(U>>>0>31){if(P>>>0>31){_=-2;P=0}else break t;while(1){U=o[x+(P<<2)>>2]|0;r:do{if((_|0)==-2){O=0;while(1){_=o[T+(O<<2)>>2]|0;if((U|0)==(_|0)){U=-2;break r}O=O+1|0;if((U|0)==(_^1|0))break r;if(O>>>0>=Q>>>0)break t}}else{O=0;while(1){if((U|0)==(o[T+(O<<2)>>2]|0)){U=_;break r}O=O+1|0;if(O>>>0>=Q>>>0)break t}}}while(0);P=P+1|0;if(P>>>0>=w>>>0)break;else _=U}if((U|0)==-2)break;else if((U|0)==-1)break t;o[B>>2]=U^1;o[h+0>>2]=o[B+0>>2];if(!(Dr(e,L,h)|0)){i=0;a=53;break e}F=F+1|0;K=(((U>>1|0)==(M|0))<<31>>31)+K|0;break t}}while(0);vr(e,L);k=k+1|0}}while(0);K=K+1|0;if((K|0)>=(o[R>>2]|0))continue e}}if((a|0)==8){Gr(s,0);o[i>>2]=o[A>>2];O=1;l=r;return O|0}else if((a|0)==53){l=r;return i|0}return 0}function xr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;A=l;l=l+16|0;i=A+12|0;h=A+8|0;c=A+4|0;a=A;u=(o[e+544>>2]|0)+(r<<2)|0;if(o[u>>2]&3){C=1;l=A;return C|0}if(Lt(e,u)|0){C=1;l=A;return C|0}o[h>>2]=o[e+284>>2];Ar(e+292|0,h);p=o[u>>2]|0;if(p>>>0>31){h=e+332|0;g=0;f=-2;do{d=o[u+(g<<2)+4>>2]|0;C=d>>1;if((C|0)!=(t|0)?(C=(s[(o[h>>2]|0)+C>>0]|0)^d&1,I=n[2616]|0,E=I&255,((C&255)<<24>>24==I<<24>>24&(E>>>1^1)|E&2&C|0)==0):0){o[c>>2]=d^1;o[i+0>>2]=o[c+0>>2];Ft(e,i,-1);p=o[u>>2]|0}else f=d;g=g+1|0}while((g|0)<(p>>>5|0))}else f=-2;I=(Mt(e)|0)==-1;Tt(e,0);if(!I){I=e+712|0;o[I>>2]=(o[I>>2]|0)+1;o[a>>2]=f;o[i+0>>2]=o[a+0>>2];if(!(Dr(e,r,i)|0)){I=0;l=A;return I|0}}I=1;l=A;return I|0}function Fr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;r=l;A=(o[e+776>>2]|0)+t|0;i=e+760|0;if(n[A>>0]|0){c=o[i>>2]|0;s=c+(t*12|0)+4|0;g=o[s>>2]|0;if((g|0)>0){a=e+804|0;c=o[c+(t*12|0)>>2]|0;h=0;u=0;do{f=o[c+(h<<2)>>2]|0;if((o[(o[o[a>>2]>>2]|0)+(f<<2)>>2]&3|0)!=1){o[c+(u<<2)>>2]=f;g=o[s>>2]|0;u=u+1|0}h=h+1|0}while((h|0)<(g|0))}else{h=0;u=0}a=h-u|0;if((a|0)>0)o[s>>2]=g-a;n[A>>0]=0}s=o[i>>2]|0;g=n[(o[e+332>>2]|0)+t>>0]|0;h=n[2624]|0;f=h&255;if(!((f>>>1^1)&g<<24>>24==h<<24>>24|g&2&f)){f=1;l=r;return f|0}i=s+(t*12|0)+4|0;A=o[i>>2]|0;if(!A){f=1;l=r;return f|0}e:do{if((A|0)>0){s=s+(t*12|0)|0;A=0;while(1){if(!(xr(e,t,o[(o[s>>2]|0)+(A<<2)>>2]|0)|0)){e=0;break}A=A+1|0;if((A|0)>=(o[i>>2]|0))break e}l=r;return e|0}}while(0);f=kr(e,0)|0;l=r;return f|0}function Mr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0,H=0,q=0,z=0,W=0,V=0,X=0;r=l;l=l+48|0;E=r+36|0;C=r+32|0;I=r+28|0;m=r+24|0;i=r+12|0;s=r;g=(o[e+776>>2]|0)+t|0;h=e+760|0;if(n[g>>0]|0){d=o[h>>2]|0;f=d+(t*12|0)+4|0;Q=o[f>>2]|0;if((Q|0)>0){p=e+804|0;d=o[d+(t*12|0)>>2]|0;w=0;y=0;do{v=o[d+(w<<2)>>2]|0;if((o[(o[o[p>>2]>>2]|0)+(v<<2)>>2]&3|0)!=1){o[d+(y<<2)>>2]=v;Q=o[f>>2]|0;y=y+1|0}w=w+1|0}while((w|0)<(Q|0))}else{w=0;y=0}p=w-y|0;if((p|0)>0)o[f>>2]=Q-p;n[g>>0]=0}y=o[h>>2]|0;w=y+(t*12|0)|0;o[i>>2]=0;g=i+4|0;o[g>>2]=0;f=i+8|0;o[f>>2]=0;o[s>>2]=0;d=s+4|0;o[d>>2]=0;p=s+8|0;o[p>>2]=0;y=y+(t*12|0)+4|0;e:do{if((o[y>>2]|0)>0){Q=e+544|0;b=t<<1;D=0;do{S=(o[w>>2]|0)+(D<<2)|0;x=(o[Q>>2]|0)+(o[S>>2]<<2)|0;X=o[x>>2]|0;v=X>>>5;t:do{if(X>>>0>31){F=0;while(1){k=F+1|0;if((o[x+(F<<2)+4>>2]|0)==(b|0)){k=F;break t}if((k|0)<(v|0))F=k;else break}}else k=0}while(0);Hr((k|0)<(v|0)?i:s,S);D=D+1|0;v=o[y>>2]|0}while((D|0)<(v|0));Q=o[g>>2]|0;b=(Q|0)>0;if(b){S=o[d>>2]|0;L=(S|0)>0;K=e+544|0;k=o[i>>2]|0;D=o[s>>2]|0;x=e+708|0;N=e+684|0;M=e+688|0;O=0;F=0;while(1){if(L){P=k+(F<<2)|0;T=o[K>>2]|0;U=o[x>>2]|0;_=0;do{G=T+(o[P>>2]<<2)|0;H=T+(o[D+(_<<2)>>2]<<2)|0;U=U+1|0;o[x>>2]=U;j=(o[G>>2]|0)>>>5>>>0<(o[H>>2]|0)>>>5>>>0;Y=j?H:G;H=j?G:H;G=Y+4|0;j=H+4|0;Y=o[Y>>2]|0;J=Y>>>5;z=J+-1|0;H=o[H>>2]|0;t:do{if(H>>>0>31){q=0;while(1){X=o[j+(q<<2)>>2]|0;r:do{if((X>>1|0)!=(t|0)){n:do{if(Y>>>0>31){V=0;while(1){W=o[G+(V<<2)>>2]|0;V=V+1|0;if((W^X)>>>0<2)break;if((V|0)>=(J|0))break n}if((W|0)==(X^1|0))break t;else break r}}while(0);z=z+1|0}}while(0);q=q+1|0;if((q|0)>=(H>>>5|0)){B=28;break}}}else B=28}while(0);if((B|0)==28){B=0;if((O|0)>=((o[N>>2]|0)+v|0)){e=1;break e}X=o[M>>2]|0;if((X|0)!=-1&(z|0)>(X|0)){e=1;break e}else O=O+1|0}_=_+1|0}while((_|0)<(S|0))}F=F+1|0;if((F|0)>=(Q|0)){B=32;break}}}else{b=0;B=32}}else{Q=0;b=0;B=32}}while(0);e:do{if((B|0)==32){n[(o[e+904>>2]|0)+t>>0]=1;v=e+380|0;D=(o[v>>2]|0)+t|0;if(n[D>>0]|0){X=e+200|0;V=X;V=ai(o[V>>2]|0,o[V+4>>2]|0,-1,-1)|0;o[X>>2]=V;o[X+4>>2]=R}n[D>>0]=0;D=e+460|0;if(!((o[e+476>>2]|0)>(t|0)?(o[(o[e+472>>2]|0)+(t<<2)>>2]|0)>-1:0))B=36;if((B|0)==36?(n[(o[v>>2]|0)+t>>0]|0)!=0:0)or(D,t);B=e+716|0;o[B>>2]=(o[B>>2]|0)+1;B=o[d>>2]|0;if((Q|0)>(B|0)){D=e+732|0;if((B|0)>0){m=e+544|0;I=o[s>>2]|0;x=e+736|0;k=0;do{S=(o[m>>2]|0)+(o[I+(k<<2)>>2]<<2)|0;v=o[x>>2]|0;if((o[S>>2]|0)>>>0>31){F=0;M=-1;do{X=S+(F<<2)+4|0;o[E>>2]=o[X>>2];Hr(D,E);M=(o[X>>2]>>1|0)==(t|0)?F+v|0:M;F=F+1|0}while((F|0)<((o[S>>2]|0)>>>5|0))}else M=-1;X=o[D>>2]|0;W=X+(M<<2)|0;V=o[W>>2]|0;X=X+(v<<2)|0;o[W>>2]=o[X>>2];o[X>>2]=V;o[C>>2]=(o[S>>2]|0)>>>5;Hr(D,C);k=k+1|0}while((k|0)<(B|0))}o[E>>2]=t<<1;Hr(D,E);o[C>>2]=1;Hr(D,C)}else{k=e+732|0;if(b){F=e+544|0;x=o[i>>2]|0;v=e+736|0;M=0;do{S=(o[F>>2]|0)+(o[x+(M<<2)>>2]<<2)|0;D=o[v>>2]|0;if((o[S>>2]|0)>>>0>31){N=0;K=-1;do{X=S+(N<<2)+4|0;o[E>>2]=o[X>>2];Hr(k,E);K=(o[X>>2]>>1|0)==(t|0)?N+D|0:K;N=N+1|0}while((N|0)<((o[S>>2]|0)>>>5|0))}else K=-1;X=o[k>>2]|0;W=X+(K<<2)|0;V=o[W>>2]|0;X=X+(D<<2)|0;o[W>>2]=o[X>>2];o[X>>2]=V;o[C>>2]=(o[S>>2]|0)>>>5;Hr(k,C);M=M+1|0}while((M|0)<(Q|0))}o[I>>2]=t<<1|1;Hr(k,I);o[m>>2]=1;Hr(k,m)}if((o[y>>2]|0)>0){C=0;do{vr(e,o[(o[w>>2]|0)+(C<<2)>>2]|0);C=C+1|0}while((C|0)<(o[y>>2]|0))}C=e+628|0;t:do{if(b){E=e+544|0;w=o[i>>2]|0;D=o[s>>2]|0;if((B|0)>0)y=0;else{C=0;while(1){C=C+1|0;if((C|0)>=(Q|0))break t}}do{m=w+(y<<2)|0;I=0;do{X=o[E>>2]|0;if(br(e,X+(o[m>>2]<<2)|0,X+(o[D+(I<<2)>>2]<<2)|0,t,C)|0?!(Br(e,C)|0):0){e=0;break e}I=I+1|0}while((I|0)<(B|0));y=y+1|0}while((y|0)<(Q|0))}}while(0);C=o[h>>2]|0;h=C+(t*12|0)|0;E=o[h>>2]|0;if(E){o[C+(t*12|0)+4>>2]=0;_n(E);o[h>>2]=0;o[C+(t*12|0)+8>>2]=0}h=e+412|0;t=t<<1;E=o[h>>2]|0;C=E+(t*12|0)+4|0;if((o[C>>2]|0)==0?(u=E+(t*12|0)|0,c=o[u>>2]|0,(c|0)!=0):0){o[C>>2]=0;_n(c);o[u>>2]=0;o[E+(t*12|0)+8>>2]=0;E=o[h>>2]|0}c=t|1;u=E+(c*12|0)+4|0;if((o[u>>2]|0)==0?(a=E+(c*12|0)|0,A=o[a>>2]|0,(A|0)!=0):0){o[u>>2]=0;_n(A);o[a>>2]=0;o[E+(c*12|0)+8>>2]=0}e=kr(e,0)|0;D=o[s>>2]|0}}while(0);if(D){o[d>>2]=0;_n(D);o[s>>2]=0;o[p>>2]=0}s=o[i>>2]|0;if(!s){l=r;return e|0}o[g>>2]=0;_n(s);o[i>>2]=0;o[f>>2]=0;l=r;return e|0}function Nr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;r=l;if(!(n[e+724>>0]|0)){l=r;return}u=e+540|0;if((o[u>>2]|0)>0){a=e+760|0;i=e+804|0;s=e+776|0;c=e+544|0;A=0;do{g=o[a>>2]|0;h=g+(A*12|0)+4|0;p=o[h>>2]|0;if((p|0)>0){g=o[g+(A*12|0)>>2]|0;d=0;f=0;do{C=o[g+(d<<2)>>2]|0;if((o[(o[o[i>>2]>>2]|0)+(C<<2)>>2]&3|0)!=1){o[g+(f<<2)>>2]=C;p=o[h>>2]|0;f=f+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;f=0}g=d-f|0;if((g|0)>0)o[h>>2]=p-g;n[(o[s>>2]|0)+A>>0]=0;g=o[a>>2]|0;h=g+(A*12|0)+4|0;if((o[h>>2]|0)>0){C=g+(A*12|0)|0;p=0;do{g=(o[C>>2]|0)+(p<<2)|0;f=o[g>>2]|0;d=o[c>>2]|0;E=d+(f<<2)|0;if(!(o[E>>2]&16)){I=dr(t,E)|0;o[g>>2]=I;o[E>>2]=o[E>>2]|16;o[d+(f+1<<2)>>2]=I}else o[g>>2]=o[d+(f+1<<2)>>2];p=p+1|0}while((p|0)<(o[h>>2]|0))}A=A+1|0}while((A|0)<(o[u>>2]|0))}i=e+856|0;I=o[e+872>>2]|0;s=e+868|0;h=o[s>>2]|0;c=I-h|0;if((I|0)<(h|0))c=(o[e+860>>2]|0)+c|0;e:do{if((c|0)>0){A=e+860|0;a=e+544|0;while(1){u=o[(o[i>>2]|0)+(h<<2)>>2]|0;g=h+1|0;o[s>>2]=(g|0)==(o[A>>2]|0)?0:g;g=o[a>>2]|0;f=g+(u<<2)|0;h=o[f>>2]|0;if(!(h&3)){if(!(h&16)){I=dr(t,f)|0;o[f>>2]=o[f>>2]|16;o[g+(u+1<<2)>>2]=I;u=I}else u=o[g+(u+1<<2)>>2]|0;Jr(i,u)}c=c+-1|0;if((c|0)<=0)break e;h=o[s>>2]|0}}else a=e+544|0}while(0);e=e+928|0;i=o[e>>2]|0;A=o[a>>2]|0;s=A+(i<<2)|0;if(!(o[s>>2]&16)){I=dr(t,s)|0;o[e>>2]=I;o[s>>2]=o[s>>2]|16;o[A+(i+1<<2)>>2]=I;l=r;return}else{o[e>>2]=o[A+(i+1<<2)>>2];l=r;return}}function Rr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;A=l;l=l+32|0;u=A;t=A+8|0;r=e+544|0;i=e+548|0;s=e+556|0;a=(o[i>>2]|0)-(o[s>>2]|0)|0;o[t+0>>2]=0;o[t+4>>2]=0;o[t+8>>2]=0;o[t+12>>2]=0;er(t,a);a=t+16|0;c=e+560|0;n[a>>0]=n[c>>0]|0;Nr(e,t);zt(e,t);if((o[e+44>>2]|0)>1){h=o[t+4>>2]<<2;o[u>>2]=o[i>>2]<<2;o[u+4>>2]=h;_e(3608,u|0)|0}n[c>>0]=n[a>>0]|0;a=o[r>>2]|0;if(a)_n(a);o[r>>2]=o[t>>2];o[i>>2]=o[t+4>>2];o[e+552>>2]=o[t+8>>2];o[s>>2]=o[t+12>>2];l=A;return}function Kr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[2608]=0;n[2616]=1;n[2624]=2;Ct(2632,2656,2664,3744,3752);o[658]=160;n[2652]=0;Ct(2704,2728,2736,3744,3752);o[676]=160;n[2724]=0;Ct(2784,2808,2816,3744,3752);o[696]=160;n[2804]=1;Ct(2848,2880,2888,3744,3736);o[712]=280;r=2868|0;o[r>>2]=-2147483648;o[r+4>>2]=2147483647;o[719]=0;Ct(2960,2992,3e3,3744,3736);o[740]=280;r=2980|0;o[r>>2]=-1;o[r+4>>2]=2147483647;o[747]=20;Ct(3112,3144,3152,3744,3736);o[778]=280;r=3132|0;o[r>>2]=-1;o[r+4>>2]=2147483647;o[785]=1e3;Ct(3240,3296,3312,3744,3720);o[810]=2168;u[408]=0.0;u[409]=Q;n[3280]=0;n[3281]=0;i[1641]=i[t+0>>1]|0;i[1642]=i[t+2>>1]|0;i[1643]=i[t+4>>1]|0;u[411]=.5;l=e;return}function Lr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;o[e>>2]=0;n=e+4|0;o[n>>2]=0;i=e+8|0;o[i>>2]=0;if((t|0)<=0){l=r;return}s=t+1&-2;s=(s|0)>2?s:2;o[i>>2]=s;i=On(0,s<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);e=o[n>>2]|0;if((e|0)<(t|0))do{s=i+(e<<2)|0;if(s)o[s>>2]=0;e=e+1|0}while((e|0)!=(t|0));o[n>>2]=t;l=r;return}function Tr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0;t=l;n=e+32|0;r=o[n>>2]|0;if(r){o[e+36>>2]=0;_n(r);o[n>>2]=0;o[e+40>>2]=0}n=e+16|0;r=o[n>>2]|0;if(r){o[e+20>>2]=0;_n(r);o[n>>2]=0;o[e+24>>2]=0}n=o[e>>2]|0;if(!n){l=t;return}r=e+4|0;s=o[r>>2]|0;if((s|0)>0){i=0;do{a=n+(i*12|0)|0;A=o[a>>2]|0;if(A){o[n+(i*12|0)+4>>2]=0;_n(A);o[a>>2]=0;o[n+(i*12|0)+8>>2]=0;n=o[e>>2]|0;s=o[r>>2]|0}i=i+1|0}while((i|0)<(s|0))}o[r>>2]=0;_n(n);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function Pr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;n=l;t=o[t>>2]|0;s=t+1|0;i=e+4|0;if((o[i>>2]|0)>=(s|0)){c=o[e>>2]|0;c=c+(t<<2)|0;o[c>>2]=r;l=n;return}A=e+8|0;c=o[A>>2]|0;if((c|0)<(s|0)){u=t+2-c&-2;a=(c>>1)+2&-2;a=(u|0)>(a|0)?u:a;if((a|0)>(2147483647-c|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=a+c|0;o[A>>2]=u;u=On(h,u<<2)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}c=o[i>>2]|0;if((c|0)<(s|0)){A=o[e>>2]|0;do{a=A+(c<<2)|0;if(a)o[a>>2]=0;c=c+1|0}while((c|0)!=(s|0))}o[i>>2]=s;h=o[e>>2]|0;h=h+(t<<2)|0;o[h>>2]=r;l=n;return}function Ur(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;c=o[t>>2]|0;s=c+1|0;i=e+4|0;if((o[i>>2]|0)<(s|0)){a=e+8|0;A=o[a>>2]|0;if((A|0)<(s|0)){u=c+2-A&-2;c=(A>>1)+2&-2;c=(u|0)>(c|0)?u:c;if((c|0)>(2147483647-A|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=c+A|0;o[a>>2]=u;u=On(h,u*12|0)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=o[i>>2]|0;if((a|0)<(s|0)){A=o[e>>2]|0;do{c=A+(a*12|0)|0;if(c){o[c>>2]=0;o[A+(a*12|0)+4>>2]=0;o[A+(a*12|0)+8>>2]=0}a=a+1|0}while((a|0)!=(s|0))}o[i>>2]=s;A=o[t>>2]|0}else A=c;i=o[e>>2]|0;if(o[i+(A*12|0)>>2]|0){o[i+(A*12|0)+4>>2]=0;A=o[t>>2]|0}t=e+16|0;i=A+1|0;s=e+20|0;if((o[s>>2]|0)>=(i|0)){l=r;return}a=e+24|0;e=o[a>>2]|0;if((e|0)<(i|0)){h=A+2-e&-2;A=(e>>1)+2&-2;A=(h|0)>(A|0)?h:A;if((A|0)>(2147483647-e|0)){h=Qe(1)|0;ze(h|0,48,0)}u=o[t>>2]|0;h=A+e|0;o[a>>2]=h;h=On(u,h)|0;o[t>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}e=o[s>>2]|0;if((e|0)<(i|0))do{n[(o[t>>2]|0)+e>>0]=0;e=e+1|0}while((e|0)!=(i|0));o[s>>2]=i;l=r;return}function _r(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0;r=l;l=l+16|0;s=r;o[s>>2]=t;i=e+12|0;n=t+1|0;A=e+16|0;if((o[A>>2]|0)<(n|0)){c=e+20|0;a=o[c>>2]|0;if((a|0)<(n|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[i>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h<<2)|0;o[i>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}a=o[A>>2]|0;if((n|0)>(a|0))oi((o[i>>2]|0)+(a<<2)|0,-1,n-a<<2|0)|0;o[A>>2]=n}o[(o[i>>2]|0)+(t<<2)>>2]=o[e+4>>2];Ar(e,s);n=o[i>>2]|0;a=o[n+(t<<2)>>2]|0;t=o[e>>2]|0;i=o[t+(a<<2)>>2]|0;if(!a){h=0;g=t+(h<<2)|0;o[g>>2]=i;g=n+(i<<2)|0;o[g>>2]=h;l=r;return}e=e+28|0;s=i<<1;A=s|1;while(1){h=a;a=a+-1>>1;u=t+(a<<2)|0;c=o[u>>2]|0;C=o[o[e>>2]>>2]|0;f=o[C+(s<<2)>>2]|0;d=o[C+(A<<2)>>2]|0;f=Ci(d|0,((d|0)<0)<<31>>31|0,f|0,((f|0)<0)<<31>>31|0)|0;d=R;p=c<<1;g=o[C+(p<<2)>>2]|0;p=o[C+((p|1)<<2)>>2]|0;g=Ci(p|0,((p|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;p=R;if(!(d>>>0

    >>0:0){o[y>>2]=w+d;r=(o[1209]|0)+d|0;n=C+8|0;if(!(n&7))n=0;else n=0-n&7;N=r-n|0;o[1212]=C+n;o[1209]=N;o[C+(n+4)>>2]=N|1;o[C+(r+4)>>2]=40;o[1213]=o[1328];break}E=o[1210]|0;if(p>>>0>>0){o[1210]=p;E=p}y=p+d|0;I=5272|0;while(1){if((o[I>>2]|0)==(y|0)){f=223;break}m=o[I+8>>2]|0;if(!m)break;else I=m}if((f|0)==223?(o[I+12>>2]&8|0)==0:0){o[I>>2]=p;A=I+4|0;o[A>>2]=(o[A>>2]|0)+d;A=p+8|0;if(!(A&7))A=0;else A=0-A&7;a=p+(d+8)|0;if(!(a&7))g=0;else g=0-a&7;f=p+(g+d)|0;c=A+e|0;a=p+c|0;h=f-(p+A)-e|0;o[p+(A+4)>>2]=e|3;t:do{if((f|0)!=(C|0)){if((f|0)==(o[1211]|0)){N=(o[1208]|0)+h|0;o[1208]=N;o[1211]=a;o[p+(c+4)>>2]=N|1;o[p+(N+c)>>2]=N;break}C=d+4|0;m=o[p+(C+g)>>2]|0;if((m&3|0)==1){e=m&-8;I=m>>>3;r:do{if(m>>>0>=256){u=o[p+((g|24)+d)>>2]|0;I=o[p+(d+12+g)>>2]|0;do{if((I|0)==(f|0)){y=g|16;m=p+(C+y)|0;I=o[m>>2]|0;if(!I){m=p+(y+d)|0;I=o[m>>2]|0;if(!I){s=0;break}}while(1){w=I+20|0;y=o[w>>2]|0;if(y){I=y;m=w;continue}w=I+16|0;y=o[w>>2]|0;if(!y)break;else{I=y;m=w}}if(m>>>0>>0)Xe();else{o[m>>2]=0;s=I;break}}else{m=o[p+((g|8)+d)>>2]|0;if(m>>>0>>0)Xe();y=m+12|0;if((o[y>>2]|0)!=(f|0))Xe();E=I+8|0;if((o[E>>2]|0)==(f|0)){o[y>>2]=I;o[E>>2]=m;s=I;break}else Xe()}}while(0);if(!u)break;E=o[p+(d+28+g)>>2]|0;I=5128+(E<<2)|0;do{if((f|0)!=(o[I>>2]|0)){if(u>>>0<(o[1210]|0)>>>0)Xe();E=u+16|0;if((o[E>>2]|0)==(f|0))o[E>>2]=s;else o[u+20>>2]=s;if(!s)break r}else{o[I>>2]=s;if(s)break;o[1207]=o[1207]&~(1<>>0>>0)Xe();o[s+24>>2]=u;E=g|16;u=o[p+(E+d)>>2]|0;do{if(u)if(u>>>0>>0)Xe();else{o[s+16>>2]=u;o[u+24>>2]=s;break}}while(0);u=o[p+(C+E)>>2]|0;if(!u)break;if(u>>>0<(o[1210]|0)>>>0)Xe();else{o[s+20>>2]=u;o[u+24>>2]=s;break}}else{s=o[p+((g|8)+d)>>2]|0;C=o[p+(d+12+g)>>2]|0;m=4864+(I<<1<<2)|0;do{if((s|0)!=(m|0)){if(s>>>0>>0)Xe();if((o[s+12>>2]|0)==(f|0))break;Xe()}}while(0);if((C|0)==(s|0)){o[1206]=o[1206]&~(1<>>0>>0)Xe();E=C+8|0;if((o[E>>2]|0)==(f|0)){u=E;break}Xe()}}while(0);o[s+12>>2]=C;o[u>>2]=s}}while(0);f=p+((e|g)+d)|0;h=e+h|0}s=f+4|0;o[s>>2]=o[s>>2]&-2;o[p+(c+4)>>2]=h|1;o[p+(h+c)>>2]=h;s=h>>>3;if(h>>>0<256){u=s<<1;r=4864+(u<<2)|0;h=o[1206]|0;s=1<>2]|0;if(s>>>0>=(o[1210]|0)>>>0){i=u;n=s;break}Xe()}}while(0);o[i>>2]=a;o[n+12>>2]=a;o[p+(c+8)>>2]=n;o[p+(c+12)>>2]=r;break}n=h>>>8;do{if(!n)n=0;else{if(h>>>0>16777215){n=31;break}M=(n+1048320|0)>>>16&8;N=n<>>16&4;N=N<>>16&2;n=14-(F|M|n)+(N<>>15)|0;n=h>>>(n+7|0)&1|n<<1}}while(0);u=5128+(n<<2)|0;o[p+(c+28)>>2]=n;o[p+(c+20)>>2]=0;o[p+(c+16)>>2]=0;s=o[1207]|0;i=1<>2]=a;o[p+(c+24)>>2]=u;o[p+(c+12)>>2]=a;o[p+(c+8)>>2]=a;break}i=o[u>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;r:do{if((o[i+4>>2]&-8|0)!=(h|0)){n=h<>>31<<2)+16|0;u=o[s>>2]|0;if(!u)break;if((o[u+4>>2]&-8|0)==(h|0)){r=u;break r}else{n=n<<1;i=u}}if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[s>>2]=a;o[p+(c+24)>>2]=i;o[p+(c+12)>>2]=a;o[p+(c+8)>>2]=a;break t}}else r=i}while(0);n=r+8|0;i=o[n>>2]|0;N=o[1210]|0;if(r>>>0>=N>>>0&i>>>0>=N>>>0){o[i+12>>2]=a;o[n>>2]=a;o[p+(c+8)>>2]=i;o[p+(c+12)>>2]=r;o[p+(c+24)>>2]=0;break}else Xe()}else{N=(o[1209]|0)+h|0;o[1209]=N;o[1212]=a;o[p+(c+4)>>2]=N|1}}while(0);N=p+(A|8)|0;l=t;return N|0}n=5272|0;while(1){r=o[n>>2]|0;if(r>>>0<=C>>>0?(g=o[n+4>>2]|0,h=r+g|0,h>>>0>C>>>0):0)break;n=o[n+8>>2]|0}n=r+(g+-39)|0;if(!(n&7))n=0;else n=0-n&7;r=r+(g+-47+n)|0;r=r>>>0<(C+16|0)>>>0?C:r;n=r+8|0;i=p+8|0;if(!(i&7))i=0;else i=0-i&7;N=d+-40-i|0;o[1212]=p+i;o[1209]=N;o[p+(i+4)>>2]=N|1;o[p+(d+-36)>>2]=40;o[1213]=o[1328];o[r+4>>2]=27;o[n+0>>2]=o[1318];o[n+4>>2]=o[1319];o[n+8>>2]=o[1320];o[n+12>>2]=o[1321];o[1318]=p;o[1319]=d;o[1321]=0;o[1320]=n;n=r+28|0;o[n>>2]=7;if((r+32|0)>>>0>>0)do{N=n;n=n+4|0;o[n>>2]=7}while((N+8|0)>>>0>>0);if((r|0)!=(C|0)){r=r-C|0;n=C+(r+4)|0;o[n>>2]=o[n>>2]&-2;o[C+4>>2]=r|1;o[C+r>>2]=r;n=r>>>3;if(r>>>0<256){i=n<<1;r=4864+(i<<2)|0;s=o[1206]|0;n=1<>2]|0;if(n>>>0>=(o[1210]|0)>>>0){c=i;a=n;break}Xe()}}while(0);o[c>>2]=C;o[a+12>>2]=C;o[C+8>>2]=a;o[C+12>>2]=r;break}n=r>>>8;if(n)if(r>>>0>16777215)n=31;else{M=(n+1048320|0)>>>16&8;N=n<>>16&4;N=N<>>16&2;n=14-(F|M|n)+(N<>>15)|0;n=r>>>(n+7|0)&1|n<<1}else n=0;a=5128+(n<<2)|0;o[C+28>>2]=n;o[C+20>>2]=0;o[C+16>>2]=0;i=o[1207]|0;s=1<>2]=C;o[C+24>>2]=a;o[C+12>>2]=C;o[C+8>>2]=C;break}i=o[a>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((o[i+4>>2]&-8|0)!=(r|0)){n=r<>>31<<2)+16|0;s=o[i>>2]|0;if(!s)break;if((o[s+4>>2]&-8|0)==(r|0)){A=s;break t}else{n=n<<1;a=s}}if(i>>>0<(o[1210]|0)>>>0)Xe();else{o[i>>2]=C;o[C+24>>2]=a;o[C+12>>2]=C;o[C+8>>2]=C;break e}}else A=i}while(0);n=A+8|0;r=o[n>>2]|0;N=o[1210]|0;if(A>>>0>=N>>>0&r>>>0>=N>>>0){o[r+12>>2]=C;o[n>>2]=C;o[C+8>>2]=r;o[C+12>>2]=A;o[C+24>>2]=0;break}else Xe()}}else{N=o[1210]|0;if((N|0)==0|p>>>0>>0)o[1210]=p;o[1318]=p;o[1319]=d;o[1321]=0;o[1215]=o[1324];o[1214]=-1;r=0;do{N=r<<1;M=4864+(N<<2)|0;o[4864+(N+3<<2)>>2]=M;o[4864+(N+2<<2)>>2]=M;r=r+1|0}while((r|0)!=32);r=p+8|0;if(!(r&7))r=0;else r=0-r&7;N=d+-40-r|0;o[1212]=p+r;o[1209]=N;o[p+(r+4)>>2]=N|1;o[p+(d+-36)>>2]=40;o[1213]=o[1328]}}while(0);r=o[1209]|0;if(r>>>0>e>>>0){M=r-e|0;o[1209]=M;N=o[1212]|0;o[1212]=N+e;o[N+(e+4)>>2]=M|1;o[N+4>>2]=e|3;N=N+8|0;l=t;return N|0}}o[(Ye()|0)>>2]=12;N=0;l=t;return N|0}function _n(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;t=l;if(!e){l=t;return}d=e+-8|0;C=o[1210]|0;if(d>>>0>>0)Xe();g=o[e+-4>>2]|0;h=g&3;if((h|0)==1)Xe();a=g&-8;A=e+(a+-8)|0;do{if(!(g&1)){m=o[d>>2]|0;if(!h){l=t;return}d=-8-m|0;g=e+d|0;h=m+a|0;if(g>>>0>>0)Xe();if((g|0)==(o[1211]|0)){n=e+(a+-4)|0;f=o[n>>2]|0;if((f&3|0)!=3){n=g;f=h;break}o[1208]=h;o[n>>2]=f&-2;o[e+(d+4)>>2]=h|1;o[A>>2]=h;l=t;return}I=m>>>3;if(m>>>0<256){n=o[e+(d+8)>>2]|0;f=o[e+(d+12)>>2]|0;p=4864+(I<<1<<2)|0;if((n|0)!=(p|0)){if(n>>>0>>0)Xe();if((o[n+12>>2]|0)!=(g|0))Xe()}if((f|0)==(n|0)){o[1206]=o[1206]&~(1<>>0>>0)Xe();p=f+8|0;if((o[p>>2]|0)==(g|0))E=p;else Xe()}else E=f+8|0;o[n+12>>2]=f;o[E>>2]=n;n=g;f=h;break}E=o[e+(d+24)>>2]|0;I=o[e+(d+12)>>2]|0;do{if((I|0)==(g|0)){m=e+(d+20)|0;I=o[m>>2]|0;if(!I){m=e+(d+16)|0;I=o[m>>2]|0;if(!I){p=0;break}}while(1){y=I+20|0;w=o[y>>2]|0;if(w){I=w;m=y;continue}y=I+16|0;w=o[y>>2]|0;if(!w)break;else{I=w;m=y}}if(m>>>0>>0)Xe();else{o[m>>2]=0;p=I;break}}else{m=o[e+(d+8)>>2]|0;if(m>>>0>>0)Xe();C=m+12|0;if((o[C>>2]|0)!=(g|0))Xe();y=I+8|0;if((o[y>>2]|0)==(g|0)){o[C>>2]=I;o[y>>2]=m;p=I;break}else Xe()}}while(0);if(E){C=o[e+(d+28)>>2]|0;I=5128+(C<<2)|0;if((g|0)==(o[I>>2]|0)){o[I>>2]=p;if(!p){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();C=E+16|0;if((o[C>>2]|0)==(g|0))o[C>>2]=p;else o[E+20>>2]=p;if(!p){n=g;f=h;break}}C=o[1210]|0;if(p>>>0>>0)Xe();o[p+24>>2]=E;E=o[e+(d+16)>>2]|0;do{if(E)if(E>>>0>>0)Xe();else{o[p+16>>2]=E;o[E+24>>2]=p;break}}while(0);d=o[e+(d+20)>>2]|0;if(d)if(d>>>0<(o[1210]|0)>>>0)Xe();else{o[p+20>>2]=d;o[d+24>>2]=p;n=g;f=h;break}else{n=g;f=h}}else{n=g;f=h}}else{n=d;f=a}}while(0);if(n>>>0>=A>>>0)Xe();h=e+(a+-4)|0;g=o[h>>2]|0;if(!(g&1))Xe();if(!(g&2)){if((A|0)==(o[1212]|0)){w=(o[1209]|0)+f|0;o[1209]=w;o[1212]=n;o[n+4>>2]=w|1;if((n|0)!=(o[1211]|0)){l=t;return}o[1211]=0;o[1208]=0;l=t;return}if((A|0)==(o[1211]|0)){w=(o[1208]|0)+f|0;o[1208]=w;o[1211]=n;o[n+4>>2]=w|1;o[n+w>>2]=w;l=t;return}f=(g&-8)+f|0;h=g>>>3;do{if(g>>>0>=256){u=o[e+(a+16)>>2]|0;h=o[e+(a|4)>>2]|0;do{if((h|0)==(A|0)){g=e+(a+12)|0;h=o[g>>2]|0;if(!h){g=e+(a+8)|0;h=o[g>>2]|0;if(!h){c=0;break}}while(1){d=h+20|0;p=o[d>>2]|0;if(p){h=p;g=d;continue}p=h+16|0;d=o[p>>2]|0;if(!d)break;else{h=d;g=p}}if(g>>>0<(o[1210]|0)>>>0)Xe();else{o[g>>2]=0;c=h;break}}else{g=o[e+a>>2]|0;if(g>>>0<(o[1210]|0)>>>0)Xe();p=g+12|0;if((o[p>>2]|0)!=(A|0))Xe();d=h+8|0;if((o[d>>2]|0)==(A|0)){o[p>>2]=h;o[d>>2]=g;c=h;break}else Xe()}}while(0);if(u){h=o[e+(a+20)>>2]|0;g=5128+(h<<2)|0;if((A|0)==(o[g>>2]|0)){o[g>>2]=c;if(!c){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();h=u+16|0;if((o[h>>2]|0)==(A|0))o[h>>2]=c;else o[u+20>>2]=c;if(!c)break}A=o[1210]|0;if(c>>>0>>0)Xe();o[c+24>>2]=u;u=o[e+(a+8)>>2]|0;do{if(u)if(u>>>0>>0)Xe();else{o[c+16>>2]=u;o[u+24>>2]=c;break}}while(0);A=o[e+(a+12)>>2]|0;if(A)if(A>>>0<(o[1210]|0)>>>0)Xe();else{o[c+20>>2]=A;o[A+24>>2]=c;break}}}else{c=o[e+a>>2]|0;a=o[e+(a|4)>>2]|0;e=4864+(h<<1<<2)|0;if((c|0)!=(e|0)){if(c>>>0<(o[1210]|0)>>>0)Xe();if((o[c+12>>2]|0)!=(A|0))Xe()}if((a|0)==(c|0)){o[1206]=o[1206]&~(1<>>0<(o[1210]|0)>>>0)Xe();e=a+8|0;if((o[e>>2]|0)==(A|0))u=e;else Xe()}else u=a+8|0;o[c+12>>2]=a;o[u>>2]=c}}while(0);o[n+4>>2]=f|1;o[n+f>>2]=f;if((n|0)==(o[1211]|0)){o[1208]=f;l=t;return}}else{o[h>>2]=g&-2;o[n+4>>2]=f|1;o[n+f>>2]=f}A=f>>>3;if(f>>>0<256){a=A<<1;r=4864+(a<<2)|0;c=o[1206]|0;A=1<>2]|0;if(A>>>0<(o[1210]|0)>>>0)Xe();else{i=a;s=A}}else{o[1206]=c|A;i=4864+(a+2<<2)|0;s=r}o[i>>2]=n;o[s+12>>2]=n;o[n+8>>2]=s;o[n+12>>2]=r;l=t;return}i=f>>>8;if(i)if(f>>>0>16777215)i=31;else{y=(i+1048320|0)>>>16&8;w=i<>>16&4;w=w<>>16&2;i=14-(m|y|i)+(w<>>15)|0;i=f>>>(i+7|0)&1|i<<1}else i=0;s=5128+(i<<2)|0;o[n+28>>2]=i;o[n+20>>2]=0;o[n+16>>2]=0;a=o[1207]|0;A=1<>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;t:do{if((o[s+4>>2]&-8|0)!=(f|0)){i=f<>>31<<2)+16|0;A=o[a>>2]|0;if(!A)break;if((o[A+4>>2]&-8|0)==(f|0)){r=A;break t}else{i=i<<1;s=A}}if(a>>>0<(o[1210]|0)>>>0)Xe();else{o[a>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n;break e}}else r=s}while(0);s=r+8|0;i=o[s>>2]|0;w=o[1210]|0;if(r>>>0>=w>>>0&i>>>0>=w>>>0){o[i+12>>2]=n;o[s>>2]=n;o[n+8>>2]=i;o[n+12>>2]=r;o[n+24>>2]=0;break}else Xe()}else{o[1207]=a|A;o[s>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n}}while(0);w=(o[1214]|0)+-1|0;o[1214]=w;if(!w)r=5280|0;else{l=t;return}while(1){r=o[r>>2]|0;if(!r)break;else r=r+8|0}o[1214]=-1;l=t;return}function On(e,t){e=e|0;t=t|0;var r=0,n=0,i=0;r=l;do{if(e){if(t>>>0>4294967231){o[(Ye()|0)>>2]=12;n=0;break}if(t>>>0<11)n=16;else n=t+11&-8;n=ei(e+-8|0,n)|0;if(n){n=n+8|0;break}n=Un(t)|0;if(!n)n=0;else{i=o[e+-4>>2]|0;i=(i&-8)-((i&3|0)==0?8:4)|0;ui(n|0,e|0,(i>>>0>>0?i:t)|0)|0;_n(e)}}else n=Un(t)|0}while(0);l=r;return n|0}function jn(e){e=e|0;if((e|0)==32)e=1;else e=(e+-9|0)>>>0<5;return e&1|0}function Yn(e,t,r,i,A){e=e|0;t=t|0;r=r|0;i=i|0;A=A|0;var a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;a=l;if(t>>>0>36){o[(Ye()|0)>>2]=22;E=0;I=0;R=E;l=a;return I|0}c=e+4|0;u=e+100|0;do{h=o[c>>2]|0;if(h>>>0<(o[u>>2]|0)>>>0){o[c>>2]=h+1;f=s[h>>0]|0}else f=Hn(e)|0}while((jn(f)|0)!=0);do{if((f|0)==43|(f|0)==45){h=((f|0)==45)<<31>>31;g=o[c>>2]|0;if(g>>>0<(o[u>>2]|0)>>>0){o[c>>2]=g+1;f=s[g>>0]|0;break}else{f=Hn(e)|0;break}}else h=0}while(0);g=(t|0)==0;do{if((t&-17|0)==0&(f|0)==48){f=o[c>>2]|0;if(f>>>0<(o[u>>2]|0)>>>0){o[c>>2]=f+1;f=s[f>>0]|0}else f=Hn(e)|0;if((f|32|0)!=120)if(g){t=8;r=46;break}else{r=32;break}t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;if((s[f+5321>>0]|0)>15){i=(o[u>>2]|0)==0;if(!i)o[c>>2]=(o[c>>2]|0)+-1;if(!r){Jn(e,0);E=0;I=0;R=E;l=a;return I|0}if(i){E=0;I=0;R=E;l=a;return I|0}o[c>>2]=(o[c>>2]|0)+-1;E=0;I=0;R=E;l=a;return I|0}else{t=16;r=46}}else{t=g?10:t;if((s[f+5321>>0]|0)>>>0>>0)r=32;else{if(o[u>>2]|0)o[c>>2]=(o[c>>2]|0)+-1;Jn(e,0);o[(Ye()|0)>>2]=22;E=0;I=0;R=E;l=a;return I|0}}}while(0);if((r|0)==32)if((t|0)==10){t=f+-48|0;if(t>>>0<10){g=0;do{g=(g*10|0)+t|0;t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;t=f+-48|0}while(t>>>0<10&g>>>0<429496729);p=0}else{g=0;p=0}t=f+-48|0;if(t>>>0<10){do{d=Ci(g|0,p|0,10,0)|0;C=R;E=((t|0)<0)<<31>>31;I=~E;if(C>>>0>I>>>0|(C|0)==(I|0)&d>>>0>~t>>>0)break;g=ai(d|0,C|0,t|0,E|0)|0;p=R;t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;t=f+-48|0}while(t>>>0<10&(p>>>0<429496729|(p|0)==429496729&g>>>0<2576980378));if(t>>>0<=9){t=10;r=72}}}else r=46;e:do{if((r|0)==46){if(!(t+-1&t)){r=n[5584+((t*23|0)>>>5&7)>>0]|0;C=n[f+5321>>0]|0;g=C&255;if(g>>>0>>0){f=g;g=0;do{g=f|g<>2]|0;if(f>>>0<(o[u>>2]|0)>>>0){o[c>>2]=f+1;E=s[f>>0]|0}else E=Hn(e)|0;C=n[E+5321>>0]|0;f=C&255}while(f>>>0>>0&g>>>0<134217728);p=0}else{p=0;g=0;E=f}f=ci(-1,-1,r|0)|0;d=R;if((C&255)>>>0>=t>>>0|(p>>>0>d>>>0|(p|0)==(d|0)&g>>>0>f>>>0)){f=E;r=72;break}while(1){g=si(g|0,p|0,r|0)|0;p=R;g=C&255|g;C=o[c>>2]|0;if(C>>>0<(o[u>>2]|0)>>>0){o[c>>2]=C+1;E=s[C>>0]|0}else E=Hn(e)|0;C=n[E+5321>>0]|0;if((C&255)>>>0>=t>>>0|(p>>>0>d>>>0|(p|0)==(d|0)&g>>>0>f>>>0)){f=E;r=72;break e}}}C=n[f+5321>>0]|0;r=C&255;if(r>>>0>>0){g=0;do{g=r+(ie(g,t)|0)|0;r=o[c>>2]|0;if(r>>>0<(o[u>>2]|0)>>>0){o[c>>2]=r+1;d=s[r>>0]|0}else d=Hn(e)|0;C=n[d+5321>>0]|0;r=C&255}while(r>>>0>>0&g>>>0<119304647);p=0}else{g=0;p=0;d=f}if((C&255)>>>0>>0){r=Ei(-1,-1,t|0,0)|0;f=R;while(1){if(p>>>0>f>>>0|(p|0)==(f|0)&g>>>0>r>>>0){f=d;r=72;break e}E=Ci(g|0,p|0,t|0,0)|0;I=R;C=C&255;if(I>>>0>4294967295|(I|0)==-1&E>>>0>~C>>>0){f=d;r=72;break e}g=ai(C|0,0,E|0,I|0)|0;p=R;d=o[c>>2]|0;if(d>>>0<(o[u>>2]|0)>>>0){o[c>>2]=d+1;d=s[d>>0]|0}else d=Hn(e)|0;C=n[d+5321>>0]|0;if((C&255)>>>0>=t>>>0){f=d;r=72;break}}}else{f=d;r=72}}}while(0);if((r|0)==72)if((s[f+5321>>0]|0)>>>0>>0){do{r=o[c>>2]|0;if(r>>>0<(o[u>>2]|0)>>>0){o[c>>2]=r+1;r=s[r>>0]|0}else r=Hn(e)|0}while((s[r+5321>>0]|0)>>>0>>0);o[(Ye()|0)>>2]=34;p=A;g=i}if(o[u>>2]|0)o[c>>2]=(o[c>>2]|0)+-1;if(!(p>>>0>>0|(p|0)==(A|0)&g>>>0>>0)){if(!((i&1|0)!=0|0!=0|(h|0)!=0)){o[(Ye()|0)>>2]=34;I=ai(i|0,A|0,-1,-1)|0;E=R;R=E;l=a;return I|0}if(p>>>0>A>>>0|(p|0)==(A|0)&g>>>0>i>>>0){o[(Ye()|0)>>2]=34;E=A;I=i;R=E;l=a;return I|0}}I=((h|0)<0)<<31>>31;I=ii(g^h|0,p^I|0,h|0,I|0)|0;E=R;R=E;l=a;return I|0}function Gn(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0.0,C=0,E=0,I=0,m=0,y=0,w=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0.0,M=0,N=0.0,K=0.0,L=0.0,T=0.0;i=l;l=l+512|0;c=i;if(!t){t=24;a=-149}else if((t|0)==2){t=53;a=-1074}else if((t|0)==1){t=53;a=-1074}else{K=0.0;l=i;return+K}g=e+4|0;f=e+100|0;do{A=o[g>>2]|0;if(A>>>0<(o[f>>2]|0)>>>0){o[g>>2]=A+1;m=s[A>>0]|0}else m=Hn(e)|0}while((jn(m)|0)!=0);do{if((m|0)==43|(m|0)==45){A=1-(((m|0)==45&1)<<1)|0;h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;m=s[h>>0]|0;break}else{m=Hn(e)|0;break}}else A=1}while(0);C=0;do{if((m|32|0)!=(n[5600+C>>0]|0))break;do{if(C>>>0<7){h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;m=s[h>>0]|0;break}else{m=Hn(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<8);do{if((C|0)==3)p=23;else if((C|0)!=8){h=(r|0)!=0;if(C>>>0>3&h)if((C|0)==8)break;else{p=23;break}e:do{if(!C){C=0;do{if((m|32|0)!=(n[5616+C>>0]|0))break e;do{if(C>>>0<2){E=o[g>>2]|0;if(E>>>0<(o[f>>2]|0)>>>0){o[g>>2]=E+1;m=s[E>>0]|0;break}else{m=Hn(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<3)}}while(0);if(!C){do{if((m|0)==48){h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;h=s[h>>0]|0}else h=Hn(e)|0;if((h|32|0)!=120){if(!(o[f>>2]|0)){m=48;break}o[g>>2]=(o[g>>2]|0)+-1;m=48;break}c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0;y=0}else{v=Hn(e)|0;y=0}while(1){if((v|0)==46){p=70;break}else if((v|0)!=48){c=0;h=0;E=0;C=0;m=0;w=0;F=1.0;I=0;d=0.0;break}c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0;y=1;continue}else{v=Hn(e)|0;y=1;continue}}if((p|0)==70){c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0}else v=Hn(e)|0;if((v|0)==48){E=0;C=0;do{c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0}else v=Hn(e)|0;E=ai(E|0,C|0,-1,-1)|0;C=R}while((v|0)==48);c=0;h=0;y=1;m=1;w=0;F=1.0;I=0;d=0.0}else{c=0;h=0;E=0;C=0;m=1;w=0;F=1.0;I=0;d=0.0}}e:while(1){b=v+-48|0;do{if(b>>>0>=10){D=v|32;S=(v|0)==46;if(!((D+-97|0)>>>0<6|S))break e;if(S)if(!m){E=h;C=c;m=1;break}else{v=46;break e}else{b=(v|0)>57?D+-87|0:b;p=83;break}}else p=83}while(0);if((p|0)==83){p=0;do{if(!((c|0)<0|(c|0)==0&h>>>0<8)){if((c|0)<0|(c|0)==0&h>>>0<14){K=F*.0625;N=K;d=d+K*+(b|0);break}if((b|0)==0|(w|0)!=0)N=F;else{w=1;N=F;d=d+F*.5}}else{N=F;I=b+(I<<4)|0}}while(0);h=ai(h|0,c|0,1,0)|0;c=R;y=1;F=N}v=o[g>>2]|0;if(v>>>0<(o[f>>2]|0)>>>0){o[g>>2]=v+1;v=s[v>>0]|0;continue}else{v=Hn(e)|0;continue}}if(!y){t=(o[f>>2]|0)==0;if(!t)o[g>>2]=(o[g>>2]|0)+-1;if(r){if(!t?(u=o[g>>2]|0,o[g>>2]=u+-1,(m|0)!=0):0)o[g>>2]=u+-2}else Jn(e,0);K=+(A|0)*0.0;l=i;return+K}p=(m|0)==0;u=p?h:E;p=p?c:C;if((c|0)<0|(c|0)==0&h>>>0<8)do{I=I<<4;h=ai(h|0,c|0,1,0)|0;c=R}while((c|0)<0|(c|0)==0&h>>>0<8);do{if((v|32|0)==112){h=ri(e,r)|0;c=R;if((h|0)==0&(c|0)==-2147483648)if(!r){Jn(e,0);K=0.0;l=i;return+K}else{if(!(o[f>>2]|0)){h=0;c=0;break}o[g>>2]=(o[g>>2]|0)+-1;h=0;c=0;break}}else if(!(o[f>>2]|0)){h=0;c=0}else{o[g>>2]=(o[g>>2]|0)+-1;h=0;c=0}}while(0);u=si(u|0,p|0,2)|0;u=ai(u|0,R|0,-32,-1)|0;c=ai(u|0,R|0,h|0,c|0)|0;u=R;if(!I){K=+(A|0)*0.0;l=i;return+K}if((u|0)>0|(u|0)==0&c>>>0>(0-a|0)>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+K}M=a+-106|0;x=((M|0)<0)<<31>>31;if((u|0)<(x|0)|(u|0)==(x|0)&c>>>0>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+K}if((I|0)>-1)do{I=I<<1;if(!(d>=.5))F=d;else{F=d+-1.0;I=I|1}d=d+F;c=ai(c|0,u|0,-1,-1)|0;u=R}while((I|0)>-1);a=ii(32,0,a|0,((a|0)<0)<<31>>31|0)|0;a=ai(c|0,u|0,a|0,R|0)|0;M=R;if(0>(M|0)|0==(M|0)&t>>>0>a>>>0)if((a|0)<0){t=0;p=126}else{t=a;p=124}else p=124;if((p|0)==124)if((t|0)<53)p=126;else{a=t;F=+(A|0);N=0.0}if((p|0)==126){N=+(A|0);a=t;F=N;N=+Ve(+ +qn(1.0,84-t|0),+N)}M=(a|0)<32&d!=0.0&(I&1|0)==0;d=F*(M?0.0:d)+(N+F*+(((M&1)+I|0)>>>0))-N;if(!(d!=0.0))o[(Ye()|0)>>2]=34;K=+zn(d,c);l=i;return+K}}while(0);h=a+t|0;u=0-h|0;b=0;while(1){if((m|0)==46){p=137;break}else if((m|0)!=48){k=0;S=0;D=0;break}C=o[g>>2]|0;if(C>>>0<(o[f>>2]|0)>>>0){o[g>>2]=C+1;m=s[C>>0]|0;b=1;continue}else{m=Hn(e)|0;b=1;continue}}if((p|0)==137){p=o[g>>2]|0;if(p>>>0<(o[f>>2]|0)>>>0){o[g>>2]=p+1;m=s[p>>0]|0}else m=Hn(e)|0;if((m|0)==48){k=0;S=0;do{k=ai(k|0,S|0,-1,-1)|0;S=R;p=o[g>>2]|0;if(p>>>0<(o[f>>2]|0)>>>0){o[g>>2]=p+1;m=s[p>>0]|0}else m=Hn(e)|0}while((m|0)==48);b=1;D=1}else{k=0;S=0;D=1}}o[c>>2]=0;v=m+-48|0;x=(m|0)==46;e:do{if(v>>>0<10|x){p=c+496|0;w=0;y=0;I=0;E=0;C=0;t:while(1){do{if(x)if(!D){k=w;S=y;D=1}else break t;else{x=ai(w|0,y|0,1,0)|0;y=R;M=(m|0)!=48;if((E|0)>=125){if(!M){w=x;break}o[p>>2]=o[p>>2]|1;w=x;break}w=c+(E<<2)|0;if(I)v=m+-48+((o[w>>2]|0)*10|0)|0;o[w>>2]=v;I=I+1|0;v=(I|0)==9;w=x;b=1;I=v?0:I;E=(v&1)+E|0;C=M?x:C}}while(0);m=o[g>>2]|0;if(m>>>0<(o[f>>2]|0)>>>0){o[g>>2]=m+1;m=s[m>>0]|0}else m=Hn(e)|0;v=m+-48|0;x=(m|0)==46;if(!(v>>>0<10|x)){p=160;break e}}v=(b|0)!=0;p=168}else{w=0;y=0;I=0;E=0;C=0;p=160}}while(0);do{if((p|0)==160){v=(D|0)==0;k=v?w:k;S=v?y:S;v=(b|0)!=0;if(!(v&(m|32|0)==101))if((m|0)>-1){p=168;break}else{p=170;break}v=ri(e,r)|0;m=R;do{if((v|0)==0&(m|0)==-2147483648)if(!r){Jn(e,0);K=0.0;l=i;return+K}else{if(!(o[f>>2]|0)){v=0;m=0;break}o[g>>2]=(o[g>>2]|0)+-1;v=0;m=0;break}}while(0);e=ai(v|0,m|0,k|0,S|0)|0;S=R}}while(0);if((p|0)==168)if(o[f>>2]|0){o[g>>2]=(o[g>>2]|0)+-1;if(v)e=k;else p=171}else p=170;if((p|0)==170)if(v)e=k;else p=171;if((p|0)==171){o[(Ye()|0)>>2]=22;Jn(e,0);K=0.0;l=i;return+K}g=o[c>>2]|0;if(!g){K=+(A|0)*0.0;l=i;return+K}if((e|0)==(w|0)&(S|0)==(y|0)&((y|0)<0|(y|0)==0&w>>>0<10)?t>>>0>30|(g>>>t|0)==0:0){K=+(A|0)*+(g>>>0);l=i;return+K}M=(a|0)/-2|0;x=((M|0)<0)<<31>>31;if((S|0)>(x|0)|(S|0)==(x|0)&e>>>0>M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+K}M=a+-106|0;x=((M|0)<0)<<31>>31;if((S|0)<(x|0)|(S|0)==(x|0)&e>>>0>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+K}if(I){if((I|0)<9){g=c+(E<<2)|0;f=o[g>>2]|0;do{f=f*10|0;I=I+1|0}while((I|0)!=9);o[g>>2]=f}E=E+1|0}if((C|0)<9?(C|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){K=+(A|0)*+((o[c>>2]|0)>>>0);l=i;return+K}if((e|0)<9){K=+(A|0)*+((o[c>>2]|0)>>>0)/+(o[5632+(8-e<<2)>>2]|0);l=i;return+K}M=t+27+(ie(e,-3)|0)|0;g=o[c>>2]|0;if((M|0)>30|(g>>>M|0)==0){K=+(A|0)*+(g>>>0)*+(o[5632+(e+-10<<2)>>2]|0);l=i;return+K}}g=(e|0)%9|0;if(!g){g=0;f=0}else{r=(e|0)>-1?g:g+9|0;p=o[5632+(8-r<<2)>>2]|0;if(E){C=1e9/(p|0)|0;g=0;f=0;I=0;do{k=c+(I<<2)|0;x=o[k>>2]|0;M=((x>>>0)/(p>>>0)|0)+f|0;o[k>>2]=M;f=ie((x>>>0)%(p>>>0)|0,C)|0;x=I;I=I+1|0;if((x|0)==(g|0)&(M|0)==0){g=I&127;e=e+-9|0}}while((I|0)!=(E|0));if(f){o[c+(E<<2)>>2]=f;E=E+1|0}}else{g=0;E=0}f=0;e=9-r+e|0}e:while(1){r=c+(g<<2)|0;if((e|0)<18){do{C=0;r=E+127|0;while(1){r=r&127;p=c+(r<<2)|0;I=si(o[p>>2]|0,0,29)|0;I=ai(I|0,R|0,C|0,0)|0;C=R;if(C>>>0>0|(C|0)==0&I>>>0>1e9){M=Ei(I|0,C|0,1e9,0)|0;I=Ii(I|0,C|0,1e9,0)|0;C=M}else C=0;o[p>>2]=I;p=(r|0)==(g|0);if(!((r|0)!=(E+127&127|0)|p))E=(I|0)==0?r:E;if(p)break;else r=r+-1|0}f=f+-29|0}while((C|0)==0)}else{if((e|0)!=18)break;do{if((o[r>>2]|0)>>>0>=9007199){e=18;break e}C=0;p=E+127|0;while(1){p=p&127;I=c+(p<<2)|0;m=si(o[I>>2]|0,0,29)|0;m=ai(m|0,R|0,C|0,0)|0;C=R;if(C>>>0>0|(C|0)==0&m>>>0>1e9){M=Ei(m|0,C|0,1e9,0)|0;m=Ii(m|0,C|0,1e9,0)|0;C=M}else C=0;o[I>>2]=m;I=(p|0)==(g|0);if(!((p|0)!=(E+127&127|0)|I))E=(m|0)==0?p:E;if(I)break;else p=p+-1|0}f=f+-29|0}while((C|0)==0)}g=g+127&127;if((g|0)==(E|0)){M=E+127&127;E=c+((E+126&127)<<2)|0;o[E>>2]=o[E>>2]|o[c+(M<<2)>>2];E=M}o[c+(g<<2)>>2]=C;e=e+9|0}e:while(1){r=E+1&127;p=c+((E+127&127)<<2)|0;while(1){I=(e|0)==18;C=(e|0)>27?9:1;while(1){m=0;while(1){y=m+g&127;if((y|0)==(E|0)){m=2;break}w=o[c+(y<<2)>>2]|0;v=o[5624+(m<<2)>>2]|0;if(w>>>0>>0){m=2;break}y=m+1|0;if(w>>>0>v>>>0)break;if((y|0)<2)m=y;else{m=y;break}}if((m|0)==2&I)break e;f=C+f|0;if((g|0)==(E|0))g=E;else break}I=(1<>>C;y=g;w=0;do{k=c+(g<<2)|0;x=o[k>>2]|0;M=(x>>>C)+w|0;o[k>>2]=M;w=ie(x&I,m)|0;M=(g|0)==(y|0)&(M|0)==0;g=g+1&127;e=M?e+-9|0:e;y=M?g:y}while((g|0)!=(E|0));if(!w){g=y;continue}if((r|0)!=(y|0))break;o[p>>2]=o[p>>2]|1;g=y}o[c+(E<<2)>>2]=w;g=y;E=r}e=g&127;if((e|0)==(E|0)){o[c+(r+-1<<2)>>2]=0;E=r}F=+((o[c+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(E|0)){E=E+1&127;o[c+(E+-1<<2)>>2]=0}d=+(A|0);N=d*(F*1.0e9+ +((o[c+(e<<2)>>2]|0)>>>0));A=f+53|0;a=A-a|0;if((a|0)<(t|0))if((a|0)<0){t=0;e=1;p=244}else{t=a;e=1;p=243}else{e=0;p=243}if((p|0)==243)if((t|0)<53)p=244;else{F=0.0;K=0.0}if((p|0)==244){T=+Ve(+ +qn(1.0,105-t|0),+N);L=+ot(+N,+ +qn(1.0,53-t|0));F=T;K=L;N=T+(N-L)}r=g+2&127;do{if((r|0)!=(E|0)){c=o[c+(r<<2)>>2]|0;do{if(c>>>0>=5e8){if(c>>>0>5e8){K=d*.75+K;break}if((g+3&127|0)==(E|0)){K=d*.5+K;break}else{K=d*.75+K;break}}else{if((c|0)==0?(g+3&127|0)==(E|0):0)break;K=d*.25+K}}while(0);if((53-t|0)<=1)break;if(+ot(+K,1.0)!=0.0)break;K=K+1.0}}while(0);d=N+K-F;do{if((A&2147483647|0)>(-2-h|0)){if(+J(+d)>=9007199254740992.0){e=(e|0)!=0&(t|0)==(a|0)?0:e;f=f+1|0;d=d*.5}if((f+50|0)<=(u|0)?!((e|0)!=0&K!=0.0):0)break;o[(Ye()|0)>>2]=34}}while(0);T=+zn(d,f);l=i;return+T}else if((C|0)==3){t=o[g>>2]|0;if(t>>>0<(o[f>>2]|0)>>>0){o[g>>2]=t+1;t=s[t>>0]|0}else t=Hn(e)|0;if((t|0)==40)t=1;else{if(!(o[f>>2]|0)){T=B;l=i;return+T}o[g>>2]=(o[g>>2]|0)+-1;T=B;l=i;return+T}while(1){A=o[g>>2]|0;if(A>>>0<(o[f>>2]|0)>>>0){o[g>>2]=A+1;A=s[A>>0]|0}else A=Hn(e)|0;if(!((A+-48|0)>>>0<10|(A+-65|0)>>>0<26)?!((A+-97|0)>>>0<26|(A|0)==95):0)break;t=t+1|0}if((A|0)==41){T=B;l=i;return+T}A=(o[f>>2]|0)==0;if(!A)o[g>>2]=(o[g>>2]|0)+-1;if(!h){o[(Ye()|0)>>2]=22;Jn(e,0);T=0.0;l=i;return+T}if((t|0)==0|A){T=B;l=i;return+T}do{t=t+-1|0;o[g>>2]=(o[g>>2]|0)+-1}while((t|0)!=0);d=B;l=i;return+d}else{if(o[f>>2]|0)o[g>>2]=(o[g>>2]|0)+-1;o[(Ye()|0)>>2]=22;Jn(e,0);T=0.0;l=i;return+T}}}while(0);if((p|0)==23){t=(o[f>>2]|0)==0;if(!t)o[g>>2]=(o[g>>2]|0)+-1;if(!(C>>>0<4|(r|0)==0|t))do{o[g>>2]=(o[g>>2]|0)+-1;C=C+-1|0}while(C>>>0>3)}T=+(A|0)*Q;l=i;return+T}function Jn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;o[e+104>>2]=t;i=o[e+8>>2]|0;n=o[e+4>>2]|0;s=i-n|0;o[e+108>>2]=s;if((t|0)!=0&(s|0)>(t|0)){o[e+100>>2]=n+t;l=r;return}else{o[e+100>>2]=i;l=r;return}}function Hn(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,c=0,u=0;r=l;a=e+104|0;u=o[a>>2]|0;if(!((u|0)!=0?(o[e+108>>2]|0)>=(u|0):0))c=3;if((c|0)==3?(t=Vn(e)|0,(t|0)>=0):0){c=o[a>>2]|0;a=o[e+8>>2]|0;if((c|0)!=0?(i=o[e+4>>2]|0,A=c-(o[e+108>>2]|0)+-1|0,(a-i|0)>(A|0)):0)o[e+100>>2]=i+A;else o[e+100>>2]=a;i=o[e+4>>2]|0;if(a){u=e+108|0;o[u>>2]=a+1-i+(o[u>>2]|0)}e=i+-1|0;if((s[e>>0]|0|0)==(t|0)){u=t;l=r;return u|0}n[e>>0]=t;u=t;l=r;return u|0}o[e+100>>2]=0;u=-1;l=r;return u|0}function qn(e,t){e=+e;t=t|0;var r=0,n=0;r=l;if((t|0)>1023){e=e*8.98846567431158e+307;n=t+-1023|0;if((n|0)>1023){t=t+-2046|0;t=(t|0)>1023?1023:t;e=e*8.98846567431158e+307}else t=n}else if((t|0)<-1022){e=e*2.2250738585072014e-308;n=t+1022|0;if((n|0)<-1022){t=t+2044|0;t=(t|0)<-1022?-1022:t;e=e*2.2250738585072014e-308}else t=n}t=si(t+1023|0,0,52)|0;n=R;o[g>>2]=t;o[g+4>>2]=n;e=e*+u[g>>3];l=r;return+e}function zn(e,t){e=+e;t=t|0;var r=0;r=l;e=+qn(e,t);l=r;return+e}function Wn(e){e=e|0;var t=0,r=0,i=0;r=l;i=e+74|0;t=n[i>>0]|0;n[i>>0]=t+255|t;i=e+20|0;t=e+44|0;if((o[i>>2]|0)>>>0>(o[t>>2]|0)>>>0)_i[o[e+36>>2]&1](e,0,0)|0;o[e+16>>2]=0;o[e+28>>2]=0;o[i>>2]=0;i=o[e>>2]|0;if(!(i&20)){i=o[t>>2]|0;o[e+8>>2]=i;o[e+4>>2]=i;i=0;l=r;return i|0}if(!(i&4)){i=-1;l=r;return i|0}o[e>>2]=i|32;i=-1;l=r;return i|0}function Vn(e){e=e|0;var t=0,r=0;t=l;l=l+16|0;r=t;if((o[e+8>>2]|0)==0?(Wn(e)|0)!=0:0)e=-1;else if((_i[o[e+32>>2]&1](e,r,1)|0)==1)e=s[r>>0]|0;else e=-1;l=t;return e|0}function Xn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0.0,s=0,A=0;r=l;l=l+112|0;n=r;A=n+0|0;s=A+112|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(s|0));s=n+4|0;o[s>>2]=e;A=n+8|0;o[A>>2]=-1;o[n+44>>2]=e;o[n+76>>2]=-1;Jn(n,0);i=+Gn(n,1,1);n=(o[s>>2]|0)-(o[A>>2]|0)+(o[n+108>>2]|0)|0;if(!t){l=r;return+i}if(n)e=e+n|0;o[t>>2]=e;l=r;return+i}function Zn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0;n=l;l=l+112|0;s=n;o[s>>2]=0;i=s+4|0;o[i>>2]=e;o[s+44>>2]=e;if((e|0)<0)o[s+8>>2]=-1;else o[s+8>>2]=e+2147483647;o[s+76>>2]=-1;Jn(s,0);r=Yn(s,r,1,-2147483648,0)|0;if(!t){l=n;return r|0}o[t>>2]=e+((o[i>>2]|0)+(o[s+108>>2]|0)-(o[s+8>>2]|0));l=n;return r|0}function $n(e,t){e=e|0;t=t|0;var r=0,i=0,o=0;r=l;o=n[e>>0]|0;i=n[t>>0]|0;if(o<<24>>24==0?1:o<<24>>24!=i<<24>>24)t=o;else{do{e=e+1|0;t=t+1|0;o=n[e>>0]|0;i=n[t>>0]|0}while(!(o<<24>>24==0?1:o<<24>>24!=i<<24>>24));t=o}l=r;return(t&255)-(i&255)|0}function ei(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0;r=l;i=e+4|0;n=o[i>>2]|0;u=n&-8;a=e+u|0;h=o[1210]|0;A=n&3;if(!((A|0)!=1&e>>>0>=h>>>0&e>>>0>>0))Xe();s=e+(u|4)|0;p=o[s>>2]|0;if(!(p&1))Xe();if(!A){if(t>>>0<256){C=0;l=r;return C|0}if(u>>>0>=(t+4|0)>>>0?(u-t|0)>>>0<=o[1326]<<1>>>0:0){C=e;l=r;return C|0}C=0;l=r;return C|0}if(u>>>0>=t>>>0){A=u-t|0;if(A>>>0<=15){C=e;l=r;return C|0}o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=A|3;o[s>>2]=o[s>>2]|1;ti(e+t|0,A);C=e;l=r;return C|0}if((a|0)==(o[1212]|0)){s=(o[1209]|0)+u|0;if(s>>>0<=t>>>0){C=0;l=r;return C|0}C=s-t|0;o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=C|1;o[1212]=e+t;o[1209]=C;C=e;l=r;return C|0}if((a|0)==(o[1211]|0)){A=(o[1208]|0)+u|0;if(A>>>0>>0){C=0;l=r;return C|0}s=A-t|0;if(s>>>0>15){o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=s|1;o[e+A>>2]=s;n=e+(A+4)|0;o[n>>2]=o[n>>2]&-2;n=e+t|0}else{o[i>>2]=n&1|A|2;n=e+(A+4)|0;o[n>>2]=o[n>>2]|1;n=0;s=0}o[1208]=s;o[1211]=n;C=e;l=r;return C|0}if(p&2){C=0;l=r;return C|0}s=(p&-8)+u|0;if(s>>>0>>0){C=0;l=r;return C|0}A=s-t|0;f=p>>>3;do{if(p>>>0>=256){g=o[e+(u+24)>>2]|0;f=o[e+(u+12)>>2]|0;do{if((f|0)==(a|0)){p=e+(u+20)|0;f=o[p>>2]|0;if(!f){p=e+(u+16)|0;f=o[p>>2]|0;if(!f){c=0;break}}while(1){C=f+20|0;d=o[C>>2]|0;if(d){f=d;p=C;continue}d=f+16|0;C=o[d>>2]|0;if(!C)break;else{f=C;p=d}}if(p>>>0>>0)Xe();else{o[p>>2]=0;c=f;break}}else{p=o[e+(u+8)>>2]|0;if(p>>>0>>0)Xe();h=p+12|0;if((o[h>>2]|0)!=(a|0))Xe();d=f+8|0;if((o[d>>2]|0)==(a|0)){o[h>>2]=f;o[d>>2]=p;c=f;break}else Xe()}}while(0);if(g){h=o[e+(u+28)>>2]|0;f=5128+(h<<2)|0;if((a|0)==(o[f>>2]|0)){o[f>>2]=c;if(!c){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();h=g+16|0;if((o[h>>2]|0)==(a|0))o[h>>2]=c;else o[g+20>>2]=c;if(!c)break}a=o[1210]|0;if(c>>>0>>0)Xe();o[c+24>>2]=g;h=o[e+(u+16)>>2]|0;do{if(h)if(h>>>0>>0)Xe();else{o[c+16>>2]=h;o[h+24>>2]=c;break}}while(0);a=o[e+(u+20)>>2]|0;if(a)if(a>>>0<(o[1210]|0)>>>0)Xe();else{o[c+20>>2]=a;o[a+24>>2]=c;break}}}else{c=o[e+(u+8)>>2]|0;u=o[e+(u+12)>>2]|0;p=4864+(f<<1<<2)|0;if((c|0)!=(p|0)){if(c>>>0>>0)Xe();if((o[c+12>>2]|0)!=(a|0))Xe()}if((u|0)==(c|0)){o[1206]=o[1206]&~(1<>>0>>0)Xe();h=u+8|0;if((o[h>>2]|0)==(a|0))g=h;else Xe()}else g=u+8|0;o[c+12>>2]=u;o[g>>2]=c}}while(0);if(A>>>0<16){o[i>>2]=s|n&1|2;C=e+(s|4)|0;o[C>>2]=o[C>>2]|1;C=e;l=r;return C|0}else{o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=A|3;C=e+(s|4)|0;o[C>>2]=o[C>>2]|1;ti(e+t|0,A);C=e;l=r;return C|0}return 0}function ti(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;r=l;A=e+t|0;u=o[e+4>>2]|0;do{if(!(u&1)){p=o[e>>2]|0;if(!(u&3)){l=r;return}u=e+(0-p)|0;h=p+t|0;C=o[1210]|0;if(u>>>0>>0)Xe();if((u|0)==(o[1211]|0)){n=e+(t+4)|0;g=o[n>>2]|0;if((g&3|0)!=3){n=u;g=h;break}o[1208]=h;o[n>>2]=g&-2;o[e+(4-p)>>2]=h|1;o[A>>2]=h;l=r;return}E=p>>>3;if(p>>>0<256){n=o[e+(8-p)>>2]|0;g=o[e+(12-p)>>2]|0;f=4864+(E<<1<<2)|0;if((n|0)!=(f|0)){if(n>>>0>>0)Xe();if((o[n+12>>2]|0)!=(u|0))Xe()}if((g|0)==(n|0)){o[1206]=o[1206]&~(1<>>0>>0)Xe();f=g+8|0;if((o[f>>2]|0)==(u|0))d=f;else Xe()}else d=g+8|0;o[n+12>>2]=g;o[d>>2]=n;n=u;g=h;break}d=o[e+(24-p)>>2]|0;E=o[e+(12-p)>>2]|0;do{if((E|0)==(u|0)){m=16-p|0;I=e+(m+4)|0;E=o[I>>2]|0;if(!E){I=e+m|0;E=o[I>>2]|0;if(!E){f=0;break}}while(1){y=E+20|0;m=o[y>>2]|0;if(m){E=m;I=y;continue}m=E+16|0;y=o[m>>2]|0;if(!y)break;else{E=y;I=m}}if(I>>>0>>0)Xe();else{o[I>>2]=0;f=E;break}}else{I=o[e+(8-p)>>2]|0;if(I>>>0>>0)Xe();C=I+12|0;if((o[C>>2]|0)!=(u|0))Xe();m=E+8|0;if((o[m>>2]|0)==(u|0)){o[C>>2]=E;o[m>>2]=I;f=E;break}else Xe()}}while(0);if(d){E=o[e+(28-p)>>2]|0;C=5128+(E<<2)|0;if((u|0)==(o[C>>2]|0)){o[C>>2]=f;if(!f){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();C=d+16|0;if((o[C>>2]|0)==(u|0))o[C>>2]=f;else o[d+20>>2]=f;if(!f){n=u;g=h;break}}C=o[1210]|0;if(f>>>0>>0)Xe();o[f+24>>2]=d;p=16-p|0;d=o[e+p>>2]|0;do{if(d)if(d>>>0>>0)Xe();else{o[f+16>>2]=d;o[d+24>>2]=f;break}}while(0);p=o[e+(p+4)>>2]|0;if(p)if(p>>>0<(o[1210]|0)>>>0)Xe();else{o[f+20>>2]=p;o[p+24>>2]=f;n=u;g=h;break}else{n=u;g=h}}else{n=u;g=h}}else{n=e;g=t}}while(0);u=o[1210]|0;if(A>>>0>>0)Xe();h=e+(t+4)|0;f=o[h>>2]|0;if(!(f&2)){if((A|0)==(o[1212]|0)){y=(o[1209]|0)+g|0;o[1209]=y;o[1212]=n;o[n+4>>2]=y|1;if((n|0)!=(o[1211]|0)){l=r;return}o[1211]=0;o[1208]=0;l=r;return}if((A|0)==(o[1211]|0)){y=(o[1208]|0)+g|0;o[1208]=y;o[1211]=n;o[n+4>>2]=y|1;o[n+y>>2]=y;l=r;return}g=(f&-8)+g|0;h=f>>>3;do{if(f>>>0>=256){c=o[e+(t+24)>>2]|0;f=o[e+(t+12)>>2]|0;do{if((f|0)==(A|0)){f=e+(t+20)|0;h=o[f>>2]|0;if(!h){f=e+(t+16)|0;h=o[f>>2]|0;if(!h){a=0;break}}while(1){p=h+20|0;d=o[p>>2]|0;if(d){h=d;f=p;continue}d=h+16|0;p=o[d>>2]|0;if(!p)break;else{h=p;f=d}}if(f>>>0>>0)Xe();else{o[f>>2]=0;a=h;break}}else{h=o[e+(t+8)>>2]|0;if(h>>>0>>0)Xe();p=h+12|0;if((o[p>>2]|0)!=(A|0))Xe();u=f+8|0;if((o[u>>2]|0)==(A|0)){o[p>>2]=f;o[u>>2]=h;a=f;break}else Xe()}}while(0);if(c){h=o[e+(t+28)>>2]|0;u=5128+(h<<2)|0;if((A|0)==(o[u>>2]|0)){o[u>>2]=a;if(!a){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();u=c+16|0;if((o[u>>2]|0)==(A|0))o[u>>2]=a;else o[c+20>>2]=a;if(!a)break}A=o[1210]|0;if(a>>>0>>0)Xe();o[a+24>>2]=c;c=o[e+(t+16)>>2]|0;do{if(c)if(c>>>0>>0)Xe();else{o[a+16>>2]=c;o[c+24>>2]=a;break}}while(0);A=o[e+(t+20)>>2]|0;if(A)if(A>>>0<(o[1210]|0)>>>0)Xe();else{o[a+20>>2]=A;o[A+24>>2]=a;break}}}else{a=o[e+(t+8)>>2]|0;e=o[e+(t+12)>>2]|0;t=4864+(h<<1<<2)|0;if((a|0)!=(t|0)){if(a>>>0>>0)Xe();if((o[a+12>>2]|0)!=(A|0))Xe()}if((e|0)==(a|0)){o[1206]=o[1206]&~(1<>>0>>0)Xe();t=e+8|0;if((o[t>>2]|0)==(A|0))c=t;else Xe()}else c=e+8|0;o[a+12>>2]=e;o[c>>2]=a}}while(0);o[n+4>>2]=g|1;o[n+g>>2]=g;if((n|0)==(o[1211]|0)){o[1208]=g;l=r;return}}else{o[h>>2]=f&-2;o[n+4>>2]=g|1;o[n+g>>2]=g}t=g>>>3;if(g>>>0<256){e=t<<1;A=4864+(e<<2)|0;a=o[1206]|0;t=1<>2]|0;if(a>>>0<(o[1210]|0)>>>0)Xe();else{s=e;i=a}}else{o[1206]=a|t;s=4864+(e+2<<2)|0;i=A}o[s>>2]=n;o[i+12>>2]=n;o[n+8>>2]=i;o[n+12>>2]=A;l=r;return}i=g>>>8;if(i)if(g>>>0>16777215)i=31;else{m=(i+1048320|0)>>>16&8;y=i<>>16&4;y=y<>>16&2;i=14-(I|m|i)+(y<>>15)|0;i=g>>>(i+7|0)&1|i<<1}else i=0;s=5128+(i<<2)|0;o[n+28>>2]=i;o[n+20>>2]=0;o[n+16>>2]=0;e=o[1207]|0;A=1<>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n;l=r;return}s=o[s>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;e:do{if((o[s+4>>2]&-8|0)!=(g|0)){i=g<>>31<<2)+16|0;s=o[A>>2]|0;if(!s)break;if((o[s+4>>2]&-8|0)==(g|0))break e;else{i=i<<1;e=s}}if(A>>>0<(o[1210]|0)>>>0)Xe();o[A>>2]=n;o[n+24>>2]=e;o[n+12>>2]=n;o[n+8>>2]=n;l=r;return}}while(0);i=s+8|0;A=o[i>>2]|0;y=o[1210]|0;if(!(s>>>0>=y>>>0&A>>>0>=y>>>0))Xe();o[A+12>>2]=n;o[i>>2]=n;o[n+8>>2]=A;o[n+12>>2]=s;o[n+24>>2]=0;l=r;return}function ri(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0,a=0,c=0;r=l;i=e+4|0;A=o[i>>2]|0;n=e+100|0;if(A>>>0<(o[n>>2]|0)>>>0){o[i>>2]=A+1;a=s[A>>0]|0}else a=Hn(e)|0;if((a|0)==43|(a|0)==45){c=o[i>>2]|0;A=(a|0)==45&1;if(c>>>0<(o[n>>2]|0)>>>0){o[i>>2]=c+1;a=s[c>>0]|0}else a=Hn(e)|0;if((a+-48|0)>>>0>9&(t|0)!=0?(o[n>>2]|0)!=0:0)o[i>>2]=(o[i>>2]|0)+-1}else A=0;if((a+-48|0)>>>0>9){if(!(o[n>>2]|0)){a=-2147483648;c=0;R=a;l=r;return c|0}o[i>>2]=(o[i>>2]|0)+-1;a=-2147483648;c=0;R=a;l=r;return c|0}else t=0;do{t=a+-48+(t*10|0)|0;a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10&(t|0)<214748364);c=((t|0)<0)<<31>>31;if((a+-48|0)>>>0<10)do{c=Ci(t|0,c|0,10,0)|0;t=R;a=ai(a|0,((a|0)<0)<<31>>31|0,-48,-1)|0;t=ai(a|0,R|0,c|0,t|0)|0;c=R;a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10&((c|0)<21474836|(c|0)==21474836&t>>>0<2061584302));if((a+-48|0)>>>0<10)do{a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10);if(o[n>>2]|0)o[i>>2]=(o[i>>2]|0)+-1;i=(A|0)!=0;A=ii(0,0,t|0,c|0)|0;a=i?R:c;c=i?A:t;R=a;l=r;return c|0}function ni(){}function ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;t=t-n-(r>>>0>e>>>0|0)>>>0;return(R=t,e-r>>>0|0)|0}function oi(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0;i=e+r|0;if((r|0)>=20){t=t&255;a=e&3;A=t|t<<8|t<<16|t<<24;s=i&~3;if(a){a=e+4-a|0;while((e|0)<(a|0)){n[e>>0]=t;e=e+1|0}}while((e|0)<(s|0)){o[e>>2]=A;e=e+4|0}}while((e|0)<(i|0)){n[e>>0]=t;e=e+1|0}return e-r|0}function si(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t<>>32-r;return e<>0]|0)t=t+1|0;return t-e|0}function ai(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;r=e+r>>>0;return(R=t+n+(r>>>0>>0|0)>>>0,r|0)|0}function ci(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t>>>r;return e>>>r|(t&(1<>>r-32|0}function ui(e,t,r){e=e|0;t=t|0;r=r|0;var i=0;if((r|0)>=4096)return Fe(e|0,t|0,r|0)|0;i=e|0;if((e&3)==(t&3)){while(e&3){if(!r)return i|0;n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}while((r|0)>=4){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0;r=r-4|0}}while((r|0)>0){n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}return i|0}function li(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t>>r;return e>>>r|(t&(1<>r-32|0}function hi(e){e=e|0;var t=0;t=n[d+(e>>>24)>>0]|0;if((t|0)<8)return t|0;t=n[d+(e>>16&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[d+(e>>8&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[d+(e&255)>>0]|0)+24|0}function gi(e){e=e|0;var t=0;t=n[p+(e&255)>>0]|0;if((t|0)<8)return t|0;t=n[p+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[p+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[p+(e>>>24)>>0]|0)+24|0}function fi(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0;o=e&65535;n=t&65535;r=ie(n,o)|0;i=e>>>16;n=(r>>>16)+(ie(n,i)|0)|0;t=t>>>16;e=ie(t,o)|0;return(R=(n>>>16)+(ie(t,i)|0)+(((n&65535)+e|0)>>>16)|0,n+e<<16|r&65535|0)|0}function pi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0,s=0,A=0,a=0,c=0;c=t>>31|((t|0)<0?-1:0)<<1;a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;o=n>>31|((n|0)<0?-1:0)<<1;i=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;A=ii(c^e,a^t,c,a)|0;s=R;t=o^c;e=i^a;e=ii((mi(A,s,ii(o^r,i^n,o,i)|0,R,0)|0)^t,R^e,t,e)|0;return e|0}function di(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,s=0,A=0,a=0,c=0,u=0;i=l;l=l+8|0;a=i|0;A=t>>31|((t|0)<0?-1:0)<<1;s=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;u=n>>31|((n|0)<0?-1:0)<<1;c=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;t=ii(A^e,s^t,A,s)|0;e=R;mi(t,e,ii(u^r,c^n,u,c)|0,R,a)|0;e=ii(o[a>>2]^A,o[a+4>>2]^s,A,s)|0;t=R;l=i;return(R=t,e)|0}function Ci(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0;i=e;o=r;e=fi(i,o)|0;r=R;return(R=(ie(t,o)|0)+(ie(n,i)|0)+r|r&0,e|0|0)|0}function Ei(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;e=mi(e,t,r,n,0)|0;return e|0}function Ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,s=0;s=l;l=l+8|0;i=s|0;mi(e,t,r,n,i)|0;l=s;return(R=o[i+4>>2]|0,o[i>>2]|0)|0}function mi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var s=0,A=0,a=0,c=0,u=0,l=0,h=0,g=0,f=0,p=0;A=e;c=t;a=c;l=r;s=n;u=s;if(!a){s=(i|0)!=0;if(!u){if(s){o[i>>2]=(A>>>0)%(l>>>0);o[i+4>>2]=0}u=0;h=(A>>>0)/(l>>>0)>>>0;return(R=u,h)|0}else{if(!s){l=0;h=0;return(R=l,h)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;l=0;h=0;return(R=l,h)|0}}h=(u|0)==0;do{if(l){if(!h){u=(hi(u|0)|0)-(hi(a|0)|0)|0;if(u>>>0<=31){h=u+1|0;l=31-u|0;e=u-31>>31;c=h;t=A>>>(h>>>0)&e|a<>>(h>>>0)&e;u=0;l=A<>2]=e|0;o[i+4>>2]=c|t&0;l=0;h=0;return(R=l,h)|0}u=l-1|0;if(u&l){l=(hi(l|0)|0)+33-(hi(a|0)|0)|0;p=64-l|0;h=32-l|0;g=h>>31;f=l-32|0;e=f>>31;c=l;t=h-1>>31&a>>>(f>>>0)|(a<>>(l>>>0))&e;e=e&a>>>(l>>>0);u=A<>>(f>>>0))&g|A<>31;break}if(i){o[i>>2]=u&A;o[i+4>>2]=0}if((l|0)==1){f=c|t&0;p=e|0|0;return(R=f,p)|0}else{p=gi(l|0)|0;f=a>>>(p>>>0)|0;p=a<<32-p|A>>>(p>>>0)|0;return(R=f,p)|0}}else{if(h){if(i){o[i>>2]=(a>>>0)%(l>>>0);o[i+4>>2]=0}f=0;p=(a>>>0)/(l>>>0)>>>0;return(R=f,p)|0}if(!A){if(i){o[i>>2]=0;o[i+4>>2]=(a>>>0)%(u>>>0)}f=0;p=(a>>>0)/(u>>>0)>>>0;return(R=f,p)|0}l=u-1|0;if(!(l&u)){if(i){o[i>>2]=e|0;o[i+4>>2]=l&a|t&0}f=0;p=a>>>((gi(u|0)|0)>>>0);return(R=f,p)|0}u=(hi(u|0)|0)-(hi(a|0)|0)|0;if(u>>>0<=30){e=u+1|0;l=31-u|0;c=e;t=a<>>(e>>>0);e=a>>>(e>>>0);u=0;l=A<>2]=e|0;o[i+4>>2]=c|t&0;f=0;p=0;return(R=f,p)|0}}while(0);if(!c){s=l;n=0;a=0}else{A=r|0|0;s=s|n&0;n=ai(A,s,-1,-1)|0;r=R;a=0;do{h=l;l=u>>>31|l<<1;u=a|u<<1;h=t<<1|h>>>31|0;g=t>>>31|e<<1|0;ii(n,r,h,g)|0;p=R;f=p>>31|((p|0)<0?-1:0)<<1;a=f&1;t=ii(h,g,f&A,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&s)|0;e=R;c=c-1|0}while((c|0)!=0);s=l;n=0}A=0;if(i){o[i>>2]=t;o[i+4>>2]=e}f=(u|0)>>>31|(s|A)<<1|(A<<1|u>>>31)&0|n;p=(u<<1|0>>>31)&-2|a;return(R=f,p)|0}function yi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;return _i[e&1](t|0,r|0,n|0)|0}function wi(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;Oi[e&3](t|0,r|0,n|0,i|0,o|0)}function Bi(e,t){e=e|0;t=t|0;ji[e&31](t|0)}function Qi(e,t,r){e=e|0;t=t|0;r=r|0;Yi[e&3](t|0,r|0)}function vi(e,t){e=e|0;t=t|0;return Gi[e&1](t|0)|0}function Di(e){e=e|0;Ji[e&3]()}function bi(e,t,r,n,i,o,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;s=s|0;Hi[e&3](t|0,r|0,n|0,i|0,o|0,s|0)}function Si(e,t,r){e=e|0;t=t|0;r=r|0;return qi[e&3](t|0,r|0)|0}function ki(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;zi[e&3](t|0,r|0,n|0,i|0)}function xi(e,t,r){e=e|0;t=t|0;r=r|0;oe(0);return 0}function Fi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;oe(1)}function Mi(e){e=e|0;oe(2)}function Ni(e,t){e=e|0;t=t|0;oe(3)}function Ri(e){e=e|0;oe(4);return 0}function Ki(){oe(5)}function Li(){it()}function Ti(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;oe(6)}function Pi(e,t){e=e|0;t=t|0;oe(7);return 0}function Ui(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;oe(8)}var _i=[xi,Qn];var Oi=[Fi,Fn,xn,Fi];var ji=[Mi,dt,Et,mt,Bt,St,bt,Wt,Xt,Ir,Er,Rr,hn,ln,In,wn,mn,yn,Bn,It,Pn,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi];var Yi=[Ni,wt,vt,$t];var Gi=[Ri,gn];var Ji=[Ki,Li,Ln,Tn];var Hi=[Ti,Nn,Mn,Ti];var qi=[Pi,yt,Qt,Zt];var zi=[Ui,Dn,bn,Ui];return{_yo:qr,_strlen:Ai,_retireVar:rn,_bitshift64Lshr:ci,_unyo:zr,_solve:Zr,_bitshift64Shl:si,_getSolution:$r,___cxa_is_pointer_type:Kn,_memset:oi,_getNumVars:en,_memcpy:ui,_getConflictClauseSize:nn,_addClause:Xr,_i64Subtract:ii,_createTheSolver:Wr,_realloc:On,_i64Add:ai,_solveAssuming:tn,___cxa_can_catch:Rn,_ensureVar:Vr,_getConflictClause:on,_free:_n,_malloc:Un,__GLOBAL__I_a:Vt,__GLOBAL__I_a127:Kr,runPostSets:ni,stackAlloc:At,stackSave:at,stackRestore:ct,setThrew:ut,setTempRet0:gt,getTempRet0:ft,dynCall_iiii:yi,dynCall_viiiii:wi,dynCall_vi:Bi,dynCall_vii:Qi,dynCall_ii:vi,dynCall_v:Di,dynCall_viiiiii:bi,dynCall_iii:Si,dynCall_viiii:ki}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_yo=Module._yo=asm._yo,_strlen=Module._strlen=asm._strlen,_retireVar=Module._retireVar=asm._retireVar,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_unyo=Module._unyo=asm._unyo,_solve=Module._solve=asm._solve,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_getSolution=Module._getSolution=asm._getSolution,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_memset=Module._memset=asm._memset,_getNumVars=Module._getNumVars=asm._getNumVars,_memcpy=Module._memcpy=asm._memcpy,_getConflictClauseSize=Module._getConflictClauseSize=asm._getConflictClauseSize,_addClause=Module._addClause=asm._addClause,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_createTheSolver=Module._createTheSolver=asm._createTheSolver,_realloc=Module._realloc=asm._realloc,_i64Add=Module._i64Add=asm._i64Add,_solveAssuming=Module._solveAssuming=asm._solveAssuming,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_ensureVar=Module._ensureVar=asm._ensureVar,_getConflictClause=Module._getConflictClause=asm._getConflictClause,_free=Module._free=asm._free,_malloc=Module._malloc=asm._malloc,__GLOBAL__I_a=Module.__GLOBAL__I_a=asm.__GLOBAL__I_a,__GLOBAL__I_a127=Module.__GLOBAL__I_a127=asm.__GLOBAL__I_a127,runPostSets=Module.runPostSets=asm.runPostSets,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){var e={math:{}};e.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},e.math.Long.IntCache_={},e.math.Long.fromInt=function(t){if(-128<=t&&t<128){var r=e.math.Long.IntCache_[t];if(r)return r}var n=new e.math.Long(0|t,t<0?-1:0);return-128<=t&&t<128&&(e.math.Long.IntCache_[t]=n),n},e.math.Long.fromNumber=function(t){return isNaN(t)||!isFinite(t)?e.math.Long.ZERO:t<=-e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MIN_VALUE:t+1>=e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MAX_VALUE:t<0?e.math.Long.fromNumber(-t).negate():new e.math.Long(t%e.math.Long.TWO_PWR_32_DBL_|0,t/e.math.Long.TWO_PWR_32_DBL_|0)},e.math.Long.fromBits=function(t,r){return new e.math.Long(t,r)},e.math.Long.fromString=function(t,r){if(0==t.length)throw Error("number format error: empty string");var n=r||10;if(n<2||36=0)throw Error('number format error: interior "-" character: '+t);for(var i=e.math.Long.fromNumber(Math.pow(n,8)),o=e.math.Long.ZERO,s=0;s=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_},e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(e.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var t=0!=this.high_?this.high_:this.low_,r=31;r>0&&0==(t&1<0},e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},e.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.subtract(e).isNegative()?-1:1},e.math.Long.prototype.negate=function(){return this.equals(e.math.Long.MIN_VALUE)?e.math.Long.MIN_VALUE:this.not().add(e.math.Long.ONE)},e.math.Long.prototype.add=function(t){var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,o=65535&this.low_,s=t.high_>>>16,A=65535&t.high_,a=t.low_>>>16,c=0,u=0,l=0,h=0;return l+=(h+=o+(65535&t.low_))>>>16,h&=65535,u+=(l+=i+a)>>>16,l&=65535,c+=(u+=n+A)>>>16,u&=65535,c+=r+s,c&=65535,e.math.Long.fromBits(l<<16|h,c<<16|u)},e.math.Long.prototype.subtract=function(e){return this.add(e.negate())},e.math.Long.prototype.multiply=function(t){if(this.isZero())return e.math.Long.ZERO;if(t.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE))return t.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(t.equals(e.math.Long.MIN_VALUE))return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().multiply(t.negate()):this.negate().multiply(t).negate();if(t.isNegative())return this.multiply(t.negate()).negate();if(this.lessThan(e.math.Long.TWO_PWR_24_)&&t.lessThan(e.math.Long.TWO_PWR_24_))return e.math.Long.fromNumber(this.toNumber()*t.toNumber());var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,o=65535&this.low_,s=t.high_>>>16,A=65535&t.high_,a=t.low_>>>16,c=65535&t.low_,u=0,l=0,h=0,g=0;return h+=(g+=o*c)>>>16,g&=65535,l+=(h+=i*c)>>>16,h&=65535,l+=(h+=o*a)>>>16,h&=65535,u+=(l+=n*c)>>>16,l&=65535,u+=(l+=i*a)>>>16,l&=65535,u+=(l+=o*A)>>>16,l&=65535,u+=r*c+n*a+i*A+o*s,u&=65535,e.math.Long.fromBits(h<<16|g,u<<16|l)},e.math.Long.prototype.div=function(t){if(t.isZero())throw Error("division by zero");if(this.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE)){if(t.equals(e.math.Long.ONE)||t.equals(e.math.Long.NEG_ONE))return e.math.Long.MIN_VALUE;if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ONE;if((i=this.shiftRight(1).div(t).shiftLeft(1)).equals(e.math.Long.ZERO))return t.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE;var r=this.subtract(t.multiply(i));return i.add(r.div(t))}if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().div(t.negate()):this.negate().div(t).negate();if(t.isNegative())return this.div(t.negate()).negate();var n=e.math.Long.ZERO;for(r=this;r.greaterThanOrEqual(t);){for(var i=Math.max(1,Math.floor(r.toNumber()/t.toNumber())),o=Math.ceil(Math.log(i)/Math.LN2),s=o<=48?1:Math.pow(2,o-48),A=e.math.Long.fromNumber(i),a=A.multiply(t);a.isNegative()||a.greaterThan(r);)i-=s,a=(A=e.math.Long.fromNumber(i)).multiply(t);A.isZero()&&(A=e.math.Long.ONE),n=n.add(A),r=r.subtract(a)}return n},e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)},e.math.Long.prototype.and=function(t){return e.math.Long.fromBits(this.low_&t.low_,this.high_&t.high_)},e.math.Long.prototype.or=function(t){return e.math.Long.fromBits(this.low_|t.low_,this.high_|t.high_)},e.math.Long.prototype.xor=function(t){return e.math.Long.fromBits(this.low_^t.low_,this.high_^t.high_)},e.math.Long.prototype.shiftLeft=function(t){if(0==(t&=63))return this;var r=this.low_;if(t<32){var n=this.high_;return e.math.Long.fromBits(r<>>32-t)}return e.math.Long.fromBits(0,r<>>t|r<<32-t,r>>t)}return e.math.Long.fromBits(r>>t-32,r>=0?0:-1)},e.math.Long.prototype.shiftRightUnsigned=function(t){if(0==(t&=63))return this;var r=this.high_;if(t<32){var n=this.low_;return e.math.Long.fromBits(n>>>t|r<<32-t,r>>>t)}return 32==t?e.math.Long.fromBits(r,0):e.math.Long.fromBits(r>>>t-32,0)};var t,r="Modern Browser";function n(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function i(){return new n(null)}"Microsoft Internet Explorer"==r?(n.prototype.am=function(e,t,r,n,i,o){for(var s=32767&t,A=t>>15;--o>=0;){var a=32767&this[e],c=this[e++]>>15,u=A*a+c*s;i=((a=s*a+((32767&u)<<15)+r[n]+(1073741823&i))>>>30)+(u>>>15)+A*c+(i>>>30),r[n++]=1073741823&a}return i},t=30):"Netscape"!=r?(n.prototype.am=function(e,t,r,n,i,o){for(;--o>=0;){var s=t*this[e++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},t=26):(n.prototype.am=function(e,t,r,n,i,o){for(var s=16383&t,A=t>>14;--o>=0;){var a=16383&this[e],c=this[e++]>>14,u=A*a+c*s;i=((a=s*a+((16383&u)<<14)+r[n]+i)>>28)+(u>>14)+A*c,r[n++]=268435455&a}return i},t=28),n.prototype.DB=t,n.prototype.DM=(1<>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function h(e){this.m=e}function g(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<=0?e.mod(this.m):e},h.prototype.revert=function(e){return e},h.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},h.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},h.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},g.prototype.convert=function(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t},g.prototype.revert=function(e){var t=i();return e.copyTo(t),this.reduce(t),t},g.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},g.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},n.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},n.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+DV:this.t=0},n.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var i=e.length,o=!1,s=0;--i>=0;){var A=8==r?255&e[i]:c(e,i);A<0?"-"==e.charAt(i)&&(o=!0):(o=!1,0==s?this[this.t++]=A:s+r>this.DB?(this[this.t-1]|=(A&(1<>this.DB-s):this[this.t-1]|=A<=this.DB&&(s-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==e;)--this.t},n.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},n.prototype.drShiftTo=function(e,t){for(var r=e;r=0;--r)t[r+s+1]=this[r]>>i|A,A=(this[r]&o)<=0;--r)t[r]=0;t[s]=A,t.t=this.t+s+1,t.s=this.s,t.clamp()},n.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(t[this.t-r-1]|=(this.s&o)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:n>0&&(t[r++]=n),t.t=r,t.clamp()},n.prototype.multiplyTo=function(e,t){var r=this.abs(),i=e.abs(),o=r.t;for(t.t=o+i.t;--o>=0;)t[o]=0;for(o=0;o=0;)e[r]=0;for(r=0;r=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},n.prototype.divRemTo=function(e,t,r){var o=e.abs();if(!(o.t<=0)){var s=this.abs();if(s.t0?(o.lShiftTo(u,A),s.lShiftTo(u,r)):(o.copyTo(A),s.copyTo(r));var h=A.t,g=A[h-1];if(0!=g){var f=g*(1<1?A[h-2]>>this.F2:0),p=this.FV/f,d=(1<=0&&(r[r.t++]=1,r.subTo(m,r)),n.ONE.dlShiftTo(h,m),m.subTo(A,A);A.t=0;){var y=r[--E]==g?this.DM:Math.floor(r[E]*p+(r[E-1]+C)*d);if((r[E]+=A.am(0,y,r,I,0,h))0&&r.rShiftTo(u,r),a<0&&n.ZERO.subTo(r,r)}}},n.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},n.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},n.prototype.exp=function(e,t){if(e>4294967295||e<1)return n.ONE;var r=i(),o=i(),s=t.convert(this),A=l(e)-1;for(s.copyTo(r);--A>=0;)if(t.sqrTo(r,o),(e&1<0)t.mulTo(o,s,r);else{var a=r;r=o,o=a}return t.revert(r)},n.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<0)for(A>A)>0&&(i=!0,o=a(r));s>=0;)A>(A+=this.DB-t)):(r=this[s]>>(A-=t)&n,A<=0&&(A+=this.DB,--s)),r>0&&(i=!0),i&&(o+=a(r));return i?o:"0"},n.prototype.negate=function(){var e=i();return n.ZERO.subTo(this,e),e},n.prototype.abs=function(){return this.s<0?this.negate():this},n.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},n.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+l(this[this.t-1]^this.s&this.DM)},n.prototype.mod=function(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t},n.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new h(t):new g(t),this.exp(e,r)},n.ZERO=u(0),n.ONE=u(1),n.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),i=Math.pow(t,r),o=!1,s=0,A=0,a=0;a=r&&(this.dMultiply(i),this.dAddOffset(A,0),s=0,A=0))}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(A,0)),o&&n.ZERO.subTo(this,this)},n.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},n.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},n.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},n.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},n.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=u(r),o=i(),s=i(),A="";for(this.divRemTo(n,o,s);o.signum()>0;)A=(r+s.intValue()).toString(e).substr(1)+A,o.divRemTo(n,o,s);return s.intValue().toString(e)+A},n.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t[r++]=n:n<-1&&(t[r++]=this.DV+n),t.t=r,t.clamp()};var f={abs:function(t,r){var n,i=new e.math.Long(t,r);n=i.isNegative()?i.negate():i,HEAP32[tempDoublePtr>>2]=n.low_,HEAP32[tempDoublePtr+4>>2]=n.high_},ensureTemps:function(){f.ensuredTemps||(f.ensuredTemps=!0,f.two32=new n,f.two32.fromString("4294967296",10),f.two64=new n,f.two64.fromString("18446744073709551616",10),f.temp1=new n,f.temp2=new n)},lh2bignum:function(e,t){var r=new n;r.fromString(t.toString(),10);var i=new n;r.multiplyTo(f.two32,i);var o=new n;o.fromString(e.toString(),10);var s=new n;return o.addTo(i,s),s},stringify:function(t,r,i){var o=new e.math.Long(t,r).toString();if(i&&"-"==o[0]){f.ensureTemps();var s=new n;s.fromString(o,10),o=new n,f.two64.addTo(s,o),o=o.toString(10)}return o},fromString:function(t,r,i,o,s){f.ensureTemps();var A=new n;A.fromString(t,r);var a=new n;a.fromString(i,10);var c=new n;if(c.fromString(o,10),s&&A.compareTo(n.ZERO)<0){var u=new n;A.addTo(f.two64,u),A=u}var l=!1;A.compareTo(a)<0?(A=a,l=!0):A.compareTo(c)>0&&(A=c,l=!0);var h=e.math.Long.fromString(A.toString());if(HEAP32[tempDoublePtr>>2]=h.low_,HEAP32[tempDoublePtr+4>>2]=h.high_,l)throw"range error"}};return f}(),initialStackTop;if(memoryInitializer)if("function"==typeof Module.locateFile?memoryInitializer=Module.locateFile(memoryInitializer):Module.memoryInitializerPrefixURL&&(memoryInitializer=Module.memoryInitializerPrefixURL+memoryInitializer),ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module.readBinary(memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else addRunDependency("memory initializer"),Browser.asyncLoad(memoryInitializer,(function(e){HEAPU8.set(e,STATIC_BASE),removeRunDependency("memory initializer")}),(function(e){throw"could not load memory initializer "+memoryInitializer}));function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms"),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e){if(!Module.noExitRuntime)throw ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",(function(){process.exit(e)})),console.log(" "),setTimeout((function(){process.exit(e)}),500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){e&&(Module.print(e),Module.printErr(e)),ABORT=!0,EXITSTATUS=1;throw"abort() at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."}if(dependenciesFulfilled=function e(){!Module.calledRun&&shouldRunNow&&run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ensureInitRuntime();var t=e.length+1;function r(){for(var e=0;e<3;e++)n.push(0)}var n=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];r();for(var i=0;i0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();var origMalloc=Module._malloc,origFree=Module._free,MEMSTATS={totalMemory:Module.HEAPU8.length,heapUsed:0},MEMSTATS_DATA={pointerToSizeMap:{},getSizeOfPointer:function(e){return MEMSTATS_DATA.pointerToSizeMap[e]}};Module.MEMSTATS=MEMSTATS,Module.MEMSTATS_DATA=MEMSTATS_DATA;var hookedMalloc=function(e){var t=origMalloc(e);return t?(MEMSTATS.heapUsed+=e,MEMSTATS_DATA.pointerToSizeMap[t]=e,t):0},hookedFree=function(e){return e&&(MEMSTATS.heapUsed-=MEMSTATS_DATA.getSizeOfPointer(e)||0,delete MEMSTATS_DATA.pointerToSizeMap[e]),origFree(e)},setInnerMalloc,setInnerFree;return Module._malloc=hookedMalloc,Module._free=hookedFree,_malloc=hookedMalloc,_free=hookedFree,setInnerMalloc&&(setInnerMalloc(hookedMalloc),setInnerFree(hookedFree)),module.exports},module.exports=C_MINISAT},73789:(e,t,r)=>{var n,i=r(98312),o=r(5817);(n=function(){var e=this._C=i();this._native={getStackPointer:function(){return e.Runtime.stackSave()},setStackPointer:function(t){e.Runtime.stackRestore(t)},allocateBytes:function(t){return e.allocate(t,"i8",e.ALLOC_STACK)},pushString:function(t){return this.allocateBytes(e.intArrayFromString(t))},savingStack:function(t){var r=this.getStackPointer();try{return t(this,e)}finally{this.setStackPointer(r)}}},e._createTheSolver(),this._clauses=[]}).prototype.ensureVar=function(e){this._C._ensureVar(e)},n.prototype.addClause=function(e){return this._clauses.push(e),this._native.savingStack((function(t,r){var n=r.allocate(4*(e.length+1),"i32",r.ALLOC_STACK);return o.each(e,(function(e,t){r.setValue(n+4*t,e,"i32")})),r.setValue(n+4*e.length,0,"i32"),!!r._addClause(n)}))},n.prototype.solve=function(){return!!this._C._solve()},n.prototype.solveAssuming=function(e){return!!this._C._solveAssuming(e)},n.prototype.getSolution=function(){for(var e=[null],t=this._C,r=t._getNumVars(),n=t._getSolution(),i=0;i>>1,A=1&o?-1:1;n[i]=s*A}return n},e.exports=n},55737:e=>{"use strict";e.exports=e=>{const t={};for(const[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}},46227:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),{promisify:o}=r(31669),s=r(95584).satisfies(process.version,">=10.12.0"),A=e=>{if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(i.parse(e).root,""))){const t=new Error("Path contains invalid characters: "+e);throw t.code="EINVAL",t}}},a=e=>({...{mode:511,fs:n},...e}),c=e=>{const t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t};e.exports=async(e,t)=>{A(e),t=a(t);const r=o(t.fs.mkdir),u=o(t.fs.stat);if(s&&t.fs.mkdir===n.mkdir){const n=i.resolve(e);return await r(n,{mode:t.mode,recursive:!0}),n}const l=async e=>{try{return await r(e,t.mode),e}catch(t){if("EPERM"===t.code)throw t;if("ENOENT"===t.code){if(i.dirname(e)===e)throw c(e);if(t.message.includes("null bytes"))throw t;return await l(i.dirname(e)),l(e)}try{if(!(await u(e)).isDirectory())throw new Error("The path is not a directory")}catch(e){throw t}return e}};return l(i.resolve(e))},e.exports.sync=(e,t)=>{if(A(e),t=a(t),s&&t.fs.mkdirSync===n.mkdirSync){const r=i.resolve(e);return n.mkdirSync(r,{mode:t.mode,recursive:!0}),r}const r=e=>{try{t.fs.mkdirSync(e,t.mode)}catch(n){if("EPERM"===n.code)throw n;if("ENOENT"===n.code){if(i.dirname(e)===e)throw c(e);if(n.message.includes("null bytes"))throw n;return r(i.dirname(e)),r(e)}try{if(!t.fs.statSync(e).isDirectory())throw new Error("The path is not a directory")}catch(e){throw n}}return e};return r(i.resolve(e))}},55598:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=Array.prototype.slice;function o(e,t){if(Array.isArray(e))for(let r=0,n=e.length;r0||(t=!1,u())}function o(e){function t(){e.removeListener("merge2UnpipeEnd",t),e.removeListener("end",t),i()}if(e._readableState.endEmitted)return i();e.on("merge2UnpipeEnd",t),e.on("end",t),e.pipe(a,{end:!1}),e.resume()}for(let e=0;e{"use strict";const n=r(31669),i=r(12235),o=r(54722),s=r(3598),A=e=>"string"==typeof e&&(""===e||"./"===e),a=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,i=new Set,s=new Set,A=0,a=e=>{s.add(e.output),r&&r.onResult&&r.onResult(e)};for(let s=0;s!n.has(e));if(r&&0===c.length){if(!0===r.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===r.nonull||!0===r.nullglob)return r.unescape?t.map(e=>e.replace(/\\/g,"")):t}return c};a.match=a,a.matcher=(e,t)=>o(e,t),a.any=a.isMatch=(e,t,r)=>o(t,r)(e),a.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,i=[],o=a(e,t,{...r,onResult:e=>{r.onResult&&r.onResult(e),i.push(e.output)}});for(let e of i)o.includes(e)||n.add(e);return[...n]},a.contains=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>a.contains(e,t,r));if("string"==typeof t){if(A(e)||A(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return a.isMatch(e,t,{...r,contains:!0})},a.matchKeys=(e,t,r)=>{if(!s.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=a(Object.keys(e),t,r),i={};for(let t of n)i[t]=e[t];return i},a.some=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(n.some(e=>t(e)))return!0}return!1},a.every=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(!n.every(e=>t(e)))return!1}return!0},a.all=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);return[].concat(t).every(t=>o(t,r)(e))},a.capture=(e,t,r)=>{let n=s.isWindows(r),i=o.makeRe(String(e),{...r,capture:!0}).exec(n?s.toPosixSlashes(t):t);if(i)return i.slice(1).map(e=>void 0===e?"":e)},a.makeRe=(...e)=>o.makeRe(...e),a.scan=(...e)=>o.scan(...e),a.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let e of i(String(n),t))r.push(o.parse(e,t));return r},a.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!/\{.*\}/.test(e)?[e]:i(e,t)},a.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return a.braces(e,{...t,expand:!0})},e.exports=a},81573:e=>{"use strict";const t=(e,t)=>{for(const r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};e.exports=t,e.exports.default=t},65007:e=>{"use strict";const t=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},60102:e=>{"use strict";const t=["aborted","complete","destroy","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},52670:(e,t,r)=>{e.exports=u,u.Minimatch=l;var n={sep:"/"};try{n=r(85622)}catch(e){}var i=u.GLOBSTAR=l.GLOBSTAR={},o=r(1289),s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},A="().*{}+?[]^$\\!".split("").reduce((function(e,t){return e[t]=!0,e}),{});var a=/\/+/;function c(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach((function(e){r[e]=t[e]})),Object.keys(e).forEach((function(t){r[t]=e[t]})),r}function u(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new l(t,r).match(e))}function l(e,t){if(!(this instanceof l))return new l(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==n.sep&&(e=e.split(n.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function h(e,t){if(t||(t=this instanceof l?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:o(e)}u.filter=function(e,t){return t=t||{},function(r,n,i){return u(r,e,t)}},u.defaults=function(e){if(!e||!Object.keys(e).length)return u;var t=u,r=function(r,n,i){return t.minimatch(r,n,c(e,i))};return r.Minimatch=function(r,n){return new t.Minimatch(r,c(e,n))},r},l.defaults=function(e){return e&&Object.keys(e).length?u.defaults(e).Minimatch:l},l.prototype.debug=function(){},l.prototype.make=function(){if(this._made)return;var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,r),r=this.globParts=r.map((function(e){return e.split(a)})),this.debug(this.pattern,r),r=r.map((function(e,t,r){return e.map(this.parse,this)}),this),this.debug(this.pattern,r),r=r.filter((function(e){return-1===e.indexOf(!1)})),this.debug(this.pattern,r),this.set=r},l.prototype.parseNegate=function(){var e=this.pattern,t=!1,r=this.options,n=0;if(r.nonegate)return;for(var i=0,o=e.length;i65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return i;if(""===e)return"";var n,o="",a=!!r.nocase,c=!1,u=[],l=[],h=!1,f=-1,p=-1,d="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",C=this;function E(){if(n){switch(n){case"*":o+="[^/]*?",a=!0;break;case"?":o+="[^/]",a=!0;break;default:o+="\\"+n}C.debug("clearStateChar %j %j",n,o),n=!1}}for(var I,m=0,y=e.length;m-1;S--){var k=l[S],x=o.slice(0,k.reStart),F=o.slice(k.reStart,k.reEnd-8),M=o.slice(k.reEnd-8,k.reEnd),N=o.slice(k.reEnd);M+=N;var R=x.split("(").length-1,K=N;for(m=0;m=0&&!(i=e[o]);o--);for(o=0;o>> no match, partial?",e,h,t,g),h!==A))}if("string"==typeof u?(c=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(o===A&&s===a)return!0;if(o===A)return r;if(s===a)return o===A-1&&""===e[o];throw new Error("wtf?")}},44380:(e,t,r)=>{"use strict";const n=r(28614),i=r(80800),o=r(24304).StringDecoder,s=Symbol("EOF"),A=Symbol("maybeEmitEnd"),a=Symbol("emittedEnd"),c=Symbol("emittingEnd"),u=Symbol("closed"),l=Symbol("read"),h=Symbol("flush"),g=Symbol("flushChunk"),f=Symbol("encoding"),p=Symbol("decoder"),d=Symbol("flowing"),C=Symbol("paused"),E=Symbol("resume"),I=Symbol("bufferLength"),m=Symbol("bufferPush"),y=Symbol("bufferShift"),w=Symbol("objectMode"),B=Symbol("destroyed"),Q="1"!==global._MP_NO_ITERATOR_SYMBOLS_,v=Q&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),D=Q&&Symbol.iterator||Symbol("iterator not implemented"),b=Buffer.alloc?Buffer:r(13499).Buffer,S=e=>"end"===e||"finish"===e||"prefinish"===e;e.exports=class e extends n{constructor(e){super(),this[d]=!1,this[C]=!1,this.pipes=new i,this.buffer=new i,this[w]=e&&e.objectMode||!1,this[w]?this[f]=null:this[f]=e&&e.encoding||null,"buffer"===this[f]&&(this[f]=null),this[p]=this[f]?new o(this[f]):null,this[s]=!1,this[a]=!1,this[c]=!1,this[u]=!1,this.writable=!0,this.readable=!0,this[I]=0,this[B]=!1}get bufferLength(){return this[I]}get encoding(){return this[f]}set encoding(e){if(this[w])throw new Error("cannot set encoding in objectMode");if(this[f]&&e!==this[f]&&(this[p]&&this[p].lastNeed||this[I]))throw new Error("cannot change encoding");this[f]!==e&&(this[p]=e?new o(e):null,this.buffer.length&&(this.buffer=this.buffer.map(e=>this[p].write(e)))),this[f]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[w]}set objectMode(e){this[w]=this[w]||!!e}write(e,t,r){if(this[s])throw new Error("write after end");if(this[B])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;var n;if("function"==typeof t&&(r=t,t="utf8"),t||(t="utf8"),this[w]||b.isBuffer(e)||(n=e,!b.isBuffer(n)&&ArrayBuffer.isView(n)?e=b.from(e.buffer,e.byteOffset,e.byteLength):(e=>e instanceof ArrayBuffer||"object"==typeof e&&e.constructor&&"ArrayBuffer"===e.constructor.name&&e.byteLength>=0)(e)?e=b.from(e):"string"!=typeof e&&(this.objectMode=!0)),!this.objectMode&&!e.length){const e=this.flowing;return 0!==this[I]&&this.emit("readable"),r&&r(),e}"string"!=typeof e||this[w]||t===this[f]&&!this[p].lastNeed||(e=b.from(e,t)),b.isBuffer(e)&&this[f]&&(e=this[p].write(e));try{return this.flowing?(this.emit("data",e),this.flowing):(this[m](e),!1)}finally{0!==this[I]&&this.emit("readable"),r&&r()}}read(e){if(this[B])return null;try{return 0===this[I]||0===e||e>this[I]?null:(this[w]&&(e=null),this.buffer.length>1&&!this[w]&&(this.encoding?this.buffer=new i([Array.from(this.buffer).join("")]):this.buffer=new i([b.concat(Array.from(this.buffer),this[I])])),this[l](e||null,this.buffer.head.value))}finally{this[A]()}}[l](e,t){return e===t.length||null===e?this[y]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[I]-=e),this.emit("data",t),this.buffer.length||this[s]||this.emit("drain"),t}end(e,t,r){return"function"==typeof e&&(r=e,e=null),"function"==typeof t&&(r=t,t="utf8"),e&&this.write(e,t),r&&this.once("end",r),this[s]=!0,this.writable=!1,!this.flowing&&this[C]||this[A](),this}[E](){this[B]||(this[C]=!1,this[d]=!0,this.emit("resume"),this.buffer.length?this[h]():this[s]?this[A]():this.emit("drain"))}resume(){return this[E]()}pause(){this[d]=!1,this[C]=!0}get destroyed(){return this[B]}get flowing(){return this[d]}get paused(){return this[C]}[m](e){return this[w]?this[I]+=1:this[I]+=e.length,this.buffer.push(e)}[y](){return this.buffer.length&&(this[w]?this[I]-=1:this[I]-=this.buffer.head.value.length),this.buffer.shift()}[h](){do{}while(this[g](this[y]()));this.buffer.length||this[s]||this.emit("drain")}[g](e){return!!e&&(this.emit("data",e),this.flowing)}pipe(e,t){if(this[B])return;const r=this[a];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=!1!==t.end;const n={dest:e,opts:t,ondrain:e=>this[E]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[E](),r&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{"data"!==e||this.pipes.length||this.flowing?S(e)&&this[a]&&(super.emit(e),this.removeAllListeners(e)):this[E]()}}get emittedEnd(){return this[a]}[A](){this[c]||this[a]||this[B]||0!==this.buffer.length||!this[s]||(this[c]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[u]&&this.emit("close"),this[c]=!1)}emit(e,t){if("error"!==e&&"close"!==e&&e!==B&&this[B])return;if("data"===e){if(!t)return;this.pipes.length&&this.pipes.forEach(e=>!1===e.dest.write(t)&&this.pause())}else if("end"===e){if(!0===this[a])return;this[a]=!0,this.readable=!1,this[p]&&(t=this[p].end())&&(this.pipes.forEach(e=>e.dest.write(t)),super.emit("data",t)),this.pipes.forEach(e=>{e.dest.removeListener("drain",e.ondrain),e.opts.end&&e.dest.end()})}else if("close"===e&&(this[u]=!0,!this[a]&&!this[B]))return;const r=new Array(arguments.length);if(r[0]=e,r[1]=t,arguments.length>2)for(let e=2;e{e.push(t),e.dataLength+=t.length}),this.promise().then(()=>e)}concat(){return this[w]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[w]?Promise.reject(new Error("cannot concat in objectMode")):this[f]?e.join(""):b.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(B,()=>t(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",e=>t(e))})}[v](){return{next:()=>{const e=this.read();if(null!==e)return Promise.resolve({done:!1,value:e});if(this[s])return Promise.resolve({done:!0});let t=null,r=null;const n=e=>{this.removeListener("data",i),this.removeListener("end",o),r(e)},i=e=>{this.removeListener("error",n),this.removeListener("end",o),this.pause(),t({value:e,done:!!this[s]})},o=()=>{this.removeListener("error",n),this.removeListener("data",i),t({done:!0})},A=()=>n(new Error("stream destroyed"));return new Promise((e,s)=>{r=s,t=e,this.once(B,A),this.once("error",n),this.once("end",o),this.once("data",i)})}}}[D](){return{next:()=>{const e=this.read();return{value:e,done:null===e}}}}destroy(e){return this[B]?(e?this.emit("error",e):this.emit(B),this):(this[B]=!0,this.buffer=new i,this[I]=0,"function"!=typeof this.close||this[u]||this.close(),e?this.emit("error",e):this.emit(B),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof n&&("function"==typeof t.pipe||"function"==typeof t.write&&"function"==typeof t.end))}}},90051:e=>{e.exports=Object.freeze({Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,ZLIB_VERNUM:4736,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1})},20671:(e,t,r)=>{"use strict";const n=r(42357),i=r(64293).Buffer,o=r(78761),s=t.constants=r(90051),A=r(44380),a=i.concat;class c extends Error{constructor(e,t){super("zlib: "+e),this.errno=t,this.code=u.get(t)}get name(){return"ZlibError"}}const u=new Map([[s.Z_OK,"Z_OK"],[s.Z_STREAM_END,"Z_STREAM_END"],[s.Z_NEED_DICT,"Z_NEED_DICT"],[s.Z_ERRNO,"Z_ERRNO"],[s.Z_STREAM_ERROR,"Z_STREAM_ERROR"],[s.Z_DATA_ERROR,"Z_DATA_ERROR"],[s.Z_MEM_ERROR,"Z_MEM_ERROR"],[s.Z_BUF_ERROR,"Z_BUF_ERROR"],[s.Z_VERSION_ERROR,"Z_VERSION_ERROR"]]),l=new Set([s.Z_NO_FLUSH,s.Z_PARTIAL_FLUSH,s.Z_SYNC_FLUSH,s.Z_FULL_FLUSH,s.Z_FINISH,s.Z_BLOCK]),h=new Set([s.Z_FILTERED,s.Z_HUFFMAN_ONLY,s.Z_RLE,s.Z_FIXED,s.Z_DEFAULT_STRATEGY]),g=Symbol("opts"),f=Symbol("flushFlag"),p=Symbol("finishFlush"),d=Symbol("handle"),C=Symbol("onError"),E=Symbol("level"),I=Symbol("strategy"),m=Symbol("ended");class y extends A{constructor(e,t){if(super(e),this[m]=!1,this[g]=e=e||{},e.flush&&!l.has(e.flush))throw new TypeError("Invalid flush flag: "+e.flush);if(e.finishFlush&&!l.has(e.finishFlush))throw new TypeError("Invalid flush flag: "+e.finishFlush);if(this[f]=e.flush||s.Z_NO_FLUSH,this[p]=void 0!==e.finishFlush?e.finishFlush:s.Z_FINISH,e.chunkSize&&e.chunkSizes.Z_MAX_WINDOWBITS))throw new RangeError("Invalid windowBits: "+e.windowBits);if(e.level&&(e.levels.Z_MAX_LEVEL))throw new RangeError("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevels.Z_MAX_MEMLEVEL))throw new RangeError("Invalid memLevel: "+e.memLevel);if(e.strategy&&!h.has(e.strategy))throw new TypeError("Invalid strategy: "+e.strategy);if(e.dictionary&&!(e.dictionary instanceof i))throw new TypeError("Invalid dictionary: it should be a Buffer instance");this[d]=new o[t](e),this[C]=e=>{this.close();const t=new c(e.message,e.errno);this.emit("error",t)},this[d].on("error",this[C]);const r="number"==typeof e.level?e.level:s.Z_DEFAULT_COMPRESSION;var n="number"==typeof e.strategy?e.strategy:s.Z_DEFAULT_STRATEGY;this[E]=r,this[I]=n,this.once("end",this.close)}close(){this[d]&&(this[d].close(),this[d]=null,this.emit("close"))}params(e,t){if(!this[d])throw new Error("cannot switch params when binding is closed");if(!this[d].params)throw new Error("not supported in this implementation");if(es.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(!h.has(t))throw new TypeError("Invalid strategy: "+t);if(this[E]!==e||this[I]!==t){this.flush(s.Z_SYNC_FLUSH),n(this[d],"zlib binding closed");const r=this[d].flush;this[d].flush=(e,t)=>{this[d].flush=r,this.flush(e),t()},this[d].params(e,t),this[d]&&(this[E]=e,this[I]=t)}}reset(){return n(this[d],"zlib binding closed"),this[d].reset()}flush(e){if(void 0===e&&(e=s.Z_FULL_FLUSH),this.ended)return;const t=this[f];this[f]=e,this.write(i.alloc(0)),this[f]=t}end(e,t,r){return e&&this.write(e,t),this.flush(this[p]),this[m]=!0,super.end(null,null,r)}get ended(){return this[m]}write(e,t,r){"function"==typeof t&&(r=t,t="utf8"),"string"==typeof e&&(e=i.from(e,t)),n(this[d],"zlib binding closed");const o=this[d]._handle,s=o.close;o.close=()=>{};const A=this[d].close;let c,u;this[d].close=()=>{},i.concat=e=>e;try{c=this[d]._processChunk(e,this[f])}catch(e){this[C](e)}finally{i.concat=a,this[d]&&(this[d]._handle=o,o.close=s,this[d].close=A,this[d].removeAllListeners("error"))}if(c)if(Array.isArray(c)&&c.length>0){u=super.write(i.from(c[0]));for(let e=1;e{var n=r(85622),i=r(35747),o=parseInt("0777",8);function s(e,t,r,A){"function"==typeof t?(r=t,t={}):t&&"object"==typeof t||(t={mode:t});var a=t.mode,c=t.fs||i;void 0===a&&(a=o&~process.umask()),A||(A=null);var u=r||function(){};e=n.resolve(e),c.mkdir(e,a,(function(r){if(!r)return u(null,A=A||e);switch(r.code){case"ENOENT":s(n.dirname(e),t,(function(r,n){r?u(r,n):s(e,t,u,n)}));break;default:c.stat(e,(function(e,t){e||!t.isDirectory()?u(r,A):u(null,A)}))}}))}e.exports=s.mkdirp=s.mkdirP=s,s.sync=function e(t,r,s){r&&"object"==typeof r||(r={mode:r});var A=r.mode,a=r.fs||i;void 0===A&&(A=o&~process.umask()),s||(s=null),t=n.resolve(t);try{a.mkdirSync(t,A),s=s||t}catch(i){switch(i.code){case"ENOENT":s=e(n.dirname(t),r,s),e(t,r,s);break;default:var c;try{c=a.statSync(t)}catch(e){throw i}if(!c.isDirectory())throw i}}return s}},75319:(e,t,r)=>{var n=r(92413);function i(e){n.apply(this),e=e||{},this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=e.replace,this._prompt=e.prompt||null,this._hadControl=!1}function o(e){return function(){var t=this._dest,r=this._src;t&&t[e]&&t[e].apply(t,arguments),r&&r[e]&&r[e].apply(r,arguments)}}e.exports=i,i.prototype=Object.create(n.prototype),Object.defineProperty(i.prototype,"constructor",{value:i,enumerable:!1}),i.prototype.mute=function(){this.muted=!0},i.prototype.unmute=function(){this.muted=!1},Object.defineProperty(i.prototype,"_onpipe",{value:function(e){this._src=e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(i.prototype,"isTTY",{get:function(){return this._dest?this._dest.isTTY:!!this._src&&this._src.isTTY},set:function(e){Object.defineProperty(this,"isTTY",{value:e,enumerable:!0,writable:!0,configurable:!0})},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"rows",{get:function(){return this._dest?this._dest.rows:this._src?this._src.rows:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"columns",{get:function(){return this._dest?this._dest.columns:this._src?this._src.columns:void 0},enumerable:!0,configurable:!0}),i.prototype.pipe=function(e,t){return this._dest=e,n.prototype.pipe.call(this,e,t)},i.prototype.pause=function(){if(this._src)return this._src.pause()},i.prototype.resume=function(){if(this._src)return this._src.resume()},i.prototype.write=function(e){if(this.muted){if(!this.replace)return!0;if(e.match(/^\u001b/))return 0===e.indexOf(this._prompt)&&(e=(e=e.substr(this._prompt.length)).replace(/./g,this.replace),e=this._prompt+e),this._hadControl=!0,this.emit("data",e);this._prompt&&this._hadControl&&0===e.indexOf(this._prompt)&&(this._hadControl=!1,this.emit("data",this._prompt),e=e.substr(this._prompt.length)),e=e.toString().replace(/./g,this.replace)}this.emit("data",e)},i.prototype.end=function(e){this.muted&&(e=e&&this.replace?e.toString().replace(/./g,this.replace):null),e&&this.emit("data",e),this.emit("end")},i.prototype.destroy=o("destroy"),i.prototype.destroySoon=o("destroySoon"),i.prototype.close=o("close")},19793:(e,t,r)=>{"use strict";const n="undefined"==typeof URL?r(78835).URL:URL,i=(e,t)=>t.some(t=>t instanceof RegExp?t.test(e):t===e),o=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},Reflect.has(t,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(t,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(t,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(e=e.trim(),/^data:/i.test(e))return((e,{stripHash:t})=>{const r=e.match(/^data:(.*?),(.*?)(?:#(.*))?$/);if(!r)throw new Error("Invalid URL: "+e);const n=r[1].split(";"),i=r[2],o=t?"":r[3];let s=!1;"base64"===n[n.length-1]&&(n.pop(),s=!0);const A=(n.shift()||"").toLowerCase(),a=[...n.map(e=>{let[t,r=""]=e.split("=").map(e=>e.trim());return"charset"===t&&(r=r.toLowerCase(),"us-ascii"===r)?"":`${t}${r?"="+r:""}`}).filter(Boolean)];return s&&a.push("base64"),(0!==a.length||A&&"text/plain"!==A)&&a.unshift(A),`data:${a.join(";")},${s?i.trim():i}${o?"#"+o:""}`})(e,t);const r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));const o=new n(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&"https:"===o.protocol&&(o.protocol="http:"),t.forceHttps&&"http:"===o.protocol&&(o.protocol="https:"),t.stripAuthentication&&(o.username="",o.password=""),t.stripHash&&(o.hash=""),o.pathname&&(o.pathname=o.pathname.replace(/((?!:).|^)\/{2,}/g,(e,t)=>/^(?!\/)/g.test(t)?t+"/":"/")),o.pathname&&(o.pathname=decodeURI(o.pathname)),!0===t.removeDirectoryIndex&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=o.pathname.split("/");const r=e[e.length-1];i(r,t.removeDirectoryIndex)&&(e=e.slice(0,e.length-1),o.pathname=e.slice(1).join("/")+"/")}if(o.hostname&&(o.hostname=o.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(o.hostname)&&(o.hostname=o.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(const e of[...o.searchParams.keys()])i(e,t.removeQueryParameters)&&o.searchParams.delete(e);return t.sortQueryParameters&&o.searchParams.sort(),t.removeTrailingSlash&&(o.pathname=o.pathname.replace(/\/$/,"")),e=o.toString(),!t.removeTrailingSlash&&"/"!==o.pathname||""!==o.hash||(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};e.exports=o,e.exports.default=o},91162:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}e.exports=n(i),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0})}))},27180:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function o(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}e.exports=n(i),e.exports.strict=n(o),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})}))},90834:(e,t,r)=>{"use strict";const n=r(81573),i=new WeakMap,o=(e,t={})=>{if("function"!=typeof e)throw new TypeError("Expected a function");let r,o=!1,s=0;const A=e.displayName||e.name||"",a=function(...n){if(i.set(a,++s),o){if(!0===t.throw)throw new Error(`Function \`${A}\` can only be called once`);return r}return o=!0,r=e.apply(this,n),e=null,r};return n(a,e),i.set(a,s),a};e.exports=o,e.exports.default=o,e.exports.callCount=e=>{if(!i.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return i.get(e)}},82941:e=>{"use strict";var t="win32"===process.platform,r=t?/[^:]\\$/:/.\/$/;e.exports=function(){var e;return e=t?process.env.TEMP||process.env.TMP||(process.env.SystemRoot||process.env.windir)+"\\temp":process.env.TMPDIR||process.env.TMP||process.env.TEMP||"/tmp",r.test(e)&&(e=e.slice(0,-1)),e}},59351:e=>{"use strict";class t extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}class r{static fn(e){return(...t)=>new r((r,n,i)=>{t.push(i),e(...t).then(r,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,r)=>{this._reject=r;const n=e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(n,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(e=>{this._isPending=!1,t(e)},e=>{this._isPending=!1,r(e)},n)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._cancelHandlers.length>0)try{for(const e of this._cancelHandlers)e()}catch(e){this._reject(e)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new t(e))}}get isCanceled(){return this._isCanceled}}Object.setPrototypeOf(r.prototype,Promise.prototype),e.exports=r,e.exports.CancelError=t},61578:(e,t,r)=>{"use strict";const n=r(60550),i=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let r=0;const i=()=>{r--,t.length>0&&t.shift()()},o=(e,t,...o)=>{r++;const s=n(e,...o);t(s),s.then(i,i)},s=(n,...i)=>new Promise(s=>((n,i,...s)=>{rr},pendingCount:{get:()=>t.length}}),s};e.exports=i,e.exports.default=i},60550:e=>{"use strict";e.exports=(e,...t)=>new Promise(r=>{r(e(...t))})},71471:e=>{"use strict";function t(e){return"/"===e.charAt(0)}function r(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=Boolean(r&&":"!==r.charAt(1));return Boolean(t[2]||n)}e.exports="win32"===process.platform?r:t,e.exports.posix=t,e.exports.win32=r},37127:e=>{"use strict";const t=(e={})=>{const t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path"};e.exports=t,e.exports.default=t},5763:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747);async function o(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return(await n(i[e])(r))[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}function s(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return i[e](r)[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}t.isFile=o.bind(null,"stat","isFile"),t.isDirectory=o.bind(null,"stat","isDirectory"),t.isSymlink=o.bind(null,"lstat","isSymbolicLink"),t.isFileSync=s.bind(null,"statSync","isFile"),t.isDirectorySync=s.bind(null,"statSync","isDirectory"),t.isSymlinkSync=s.bind(null,"lstatSync","isSymbolicLink")},54722:(e,t,r)=>{"use strict";e.exports=r(18828)},71086:(e,t,r)=>{"use strict";const n=r(85622),i={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...i,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?o:i}},47974:(e,t,r)=>{"use strict";const n=r(71086),i=r(3598),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:s,REGEX_NON_SPECIAL_CHARS:A,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:c}=n,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map(e=>i.escapeRegex(e)).join("..")}return r},l=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,h=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=c[e]||e;const r={...t},h="number"==typeof r.maxLength?Math.min(o,r.maxLength):o;let g=e.length;if(g>h)throw new SyntaxError(`Input length: ${g}, exceeds maximum allowed length: ${h}`);const f={type:"bos",value:"",output:r.prepend||""},p=[f],d=r.capture?"":"?:",C=i.isWindows(t),E=n.globChars(C),I=n.extglobChars(E),{DOT_LITERAL:m,PLUS_LITERAL:y,SLASH_LITERAL:w,ONE_CHAR:B,DOTS_SLASH:Q,NO_DOT:v,NO_DOT_SLASH:D,NO_DOTS_SLASH:b,QMARK:S,QMARK_NO_DOT:k,STAR:x,START_ANCHOR:F}=E,M=e=>`(${d}(?:(?!${F}${e.dot?Q:m}).)*?)`,N=r.dot?"":v,R=r.dot?S:k;let K=!0===r.bash?M(r):x;r.capture&&(K=`(${K})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const L={input:e,index:-1,start:0,dot:!0===r.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:p};e=i.removePrefix(e,L),g=e.length;const T=[],P=[],U=[];let _,O=f;const j=()=>L.index===g-1,Y=L.peek=(t=1)=>e[L.index+t],G=L.advance=()=>e[++L.index],J=()=>e.slice(L.index+1),H=(e="",t=0)=>{L.consumed+=e,L.index+=t},q=e=>{L.output+=null!=e.output?e.output:e.value,H(e.value)},z=()=>{let e=1;for(;"!"===Y()&&("("!==Y(2)||"?"===Y(3));)G(),L.start++,e++;return e%2!=0&&(L.negated=!0,L.start++,!0)},W=e=>{L[e]++,U.push(e)},V=e=>{L[e]--,U.pop()},X=e=>{if("globstar"===O.type){const t=L.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||T.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(L.output=L.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=K,L.output+=O.output)}if(T.length&&"paren"!==e.type&&!I[e.value]&&(T[T.length-1].inner+=e.value),(e.value||e.output)&&q(e),O&&"text"===O.type&&"text"===e.type)return O.value+=e.value,void(O.output=(O.output||"")+e.value);e.prev=O,p.push(e),O=e},Z=(e,t)=>{const n={...I[t],conditions:1,inner:""};n.prev=O,n.parens=L.parens,n.output=L.output;const i=(r.capture?"(":"")+n.open;W("parens"),X({type:e,value:t,output:L.output?"":B}),X({type:"paren",extglob:!0,value:G(),output:i}),T.push(n)},$=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let n=K;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(n=M(r)),(n!==K||j()||/^\)+$/.test(J()))&&(t=e.close=")$))"+n),"bos"===e.prev.type&&j()&&(L.negatedExtglob=!0)}X({type:"paren",extglob:!0,value:_,output:t}),V("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,o=e.replace(a,(e,t,r,i,o,s)=>"\\"===i?(n=!0,e):"?"===i?t?t+i+(o?S.repeat(o.length):""):0===s?R+(o?S.repeat(o.length):""):S.repeat(r.length):"."===i?m.repeat(r.length):"*"===i?t?t+i+(o?K:""):K:t?e:"\\"+e);return!0===n&&(o=!0===r.unescape?o.replace(/\\/g,""):o.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),o===e&&!0===r.contains?(L.output=e,L):(L.output=i.wrapOutput(o,L,t),L)}for(;!j();){if(_=G(),"\0"===_)continue;if("\\"===_){const e=Y();if("/"===e&&!0!==r.bash)continue;if("."===e||";"===e)continue;if(!e){_+="\\",X({type:"text",value:_});continue}const t=/^\\+/.exec(J());let n=0;if(t&&t[0].length>2&&(n=t[0].length,L.index+=n,n%2!=0&&(_+="\\")),!0===r.unescape?_=G()||"":_+=G()||"",0===L.brackets){X({type:"text",value:_});continue}}if(L.brackets>0&&("]"!==_||"["===O.value||"[^"===O.value)){if(!1!==r.posix&&":"===_){const e=O.value.slice(1);if(e.includes("[")&&(O.posix=!0,e.includes(":"))){const e=O.value.lastIndexOf("["),t=O.value.slice(0,e),r=O.value.slice(e+2),n=s[r];if(n){O.value=t+n,L.backtrack=!0,G(),f.output||1!==p.indexOf(O)||(f.output=B);continue}}}("["===_&&":"!==Y()||"-"===_&&"]"===Y())&&(_="\\"+_),"]"!==_||"["!==O.value&&"[^"!==O.value||(_="\\"+_),!0===r.posix&&"!"===_&&"["===O.value&&(_="^"),O.value+=_,q({value:_});continue}if(1===L.quotes&&'"'!==_){_=i.escapeRegex(_),O.value+=_,q({value:_});continue}if('"'===_){L.quotes=1===L.quotes?0:1,!0===r.keepQuotes&&X({type:"text",value:_});continue}if("("===_){W("parens"),X({type:"paren",value:_});continue}if(")"===_){if(0===L.parens&&!0===r.strictBrackets)throw new SyntaxError(l("opening","("));const e=T[T.length-1];if(e&&L.parens===e.parens+1){$(T.pop());continue}X({type:"paren",value:_,output:L.parens?")":"\\)"}),V("parens");continue}if("["===_){if(!0!==r.nobracket&&J().includes("]"))W("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));_="\\"+_}X({type:"bracket",value:_});continue}if("]"===_){if(!0===r.nobracket||O&&"bracket"===O.type&&1===O.value.length){X({type:"text",value:_,output:"\\"+_});continue}if(0===L.brackets){if(!0===r.strictBrackets)throw new SyntaxError(l("opening","["));X({type:"text",value:_,output:"\\"+_});continue}V("brackets");const e=O.value.slice(1);if(!0===O.posix||"^"!==e[0]||e.includes("/")||(_="/"+_),O.value+=_,q({value:_}),!1===r.literalBrackets||i.hasRegexChars(e))continue;const t=i.escapeRegex(O.value);if(L.output=L.output.slice(0,-O.value.length),!0===r.literalBrackets){L.output+=t,O.value=t;continue}O.value=`(${d}${t}|${O.value})`,L.output+=O.value;continue}if("{"===_&&!0!==r.nobrace){W("braces");const e={type:"brace",value:_,output:"(",outputIndex:L.output.length,tokensIndex:L.tokens.length};P.push(e),X(e);continue}if("}"===_){const e=P[P.length-1];if(!0===r.nobrace||!e){X({type:"text",value:_,output:_});continue}let t=")";if(!0===e.dots){const e=p.slice(),n=[];for(let t=e.length-1;t>=0&&(p.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&n.unshift(e[t].value);t=u(n,r),L.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=L.output.slice(0,e.outputIndex),n=L.tokens.slice(e.tokensIndex);e.value=e.output="\\{",_=t="\\}",L.output=r;for(const e of n)L.output+=e.output||e.value}X({type:"brace",value:_,output:t}),V("braces"),P.pop();continue}if("|"===_){T.length>0&&T[T.length-1].conditions++,X({type:"text",value:_});continue}if(","===_){let e=_;const t=P[P.length-1];t&&"braces"===U[U.length-1]&&(t.comma=!0,e="|"),X({type:"comma",value:_,output:e});continue}if("/"===_){if("dot"===O.type&&L.index===L.start+1){L.start=L.index+1,L.consumed="",L.output="",p.pop(),O=f;continue}X({type:"slash",value:_,output:w});continue}if("."===_){if(L.braces>0&&"dot"===O.type){"."===O.value&&(O.output=m);const e=P[P.length-1];O.type="dots",O.output+=_,O.value+=_,e.dots=!0;continue}if(L.braces+L.parens===0&&"bos"!==O.type&&"slash"!==O.type){X({type:"text",value:_,output:m});continue}X({type:"dot",value:_,output:m});continue}if("?"===_){if(!(O&&"("===O.value)&&!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){Z("qmark",_);continue}if(O&&"paren"===O.type){const e=Y();let t=_;if("<"===e&&!i.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===O.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(J()))&&(t="\\"+_),X({type:"text",value:_,output:t});continue}if(!0!==r.dot&&("slash"===O.type||"bos"===O.type)){X({type:"qmark",value:_,output:k});continue}X({type:"qmark",value:_,output:S});continue}if("!"===_){if(!0!==r.noextglob&&"("===Y()&&("?"!==Y(2)||!/[!=<:]/.test(Y(3)))){Z("negate",_);continue}if(!0!==r.nonegate&&0===L.index){z();continue}}if("+"===_){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){Z("plus",_);continue}if(O&&"("===O.value||!1===r.regex){X({type:"plus",value:_,output:y});continue}if(O&&("bracket"===O.type||"paren"===O.type||"brace"===O.type)||L.parens>0){X({type:"plus",value:_});continue}X({type:"plus",value:y});continue}if("@"===_){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){X({type:"at",extglob:!0,value:_,output:""});continue}X({type:"text",value:_});continue}if("*"!==_){"$"!==_&&"^"!==_||(_="\\"+_);const e=A.exec(J());e&&(_+=e[0],L.index+=e[0].length),X({type:"text",value:_});continue}if(O&&("globstar"===O.type||!0===O.star)){O.type="star",O.star=!0,O.value+=_,O.output=K,L.backtrack=!0,L.globstar=!0,H(_);continue}let t=J();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Z("star",_);continue}if("star"===O.type){if(!0===r.noglobstar){H(_);continue}const n=O.prev,i=n.prev,o="slash"===n.type||"bos"===n.type,s=i&&("star"===i.type||"globstar"===i.type);if(!0===r.bash&&(!o||t[0]&&"/"!==t[0])){X({type:"star",value:_,output:""});continue}const A=L.braces>0&&("comma"===n.type||"brace"===n.type),a=T.length&&("pipe"===n.type||"paren"===n.type);if(!o&&"paren"!==n.type&&!A&&!a){X({type:"star",value:_,output:""});continue}for(;"/**"===t.slice(0,3);){const r=e[L.index+4];if(r&&"/"!==r)break;t=t.slice(3),H("/**",3)}if("bos"===n.type&&j()){O.type="globstar",O.value+=_,O.output=M(r),L.output=O.output,L.globstar=!0,H(_);continue}if("slash"===n.type&&"bos"!==n.prev.type&&!s&&j()){L.output=L.output.slice(0,-(n.output+O.output).length),n.output="(?:"+n.output,O.type="globstar",O.output=M(r)+(r.strictSlashes?")":"|$)"),O.value+=_,L.globstar=!0,L.output+=n.output+O.output,H(_);continue}if("slash"===n.type&&"bos"!==n.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";L.output=L.output.slice(0,-(n.output+O.output).length),n.output="(?:"+n.output,O.type="globstar",O.output=`${M(r)}${w}|${w}${e})`,O.value+=_,L.output+=n.output+O.output,L.globstar=!0,H(_+G()),X({type:"slash",value:"/",output:""});continue}if("bos"===n.type&&"/"===t[0]){O.type="globstar",O.value+=_,O.output=`(?:^|${w}|${M(r)}${w})`,L.output=O.output,L.globstar=!0,H(_+G()),X({type:"slash",value:"/",output:""});continue}L.output=L.output.slice(0,-O.output.length),O.type="globstar",O.output=M(r),O.value+=_,L.output+=O.output,L.globstar=!0,H(_);continue}const n={type:"star",value:_,output:K};!0!==r.bash?!O||"bracket"!==O.type&&"paren"!==O.type||!0!==r.regex?(L.index!==L.start&&"slash"!==O.type&&"dot"!==O.type||("dot"===O.type?(L.output+=D,O.output+=D):!0===r.dot?(L.output+=b,O.output+=b):(L.output+=N,O.output+=N),"*"!==Y()&&(L.output+=B,O.output+=B)),X(n)):(n.output=_,X(n)):(n.output=".*?","bos"!==O.type&&"slash"!==O.type||(n.output=N+n.output),X(n))}for(;L.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));L.output=i.escapeLast(L.output,"["),V("brackets")}for(;L.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing",")"));L.output=i.escapeLast(L.output,"("),V("parens")}for(;L.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","}"));L.output=i.escapeLast(L.output,"{"),V("braces")}if(!0===r.strictSlashes||"star"!==O.type&&"bracket"!==O.type||X({type:"maybe_slash",value:"",output:w+"?"}),!0===L.backtrack){L.output="";for(const e of L.tokens)L.output+=null!=e.output?e.output:e.value,e.suffix&&(L.output+=e.suffix)}return L};h.fastpaths=(e,t)=>{const r={...t},s="number"==typeof r.maxLength?Math.min(o,r.maxLength):o,A=e.length;if(A>s)throw new SyntaxError(`Input length: ${A}, exceeds maximum allowed length: ${s}`);e=c[e]||e;const a=i.isWindows(t),{DOT_LITERAL:u,SLASH_LITERAL:l,ONE_CHAR:h,DOTS_SLASH:g,NO_DOT:f,NO_DOTS:p,NO_DOTS_SLASH:d,STAR:C,START_ANCHOR:E}=n.globChars(a),I=r.dot?p:f,m=r.dot?d:f,y=r.capture?"":"?:";let w=!0===r.bash?".*?":C;r.capture&&(w=`(${w})`);const B=e=>!0===e.noglobstar?w:`(${y}(?:(?!${E}${e.dot?g:u}).)*?)`,Q=e=>{switch(e){case"*":return`${I}${h}${w}`;case".*":return`${u}${h}${w}`;case"*.*":return`${I}${w}${u}${h}${w}`;case"*/*":return`${I}${w}${l}${h}${m}${w}`;case"**":return I+B(r);case"**/*":return`(?:${I}${B(r)}${l})?${m}${h}${w}`;case"**/*.*":return`(?:${I}${B(r)}${l})?${m}${w}${u}${h}${w}`;case"**/.*":return`(?:${I}${B(r)}${l})?${u}${h}${w}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=Q(t[1]);if(!r)return;return r+u+t[2]}}},v=i.removePrefix(e,{negated:!1,prefix:""});let D=Q(v);return D&&!0!==r.strictSlashes&&(D+=l+"?"),D},e.exports=h},18828:(e,t,r)=>{"use strict";const n=r(85622),i=r(95321),o=r(47974),s=r(3598),A=r(71086),a=(e,t,r=!1)=>{if(Array.isArray(e)){const n=e.map(e=>a(e,t,r));return e=>{for(const t of n){const r=t(e);if(r)return r}return!1}}const n=(i=e)&&"object"==typeof i&&!Array.isArray(i)&&e.tokens&&e.input;var i;if(""===e||"string"!=typeof e&&!n)throw new TypeError("Expected pattern to be a non-empty string");const o=t||{},A=s.isWindows(t),c=n?a.compileRe(e,t):a.makeRe(e,t,!1,!0),u=c.state;delete c.state;let l=()=>!1;if(o.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};l=a(o.ignore,e,r)}const h=(r,n=!1)=>{const{isMatch:i,match:s,output:h}=a.test(r,c,t,{glob:e,posix:A}),g={glob:e,state:u,regex:c,posix:A,input:r,output:h,match:s,isMatch:i};return"function"==typeof o.onResult&&o.onResult(g),!1===i?(g.isMatch=!1,!!n&&g):l(r)?("function"==typeof o.onIgnore&&o.onIgnore(g),g.isMatch=!1,!!n&&g):("function"==typeof o.onMatch&&o.onMatch(g),!n||g)};return r&&(h.state=u),h};a.test=(e,t,r,{glob:n,posix:i}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},A=o.format||(i?s.toPosixSlashes:null);let c=e===n,u=c&&A?A(e):e;return!1===c&&(u=A?A(e):e,c=u===n),!1!==c&&!0!==o.capture||(c=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,i):t.exec(u)),{isMatch:Boolean(c),match:c,output:u}},a.matchBase=(e,t,r,i=s.isWindows(r))=>(t instanceof RegExp?t:a.makeRe(t,r)).test(n.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map(e=>a.parse(e,t)):o(e,{...t,fastpaths:!1}),a.scan=(e,t)=>i(e,t),a.compileRe=(e,t,r=!1,n=!1)=>{if(!0===r)return e.output;const i=t||{},o=i.contains?"":"^",s=i.contains?"":"$";let A=`${o}(?:${e.output})${s}`;e&&!0===e.negated&&(A=`^(?!${A}).*$`);const c=a.toRegex(A,t);return!0===n&&(c.state=e),c},a.makeRe=(e,t,r=!1,n=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let s,A={negated:!1,fastpaths:!0},c="";return e.startsWith("./")&&(e=e.slice(2),c=A.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(s=o.fastpaths(e,t)),void 0===s?(A=o(e,t),A.prefix=c+(A.prefix||"")):A.output=s,a.compileRe(A,t,r,n)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=A,e.exports=a},95321:(e,t,r)=>{"use strict";const n=r(3598),{CHAR_ASTERISK:i,CHAR_AT:o,CHAR_BACKWARD_SLASH:s,CHAR_COMMA:A,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_PLUS:f,CHAR_QUESTION_MARK:p,CHAR_RIGHT_CURLY_BRACE:d,CHAR_RIGHT_PARENTHESES:C,CHAR_RIGHT_SQUARE_BRACKET:E}=r(71086),I=e=>e===u||e===s,m=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},y=e.length-1,w=!0===r.parts||!0===r.scanToEnd,B=[],Q=[],v=[];let D,b,S=e,k=-1,x=0,F=0,M=!1,N=!1,R=!1,K=!1,L=!1,T=!1,P=!1,U=!1,_=!1,O=0,j={value:"",depth:0,isGlob:!1};const Y=()=>k>=y,G=()=>(D=b,S.charCodeAt(++k));for(;k0&&(H=S.slice(0,x),S=S.slice(x),F-=x),J&&!0===R&&F>0?(J=S.slice(0,F),q=S.slice(F)):!0===R?(J="",q=S):J=S,J&&""!==J&&"/"!==J&&J!==S&&I(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(q&&(q=n.removeBackslashes(q)),J&&!0===P&&(J=n.removeBackslashes(J)));const z={prefix:H,input:e,start:x,base:J,glob:q,isBrace:M,isBracket:N,isGlob:R,isExtglob:K,isGlobstar:L,negated:U};if(!0===r.tokens&&(z.maxDepth=0,I(b)||Q.push(j),z.tokens=Q),!0===r.parts||!0===r.tokens){let t;for(let n=0;n{"use strict";const n=r(85622),i="win32"===process.platform,{REGEX_BACKSLASH:o,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:A,REGEX_SPECIAL_CHARS_GLOBAL:a}=r(71086);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>A.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(a,"\\$1"),t.toPosixSlashes=e=>e.replace(o,"/"),t.removeBackslashes=e=>e.replace(s,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===i||"\\"===n.sep,t.escapeLast=(e,r,n)=>{const i=e.lastIndexOf(r,n);return-1===i?e:"\\"===e[i-1]?t.escapeLast(e,r,i-1):`${e.slice(0,i)}\\${e.slice(i)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let n=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(n=`(?:^(?!${n}).*$)`),n}},79588:e=>{"use strict";function t(e){this._maxSize=e,this.clear()}t.prototype.clear=function(){this._size=0,this._values={}},t.prototype.get=function(e){return this._values[e]},t.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),this._values.hasOwnProperty(e)||this._size++,this._values[e]=t};var r=/[^.^\]^[]+|(?=\[\]|\.\.)/g,n=/^\d+$/,i=/^\d/,o=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,s=/^\s*(['"]?)(.*?)(\1)\s*$/,A=!1,a=new t(512),c=new t(512),u=new t(512);try{new Function("")}catch(e){A=!0}function l(e){return a.get(e)||a.set(e,h(e).map((function(e){return e.replace(s,"$2")})))}function h(e){return e.match(r)}function g(e,t,r){return"string"==typeof t&&(r=t,t=!1),r=r||"data",(e=e||"")&&"["!==e.charAt(0)&&(e="."+e),t?function(e,t){var r,n=t,i=h(e);return f(i,(function(e,t,i,o,s){r=o===s.length-1,n+=(e=t||i?"["+e+"]":"."+e)+(r?")":" || {})")})),new Array(i.length+1).join("(")+n}(e,r):r+e}function f(e,t,r){var n,i,o,s,A=e.length;for(i=0;i{var n=r(91162),i=r(97681),o=r(35747),s=function(){},A=/^v?\.0/.test(process.version),a=function(e){return"function"==typeof e},c=function(e,t,r,c){c=n(c);var u=!1;e.on("close",(function(){u=!0})),i(e,{readable:t,writable:r},(function(e){if(e)return c(e);u=!0,c()}));var l=!1;return function(t){if(!u&&!l)return l=!0,function(e){return!!A&&(!!o&&((e instanceof(o.ReadStream||s)||e instanceof(o.WriteStream||s))&&a(e.close)))}(e)?e.close(s):function(e){return e.setHeader&&a(e.abort)}(e)?e.abort():a(e.destroy)?e.destroy():void c(t||new Error("stream was destroyed"))}},u=function(e){e()},l=function(e,t){return e.pipe(t)};e.exports=function(){var e,t=Array.prototype.slice.call(arguments),r=a(t[t.length-1]||s)&&t.pop()||s;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var n=t.map((function(i,o){var s=o0,(function(t){e||(e=t),t&&n.forEach(u),s||(n.forEach(u),r(e))}))}));return t.reduce(l)}},82905:e=>{"use strict";class t{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,"function"==typeof this.onEviction)for(const[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}e.exports=t},20663:e=>{"use strict";const t={};function r(e,r,n){n||(n=Error);class i extends n{constructor(e,t,n){super(function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(e,t,n))}}i.prototype.name=n.name,i.prototype.code=e,t[e]=i}function n(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>String(e)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:2===r?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}return`of ${t} ${String(e)}`}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){let i;var o,s;let A;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))A=`The ${e} ${i} ${n(t,"type")}`;else{A=`The "${e}" ${function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument"} ${i} ${n(t,"type")}`}return A+=". Received type "+typeof r,A}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},39138:e=>{"use strict";var t=new Set;e.exports.emitExperimentalWarning=process.emitWarning?function(e){if(!t.has(e)){var r=e+" is an experimental feature. This feature could change at any time";t.add(e),process.emitWarning(r,"ExperimentalWarning")}}:function(){}},72434:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var i=r(58020),o=r(6729);r(85870)(c,i);for(var s=n(o.prototype),A=0;A{"use strict";e.exports=i;var n=r(54801);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(85870)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},58020:(e,t,r)=>{"use strict";var n;e.exports=B,B.ReadableState=w;r(28614).EventEmitter;var i=function(e,t){return e.listeners(t).length},o=r(49298),s=r(64293).Buffer,A=global.Uint8Array||function(){};var a,c=r(31669);a=c&&c.debuglog?c.debuglog("stream"):function(){};var u,l,h=r(43117),g=r(32340),f=r(77433).getHighWaterMark,p=r(20663).q,d=p.ERR_INVALID_ARG_TYPE,C=p.ERR_STREAM_PUSH_AFTER_EOF,E=p.ERR_METHOD_NOT_IMPLEMENTED,I=p.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,m=r(39138).emitExperimentalWarning;r(85870)(B,o);var y=["error","close","destroy","pause","resume"];function w(e,t,i){n=n||r(72434),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=f(this,e,"readableHighWaterMark",i),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=r(69538).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function B(e){if(n=n||r(72434),!(this instanceof B))return new B(e);var t=this instanceof n;this._readableState=new w(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function Q(e,t,r,n,i){a("readableAddChunk",t);var o,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?b(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,S(e)))}(e,c);else if(i||(o=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof A||"string"==typeof t||void 0===t||e.objectMode||(r=new d("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(c,t)),o)e.emit("error",o);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)c.endEmitted?e.emit("error",new I):v(e,c,t,!0);else if(c.ended)e.emit("error",new C);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?v(e,c,t,!1):k(e,c)):v(e,c,t,!1)}else n||(c.reading=!1,k(e,c));return!c.ended&&(c.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function b(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(a("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(S,e))}function S(e){var t=e._readableState;a("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||e.emit("readable"),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,R(e)}function k(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(x,e,t))}function x(e,t){for(var r=t.length;!t.reading&&!t.ended&&t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function M(e){a("readable nexttick read 0"),e.read(0)}function N(e,t){a("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),R(e),t.flowing&&!t.reading&&e.read(0)}function R(e){var t=e._readableState;for(a("flow",t.flowing);t.flowing&&null!==e.read(););}function K(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function L(e){var t=e._readableState;a("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){a("endReadableNT",e.endEmitted,e.length),e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function P(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return a("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):b(this),null;if(0===(e=D(e,t))&&t.ended)return 0===t.length&&L(this),null;var n,i=t.needReadable;return a("need readable",i),(0===t.length||t.length-e0?K(e,t):null)?(t.needReadable=!0,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&L(this)),null!==n&&this.emit("data",n),n},B.prototype._read=function(e){this.emit("error",new E("_read()"))},B.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,t);var o=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr?A:p;function s(t,i){a("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,a("cleanup"),e.removeListener("close",g),e.removeListener("finish",f),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",s),r.removeListener("end",A),r.removeListener("end",p),r.removeListener("data",l),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function A(){a("onend"),e.end()}n.endEmitted?process.nextTick(o):r.once("end",o),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;a("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,R(e))}}(r);e.on("drain",c);var u=!1;function l(t){a("ondata");var i=e.write(t);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==P(n.pipes,e))&&!u&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(t){a("onerror",t),p(),e.removeListener("error",h),0===i(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",f),p()}function f(){a("onfinish"),e.removeListener("close",g),p()}function p(){a("unpipe"),r.unpipe(e)}return r.on("data",l),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",g),e.once("finish",f),e.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),e},B.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?b(this):n.reading||process.nextTick(M,this))),r},B.prototype.addListener=B.prototype.on,B.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(F,this),r},B.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(F,this),t},B.prototype.resume=function(){var e=this._readableState;return e.flowing||(a("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(N,e,t))}(this,e)),e.paused=!1,this},B.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},B.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o{"use strict";e.exports=u;var n=r(20663).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,s=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,A=n.ERR_TRANSFORM_WITH_LENGTH_0,a=r(72434);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var i;e.exports=B,B.WritableState=w;var o={deprecate:r(73212)},s=r(49298),A=r(64293).Buffer,a=global.Uint8Array||function(){};var c,u=r(32340),l=r(77433).getHighWaterMark,h=r(20663).q,g=h.ERR_INVALID_ARG_TYPE,f=h.ERR_METHOD_NOT_IMPLEMENTED,p=h.ERR_MULTIPLE_CALLBACK,d=h.ERR_STREAM_CANNOT_PIPE,C=h.ERR_STREAM_DESTROYED,E=h.ERR_STREAM_NULL_VALUES,I=h.ERR_STREAM_WRITE_AFTER_END,m=h.ERR_UNKNOWN_ENCODING;function y(){}function w(e,t,o){i=i||r(72434),e=e||{},"boolean"!=typeof o&&(o=t instanceof i),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if("function"!=typeof i)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(process.nextTick(i,n),process.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),k(e,t))}(e,r,n,t,i);else{var o=b(r)||e.destroyed;o||r.corked||r.bufferProcessing||!r.bufferedRequest||D(e,r),n?process.nextTick(v,e,r,o,i):v(e,r,o,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function B(e){var t=this instanceof(i=i||r(72434));if(!t&&!c.call(B,this))return new B(e);this._writableState=new w(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function Q(e,t,r,n,i,o,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new C("write")):r?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function v(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),k(e,t)}function D(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,o=new Array(i),s=t.corkedRequestsFree;s.entry=r;for(var A=0,a=!0;r;)o[A]=r,r.isBuf||(a=!1),r=r.next,A+=1;o.allBuffers=a,Q(e,t,!0,t.length,o,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,l=r.callback;if(Q(e,t,!1,t.objectMode?1:c.length,c,u,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function b(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var r=b(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(S,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}r(85870)(B,s),w.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(w.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(B,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===B&&(e&&e._writableState instanceof w)}})):c=function(e){return e instanceof this},B.prototype.pipe=function(){this.emit("error",new d)},B.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,s=!i.objectMode&&(n=e,A.isBuffer(n)||n instanceof a);return s&&!A.isBuffer(e)&&(e=function(e){return A.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=y),i.ending?function(e,t){var r=new I;e.emit("error",r),process.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var i;return null===r?i=new E:"string"==typeof r||t.objectMode||(i=new g("chunk",["string","Buffer"],r)),!i||(e.emit("error",i),process.nextTick(n,i),!1)}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,o){if(!r){var s=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=A.from(t,r));return t}(t,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=t.objectMode?1:n.length;t.length+=a;var c=t.length-1))throw new m(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(B.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(B.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),B.prototype._write=function(e,t,r){r(new f("_write()"))},B.prototype._writev=null,B.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,k(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(B.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),B.prototype.destroy=u.destroy,B.prototype._undestroy=u.undestroy,B.prototype._destroy=function(e,t){t(e)}},4245:(e,t,r)=>{"use strict";var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=r(91327),s=Symbol("lastResolve"),A=Symbol("lastReject"),a=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),h=Symbol("stream");function g(e,t){return{value:e,done:t}}function f(e){var t=e[s];if(null!==t){var r=e[h].read();null!==r&&(e[u]=null,e[s]=null,e[A]=null,t(g(r,!1)))}}function p(e){process.nextTick(f,e)}var d=Object.getPrototypeOf((function(){})),C=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var e=this,t=this[a];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(g(null,!0));if(this[h].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[a]?r(e[a]):t(g(null,!0))}))}));var r,n=this[u];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[l](r,n)}),n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(g(i,!1));r=new Promise(this[l])}return this[u]=r,r}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[h].destroy(null,(function(e){e?r(e):t(g(null,!0))}))}))})),n),d);e.exports=function(e){var t,r=Object.create(C,(i(t={},h,{value:e,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,A,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,u,{value:null,writable:!0}),i(t,l,{value:function(e,t){var n=r[h].read();n?(r[u]=null,r[s]=null,r[A]=null,e(g(n,!1))):(r[s]=e,r[A]=t)},writable:!0}),t));return o(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[A];return null!==t&&(r[u]=null,r[s]=null,r[A]=null,t(e)),void(r[a]=e)}var n=r[s];null!==n&&(r[u]=null,r[s]=null,r[A]=null,n(g(null,!0))),r[c]=!0})),e.on("readable",p.bind(null,r)),r}},43117:(e,t,r)=>{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=r(64293).Buffer,o=r(31669).inspect,s=o&&o.custom||"inspect";e.exports=function(){function e(){this.head=null,this.tail=null,this.length=0}var t=e.prototype;return t.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},t.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},t.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},t.clear=function(){this.head=this.tail=null,this.length=0},t.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},t.concat=function(e){if(0===this.length)return i.alloc(0);for(var t,r,n,o=i.allocUnsafe(e>>>0),s=this.head,A=0;s;)t=s.data,r=o,n=A,i.prototype.copy.call(t,r,n),A+=s.data.length,s=s.next;return o},t.consume=function(e,t){var r;return ei.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0===(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n},t._getBuffer=function(e){var t=i.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,s),0===(e-=s)){s===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(s));break}++n}return this.length-=n,t},t[s]=function(e,t){return o(this,function(e){for(var t=1;t{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,i){var o=this,s=this._readableState&&this._readableState.destroyed,A=this._writableState&&this._writableState.destroyed;return s||A?(i?i(e):!e||this._writableState&&this._writableState.errorEmitted||process.nextTick(n,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!i&&e?(process.nextTick(t,o,e),o._writableState&&(o._writableState.errorEmitted=!0)):i?(process.nextTick(r,o),i(e)):process.nextTick(r,o)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},91327:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(r){t||(t=!0,e.call(this,r))}}(o||i);var s=t._writableState,A=t._readableState,a=r.readable||!1!==r.readable&&t.readable,c=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||l()},l=function(){c=!1,a||o.call(t)},h=function(){a=!1,c||o.call(t)},g=function(e){o.call(t,e)},f=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:o.call(t,new n)},p=function(){t.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?c&&!s&&(t.on("end",u),t.on("close",u)):(t.on("complete",l),t.on("abort",f),t.req?p():t.on("request",p)),t.on("end",h),t.on("finish",l),!1!==r.error&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",p),t.req&&t.req.removeListener("finish",l),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",l),t.removeListener("end",h),t.removeListener("error",g),t.removeListener("close",f)}}},4939:(e,t,r)=>{"use strict";var n;var i=r(20663).q,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function A(e){if(e)throw e}function a(e,t,i,o){o=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(o);var A=!1;e.on("close",(function(){A=!0})),void 0===n&&(n=r(91327)),n(e,{readable:t,writable:i},(function(e){if(e)return o(e);A=!0,o()}));var a=!1;return function(t){if(!A&&!a)return a=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?A:e.pop():A}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r0,(function(e){n||(n=e),e&&s.forEach(c),o||(s.forEach(c),i(n))}))}));return t.reduce(u)}},77433:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,i){var o=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},49298:(e,t,r)=>{e.exports=r(92413)},86897:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):((t=e.exports=r(58020)).Stream=n||t,t.Readable=t,t.Writable=r(6729),t.Duplex=r(72434),t.Transform=r(54801),t.PassThrough=r(52444),t.finished=r(91327),t.pipeline=r(4939))},19476:(e,t,r)=>{"use strict";const n=r(4016);e.exports=(e={})=>new Promise((t,r)=>{const i=n.connect(e,()=>{e.resolveSocket?(i.off("error",r),t({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),t({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})},48491:(e,t,r)=>{"use strict";const n=r(92413).Readable,i=r(55737);e.exports=class extends n{constructor(e,t,r,n){if("number"!=typeof e)throw new TypeError("Argument `statusCode` should be a number");if("object"!=typeof t)throw new TypeError("Argument `headers` should be an object");if(!(r instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if("string"!=typeof n)throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=i(t),this.body=r,this.url=n}_read(){this.push(this.body),this.push(null)}}},3390:(e,t,r)=>{"use strict";const n=r(90834),i=r(76458);e.exports=n(()=>{i(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})},2383:e=>{"use strict";e.exports=function(e){var t=new e,r=t;return{get:function(){var n=t;return n.next?t=n.next:(t=new e,r=t),n.next=null,n},release:function(e){r.next=e,r=e}}}},28855:(e,t,r)=>{"use strict";var n=r(61047),i=e.exports=function(e,t){return t=t||function(){},function(){var r=arguments,i=new Promise((function(t,i){var o=!1;const s=function(e){o&&console.warn("Run-async promise already resolved."),o=!0,t(e)};var A=!1;const a=function(e){A&&console.warn("Run-async promise already rejected."),A=!0,i(e)};var c=!1,u=!1,l=!1,h=e.apply({async:function(){return l?(console.warn("Run-async async() called outside a valid run-async context, callback will be ignored."),function(){}):(u&&console.warn("Run-async wrapped function (async) returned a promise.\nCalls to async() callback can have unexpected results."),c=!0,function(e,t){e?a(e):s(t)})}},Array.prototype.slice.call(r));c?n(h)&&console.warn("Run-async wrapped function (sync) returned a promise but async() callback must be executed to resolve."):n(h)?(u=!0,h.then(s,a)):s(h),l=!0}));return i.then(t.bind(null,null),t),i}};i.cb=function(e,t){return i((function(){var t=Array.prototype.slice.call(arguments);return t.length===e.length-1&&t.push(this.async()),e.apply(this,t)}),t)}},69078:e=>{e.exports=function(e,t){var r,n,i,o=!0;Array.isArray(e)?(r=[],n=e.length):(i=Object.keys(e),r={},n=i.length);function s(e){function n(){t&&t(e,r),t=null}o?process.nextTick(n):n()}function A(e,t,i){r[e]=i,(0==--n||t)&&s(t)}n?i?i.forEach((function(t){e[t]((function(e,r){A(t,e,r)}))})):e.forEach((function(e,t){e((function(e,r){A(t,e,r)}))})):s(null);o=!1}},86596:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Observable:()=>n.y,ConnectableObservable:()=>i.c,GroupedObservable:()=>o.T,observable:()=>s.L,Subject:()=>A.xQ,BehaviorSubject:()=>a.X,ReplaySubject:()=>c.t,AsyncSubject:()=>u.c,asapScheduler:()=>l.e,asyncScheduler:()=>h.P,queueScheduler:()=>g.c,animationFrameScheduler:()=>E,VirtualTimeScheduler:()=>I,VirtualAction:()=>m,Scheduler:()=>y.b,Subscription:()=>w.w,Subscriber:()=>B.L,Notification:()=>Q.P,NotificationKind:()=>Q.W,pipe:()=>v.z,noop:()=>D.Z,identity:()=>b.y,isObservable:()=>S,ArgumentOutOfRangeError:()=>k.W,EmptyError:()=>x.K,ObjectUnsubscribedError:()=>F.N,UnsubscriptionError:()=>M.B,TimeoutError:()=>N.W,bindCallback:()=>P,bindNodeCallback:()=>O,combineLatest:()=>J.aj,concat:()=>H.z,defer:()=>q.P,empty:()=>z.c,forkJoin:()=>X,from:()=>V.D,fromEvent:()=>ee,fromEventPattern:()=>te,generate:()=>re,iif:()=>ie,interval:()=>se,merge:()=>ae.T,never:()=>ue,of:()=>le.of,onErrorResumeNext:()=>he,pairs:()=>ge,partition:()=>Ee,race:()=>Ie.S3,range:()=>me,throwError:()=>we._,timer:()=>Be.H,using:()=>Qe,zip:()=>ve.$R,scheduled:()=>De.x,EMPTY:()=>z.E,NEVER:()=>ce,config:()=>be.v});var n=r(98789),i=r(24311),o=r(92564),s=r(68511),A=r(92915),a=r(14753),c=r(52493),u=r(73582),l=r(94097),h=r(59873),g=r(55031),f=r(36370),p=r(99944),d=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return f.ZT(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((function(){return t.flush(null)}))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(cancelAnimationFrame(r),t.scheduled=void 0)},t}(p.o),C=r(43548),E=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f.ZT(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++nt.index?1:-1:e.delay>t.delay?1:-1},t}(p.o),y=r(42476),w=r(73504),B=r(28732),Q=r(4094),v=r(97836),D=r(57781),b=r(80433);function S(e){return!!e&&(e instanceof n.y||"function"==typeof e.lift&&"function"==typeof e.subscribe)}var k=r(3551),x=r(30943),F=r(90265),M=r(43347),N=r(87299),R=r(98082),K=r(58880),L=r(47182),T=r(64986);function P(e,t,r){if(t){if(!(0,T.K)(t))return function(){for(var n=[],i=0;i1?n.next(Array.prototype.slice.call(arguments)):n.next(e)}),n,r)}))}function te(e,t,r){return r?te(e,t).pipe((0,R.U)((function(e){return(0,L.k)(e)?r.apply(void 0,e):r(e)}))):new n.y((function(r){var n,i=function(){for(var e=[],t=0;t=t){n.complete();break}if(n.next(o++),n.closed)break}}))}function ye(e){var t=e.start,r=e.index,n=e.count,i=e.subscriber;r>=n?i.complete():(i.next(t),i.closed||(e.index=r+1,e.start=t+1,this.schedule(e)))}var we=r(9491),Be=r(13028);function Qe(e,t){return new n.y((function(r){var n,i;try{n=e()}catch(e){return void r.error(e)}try{i=t(n)}catch(e){return void r.error(e)}var o=(i?(0,V.D)(i):z.E).subscribe(r);return function(){o.unsubscribe(),n&&n.unsubscribe()}}))}var ve=r(21336),De=r(14109),be=r(21894)},73582:(e,t,r)=>{"use strict";r.d(t,{c:()=>s});var n=r(36370),i=r(92915),o=r(73504),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.value=null,t.hasNext=!1,t.hasCompleted=!1,t}return n.ZT(t,e),t.prototype._subscribe=function(t){return this.hasError?(t.error(this.thrownError),o.w.EMPTY):this.hasCompleted&&this.hasNext?(t.next(this.value),t.complete(),o.w.EMPTY):e.prototype._subscribe.call(this,t)},t.prototype.next=function(e){this.hasCompleted||(this.value=e,this.hasNext=!0)},t.prototype.error=function(t){this.hasCompleted||e.prototype.error.call(this,t)},t.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&e.prototype.next.call(this,this.value),e.prototype.complete.call(this)},t}(i.xQ)},14753:(e,t,r)=>{"use strict";r.d(t,{X:()=>s});var n=r(36370),i=r(92915),o=r(90265),s=function(e){function t(t){var r=e.call(this)||this;return r._value=t,r}return n.ZT(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return r&&!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.N;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.xQ)},28907:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(36370),i=function(e){function t(t,r,n){var i=e.call(this)||this;return i.parent=t,i.outerValue=r,i.outerIndex=n,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(r(28732).L)},4094:(e,t,r)=>{"use strict";r.d(t,{W:()=>n,P:()=>A});var n,i=r(61775),o=r(29686),s=r(9491);n||(n={});var A=function(){function e(e,t,r){this.kind=e,this.value=t,this.error=r,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return r&&r()}},e.prototype.accept=function(e,t,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,r)},e.prototype.toObservable=function(){switch(this.kind){case"N":return(0,o.of)(this.value);case"E":return(0,s._)(this.error);case"C":return(0,i.c)()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}()},98789:(e,t,r)=>{"use strict";r.d(t,{y:()=>u});var n=r(58880),i=r(28732),o=r(92515),s=r(32103);var A=r(68511),a=r(97836),c=r(21894),u=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n=this.operator,A=function(e,t,r){if(e){if(e instanceof i.L)return e;if(e[o.b])return e[o.b]()}return e||t||r?new i.L(e,t,r):new i.L(s.c)}(e,t,r);if(n?A.add(n.call(A,this.source)):A.add(this.source||c.v.useDeprecatedSynchronousErrorHandling&&!A.syncErrorThrowable?this._subscribe(A):this._trySubscribe(A)),c.v.useDeprecatedSynchronousErrorHandling&&A.syncErrorThrowable&&(A.syncErrorThrowable=!1,A.syncErrorThrown))throw A.syncErrorValue;return A},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){c.v.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),(0,n._)(e)?e.error(t):console.warn(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=l(t))((function(t,n){var i;i=r.subscribe((function(t){try{e(t)}catch(e){n(e),i&&i.unsubscribe()}}),n,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[A.L]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t{"use strict";r.d(t,{c:()=>o});var n=r(21894),i=r(13109),o={closed:!0,next:function(e){},error:function(e){if(n.v.useDeprecatedSynchronousErrorHandling)throw e;(0,i.z)(e)},complete:function(){}}},20242:(e,t,r)=>{"use strict";r.d(t,{L:()=>i});var n=r(36370),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(r(28732).L)},52493:(e,t,r)=>{"use strict";r.d(t,{t:()=>u});var n=r(36370),i=r(92915),o=r(55031),s=r(73504),A=r(32746),a=r(90265),c=r(73066),u=function(e){function t(t,r,n){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY);var i=e.call(this)||this;return i.scheduler=n,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=t<1?1:t,i._windowTime=r<1?1:r,r===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return n.ZT(t,e),t.prototype.nextInfiniteTimeWindow=function(t){var r=this._events;r.push(t),r.length>this._bufferSize&&r.shift(),e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this._events.push(new l(this._getNow(),t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,r=this._infiniteTimeWindow,n=r?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=n.length;if(this.closed)throw new a.N;if(this.isStopped||this.hasError?t=s.w.EMPTY:(this.observers.push(e),t=new c.W(this,e)),i&&e.add(e=new A.ht(e,i)),r)for(var u=0;ut&&(o=Math.max(o,i-t)),o>0&&n.splice(0,o),n},t}(i.xQ),l=function(){return function(e,t){this.time=e,this.value=t}}()},42476:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var n=function(){function e(t,r){void 0===r&&(r=e.now),this.SchedulerAction=t,this.now=r}return e.prototype.schedule=function(e,t,r){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(r,t)},e.now=function(){return Date.now()},e}()},92915:(e,t,r)=>{"use strict";r.d(t,{Yc:()=>u,xQ:()=>l});var n=r(36370),i=r(98789),o=r(28732),s=r(73504),A=r(90265),a=r(73066),c=r(92515),u=function(e){function t(t){var r=e.call(this,t)||this;return r.destination=t,r}return n.ZT(t,e),t}(o.L),l=function(e){function t(){var t=e.call(this)||this;return t.observers=[],t.closed=!1,t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return n.ZT(t,e),t.prototype[c.b]=function(){return new u(this)},t.prototype.lift=function(e){var t=new h(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new A.N;if(!this.isStopped)for(var t=this.observers,r=t.length,n=t.slice(),i=0;i{"use strict";r.d(t,{W:()=>i});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this)||this;return n.subject=t,n.subscriber=r,n.closed=!1,n}return n.ZT(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}},t}(r(73504).w)},28732:(e,t,r)=>{"use strict";r.d(t,{L:()=>u});var n=r(36370),i=r(38394),o=r(32103),s=r(73504),A=r(92515),a=r(21894),c=r(13109),u=function(e){function t(r,n,i){var s=e.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.c;break;case 1:if(!r){s.destination=o.c;break}if("object"==typeof r){r instanceof t?(s.syncErrorThrowable=r.syncErrorThrowable,s.destination=r,r.add(s)):(s.syncErrorThrowable=!0,s.destination=new l(s,r));break}default:s.syncErrorThrowable=!0,s.destination=new l(s,r,n,i)}return s}return n.ZT(t,e),t.prototype[A.b]=function(){return this},t.create=function(e,r,n){var i=new t(e,r,n);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(s.w),l=function(e){function t(t,r,n,s){var A,a=e.call(this)||this;a._parentSubscriber=t;var c=a;return(0,i.m)(r)?A=r:r&&(A=r.next,n=r.error,s=r.complete,r!==o.c&&(c=Object.create(r),(0,i.m)(c.unsubscribe)&&a.add(c.unsubscribe.bind(c)),c.unsubscribe=a.unsubscribe.bind(a))),a._context=c,a._next=A,a._error=n,a._complete=s,a}return n.ZT(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;a.v.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,r=a.v.useDeprecatedSynchronousErrorHandling;if(this._error)r&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)r?(t.syncErrorValue=e,t.syncErrorThrown=!0):(0,c.z)(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;(0,c.z)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var r=function(){return e._complete.call(e._context)};a.v.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,r),this.unsubscribe()):(this.__tryOrUnsub(r),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),a.v.useDeprecatedSynchronousErrorHandling)throw e;(0,c.z)(e)}},t.prototype.__tryOrSetError=function(e,t,r){if(!a.v.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,r)}catch(t){return a.v.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):((0,c.z)(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},73504:(e,t,r)=>{"use strict";r.d(t,{w:()=>A});var n=r(47182),i=r(29929),o=r(38394),s=r(43347),A=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}var t;return e.prototype.unsubscribe=function(){var t;if(!this.closed){var r=this._parentOrParents,A=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var u=0;u{"use strict";r.d(t,{v:()=>i});var n=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;n=e},get useDeprecatedSynchronousErrorHandling(){return n}}},24311:(e,t,r)=>{"use strict";r.d(t,{c:()=>c,N:()=>u});var n=r(36370),i=r(92915),o=r(98789),s=r(28732),A=r(73504),a=r(97566),c=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subjectFactory=r,n._refCount=0,n._isComplete=!1,n}return n.ZT(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new A.w).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed&&(this._connection=null,e=A.w.EMPTY)),e},t.prototype.refCount=function(){return(0,a.x)()(this)},t}(o.y),u=function(){var e=c.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),l=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.ZT(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(i.Yc);s.L},20995:(e,t,r)=>{"use strict";r.d(t,{aj:()=>u,Ms:()=>l});var n=r(36370),i=r(64986),o=r(47182),s=r(20242),A=r(93590),a=r(56329),c={};function u(){for(var e=[],t=0;t{"use strict";r.d(t,{z:()=>o});var n=r(29686),i=r(37339);function o(){for(var e=[],t=0;t{"use strict";r.d(t,{P:()=>s});var n=r(98789),i=r(85861),o=r(61775);function s(e){return new n.y((function(t){var r;try{r=e()}catch(e){return void t.error(e)}return(r?(0,i.D)(r):(0,o.c)()).subscribe(t)}))}},61775:(e,t,r)=>{"use strict";r.d(t,{E:()=>i,c:()=>o});var n=r(98789),i=new n.y((function(e){return e.complete()}));function o(e){return e?function(e){return new n.y((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},85861:(e,t,r)=>{"use strict";r.d(t,{D:()=>s});var n=r(98789),i=r(92402),o=r(14109);function s(e,t){return t?(0,o.x)(e,t):e instanceof n.y?e:new n.y((0,i.s)(e))}},56329:(e,t,r)=>{"use strict";r.d(t,{n:()=>s});var n=r(98789),i=r(22335),o=r(59430);function s(e,t){return t?(0,o.r)(e,t):new n.y((0,i.V)(e))}},80810:(e,t,r)=>{"use strict";r.d(t,{T:()=>A});var n=r(98789),i=r(64986),o=r(66852),s=r(56329);function A(){for(var e=[],t=0;t1&&"number"==typeof e[e.length-1]&&(r=e.pop())):"number"==typeof a&&(r=e.pop()),null===A&&1===e.length&&e[0]instanceof n.y?e[0]:(0,o.J)(r)((0,s.n)(e,A))}},29686:(e,t,r)=>{"use strict";r.d(t,{of:()=>s});var n=r(64986),i=r(56329),o=r(59430);function s(){for(var e=[],t=0;t{"use strict";r.d(t,{S3:()=>a});var n=r(36370),i=r(47182),o=r(56329),s=r(20242),A=r(93590);function a(){for(var e=[],t=0;t{"use strict";r.d(t,{_:()=>i});var n=r(98789);function i(e,t){return t?new n.y((function(r){return t.schedule(o,0,{error:e,subscriber:r})})):new n.y((function(t){return t.error(e)}))}function o(e){var t=e.error;e.subscriber.error(t)}},13028:(e,t,r)=>{"use strict";r.d(t,{H:()=>A});var n=r(98789),i=r(59873),o=r(23820),s=r(64986);function A(e,t,r){void 0===e&&(e=0);var A=-1;return(0,o.k)(t)?A=Number(t)<1?1:Number(t):(0,s.K)(t)&&(r=t),(0,s.K)(r)||(r=i.P),new n.y((function(t){var n=(0,o.k)(e)?e:+e-r.now();return r.schedule(a,n,{index:0,period:A,subscriber:t})}))}function a(e){var t=e.index,r=e.period,n=e.subscriber;if(n.next(t),!n.closed){if(-1===r)return n.complete();e.index=t+1,this.schedule(e,r)}}},21336:(e,t,r)=>{"use strict";r.d(t,{$R:()=>u,mx:()=>l});var n=r(36370),i=r(56329),o=r(47182),s=r(28732),A=r(20242),a=r(93590),c=r(8094);function u(){for(var e=[],t=0;tthis.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),p=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.parent=r,i.observable=n,i.stillUnsubscribed=!0,i.buffer=[],i.isComplete=!1,i}return n.ZT(t,e),t.prototype[c.hZ]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.buffer.push(t),this.parent.checkIterators()},t.prototype.subscribe=function(e,t){return(0,a.D)(this,this.observable,this,t)},t}(A.L)},37339:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(66852);function i(){return(0,n.J)(1)}},39063:(e,t,r)=>{"use strict";r.d(t,{h:()=>o});var n=r(36370),i=r(28732);function o(e,t){return function(r){return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.predicate,this.thisArg))},e}(),A=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.thisArg=n,i.count=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.L)},92564:(e,t,r)=>{"use strict";r.d(t,{v:()=>a,T:()=>h});var n=r(36370),i=r(28732),o=r(73504),s=r(98789),A=r(92915);function a(e,t,r,n){return function(i){return i.lift(new c(e,t,r,n))}}var c=function(){function e(e,t,r,n){this.keySelector=e,this.elementSelector=t,this.durationSelector=r,this.subjectSelector=n}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},e}(),u=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.keySelector=r,s.elementSelector=n,s.durationSelector=i,s.subjectSelector=o,s.groups=null,s.attemptedToUnsubscribe=!1,s.count=0,s}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.keySelector(e)}catch(e){return void this.error(e)}this._group(e,t)},t.prototype._group=function(e,t){var r=this.groups;r||(r=this.groups=new Map);var n,i=r.get(t);if(this.elementSelector)try{n=this.elementSelector(e)}catch(e){this.error(e)}else n=e;if(!i){i=this.subjectSelector?this.subjectSelector():new A.xQ,r.set(t,i);var o=new h(t,i,this);if(this.destination.next(o),this.durationSelector){var s=void 0;try{s=this.durationSelector(new h(t,i))}catch(e){return void this.error(e)}this.add(s.subscribe(new l(t,i,this)))}}i.closed||i.next(n)},t.prototype._error=function(e){var t=this.groups;t&&(t.forEach((function(t,r){t.error(e)})),t.clear()),this.destination.error(e)},t.prototype._complete=function(){var e=this.groups;e&&(e.forEach((function(e,t){e.complete()})),e.clear()),this.destination.complete()},t.prototype.removeGroup=function(e){this.groups.delete(e)},t.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&e.prototype.unsubscribe.call(this))},t}(i.L),l=function(e){function t(t,r,n){var i=e.call(this,r)||this;return i.key=t,i.group=r,i.parent=n,i}return n.ZT(t,e),t.prototype._next=function(e){this.complete()},t.prototype._unsubscribe=function(){var e=this.parent,t=this.key;this.key=this.parent=null,e&&e.removeGroup(t)},t}(i.L),h=function(e){function t(t,r,n){var i=e.call(this)||this;return i.key=t,i.groupSubject=r,i.refCountSubscription=n,i}return n.ZT(t,e),t.prototype._subscribe=function(e){var t=new o.w,r=this.refCountSubscription,n=this.groupSubject;return r&&!r.closed&&t.add(new g(r)),t.add(n.subscribe(e)),t},t}(s.y),g=function(e){function t(t){var r=e.call(this)||this;return r.parent=t,t.count++,r}return n.ZT(t,e),t.prototype.unsubscribe=function(){var t=this.parent;t.closed||this.closed||(e.prototype.unsubscribe.call(this),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())},t}(o.w)},98082:(e,t,r)=>{"use strict";r.d(t,{U:()=>o});var n=r(36370),i=r(28732);function o(e,t){return function(r){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.project,this.thisArg))},e}(),A=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.project=r,i.count=0,i.thisArg=n||i,i}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.L)},66852:(e,t,r)=>{"use strict";r.d(t,{J:()=>o});var n=r(20259),i=r(80433);function o(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),(0,n.zg)(i.y,e)}},20259:(e,t,r)=>{"use strict";r.d(t,{zg:()=>c});var n=r(36370),i=r(93590),o=r(20242),s=r(28907),A=r(98082),a=r(85861);function c(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof t?function(n){return n.pipe(c((function(r,n){return(0,a.D)(e(r,n)).pipe((0,A.U)((function(e,i){return t(r,e,n,i)})))}),r))}:("number"==typeof t&&(r=t),function(t){return t.lift(new u(e,r))})}var u=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.project,this.concurrent))},e}(),l=function(e){function t(t,r,n){void 0===n&&(n=Number.POSITIVE_INFINITY);var i=e.call(this,t)||this;return i.project=r,i.concurrent=n,i.hasCompleted=!1,i.buffer=[],i.active=0,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.active0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.L)},32746:(e,t,r)=>{"use strict";r.d(t,{QV:()=>s,ht:()=>a});var n=r(36370),i=r(28732),o=r(4094);function s(e,t){return void 0===t&&(t=0),function(r){return r.lift(new A(e,t))}}var A=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.scheduler,this.delay))},e}(),a=function(e){function t(t,r,n){void 0===n&&(n=0);var i=e.call(this,t)||this;return i.scheduler=r,i.delay=n,i}return n.ZT(t,e),t.dispatch=function(e){var t=e.notification,r=e.destination;t.observe(r),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.destination.add(this.scheduler.schedule(t.dispatch,this.delay,new c(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.P.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.P.createError(e)),this.unsubscribe()},t.prototype._complete=function(){this.scheduleMessage(o.P.createComplete()),this.unsubscribe()},t}(i.L),c=function(){return function(e,t){this.notification=e,this.destination=t}}()},97566:(e,t,r)=>{"use strict";r.d(t,{x:()=>o});var n=r(36370),i=r(28732);function o(){return function(e){return e.lift(new s(e))}}var s=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new A(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i},e}(),A=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.ZT(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(i.L)},59430:(e,t,r)=>{"use strict";r.d(t,{r:()=>o});var n=r(98789),i=r(73504);function o(e,t){return new n.y((function(r){var n=new i.w,o=0;return n.add(t.schedule((function(){o!==e.length?(r.next(e[o++]),r.closed||n.add(this.schedule())):r.complete()}))),n}))}},14109:(e,t,r)=>{"use strict";r.d(t,{x:()=>u});var n=r(98789),i=r(73504),o=r(68511);var s=r(59430),A=r(8094);var a=r(79886),c=r(61997);function u(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[o.L]}(e))return function(e,t){return new n.y((function(r){var n=new i.w;return n.add(t.schedule((function(){var i=e[o.L]();n.add(i.subscribe({next:function(e){n.add(t.schedule((function(){return r.next(e)})))},error:function(e){n.add(t.schedule((function(){return r.error(e)})))},complete:function(){n.add(t.schedule((function(){return r.complete()})))}}))}))),n}))}(e,t);if((0,a.t)(e))return function(e,t){return new n.y((function(r){var n=new i.w;return n.add(t.schedule((function(){return e.then((function(e){n.add(t.schedule((function(){r.next(e),n.add(t.schedule((function(){return r.complete()})))})))}),(function(e){n.add(t.schedule((function(){return r.error(e)})))}))}))),n}))}(e,t);if((0,c.z)(e))return(0,s.r)(e,t);if(function(e){return e&&"function"==typeof e[A.hZ]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new n.y((function(r){var n,o=new i.w;return o.add((function(){n&&"function"==typeof n.return&&n.return()})),o.add(t.schedule((function(){n=e[A.hZ](),o.add(t.schedule((function(){if(!r.closed){var e,t;try{var i=n.next();e=i.value,t=i.done}catch(e){return void r.error(e)}t?r.complete():(r.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}},99944:(e,t,r)=>{"use strict";r.d(t,{o:()=>i});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n.pending=!1,n}return n.ZT(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(n,this.id,t),this},t.prototype.requestAsyncId=function(e,t,r){return void 0===r&&(r=0),setInterval(e.flush.bind(e,this),r)},t.prototype.recycleAsyncId=function(e,t,r){if(void 0===r&&(r=0),null!==r&&this.delay===r&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(e,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var r=!1,n=void 0;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,r=t.actions,n=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==n&&r.splice(n,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(function(e){function t(t,r){return e.call(this)||this}return n.ZT(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(r(73504).w))},43548:(e,t,r)=>{"use strict";r.d(t,{v:()=>o});var n=r(36370),i=r(42476),o=function(e){function t(r,n){void 0===n&&(n=i.b.now);var o=e.call(this,r,(function(){return t.delegate&&t.delegate!==o?t.delegate.now():n()}))||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return n.ZT(t,e),t.prototype.schedule=function(r,n,i){return void 0===n&&(n=0),t.delegate&&t.delegate!==this?t.delegate.schedule(r,n,i):e.prototype.schedule.call(this,r,n,i)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,r){for(;e=t.shift();)e.unsubscribe();throw r}}},t}(i.b)},94097:(e,t,r)=>{"use strict";r.d(t,{e:()=>l});var n=r(36370),i=1,o=function(){return Promise.resolve()}(),s={};function A(e){return e in s&&(delete s[e],!0)}var a=function(e){var t=i++;return s[t]=!0,o.then((function(){return A(t)&&e()})),t},c=function(e){A(e)},u=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.ZT(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=a(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(c(r),t.scheduled=void 0)},t}(r(99944).o),l=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++n{"use strict";r.d(t,{P:()=>i});var n=r(99944),i=new(r(43548).v)(n.o)},55031:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.ZT(t,e),t.prototype.schedule=function(t,r){return void 0===r&&(r=0),r>0?e.prototype.schedule.call(this,t,r):(this.delay=r,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,r){return r>0||this.closed?e.prototype.execute.call(this,t,r):this._execute(t,r)},t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?e.prototype.requestAsyncId.call(this,t,r,n):t.flush(this)},t}(r(99944).o),o=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t}(r(43548).v))(i)},8094:(e,t,r)=>{"use strict";function n(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}r.d(t,{hZ:()=>i});var i=n()},68511:(e,t,r)=>{"use strict";r.d(t,{L:()=>n});var n=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},92515:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var n=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}()},3551:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});var n=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}()},30943:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});var n=function(){function e(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return e.prototype=Object.create(Error.prototype),e}()},90265:(e,t,r)=>{"use strict";r.d(t,{N:()=>n});var n=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}()},87299:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});var n=function(){function e(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return e.prototype=Object.create(Error.prototype),e}()},43347:(e,t,r)=>{"use strict";r.d(t,{B:()=>n});var n=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}()},58880:(e,t,r)=>{"use strict";r.d(t,{_:()=>i});var n=r(28732);function i(e){for(;e;){var t=e,r=t.closed,i=t.destination,o=t.isStopped;if(r||o)return!1;e=i&&i instanceof n.L?i:null}return!0}},13109:(e,t,r)=>{"use strict";function n(e){setTimeout((function(){throw e}),0)}r.d(t,{z:()=>n})},80433:(e,t,r)=>{"use strict";function n(e){return e}r.d(t,{y:()=>n})},47182:(e,t,r)=>{"use strict";r.d(t,{k:()=>n});var n=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}()},61997:(e,t,r)=>{"use strict";r.d(t,{z:()=>n});var n=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e}},38394:(e,t,r)=>{"use strict";function n(e){return"function"==typeof e}r.d(t,{m:()=>n})},23820:(e,t,r)=>{"use strict";r.d(t,{k:()=>i});var n=r(47182);function i(e){return!(0,n.k)(e)&&e-parseFloat(e)+1>=0}},29929:(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e}r.d(t,{K:()=>n})},79886:(e,t,r)=>{"use strict";function n(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}r.d(t,{t:()=>n})},64986:(e,t,r)=>{"use strict";function n(e){return e&&"function"==typeof e.schedule}r.d(t,{K:()=>n})},57781:(e,t,r)=>{"use strict";function n(){}r.d(t,{Z:()=>n})},65868:(e,t,r)=>{"use strict";function n(e,t){function r(){return!r.pred.apply(r.thisArg,arguments)}return r.pred=e,r.thisArg=t,r}r.d(t,{f:()=>n})},97836:(e,t,r)=>{"use strict";r.d(t,{z:()=>i,U:()=>o});var n=r(57781);function i(){for(var e=[],t=0;t{"use strict";r.d(t,{s:()=>u});var n=r(22335),i=r(13109),o=r(8094),s=r(68511),A=r(61997),a=r(79886),c=r(29929),u=function(e){if(e&&"function"==typeof e[s.L])return u=e,function(e){var t=u[s.L]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if((0,A.z)(e))return(0,n.V)(e);if((0,a.t)(e))return r=e,function(e){return r.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,i.z),e};if(e&&"function"==typeof e[o.hZ])return t=e,function(e){for(var r=t[o.hZ]();;){var n=r.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return"function"==typeof r.return&&e.add((function(){r.return&&r.return()})),e};var t,r,u,l=(0,c.K)(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+l+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},22335:(e,t,r)=>{"use strict";r.d(t,{V:()=>n});var n=function(e){return function(t){for(var r=0,n=e.length;r{"use strict";r.d(t,{D:()=>s});var n=r(28907),i=r(92402),o=r(98789);function s(e,t,r,s,A){if(void 0===A&&(A=new n.d(e,r,s)),!A.closed)return t instanceof o.y?t.subscribe(A):(0,i.s)(t)(A)}},20683:(e,t,r)=>{"use strict";r.r(t),r.d(t,{audit:()=>s,auditTime:()=>l,buffer:()=>h,bufferCount:()=>d,bufferTime:()=>y,bufferToggle:()=>k,bufferWhen:()=>M,catchError:()=>L,combineAll:()=>_,combineLatest:()=>Y,concat:()=>J,concatAll:()=>H.u,concatMap:()=>z,concatMapTo:()=>W,count:()=>V,debounce:()=>$,debounceTime:()=>re,defaultIfEmpty:()=>se,delay:()=>le,delayWhen:()=>de,dematerialize:()=>ye,distinct:()=>Qe,distinctUntilChanged:()=>be,distinctUntilKeyChanged:()=>xe,elementAt:()=>je,endWith:()=>Ge,every:()=>Je,exhaust:()=>ze,exhaustMap:()=>Ze,expand:()=>tt,filter:()=>Me.h,finalize:()=>it,find:()=>At,findIndex:()=>ut,first:()=>ht,groupBy:()=>gt.v,ignoreElements:()=>ft,isEmpty:()=>Ct,last:()=>Bt,map:()=>Xe.U,mapTo:()=>Qt,materialize:()=>bt,max:()=>Kt,merge:()=>Tt,mergeAll:()=>Pt.J,mergeMap:()=>q.zg,flatMap:()=>q.zg,mergeMapTo:()=>Ut,mergeScan:()=>_t,min:()=>Yt,multicast:()=>Jt,observeOn:()=>qt.QV,onErrorResumeNext:()=>zt,pairwise:()=>Xt,partition:()=>tr,pluck:()=>rr,publish:()=>or,publishBehavior:()=>Ar,publishLast:()=>cr,publishReplay:()=>lr,race:()=>gr,reduce:()=>Rt,repeat:()=>fr,repeatWhen:()=>Cr,retry:()=>mr,retryWhen:()=>Br,refCount:()=>Dr.x,sample:()=>br,sampleTime:()=>xr,scan:()=>xt,sequenceEqual:()=>Rr,share:()=>Ur,shareReplay:()=>_r,single:()=>Or,skip:()=>Gr,skipLast:()=>qr,skipUntil:()=>Vr,skipWhile:()=>$r,startWith:()=>rn,subscribeOn:()=>An,switchAll:()=>hn,switchMap:()=>cn,switchMapTo:()=>gn,take:()=>Ue,takeLast:()=>mt,takeUntil:()=>fn,takeWhile:()=>Cn,tap:()=>wn,throttle:()=>Dn,throttleTime:()=>kn,throwIfEmpty:()=>Re,timeInterval:()=>Rn,timeout:()=>On,timeoutWith:()=>Tn,timestamp:()=>jn,toArray:()=>Jn,window:()=>Hn,windowCount:()=>Wn,windowTime:()=>Zn,windowToggle:()=>oi,windowWhen:()=>ai,withLatestFrom:()=>li,zip:()=>pi,zipAll:()=>di});var n=r(36370),i=r(20242),o=r(93590);function s(e){return function(t){return t.lift(new A(e))}}var A=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.durationSelector))},e}(),a=function(e){function t(t,r){var n=e.call(this,t)||this;return n.durationSelector=r,n.hasValue=!1,n}return n.ZT(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=void 0;try{t=(0,this.durationSelector)(e)}catch(e){return this.destination.error(e)}var r=(0,o.D)(this,t);!r||r.closed?this.clearThrottle():this.add(this.throttled=r)}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,r=this.throttled;r&&(this.remove(r),this.throttled=null,r.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,r,n){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(i.L),c=r(59873),u=r(13028);function l(e,t){return void 0===t&&(t=c.P),s((function(){return(0,u.H)(e,t)}))}function h(e){return function(t){return t.lift(new g(e))}}var g=function(){function e(e){this.closingNotifier=e}return e.prototype.call=function(e,t){return t.subscribe(new f(e,this.closingNotifier))},e}(),f=function(e){function t(t,r){var n=e.call(this,t)||this;return n.buffer=[],n.add((0,o.D)(n,r)),n}return n.ZT(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},t}(i.L),p=r(28732);function d(e,t){return void 0===t&&(t=null),function(r){return r.lift(new C(e,t))}}var C=function(){function e(e,t){this.bufferSize=e,this.startBufferEvery=t,this.subscriberClass=t&&e!==t?I:E}return e.prototype.call=function(e,t){return t.subscribe(new this.subscriberClass(e,this.bufferSize,this.startBufferEvery))},e}(),E=function(e){function t(t,r){var n=e.call(this,t)||this;return n.bufferSize=r,n.buffer=[],n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.buffer;t.push(e),t.length==this.bufferSize&&(this.destination.next(t),this.buffer=[])},t.prototype._complete=function(){var t=this.buffer;t.length>0&&this.destination.next(t),e.prototype._complete.call(this)},t}(p.L),I=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.bufferSize=r,i.startBufferEvery=n,i.buffers=[],i.count=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.bufferSize,r=this.startBufferEvery,n=this.buffers,i=this.count;this.count++,i%r==0&&n.push([]);for(var o=n.length;o--;){var s=n[o];s.push(e),s.length===t&&(n.splice(o,1),this.destination.next(s))}},t.prototype._complete=function(){for(var t=this.buffers,r=this.destination;t.length>0;){var n=t.shift();n.length>0&&r.next(n)}e.prototype._complete.call(this)},t}(p.L),m=r(64986);function y(e){var t=arguments.length,r=c.P;(0,m.K)(arguments[arguments.length-1])&&(r=arguments[arguments.length-1],t--);var n=null;t>=2&&(n=arguments[1]);var i=Number.POSITIVE_INFINITY;return t>=3&&(i=arguments[2]),function(t){return t.lift(new w(e,n,i,r))}}var w=function(){function e(e,t,r,n){this.bufferTimeSpan=e,this.bufferCreationInterval=t,this.maxBufferSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new Q(e,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},e}(),B=function(){return function(){this.buffer=[]}}(),Q=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.bufferTimeSpan=r,s.bufferCreationInterval=n,s.maxBufferSize=i,s.scheduler=o,s.contexts=[];var A=s.openContext();if(s.timespanOnly=null==n||n<0,s.timespanOnly){var a={subscriber:s,context:A,bufferTimeSpan:r};s.add(A.closeAction=o.schedule(v,r,a))}else{var c={subscriber:s,context:A},u={bufferTimeSpan:r,bufferCreationInterval:n,subscriber:s,scheduler:o};s.add(A.closeAction=o.schedule(b,r,c)),s.add(o.schedule(D,n,u))}return s}return n.ZT(t,e),t.prototype._next=function(e){for(var t,r=this.contexts,n=r.length,i=0;i0;){var n=t.shift();r.next(n.buffer)}e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.contexts=null},t.prototype.onBufferFull=function(e){this.closeContext(e);var t=e.closeAction;if(t.unsubscribe(),this.remove(t),!this.closed&&this.timespanOnly){e=this.openContext();var r=this.bufferTimeSpan,n={subscriber:this,context:e,bufferTimeSpan:r};this.add(e.closeAction=this.scheduler.schedule(v,r,n))}},t.prototype.openContext=function(){var e=new B;return this.contexts.push(e),e},t.prototype.closeContext=function(e){this.destination.next(e.buffer);var t=this.contexts;(t?t.indexOf(e):-1)>=0&&t.splice(t.indexOf(e),1)},t}(p.L);function v(e){var t=e.subscriber,r=e.context;r&&t.closeContext(r),t.closed||(e.context=t.openContext(),e.context.closeAction=this.schedule(e,e.bufferTimeSpan))}function D(e){var t=e.bufferCreationInterval,r=e.bufferTimeSpan,n=e.subscriber,i=e.scheduler,o=n.openContext();n.closed||(n.add(o.closeAction=i.schedule(b,r,{subscriber:n,context:o})),this.schedule(e,t))}function b(e){var t=e.subscriber,r=e.context;t.closeContext(r)}var S=r(73504);function k(e,t){return function(r){return r.lift(new x(e,t))}}var x=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new F(e,this.openings,this.closingSelector))},e}(),F=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add((0,o.D)(i,r)),i}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.contexts,r=t.length,n=0;n0;){var n=r.shift();n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,e.prototype._error.call(this,t)},t.prototype._complete=function(){for(var t=this.contexts;t.length>0;){var r=t.shift();this.destination.next(r.buffer),r.subscription.unsubscribe(),r.buffer=null,r.subscription=null}this.contexts=null,e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){e?this.closeBuffer(e):this.openBuffer(t)},t.prototype.notifyComplete=function(e){this.closeBuffer(e.context)},t.prototype.openBuffer=function(e){try{var t=this.closingSelector.call(this,e);t&&this.trySubscribe(t)}catch(e){this._error(e)}},t.prototype.closeBuffer=function(e){var t=this.contexts;if(t&&e){var r=e.buffer,n=e.subscription;this.destination.next(r),t.splice(t.indexOf(e),1),this.remove(n),n.unsubscribe()}},t.prototype.trySubscribe=function(e){var t=this.contexts,r=new S.w,n={buffer:[],subscription:r};t.push(n);var i=(0,o.D)(this,e,n);!i||i.closed?this.closeBuffer(n):(i.context=n,this.add(i),r.add(i))},t}(i.L);function M(e){return function(t){return t.lift(new N(e))}}var N=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new R(e,this.closingSelector))},e}(),R=function(e){function t(t,r){var n=e.call(this,t)||this;return n.closingSelector=r,n.subscribing=!1,n.openBuffer(),n}return n.ZT(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype._complete=function(){var t=this.buffer;t&&this.destination.next(t),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},t.prototype.notifyNext=function(e,t,r,n,i){this.openBuffer()},t.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},t.prototype.openBuffer=function(){var e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe());var t,r=this.buffer;this.buffer&&this.destination.next(r),this.buffer=[];try{t=(0,this.closingSelector)()}catch(e){return this.error(e)}e=new S.w,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add((0,o.D)(this,t)),this.subscribing=!1},t}(i.L),K=r(28907);function L(e){return function(t){var r=new T(e),n=t.lift(r);return r.caught=n}}var T=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new P(e,this.selector,this.caught))},e}(),P=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.selector=r,i.caught=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=void 0;try{r=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var n=new K.d(this,void 0,void 0);this.add(n);var i=(0,o.D)(this,r,void 0,void 0,n);i!==n&&this.add(i)}},t}(i.L),U=r(20995);function _(e){return function(t){return t.lift(new U.Ms(e))}}var O=r(47182),j=r(85861);function Y(){for(var e=[],t=0;t0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i);if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(e,o)}else this.unsubscribe(),t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,r=new fe(t.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(ue.P.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.scheduleNotification(ue.P.createComplete()),this.unsubscribe()},t}(p.L),fe=function(){return function(e,t){this.time=e,this.notification=t}}(),pe=r(98789);function de(e,t){return t?function(r){return new Ie(r,t).lift(new Ce(e))}:function(t){return t.lift(new Ce(e))}}var Ce=function(){function e(e){this.delayDurationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new Ee(e,this.delayDurationSelector))},e}(),Ee=function(e){function t(t,r){var n=e.call(this,t)||this;return n.delayDurationSelector=r,n.completed=!1,n.delayNotifierSubscriptions=[],n.index=0,n}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(e),this.removeSubscription(i),this.tryComplete()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){var t=this.removeSubscription(e);t&&this.destination.next(t),this.tryComplete()},t.prototype._next=function(e){var t=this.index++;try{var r=this.delayDurationSelector(e,t);r&&this.tryDelay(r,e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},t.prototype.removeSubscription=function(e){e.unsubscribe();var t=this.delayNotifierSubscriptions.indexOf(e);return-1!==t&&this.delayNotifierSubscriptions.splice(t,1),e.outerValue},t.prototype.tryDelay=function(e,t){var r=(0,o.D)(this,e,t);r&&!r.closed&&(this.destination.add(r),this.delayNotifierSubscriptions.push(r))},t.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},t}(i.L),Ie=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subscriptionDelay=r,n}return n.ZT(t,e),t.prototype._subscribe=function(e){this.subscriptionDelay.subscribe(new me(e,this.source))},t}(pe.y),me=function(e){function t(t,r){var n=e.call(this)||this;return n.parent=t,n.source=r,n.sourceSubscribed=!1,n}return n.ZT(t,e),t.prototype._next=function(e){this.subscribeToSource()},t.prototype._error=function(e){this.unsubscribe(),this.parent.error(e)},t.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},t.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},t}(p.L);function ye(){return function(e){return e.lift(new we)}}var we=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Be(e))},e}(),Be=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype._next=function(e){e.observe(this.destination)},t}(p.L);function Qe(e,t){return function(r){return r.lift(new ve(e,t))}}var ve=function(){function e(e,t){this.keySelector=e,this.flushes=t}return e.prototype.call=function(e,t){return t.subscribe(new De(e,this.keySelector,this.flushes))},e}(),De=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=r,i.values=new Set,n&&i.add((0,o.D)(i,n)),i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values.clear()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype._next=function(e){this.keySelector?this._useKeySelector(e):this._finalizeNext(e,e)},t.prototype._useKeySelector=function(e){var t,r=this.destination;try{t=this.keySelector(e)}catch(e){return void r.error(e)}this._finalizeNext(t,e)},t.prototype._finalizeNext=function(e,t){var r=this.values;r.has(e)||(r.add(e),this.destination.next(t))},t}(i.L);function be(e,t){return function(r){return r.lift(new Se(e,t))}}var Se=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new ke(e,this.compare,this.keySelector))},e}(),ke=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=n,i.hasKey=!1,"function"==typeof r&&(i.compare=r),i}return n.ZT(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t;try{var r=this.keySelector;t=r?r(e):e}catch(e){return this.destination.error(e)}var n=!1;if(this.hasKey)try{n=(0,this.compare)(this.key,t)}catch(e){return this.destination.error(e)}else this.hasKey=!0;n||(this.key=t,this.destination.next(e))},t}(p.L);function xe(e,t){return be((function(r,n){return t?t(r[e],n[e]):r[e]===n[e]}))}var Fe=r(3551),Me=r(39063),Ne=r(30943);function Re(e){return void 0===e&&(e=Te),function(t){return t.lift(new Ke(e))}}var Ke=function(){function e(e){this.errorFactory=e}return e.prototype.call=function(e,t){return t.subscribe(new Le(e,this.errorFactory))},e}(),Le=function(e){function t(t,r){var n=e.call(this,t)||this;return n.errorFactory=r,n.hasValue=!1,n}return n.ZT(t,e),t.prototype._next=function(e){this.hasValue=!0,this.destination.next(e)},t.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var e=void 0;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)},t}(p.L);function Te(){return new Ne.K}var Pe=r(61775);function Ue(e){return function(t){return 0===e?(0,Pe.c)():t.lift(new _e(e))}}var _e=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.W}return e.prototype.call=function(e,t){return t.subscribe(new Oe(e,this.total))},e}(),Oe=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))},t}(p.L);function je(e,t){if(e<0)throw new Fe.W;var r=arguments.length>=2;return function(n){return n.pipe((0,Me.h)((function(t,r){return r===e})),Ue(1),r?se(t):Re((function(){return new Fe.W})))}}var Ye=r(29686);function Ge(){for(var e=[],t=0;t0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(i.L);function it(e){return function(t){return t.lift(new ot(e))}}var ot=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new st(e,this.callback))},e}(),st=function(e){function t(t,r){var n=e.call(this,t)||this;return n.add(new S.w(r)),n}return n.ZT(t,e),t}(p.L);function At(e,t){if("function"!=typeof e)throw new TypeError("predicate is not a function");return function(r){return r.lift(new at(e,r,!1,t))}}var at=function(){function e(e,t,r,n){this.predicate=e,this.source=t,this.yieldIndex=r,this.thisArg=n}return e.prototype.call=function(e,t){return t.subscribe(new ct(e,this.predicate,this.source,this.yieldIndex,this.thisArg))},e}(),ct=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.predicate=r,s.source=n,s.yieldIndex=i,s.thisArg=o,s.index=0,s}return n.ZT(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete(),this.unsubscribe()},t.prototype._next=function(e){var t=this.predicate,r=this.thisArg,n=this.index++;try{t.call(r||this,e,n,this.source)&&this.notifyComplete(this.yieldIndex?n:e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},t}(p.L);function ut(e,t){return function(r){return r.lift(new at(e,r,!0,t))}}var lt=r(80433);function ht(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?(0,Me.h)((function(t,r){return e(t,r,n)})):lt.y,Ue(1),r?se(t):Re((function(){return new Ne.K})))}}var gt=r(92564);function ft(){return function(e){return e.lift(new pt)}}var pt=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new dt(e))},e}(),dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype._next=function(e){},t}(p.L);function Ct(){return function(e){return e.lift(new Et)}}var Et=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new It(e))},e}(),It=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype._next=function(e){this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(p.L);function mt(e){return function(t){return 0===e?(0,Pe.c)():t.lift(new yt(e))}}var yt=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.W}return e.prototype.call=function(e,t){return t.subscribe(new wt(e,this.total))},e}(),wt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.ring=new Array,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.ring,r=this.total,n=this.count++;t.length0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i=2;return function(n){return n.pipe(e?(0,Me.h)((function(t,r){return e(t,r,n)})):lt.y,mt(1),r?se(t):Re((function(){return new Ne.K})))}}function Qt(e){return function(t){return t.lift(new vt(e))}}var vt=function(){function e(e){this.value=e}return e.prototype.call=function(e,t){return t.subscribe(new Dt(e,this.value))},e}(),Dt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.value=r,n}return n.ZT(t,e),t.prototype._next=function(e){this.destination.next(this.value)},t}(p.L);function bt(){return function(e){return e.lift(new St)}}var St=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new kt(e))},e}(),kt=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype._next=function(e){this.destination.next(ue.P.createNext(e))},t.prototype._error=function(e){var t=this.destination;t.next(ue.P.createError(e)),t.complete()},t.prototype._complete=function(){var e=this.destination;e.next(ue.P.createComplete()),e.complete()},t}(p.L);function xt(e,t){var r=!1;return arguments.length>=2&&(r=!0),function(n){return n.lift(new Ft(e,t,r))}}var Ft=function(){function e(e,t,r){void 0===r&&(r=!1),this.accumulator=e,this.seed=t,this.hasSeed=r}return e.prototype.call=function(e,t){return t.subscribe(new Mt(e,this.accumulator,this.seed,this.hasSeed))},e}(),Mt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.accumulator=r,o._seed=n,o.hasSeed=i,o.index=0,o}return n.ZT(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.accumulator(this.seed,e,r)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(p.L),Nt=r(97836);function Rt(e,t){return arguments.length>=2?function(r){return(0,Nt.z)(xt(e,t),mt(1),se(t))(r)}:function(t){return(0,Nt.z)(xt((function(t,r,n){return e(t,r,n+1)})),mt(1))(t)}}function Kt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)>0?t:r}:function(e,t){return e>t?e:t})}var Lt=r(80810);function Tt(){for(var e=[],t=0;t0?this._next(t.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},t}(i.L);function Yt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)<0?t:r}:function(e,t){return e-1&&(this.count=r-1),t.subscribe(this._unsubscribeAndRecycle())}},t}(p.L);function Cr(e){return function(t){return t.lift(new Er(e))}}var Er=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new Ir(e,this.notifier,t))},e}(),Ir=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i.sourceIsBeingSubscribedTo=!0,i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},t.prototype.notifyComplete=function(t){if(!1===this.sourceIsBeingSubscribedTo)return e.prototype.complete.call(this)},t.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return e.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},t.prototype._unsubscribe=function(){var e=this.notifications,t=this.retriesSubscription;e&&(e.unsubscribe(),this.notifications=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype._unsubscribeAndRecycle=function(){var t=this._unsubscribe;return this._unsubscribe=null,e.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=t,this},t.prototype.subscribeToRetries=function(){var t;this.notifications=new ir.xQ;try{t=(0,this.notifier)(this.notifications)}catch(t){return e.prototype.complete.call(this)}this.retries=t,this.retriesSubscription=(0,o.D)(this,t)},t}(i.L);function mr(e){return void 0===e&&(e=-1),function(t){return t.lift(new yr(e,t))}}var yr=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new wr(e,this.count,this.source))},e}(),wr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.count=r,i.source=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.source,n=this.count;if(0===n)return e.prototype.error.call(this,t);n>-1&&(this.count=n-1),r.subscribe(this._unsubscribeAndRecycle())}},t}(p.L);function Br(e){return function(t){return t.lift(new Qr(e,t))}}var Qr=function(){function e(e,t){this.notifier=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new vr(e,this.notifier,this.source))},e}(),vr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.errors,n=this.retries,i=this.retriesSubscription;if(n)this.errors=null,this.retriesSubscription=null;else{r=new ir.xQ;try{n=(0,this.notifier)(r)}catch(t){return e.prototype.error.call(this,t)}i=(0,o.D)(this,n)}this._unsubscribeAndRecycle(),this.errors=r,this.retries=n,this.retriesSubscription=i,r.next(t)}},t.prototype._unsubscribe=function(){var e=this.errors,t=this.retriesSubscription;e&&(e.unsubscribe(),this.errors=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype.notifyNext=function(e,t,r,n,i){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},t}(i.L),Dr=r(97566);function br(e){return function(t){return t.lift(new Sr(e))}}var Sr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new kr(e),n=t.subscribe(r);return n.add((0,o.D)(r,this.notifier)),n},e}(),kr=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.hasValue=!1,t}return n.ZT(t,e),t.prototype._next=function(e){this.value=e,this.hasValue=!0},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},t}(i.L);function xr(e,t){return void 0===t&&(t=c.P),function(r){return r.lift(new Fr(e,t))}}var Fr=function(){function e(e,t){this.period=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new Mr(e,this.period,this.scheduler))},e}(),Mr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.period=r,i.scheduler=n,i.hasValue=!1,i.add(n.schedule(Nr,r,{subscriber:i,period:r})),i}return n.ZT(t,e),t.prototype._next=function(e){this.lastValue=e,this.hasValue=!0},t.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},t}(p.L);function Nr(e){var t=e.subscriber,r=e.period;t.notifyNext(),this.schedule(e,r)}function Rr(e,t){return function(r){return r.lift(new Kr(e,t))}}var Kr=function(){function e(e,t){this.compareTo=e,this.comparator=t}return e.prototype.call=function(e,t){return t.subscribe(new Lr(e,this.compareTo,this.comparator))},e}(),Lr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.compareTo=r,i.comparator=n,i._a=[],i._b=[],i._oneComplete=!1,i.destination.add(r.subscribe(new Tr(t,i))),i}return n.ZT(t,e),t.prototype._next=function(e){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(e),this.checkValues())},t.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},t.prototype.checkValues=function(){for(var e=this._a,t=this._b,r=this.comparator;e.length>0&&t.length>0;){var n=e.shift(),i=t.shift(),o=!1;try{o=r?r(n,i):n===i}catch(e){this.destination.error(e)}o||this.emit(!1)}},t.prototype.emit=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype.nextB=function(e){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(e),this.checkValues())},t.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},t}(p.L),Tr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.parent=r,n}return n.ZT(t,e),t.prototype._next=function(e){this.parent.nextB(e)},t.prototype._error=function(e){this.parent.error(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},t}(p.L);function Pr(){return new ir.xQ}function Ur(){return function(e){return(0,Dr.x)()(Jt(Pr)(e))}}function _r(e,t,r){var n;return n=e&&"object"==typeof e?e:{bufferSize:e,windowTime:t,refCount:!1,scheduler:r},function(e){return e.lift(function(e){var t,r,n=e.bufferSize,i=void 0===n?Number.POSITIVE_INFINITY:n,o=e.windowTime,s=void 0===o?Number.POSITIVE_INFINITY:o,A=e.refCount,a=e.scheduler,c=0,u=!1,l=!1;return function(e){c++,t&&!u||(u=!1,t=new ur.t(i,s,a),r=e.subscribe({next:function(e){t.next(e)},error:function(e){u=!0,t.error(e)},complete:function(){l=!0,r=void 0,t.complete()}}));var n=t.subscribe(this);this.add((function(){c--,n.unsubscribe(),r&&!l&&A&&0===c&&(r.unsubscribe(),r=void 0,t=void 0)}))}}(n))}}function Or(e){return function(t){return t.lift(new jr(e,t))}}var jr=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new Yr(e,this.predicate,this.source))},e}(),Yr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.source=n,i.seenValue=!1,i.index=0,i}return n.ZT(t,e),t.prototype.applySingleValue=function(e){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=e)},t.prototype._next=function(e){var t=this.index++;this.predicate?this.tryNext(e,t):this.applySingleValue(e)},t.prototype.tryNext=function(e,t){try{this.predicate(e,t,this.source)&&this.applySingleValue(e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){var e=this.destination;this.index>0?(e.next(this.seenValue?this.singleValue:void 0),e.complete()):e.error(new Ne.K)},t}(p.L);function Gr(e){return function(t){return t.lift(new Jr(e))}}var Jr=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new Hr(e,this.total))},e}(),Hr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(p.L);function qr(e){return function(t){return t.lift(new zr(e))}}var zr=function(){function e(e){if(this._skipCount=e,this._skipCount<0)throw new Fe.W}return e.prototype.call=function(e,t){return 0===this._skipCount?t.subscribe(new p.L(e)):t.subscribe(new Wr(e,this._skipCount))},e}(),Wr=function(e){function t(t,r){var n=e.call(this,t)||this;return n._skipCount=r,n._count=0,n._ring=new Array(r),n}return n.ZT(t,e),t.prototype._next=function(e){var t=this._skipCount,r=this._count++;if(r0?this.startWindowEvery:this.windowSize,r=this.destination,n=this.windowSize,i=this.windows,o=i.length,s=0;s=0&&A%t==0&&!this.closed&&i.shift().complete(),++this.count%t==0&&!this.closed){var a=new ir.xQ;i.push(a),r.next(a)}},t.prototype._error=function(e){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().complete();this.destination.complete()},t.prototype._unsubscribe=function(){this.count=0,this.windows=null},t}(p.L);function Zn(e){var t=c.P,r=null,n=Number.POSITIVE_INFINITY;return(0,m.K)(arguments[3])&&(t=arguments[3]),(0,m.K)(arguments[2])?t=arguments[2]:(0,on.k)(arguments[2])&&(n=arguments[2]),(0,m.K)(arguments[1])?t=arguments[1]:(0,on.k)(arguments[1])&&(r=arguments[1]),function(i){return i.lift(new $n(e,r,n,t))}}var $n=function(){function e(e,t,r,n){this.windowTimeSpan=e,this.windowCreationInterval=t,this.maxWindowSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new ti(e,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},e}(),ei=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._numberOfNextedValues=0,t}return n.ZT(t,e),t.prototype.next=function(t){this._numberOfNextedValues++,e.prototype.next.call(this,t)},Object.defineProperty(t.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),t}(ir.xQ),ti=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.destination=t,s.windowTimeSpan=r,s.windowCreationInterval=n,s.maxWindowSize=i,s.scheduler=o,s.windows=[];var A=s.openWindow();if(null!==n&&n>=0){var a={subscriber:s,window:A,context:null},c={windowTimeSpan:r,windowCreationInterval:n,subscriber:s,scheduler:o};s.add(o.schedule(ii,r,a)),s.add(o.schedule(ni,n,c))}else{var u={subscriber:s,window:A,windowTimeSpan:r};s.add(o.schedule(ri,r,u))}return s}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.windows,r=t.length,n=0;n=this.maxWindowSize&&this.closeWindow(i))}},t.prototype._error=function(e){for(var t=this.windows;t.length>0;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){for(var e=this.windows;e.length>0;){var t=e.shift();t.closed||t.complete()}this.destination.complete()},t.prototype.openWindow=function(){var e=new ei;return this.windows.push(e),this.destination.next(e),e},t.prototype.closeWindow=function(e){e.complete();var t=this.windows;t.splice(t.indexOf(e),1)},t}(p.L);function ri(e){var t=e.subscriber,r=e.windowTimeSpan,n=e.window;n&&t.closeWindow(n),e.window=t.openWindow(),this.schedule(e,r)}function ni(e){var t=e.windowTimeSpan,r=e.subscriber,n=e.scheduler,i=e.windowCreationInterval,o=r.openWindow(),s={action:this,subscription:null},A={subscriber:r,window:o,context:s};s.subscription=n.schedule(ii,t,A),this.add(s.subscription),this.schedule(e,i)}function ii(e){var t=e.subscriber,r=e.window,n=e.context;n&&n.action&&n.subscription&&n.action.remove(n.subscription),t.closeWindow(r)}function oi(e,t){return function(r){return r.lift(new si(e,t))}}var si=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new Ai(e,this.openings,this.closingSelector))},e}(),Ai=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add(i.openSubscription=(0,o.D)(i,r,r)),i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.contexts;if(t)for(var r=t.length,n=0;n0){var s=o.indexOf(r);-1!==s&&o.splice(s,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.L),fi=r(21336);function pi(){for(var e=[],t=0;t{var n=r(64293),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=s),o(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},44765:(e,t,r)=>{"use strict";var n,i=r(64293),o=i.Buffer,s={};for(n in i)i.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(s[n]=i[n]);var A=s.Buffer={};for(n in o)o.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(A[n]=o[n]);if(s.Buffer.prototype=o.prototype,A.from&&A.from!==Uint8Array.from||(A.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return o(e,t,r)}),A.alloc||(A.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=o(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!s.kStringMaxLength)try{s.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s},95584:(e,t)=>{var r;t=e.exports=l,r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var n=Number.MAX_SAFE_INTEGER||9007199254740991,i=t.re=[],o=t.src=[],s=t.tokens={},A=0;function a(e){s[e]=A++}a("NUMERICIDENTIFIER"),o[s.NUMERICIDENTIFIER]="0|[1-9]\\d*",a("NUMERICIDENTIFIERLOOSE"),o[s.NUMERICIDENTIFIERLOOSE]="[0-9]+",a("NONNUMERICIDENTIFIER"),o[s.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",a("MAINVERSION"),o[s.MAINVERSION]="("+o[s.NUMERICIDENTIFIER]+")\\.("+o[s.NUMERICIDENTIFIER]+")\\.("+o[s.NUMERICIDENTIFIER]+")",a("MAINVERSIONLOOSE"),o[s.MAINVERSIONLOOSE]="("+o[s.NUMERICIDENTIFIERLOOSE]+")\\.("+o[s.NUMERICIDENTIFIERLOOSE]+")\\.("+o[s.NUMERICIDENTIFIERLOOSE]+")",a("PRERELEASEIDENTIFIER"),o[s.PRERELEASEIDENTIFIER]="(?:"+o[s.NUMERICIDENTIFIER]+"|"+o[s.NONNUMERICIDENTIFIER]+")",a("PRERELEASEIDENTIFIERLOOSE"),o[s.PRERELEASEIDENTIFIERLOOSE]="(?:"+o[s.NUMERICIDENTIFIERLOOSE]+"|"+o[s.NONNUMERICIDENTIFIER]+")",a("PRERELEASE"),o[s.PRERELEASE]="(?:-("+o[s.PRERELEASEIDENTIFIER]+"(?:\\."+o[s.PRERELEASEIDENTIFIER]+")*))",a("PRERELEASELOOSE"),o[s.PRERELEASELOOSE]="(?:-?("+o[s.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+o[s.PRERELEASEIDENTIFIERLOOSE]+")*))",a("BUILDIDENTIFIER"),o[s.BUILDIDENTIFIER]="[0-9A-Za-z-]+",a("BUILD"),o[s.BUILD]="(?:\\+("+o[s.BUILDIDENTIFIER]+"(?:\\."+o[s.BUILDIDENTIFIER]+")*))",a("FULL"),a("FULLPLAIN"),o[s.FULLPLAIN]="v?"+o[s.MAINVERSION]+o[s.PRERELEASE]+"?"+o[s.BUILD]+"?",o[s.FULL]="^"+o[s.FULLPLAIN]+"$",a("LOOSEPLAIN"),o[s.LOOSEPLAIN]="[v=\\s]*"+o[s.MAINVERSIONLOOSE]+o[s.PRERELEASELOOSE]+"?"+o[s.BUILD]+"?",a("LOOSE"),o[s.LOOSE]="^"+o[s.LOOSEPLAIN]+"$",a("GTLT"),o[s.GTLT]="((?:<|>)?=?)",a("XRANGEIDENTIFIERLOOSE"),o[s.XRANGEIDENTIFIERLOOSE]=o[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",a("XRANGEIDENTIFIER"),o[s.XRANGEIDENTIFIER]=o[s.NUMERICIDENTIFIER]+"|x|X|\\*",a("XRANGEPLAIN"),o[s.XRANGEPLAIN]="[v=\\s]*("+o[s.XRANGEIDENTIFIER]+")(?:\\.("+o[s.XRANGEIDENTIFIER]+")(?:\\.("+o[s.XRANGEIDENTIFIER]+")(?:"+o[s.PRERELEASE]+")?"+o[s.BUILD]+"?)?)?",a("XRANGEPLAINLOOSE"),o[s.XRANGEPLAINLOOSE]="[v=\\s]*("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:"+o[s.PRERELEASELOOSE]+")?"+o[s.BUILD]+"?)?)?",a("XRANGE"),o[s.XRANGE]="^"+o[s.GTLT]+"\\s*"+o[s.XRANGEPLAIN]+"$",a("XRANGELOOSE"),o[s.XRANGELOOSE]="^"+o[s.GTLT]+"\\s*"+o[s.XRANGEPLAINLOOSE]+"$",a("COERCE"),o[s.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",a("COERCERTL"),i[s.COERCERTL]=new RegExp(o[s.COERCE],"g"),a("LONETILDE"),o[s.LONETILDE]="(?:~>?)",a("TILDETRIM"),o[s.TILDETRIM]="(\\s*)"+o[s.LONETILDE]+"\\s+",i[s.TILDETRIM]=new RegExp(o[s.TILDETRIM],"g");a("TILDE"),o[s.TILDE]="^"+o[s.LONETILDE]+o[s.XRANGEPLAIN]+"$",a("TILDELOOSE"),o[s.TILDELOOSE]="^"+o[s.LONETILDE]+o[s.XRANGEPLAINLOOSE]+"$",a("LONECARET"),o[s.LONECARET]="(?:\\^)",a("CARETTRIM"),o[s.CARETTRIM]="(\\s*)"+o[s.LONECARET]+"\\s+",i[s.CARETTRIM]=new RegExp(o[s.CARETTRIM],"g");a("CARET"),o[s.CARET]="^"+o[s.LONECARET]+o[s.XRANGEPLAIN]+"$",a("CARETLOOSE"),o[s.CARETLOOSE]="^"+o[s.LONECARET]+o[s.XRANGEPLAINLOOSE]+"$",a("COMPARATORLOOSE"),o[s.COMPARATORLOOSE]="^"+o[s.GTLT]+"\\s*("+o[s.LOOSEPLAIN]+")$|^$",a("COMPARATOR"),o[s.COMPARATOR]="^"+o[s.GTLT]+"\\s*("+o[s.FULLPLAIN]+")$|^$",a("COMPARATORTRIM"),o[s.COMPARATORTRIM]="(\\s*)"+o[s.GTLT]+"\\s*("+o[s.LOOSEPLAIN]+"|"+o[s.XRANGEPLAIN]+")",i[s.COMPARATORTRIM]=new RegExp(o[s.COMPARATORTRIM],"g");a("HYPHENRANGE"),o[s.HYPHENRANGE]="^\\s*("+o[s.XRANGEPLAIN]+")\\s+-\\s+("+o[s.XRANGEPLAIN]+")\\s*$",a("HYPHENRANGELOOSE"),o[s.HYPHENRANGELOOSE]="^\\s*("+o[s.XRANGEPLAINLOOSE]+")\\s+-\\s+("+o[s.XRANGEPLAINLOOSE]+")\\s*$",a("STAR"),o[s.STAR]="(<|>)?=?\\s*\\*";for(var c=0;c256)return null;if(!(t.loose?i[s.LOOSE]:i[s.FULL]).test(e))return null;try{return new l(e,t)}catch(e){return null}}function l(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof l){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof l))return new l(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var o=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!o)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new l(e,r).inc(t,n).version}catch(e){return null}},t.diff=function(e,t){if(C(e,t))return null;var r=u(e),n=u(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var o="prerelease"}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return i+s;return o},t.compareIdentifiers=g;var h=/^[0-9]+$/;function g(e,t){var r=h.test(e),n=h.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e0}function d(e,t,r){return f(e,t,r)<0}function C(e,t,r){return 0===f(e,t,r)}function E(e,t,r){return 0!==f(e,t,r)}function I(e,t,r){return f(e,t,r)>=0}function m(e,t,r){return f(e,t,r)<=0}function y(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return C(e,r,n);case"!=":return E(e,r,n);case">":return p(e,r,n);case">=":return I(e,r,n);case"<":return d(e,r,n);case"<=":return m(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}function w(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof w){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof w))return new w(e,t);r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===B?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return g(t,e)},t.major=function(e,t){return new l(e,t).major},t.minor=function(e,t){return new l(e,t).minor},t.patch=function(e,t){return new l(e,t).patch},t.compare=f,t.compareLoose=function(e,t){return f(e,t,!0)},t.compareBuild=function(e,t,r){var n=new l(e,r),i=new l(t,r);return n.compare(i)||n.compareBuild(i)},t.rcompare=function(e,t,r){return f(t,e,r)},t.sort=function(e,r){return e.sort((function(e,n){return t.compareBuild(e,n,r)}))},t.rsort=function(e,r){return e.sort((function(e,n){return t.compareBuild(n,e,r)}))},t.gt=p,t.lt=d,t.eq=C,t.neq=E,t.gte=I,t.lte=m,t.cmp=y,t.Comparator=w;var B={};function Q(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof Q)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Q(e.raw,t);if(e instanceof w)return new Q(e.value,t);if(!(this instanceof Q))return new Q(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((function(e){return this.parseRange(e.trim())}),this).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every((function(e){return i.intersects(e,t)})),i=n.pop();return r}function D(e){return!e||"x"===e.toLowerCase()||"*"===e}function b(e,t,r,n,i,o,s,A,a,c,u,l,h){return((t=D(r)?"":D(n)?">="+r+".0.0":D(i)?">="+r+"."+n+".0":">="+t)+" "+(A=D(a)?"":D(c)?"<"+(+a+1)+".0.0":D(u)?"<"+a+"."+(+c+1)+".0":l?"<="+a+"."+c+"."+u+"-"+l:"<="+A)).trim()}function S(e,t,n){for(var i=0;i0){var o=e[i].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}function k(e,t,r){try{t=new Q(t,r)}catch(e){return!1}return t.test(e)}function x(e,t,r,n){var i,o,s,A,a;switch(e=new l(e,n),t=new Q(t,n),r){case">":i=p,o=m,s=d,A=">",a=">=";break;case"<":i=d,o=I,s=p,A="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(k(e,t,n))return!1;for(var c=0;c=0.0.0")),h=h||e,g=g||e,i(e.semver,h.semver,n)?h=e:s(e.semver,g.semver,n)&&(g=e)})),h.operator===A||h.operator===a)return!1;if((!g.operator||g.operator===A)&&o(e,g.semver))return!1;if(g.operator===a&&s(e,g.semver))return!1}return!0}w.prototype.parse=function(e){var t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new l(r[2],this.options.loose):this.semver=B},w.prototype.toString=function(){return this.value},w.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===B||e===B)return!0;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}return y(e,this.operator,this.semver,this.options)},w.prototype.intersects=function(e,t){if(!(e instanceof w))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new Q(e.value,t),k(this.value,r,t));if(""===e.operator)return""===e.value||(r=new Q(this.value,t),k(e.semver,r,t));var n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),i=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),A=y(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),a=y(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&s||A||a},t.Range=Q,Q.prototype.format=function(){return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range},Q.prototype.toString=function(){return this.range},Q.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var n=t?i[s.HYPHENRANGELOOSE]:i[s.HYPHENRANGE];e=e.replace(n,b),r("hyphen replace",e),e=e.replace(i[s.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[s.COMPARATORTRIM]),e=(e=(e=e.replace(i[s.TILDETRIM],"$1~")).replace(i[s.CARETTRIM],"$1^")).split(/\s+/).join(" ");var o=t?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],A=e.split(" ").map((function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){r("caret",e,t);var n=t.loose?i[s.CARETLOOSE]:i[s.CARET];return e.replace(n,(function(t,n,i,o,s){var A;return r("caret",e,t,n,i,o,s),D(n)?A="":D(i)?A=">="+n+".0.0 <"+(+n+1)+".0.0":D(o)?A="0"===n?">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":">="+n+"."+i+".0 <"+(+n+1)+".0.0":s?(r("replaceCaret pr",s),A="0"===n?"0"===i?">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+i+"."+(+o+1):">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+o+"-"+s+" <"+(+n+1)+".0.0"):(r("no pr"),A="0"===n?"0"===i?">="+n+"."+i+"."+o+" <"+n+"."+i+"."+(+o+1):">="+n+"."+i+"."+o+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+o+" <"+(+n+1)+".0.0"),r("caret return",A),A}))}(e,t)})).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){var n=t.loose?i[s.TILDELOOSE]:i[s.TILDE];return e.replace(n,(function(t,n,i,o,s){var A;return r("tilde",e,t,n,i,o,s),D(n)?A="":D(i)?A=">="+n+".0.0 <"+(+n+1)+".0.0":D(o)?A=">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":s?(r("replaceTilde pr",s),A=">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+(+i+1)+".0"):A=">="+n+"."+i+"."+o+" <"+n+"."+(+i+1)+".0",r("tilde return",A),A}))}(e,t)})).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return function(e,t){e=e.trim();var n=t.loose?i[s.XRANGELOOSE]:i[s.XRANGE];return e.replace(n,(function(n,i,o,s,A,a){r("xRange",e,n,i,o,s,A,a);var c=D(o),u=c||D(s),l=u||D(A),h=l;return"="===i&&h&&(i=""),a=t.includePrerelease?"-0":"",c?n=">"===i||"<"===i?"<0.0.0-0":"*":i&&h?(u&&(s=0),A=0,">"===i?(i=">=",u?(o=+o+1,s=0,A=0):(s=+s+1,A=0)):"<="===i&&(i="<",u?o=+o+1:s=+s+1),n=i+o+"."+s+"."+A+a):u?n=">="+o+".0.0"+a+" <"+(+o+1)+".0.0"+a:l&&(n=">="+o+"."+s+".0"+a+" <"+o+"."+(+s+1)+".0"+a),r("xRange return",n),n}))}(e,t)})).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[s.STAR],"")}(e,t),r("stars",e),e}(e,this.options)}),this).join(" ").split(/\s+/);return this.options.loose&&(A=A.filter((function(e){return!!e.match(o)}))),A=A.map((function(e){return new w(e,this.options)}),this)},Q.prototype.intersects=function(e,t){if(!(e instanceof Q))throw new TypeError("a Range is required");return this.set.some((function(r){return v(r,t)&&e.set.some((function(e){return v(e,t)&&r.every((function(r){return e.every((function(e){return r.intersects(e,t)}))}))}))}))},t.toComparators=function(e,t){return new Q(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))},Q.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(var t=0;t":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!p(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}}))}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new Q(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return x(e,t,"<",r)},t.gtr=function(e,t,r){return x(e,t,">",r)},t.outside=x,t.prerelease=function(e,t){var r=u(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new Q(e,r),t=new Q(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof l)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var n;(n=i[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&n.index+n[0].length===r.index+r[0].length||(r=n),i[s.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;i[s.COERCERTL].lastIndex=-1}else r=e.match(i[s.COERCE]);if(null===r)return null;return u(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}},29069:(e,t,r)=>{const n=Symbol("SemVer ANY");class i{static get ANY(){return n}constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof i){if(e.loose===!!t.loose)return e;e=e.value}a("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===n?this.value="":this.value=this.operator+this.semver.version,a("comp",this)}parse(e){const t=this.options.loose?o[s.COMPARATORLOOSE]:o[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(a("Comparator.test",e,this.options.loose),this.semver===n||e===n)return!0;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}return A(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof i))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new u(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new u(this.value,t).test(e.semver);const r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=A(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=A(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||o&&s||a||c}}e.exports=i;const{re:o,t:s}=r(49439),A=r(38754),a=r(6029),c=r(14772),u=r(73004)},73004:(e,t,r)=>{class n{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=this.options.loose;e=e.trim();const r=t?A[a.HYPHENRANGELOOSE]:A[a.HYPHENRANGE];e=e.replace(r,B(this.options.includePrerelease)),o("hyphen replace",e),e=e.replace(A[a.COMPARATORTRIM],c),o("comparator trim",e,A[a.COMPARATORTRIM]),e=(e=(e=e.replace(A[a.TILDETRIM],u)).replace(A[a.CARETTRIM],l)).split(/\s+/).join(" ");const n=t?A[a.COMPARATORLOOSE]:A[a.COMPARATOR];return e.split(" ").map(e=>g(e,this.options)).join(" ").split(/\s+/).map(e=>w(e,this.options)).filter(this.options.loose?e=>!!e.match(n):()=>!0).map(e=>new i(e,this.options))}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>h(r,t)&&e.set.some(e=>h(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options)}catch(e){return!1}for(let t=0;t{let r=!0;const n=e.slice();let i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r},g=(e,t)=>(o("comp",e,t),e=C(e,t),o("caret",e),e=p(e,t),o("tildes",e),e=I(e,t),o("xrange",e),e=y(e,t),o("stars",e),e),f=e=>!e||"x"===e.toLowerCase()||"*"===e,p=(e,t)=>e.trim().split(/\s+/).map(e=>d(e,t)).join(" "),d=(e,t)=>{const r=t.loose?A[a.TILDELOOSE]:A[a.TILDE];return e.replace(r,(t,r,n,i,s)=>{let A;return o("tilde",e,t,r,n,i,s),f(r)?A="":f(n)?A=`>=${r}.0.0 <${+r+1}.0.0-0`:f(i)?A=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:s?(o("replaceTilde pr",s),A=`>=${r}.${n}.${i}-${s} <${r}.${+n+1}.0-0`):A=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,o("tilde return",A),A})},C=(e,t)=>e.trim().split(/\s+/).map(e=>E(e,t)).join(" "),E=(e,t)=>{o("caret",e,t);const r=t.loose?A[a.CARETLOOSE]:A[a.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,s,A)=>{let a;return o("caret",e,t,r,i,s,A),f(r)?a="":f(i)?a=`>=${r}.0.0${n} <${+r+1}.0.0-0`:f(s)?a="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:A?(o("replaceCaret pr",A),a="0"===r?"0"===i?`>=${r}.${i}.${s}-${A} <${r}.${i}.${+s+1}-0`:`>=${r}.${i}.${s}-${A} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${s}-${A} <${+r+1}.0.0-0`):(o("no pr"),a="0"===r?"0"===i?`>=${r}.${i}.${s}${n} <${r}.${i}.${+s+1}-0`:`>=${r}.${i}.${s}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${s} <${+r+1}.0.0-0`),o("caret return",a),a})},I=(e,t)=>(o("replaceXRanges",e,t),e.split(/\s+/).map(e=>m(e,t)).join(" ")),m=(e,t)=>{e=e.trim();const r=t.loose?A[a.XRANGELOOSE]:A[a.XRANGE];return e.replace(r,(r,n,i,s,A,a)=>{o("xRange",e,r,n,i,s,A,a);const c=f(i),u=c||f(s),l=u||f(A),h=l;return"="===n&&h&&(n=""),a=t.includePrerelease?"-0":"",c?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&h?(u&&(s=0),A=0,">"===n?(n=">=",u?(i=+i+1,s=0,A=0):(s=+s+1,A=0)):"<="===n&&(n="<",u?i=+i+1:s=+s+1),"<"===n&&(a="-0"),r=`${n+i}.${s}.${A}${a}`):u?r=`>=${i}.0.0${a} <${+i+1}.0.0-0`:l&&(r=`>=${i}.${s}.0${a} <${i}.${+s+1}.0-0`),o("xRange return",r),r})},y=(e,t)=>(o("replaceStars",e,t),e.trim().replace(A[a.STAR],"")),w=(e,t)=>(o("replaceGTE0",e,t),e.trim().replace(A[t.includePrerelease?a.GTE0PRE:a.GTE0],"")),B=e=>(t,r,n,i,o,s,A,a,c,u,l,h,g)=>`${r=f(n)?"":f(i)?`>=${n}.0.0${e?"-0":""}`:f(o)?`>=${n}.${i}.0${e?"-0":""}`:s?">="+r:`>=${r}${e?"-0":""}`} ${a=f(c)?"":f(u)?`<${+c+1}.0.0-0`:f(l)?`<${c}.${+u+1}.0-0`:h?`<=${c}.${u}.${l}-${h}`:e?`<${c}.${u}.${+l+1}-0`:"<="+a}`.trim(),Q=(e,t,r)=>{for(let r=0;r0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0}},14772:(e,t,r)=>{const n=r(6029),{MAX_LENGTH:i,MAX_SAFE_INTEGER:o}=r(76483),{re:s,t:A}=r(49439),{compareIdentifiers:a}=r(99297);class c{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?s[A.LOOSE]:s[A.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}e.exports=c},31192:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}},38754:(e,t,r)=>{const n=r(78760),i=r(83286),o=r(26544),s=r(44984),A=r(65069),a=r(93845);e.exports=(e,t,r,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return n(e,r,c);case"!=":return i(e,r,c);case">":return o(e,r,c);case">=":return s(e,r,c);case"<":return A(e,r,c);case"<=":return a(e,r,c);default:throw new TypeError("Invalid operator: "+t)}}},38113:(e,t,r)=>{const n=r(14772),i=r(21883),{re:o,t:s}=r(49439);e.exports=(e,t)=>{if(e instanceof n)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let r=null;if((t=t||{}).rtl){let t;for(;(t=o[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),o[s.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[s.COERCERTL].lastIndex=-1}else r=e.match(o[s.COERCE]);return null===r?null:i(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)}},63353:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>{const i=new n(e,r),o=new n(t,r);return i.compare(o)||i.compareBuild(o)}},58566:(e,t,r)=>{const n=r(17340);e.exports=(e,t)=>n(e,t,!0)},17340:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},29301:(e,t,r)=>{const n=r(21883),i=r(78760);e.exports=(e,t)=>{if(i(e,t))return null;{const r=n(e),i=n(t),o=r.prerelease.length||i.prerelease.length,s=o?"pre":"",A=o?"prerelease":"";for(const e in r)if(("major"===e||"minor"===e||"patch"===e)&&r[e]!==i[e])return s+e;return A}}},78760:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0===n(e,t,r)},26544:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>0},44984:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>=0},24063:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r,i)=>{"string"==typeof r&&(i=r,r=void 0);try{return new n(e,r).inc(t,i).version}catch(e){return null}}},65069:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<0},93845:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<=0},75157:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).major},5195:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).minor},83286:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0!==n(e,t,r)},21883:(e,t,r)=>{const{MAX_LENGTH:n}=r(76483),{re:i,t:o}=r(49439),s=r(14772);e.exports=(e,t)=>{if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof s)return e;if("string"!=typeof e)return null;if(e.length>n)return null;if(!(t.loose?i[o.LOOSE]:i[o.FULL]).test(e))return null;try{return new s(e,t)}catch(e){return null}}},39592:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).patch},27050:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}},93788:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(t,e,r)},15213:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))},73011:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>{try{t=new n(t,r)}catch(e){return!1}return t.test(e)}},71102:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))},99589:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r?r.version:null}},53887:(e,t,r)=>{const n=r(49439);e.exports={re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r(76483).SEMVER_SPEC_VERSION,SemVer:r(14772),compareIdentifiers:r(99297).compareIdentifiers,rcompareIdentifiers:r(99297).rcompareIdentifiers,parse:r(21883),valid:r(99589),clean:r(31192),inc:r(24063),diff:r(29301),major:r(75157),minor:r(5195),patch:r(39592),prerelease:r(27050),compare:r(17340),rcompare:r(93788),compareLoose:r(58566),compareBuild:r(63353),sort:r(71102),rsort:r(15213),gt:r(26544),lt:r(65069),eq:r(78760),neq:r(83286),gte:r(44984),lte:r(93845),cmp:r(38754),coerce:r(38113),Comparator:r(29069),Range:r(73004),satisfies:r(73011),toComparators:r(47753),maxSatisfying:r(1895),minSatisfying:r(33252),minVersion:r(4224),validRange:r(44315),outside:r(842),gtr:r(69258),ltr:r(36928),intersects:r(87395),simplifyRange:r(3530),subset:r(74264)}},76483:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},6029:e=>{const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},99297:e=>{const t=/^[0-9]+$/,r=(e,r)=>{const n=t.test(e),i=t.test(r);return n&&i&&(e=+e,r=+r),e===r?0:n&&!i?-1:i&&!n?1:er(t,e)}},49439:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:n}=r(76483),i=r(6029),o=(t=e.exports={}).re=[],s=t.src=[],A=t.t={};let a=0;const c=(e,t,r)=>{const n=a++;i(n,t),A[e]=n,s[n]=t,o[n]=new RegExp(t,r?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${s[A.NUMERICIDENTIFIER]})\\.(${s[A.NUMERICIDENTIFIER]})\\.(${s[A.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${s[A.NUMERICIDENTIFIERLOOSE]})\\.(${s[A.NUMERICIDENTIFIERLOOSE]})\\.(${s[A.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${s[A.NUMERICIDENTIFIER]}|${s[A.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${s[A.NUMERICIDENTIFIERLOOSE]}|${s[A.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${s[A.PRERELEASEIDENTIFIER]}(?:\\.${s[A.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${s[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[A.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${s[A.BUILDIDENTIFIER]}(?:\\.${s[A.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${s[A.MAINVERSION]}${s[A.PRERELEASE]}?${s[A.BUILD]}?`),c("FULL",`^${s[A.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${s[A.MAINVERSIONLOOSE]}${s[A.PRERELEASELOOSE]}?${s[A.BUILD]}?`),c("LOOSE",`^${s[A.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",s[A.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),c("XRANGEIDENTIFIER",s[A.NUMERICIDENTIFIER]+"|x|X|\\*"),c("XRANGEPLAIN",`[v=\\s]*(${s[A.XRANGEIDENTIFIER]})(?:\\.(${s[A.XRANGEIDENTIFIER]})(?:\\.(${s[A.XRANGEIDENTIFIER]})(?:${s[A.PRERELEASE]})?${s[A.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${s[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[A.XRANGEIDENTIFIERLOOSE]})(?:${s[A.PRERELEASELOOSE]})?${s[A.BUILD]}?)?)?`),c("XRANGE",`^${s[A.GTLT]}\\s*${s[A.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${s[A.GTLT]}\\s*${s[A.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),c("COERCERTL",s[A.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${s[A.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${s[A.LONETILDE]}${s[A.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${s[A.LONETILDE]}${s[A.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${s[A.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${s[A.LONECARET]}${s[A.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${s[A.LONECARET]}${s[A.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${s[A.GTLT]}\\s*(${s[A.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${s[A.GTLT]}\\s*(${s[A.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${s[A.GTLT]}\\s*(${s[A.LOOSEPLAIN]}|${s[A.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${s[A.XRANGEPLAIN]})\\s+-\\s+(${s[A.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${s[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${s[A.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},89153:e=>{"use strict";e.exports={u2:"semver"}},69258:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,">",r)},87395:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t))},36928:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,"<",r)},1895:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let o=null,s=null,A=null;try{A=new i(t,r)}catch(e){return null}return e.forEach(e=>{A.test(e)&&(o&&-1!==s.compare(e)||(o=e,s=new n(o,r)))}),o}},33252:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let o=null,s=null,A=null;try{A=new i(t,r)}catch(e){return null}return e.forEach(e=>{A.test(e)&&(o&&1!==s.compare(e)||(o=e,s=new n(o,r)))}),o}},4224:(e,t,r)=>{const n=r(14772),i=r(73004),o=r(26544);e.exports=(e,t)=>{e=new i(e,t);let r=new n("0.0.0");if(e.test(r))return r;if(r=new n("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t{const t=new n(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!o(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}return r&&e.test(r)?r:null}},842:(e,t,r)=>{const n=r(14772),i=r(29069),{ANY:o}=i,s=r(73004),A=r(73011),a=r(26544),c=r(65069),u=r(93845),l=r(44984);e.exports=(e,t,r,h)=>{let g,f,p,d,C;switch(e=new n(e,h),t=new s(t,h),r){case">":g=a,f=u,p=c,d=">",C=">=";break;case"<":g=c,f=l,p=a,d="<",C="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(A(e,t,h))return!1;for(let r=0;r{e.semver===o&&(e=new i(">=0.0.0")),s=s||e,A=A||e,g(e.semver,s.semver,h)?s=e:p(e.semver,A.semver,h)&&(A=e)}),s.operator===d||s.operator===C)return!1;if((!A.operator||A.operator===d)&&f(e,A.semver))return!1;if(A.operator===C&&p(e,A.semver))return!1}return!0}},3530:(e,t,r)=>{const n=r(73011),i=r(17340);e.exports=(e,t,r)=>{const o=[];let s=null,A=null;const a=e.sort((e,t)=>i(e,t,r));for(const e of a){n(e,t,r)?(A=e,s||(s=e)):(A&&o.push([s,A]),A=null,s=null)}s&&o.push([s,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==a[0]?t?e===a[0]?c.push("<="+t):c.push(`${e} - ${t}`):c.push(">="+e):c.push("*");const u=c.join(" || "),l="string"==typeof t.raw?t.raw:String(t);return u.length{const n=r(73004),{ANY:i}=r(29069),o=r(73011),s=r(17340),A=(e,t,r)=>{if(1===e.length&&e[0].semver===i)return 1===t.length&&t[0].semver===i;const n=new Set;let A,u,l,h,g,f,p;for(const t of e)">"===t.operator||">="===t.operator?A=a(A,t,r):"<"===t.operator||"<="===t.operator?u=c(u,t,r):n.add(t.semver);if(n.size>1)return null;if(A&&u){if(l=s(A.semver,u.semver,r),l>0)return null;if(0===l&&(">="!==A.operator||"<="!==u.operator))return null}for(const e of n){if(A&&!o(e,String(A),r))return null;if(u&&!o(e,String(u),r))return null;for(const n of t)if(!o(e,String(n),r))return!1;return!0}for(const e of t){if(p=p||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,A)if(">"===e.operator||">="===e.operator){if(h=a(A,e,r),h===e)return!1}else if(">="===A.operator&&!o(A.semver,String(e),r))return!1;if(u)if("<"===e.operator||"<="===e.operator){if(g=c(u,e,r),g===e)return!1}else if("<="===u.operator&&!o(u.semver,String(e),r))return!1;if(!e.operator&&(u||A)&&0!==l)return!1}return!(A&&f&&!u&&0!==l)&&!(u&&p&&!A&&0!==l)},a=(e,t,r)=>{if(!e)return t;const n=s(e.semver,t.semver,r);return n>0?e:n<0||">"===t.operator&&">="===e.operator?t:e},c=(e,t,r)=>{if(!e)return t;const n=s(e.semver,t.semver,r);return n<0?e:n>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,r)=>{e=new n(e,r),t=new n(t,r);let i=!1;e:for(const n of e.set){for(const e of t.set){const t=A(n,e,r);if(i=i||null!==t,t)continue e}if(i)return!1}return!0}},47753:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},44315:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>{try{return new n(e,t).range||"*"}catch(e){return null}}},91470:(e,t,r)=>{"use strict";const n=r(67719);e.exports=(e="")=>{const t=e.match(n);if(!t)return null;const[r,i]=t[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return"env"===o?i:i?`${o} ${i}`:o}},67719:e=>{"use strict";e.exports=/^#!(.*)/},76458:(e,t,r)=>{var n,i=r(42357),o=r(48082),s=r(28614);function A(){u&&(u=!1,o.forEach((function(e){try{process.removeListener(e,c[e])}catch(e){}})),process.emit=f,process.reallyExit=h,n.count-=1)}function a(e,t,r){n.emitted[e]||(n.emitted[e]=!0,n.emit(e,t,r))}"function"!=typeof s&&(s=s.EventEmitter),process.__signal_exit_emitter__?n=process.__signal_exit_emitter__:((n=process.__signal_exit_emitter__=new s).count=0,n.emitted={}),n.infinite||(n.setMaxListeners(1/0),n.infinite=!0),e.exports=function(e,t){i.equal(typeof e,"function","a callback must be provided for exit handler"),!1===u&&l();var r="exit";t&&t.alwaysLast&&(r="afterexit");return n.on(r,e),function(){n.removeListener(r,e),0===n.listeners("exit").length&&0===n.listeners("afterexit").length&&A()}},e.exports.unload=A;var c={};o.forEach((function(e){c[e]=function(){process.listeners(e).length===n.count&&(A(),a("exit",null,e),a("afterexit",null,e),process.kill(process.pid,e))}})),e.exports.signals=function(){return o},e.exports.load=l;var u=!1;function l(){u||(u=!0,n.count+=1,o=o.filter((function(e){try{return process.on(e,c[e]),!0}catch(e){return!1}})),process.emit=p,process.reallyExit=g)}var h=process.reallyExit;function g(e){process.exitCode=e||0,a("exit",process.exitCode,null),a("afterexit",process.exitCode,null),h.call(process,process.exitCode)}var f=process.emit;function p(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var r=f.apply(this,arguments);return a("exit",process.exitCode,null),a("afterexit",process.exitCode,null),r}return f.apply(this,arguments)}},48082:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},17234:e=>{"use strict";e.exports=e=>{const t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},10129:(e,t,r)=>{"use strict";const n=r(76417),i=r(19184),o=r(92413).Transform,s=["sha256","sha384","sha512"],A=/^[a-z0-9+/]+(?:=?=?)$/i,a=/^([^-]+)-([^?]+)([?\S*]*)$/,c=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,u=/^[\x21-\x7E]+$/,l=i({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>m},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}});class h{get isHash(){return!0}constructor(e,t){const r=!!(t=l(t)).strict;this.source=e.trim();const n=this.source.match(r?c:a);if(!n)return;if(r&&!s.some(e=>e===n[1]))return;this.algorithm=n[1],this.digest=n[2];const i=n[3];this.options=i?i.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if((e=l(e)).strict&&!(s.some(e=>e===this.algorithm)&&this.digest.match(A)&&(this.options||[]).every(e=>e.match(u))))return"";const t=this.options&&this.options.length?"?"+this.options.join("?"):"";return`${this.algorithm}-${this.digest}${t}`}}class g{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){let t=(e=l(e)).sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(r=>this[r].map(t=>h.prototype.toString.call(t,e)).filter(e=>e.length).join(t)).filter(e=>e.length).join(t)}concat(e,t){t=l(t);const r="string"==typeof e?e:d(e,t);return f(`${this.toString(t)} ${r}`,t)}hexDigest(){return f(this,{single:!0}).hexDigest()}match(e,t){const r=f(e,t=l(t)),n=r.pickAlgorithm(t);return this[n]&&r[n]&&this[n].find(e=>r[n].find(t=>e.digest===t.digest))||!1}pickAlgorithm(e){const t=(e=l(e)).pickAlgorithm,r=Object.keys(this);if(!r.length)throw new Error("No algorithms available for "+JSON.stringify(this.toString()));return r.reduce((e,r)=>t(e,r)||e)}}function f(e,t){if(t=l(t),"string"==typeof e)return p(e,t);if(e.algorithm&&e.digest){const r=new g;return r[e.algorithm]=[e],p(d(r,t),t)}return p(d(e,t),t)}function p(e,t){return t.single?new h(e,t):e.trim().split(/\s+/).reduce((e,r)=>{const n=new h(r,t);if(n.algorithm&&n.digest){const t=n.algorithm;e[t]||(e[t]=[]),e[t].push(n)}return e},new g)}function d(e,t){return t=l(t),e.algorithm&&e.digest?h.prototype.toString.call(e,t):"string"==typeof e?d(f(e,t),t):g.prototype.toString.call(e,t)}function C(e){const t=(e=l(e)).integrity&&f(e.integrity,e),r=t&&Object.keys(t).length,i=r&&t.pickAlgorithm(e),s=r&&t[i],A=Array.from(new Set(e.algorithms.concat(i?[i]:[]))),a=A.map(n.createHash);let c=0;const u=new o({transform(e,t,r){c+=e.length,a.forEach(r=>r.update(e,t)),r(null,e,t)}}).on("end",()=>{const n=e.options&&e.options.length?"?"+e.options.join("?"):"",o=f(a.map((e,t)=>`${A[t]}-${e.digest("base64")}${n}`).join(" "),e),l=r&&o.match(t,e);if("number"==typeof e.size&&c!==e.size){const r=new Error(`stream size mismatch when checking ${t}.\n Wanted: ${e.size}\n Found: ${c}`);r.code="EBADSIZE",r.found=c,r.expected=e.size,r.sri=t,u.emit("error",r)}else if(e.integrity&&!l){const e=new Error(`${t} integrity checksum failed when using ${i}: wanted ${s} but got ${o}. (${c} bytes)`);e.code="EINTEGRITY",e.found=o,e.expected=s,e.algorithm=i,e.sri=t,u.emit("error",e)}else u.emit("size",c),u.emit("integrity",o),l&&u.emit("verified",l)});return u}e.exports.Sd=function(e,t){const r=(t=l(t)).algorithms,i=t.options&&t.options.length?"?"+t.options.join("?"):"";return r.reduce((r,o)=>{const s=n.createHash(o).update(e).digest("base64"),A=new h(`${o}-${s}${i}`,t);if(A.algorithm&&A.digest){const e=A.algorithm;r[e]||(r[e]=[]),r[e].push(A)}return r},new g)};const E=new Set(n.getHashes()),I=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>E.has(e));function m(e,t){return I.indexOf(e.toLowerCase())>=I.indexOf(t.toLowerCase())?e:t}},55043:(e,t,r)=>{"use strict";const n=r(7915),i=r(7347),o=r(1013),s=e=>{if("string"!=typeof(e=e.replace(o()," "))||0===e.length)return 0;e=n(e);let t=0;for(let r=0;r=127&&n<=159||(n>=768&&n<=879||(n>65535&&r++,t+=i(n)?2:1))}return t};e.exports=s,e.exports.default=s},69538:(e,t,r)=>{"use strict";var n=r(13499).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=a,this.end=c,t=4;break;case"utf8":this.fillLast=A,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=h,void(this.end=g)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function A(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function g(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},7915:(e,t,r)=>{"use strict";const n=r(81337);e.exports=e=>"string"==typeof e?e.replace(n(),""):e},59428:(e,t,r)=>{"use strict";const n=r(12087),i=r(33867),o=r(72918),{env:s}=process;let A;function a(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function c(e,t){if(0===A)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===A)return 0;const r=A||0;if("dumb"===s.TERM)return r;if("win32"===process.platform){const e=n.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in s)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in s)||"codeship"===s.CI_NAME?1:r;if("TEAMCITY_VERSION"in s)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in s)return 1;if("truecolor"===s.COLORTERM)return 3;if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(s.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)||"COLORTERM"in s?1:r}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?A=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(A=1),"FORCE_COLOR"in s&&(A="true"===s.FORCE_COLOR?1:"false"===s.FORCE_COLOR?0:0===s.FORCE_COLOR.length?1:Math.min(parseInt(s.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return a(c(e,e&&e.isTTY))},stdout:a(c(!0,i.isatty(1))),stderr:a(c(!0,i.isatty(2)))}},93255:e=>{"use strict";function t(e){return Array.prototype.slice.apply(e)}function r(e){this.status="pending",this._continuations=[],this._parent=null,this._paused=!1,e&&e.call(this,this._continueWith.bind(this),this._failWith.bind(this))}function n(e){return e&&"function"==typeof e.then}function i(e){return e}if(r.prototype={then:function(e,t){var i=r.unresolved()._setParent(this);if(this._isRejected()){if(this._paused)return this._continuations.push({promise:i,nextFn:e,catchFn:t}),i;if(t)try{var o=t(this._error);return n(o)?(this._chainPromiseData(o,i),i):r.resolve(o)._setParent(this)}catch(e){return r.reject(e)._setParent(this)}return r.reject(this._error)._setParent(this)}return this._continuations.push({promise:i,nextFn:e,catchFn:t}),this._runResolutions(),i},catch:function(e){if(this._isResolved())return r.resolve(this._data)._setParent(this);var t=r.unresolved()._setParent(this);return this._continuations.push({promise:t,catchFn:e}),this._runRejections(),t},finally:function(e){var t=!1;function r(r,o){if(!t){t=!0,e||(e=i);var s=e(r);return n(s)?s.then((function(){if(o)throw o;return r})):r}}return this.then((function(e){return r(e)})).catch((function(e){return r(null,e)}))},pause:function(){return this._paused=!0,this},resume:function(){var e=this._findFirstPaused();return e&&(e._paused=!1,e._runResolutions(),e._runRejections()),this},_findAncestry:function(){return this._continuations.reduce((function(e,t){if(t.promise){var r={promise:t.promise,children:t.promise._findAncestry()};e.push(r)}return e}),[])},_setParent:function(e){if(this._parent)throw new Error("parent already set");return this._parent=e,this},_continueWith:function(e){var t=this._findFirstPending();t&&(t._data=e,t._setResolved())},_findFirstPending:function(){return this._findFirstAncestor((function(e){return e._isPending&&e._isPending()}))},_findFirstPaused:function(){return this._findFirstAncestor((function(e){return e._paused}))},_findFirstAncestor:function(e){for(var t,r=this;r;)e(r)&&(t=r),r=r._parent;return t},_failWith:function(e){var t=this._findFirstPending();t&&(t._error=e,t._setRejected())},_takeContinuations:function(){return this._continuations.splice(0,this._continuations.length)},_runRejections:function(){if(!this._paused&&this._isRejected()){var e=this._error,t=this._takeContinuations(),r=this;t.forEach((function(t){if(t.catchFn)try{var n=t.catchFn(e);r._handleUserFunctionResult(n,t.promise)}catch(e){t.promise.reject(e)}else t.promise.reject(e)}))}},_runResolutions:function(){if(!this._paused&&this._isResolved()&&!this._isPending()){var e=this._takeContinuations();if(n(this._data))return this._handleWhenResolvedDataIsPromise(this._data);var t=this._data,r=this;e.forEach((function(e){if(e.nextFn)try{var n=e.nextFn(t);r._handleUserFunctionResult(n,e.promise)}catch(t){r._handleResolutionError(t,e)}else e.promise&&e.promise.resolve(t)}))}},_handleResolutionError:function(e,t){if(this._setRejected(),t.catchFn)try{return void t.catchFn(e)}catch(t){e=t}t.promise&&t.promise.reject(e)},_handleWhenResolvedDataIsPromise:function(e){var t=this;return e.then((function(e){t._data=e,t._runResolutions()})).catch((function(e){t._error=e,t._setRejected(),t._runRejections()}))},_handleUserFunctionResult:function(e,t){n(e)?this._chainPromiseData(e,t):t.resolve(e)},_chainPromiseData:function(e,t){e.then((function(e){t.resolve(e)})).catch((function(e){t.reject(e)}))},_setResolved:function(){this.status="resolved",this._paused||this._runResolutions()},_setRejected:function(){this.status="rejected",this._paused||this._runRejections()},_isPending:function(){return"pending"===this.status},_isResolved:function(){return"resolved"===this.status},_isRejected:function(){return"rejected"===this.status}},r.resolve=function(e){return new r((function(t,r){n(e)?e.then((function(e){t(e)})).catch((function(e){r(e)})):t(e)}))},r.reject=function(e){return new r((function(t,r){r(e)}))},r.unresolved=function(){return new r((function(e,t){this.resolve=e,this.reject=t}))},r.all=function(){var e=t(arguments);return Array.isArray(e[0])&&(e=e[0]),e.length?new r((function(t,n){var i=[],o=0,s=!1;e.forEach((function(A,a){r.resolve(A).then((function(r){i[a]=r,(o+=1)===e.length&&t(i)})).catch((function(e){!function(e){s||(s=!0,n(e))}(e)}))}))})):r.resolve([])},Promise===r)throw new Error("Please use SynchronousPromise.installGlobally() to install globally");var o=Promise;r.installGlobally=function(e){if(Promise===r)return e;var n=function(e){if(void 0===e||e.__patched)return e;var r=e;return(e=function(){r.apply(this,t(arguments))}).__patched=!0,e}(e);return Promise=r,n},r.uninstallGlobally=function(){Promise===r&&(Promise=o)},e.exports={SynchronousPromise:r}},27700:(e,t,r)=>{"use strict";r(78886),r(84208),r(54768),r(68965),r(26842),r(29231),r(43915),t.Ze=r(67501),r(88658),r(27052),r(46464),r(76516),r(6464)},15135:(e,t,r)=>{"use strict";let n=Buffer;n.alloc||(n=r(13499).Buffer),e.exports=n},78886:(e,t,r)=>{"use strict";const n=r(59087),i=r(29231),o=(r(35747),r(28123)),s=r(54768),A=r(85622),a=(e.exports=(e,t,r)=>{if("function"==typeof t&&(r=t),Array.isArray(e)&&(t=e,e={}),!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");t=Array.from(t);const i=n(e);if(i.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!i.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return i.file&&i.sync?a(i,t):i.file?c(i,t,r):i.sync?h(i,t):g(i,t)},(e,t)=>{const r=new i.Sync(e),n=new o.WriteStreamSync(e.file,{mode:e.mode||438});r.pipe(n),u(r,t)}),c=(e,t,r)=>{const n=new i(e),s=new o.WriteStream(e.file,{mode:e.mode||438});n.pipe(s);const A=new Promise((e,t)=>{s.on("error",t),s.on("close",e),n.on("error",t)});return l(n,t),r?A.then(r,r):A},u=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?s({file:A.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},l=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return s({file:A.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>l(e,t));e.add(r)}e.end()},h=(e,t)=>{const r=new i.Sync(e);return u(r,t),r},g=(e,t)=>{const r=new i(e);return l(r,t),r}},26842:(e,t,r)=>{"use strict";const n=r(59087),i=r(43915),o=r(35747),s=r(28123),A=r(85622),a=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const i=n(e);if(i.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!i.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&a(i,t),i.file&&i.sync?c(i):i.file?u(i,r):i.sync?l(i):h(i)},(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||A.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(A.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))}),c=e=>{const t=new i.Sync(e),r=e.file;const n=o.statSync(r),A=e.maxReadSize||16777216;new s.ReadStreamSync(r,{readSize:A,size:n.size}).pipe(t)},u=(e,t)=>{const r=new i(e),n=e.maxReadSize||16777216,A=e.file,a=new Promise((e,t)=>{r.on("error",t),r.on("close",e),o.stat(A,(e,i)=>{if(e)t(e);else{const e=new s.ReadStream(A,{readSize:n,size:i.size});e.on("error",t),e.pipe(r)}})});return t?a.then(t,t):a},l=e=>new i.Sync(e),h=e=>new i(e)},46464:(e,t,r)=>{"use strict";const n=r(15135),i=r(6464),o=r(85622).posix,s=r(62488),A=Symbol("slurp"),a=Symbol("type");const c=(e,t)=>{let r,i=e,s="";const A=o.parse(e).root||".";if(n.byteLength(i)<100)r=[i,s,!1];else{s=o.dirname(i),i=o.basename(i);do{n.byteLength(i)<=100&&n.byteLength(s)<=t?r=[i,s,!1]:n.byteLength(i)>100&&n.byteLength(s)<=t?r=[i.substr(0,99),s,!0]:(i=o.join(o.basename(s),i),s=o.dirname(s))}while(s!==A&&!r);r||(r=[e.substr(0,99),"",!0])}return r},u=(e,t,r)=>e.slice(t,t+r).toString("utf8").replace(/\0.*/,""),l=(e,t,r)=>h(g(e,t,r)),h=e=>null===e?null:new Date(1e3*e),g=(e,t,r)=>128&e[t]?s.parse(e.slice(t,t+r)):f(e,t,r),f=(e,t,r)=>{return n=parseInt(e.slice(t,t+r).toString("utf8").replace(/\0.*$/,"").trim(),8),isNaN(n)?null:n;var n},p={12:8589934591,8:2097151},d=(e,t,r,n)=>null!==n&&(n>p[r]||n<0?(s.encode(n,e.slice(t,t+r)),!0):(C(e,t,r,n),!1)),C=(e,t,r,n)=>e.write(E(n,r),t,r,"ascii"),E=(e,t)=>I(Math.floor(e).toString(8),t),I=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",m=(e,t,r,n)=>null!==n&&d(e,t,r,n.getTime()/1e3),y=new Array(156).join("\0"),w=(e,t,r,i)=>null!==i&&(e.write(i+y,t,r,"utf8"),i.length!==n.byteLength(i)||i.length>r);e.exports=class{constructor(e,t,r,i){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[a]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,n.isBuffer(e)?this.decode(e,t||0,r,i):e&&this.set(e)}decode(e,t,r,n){if(t||(t=0),!(e&&e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=u(e,t,100),this.mode=g(e,t+100,8),this.uid=g(e,t+108,8),this.gid=g(e,t+116,8),this.size=g(e,t+124,12),this.mtime=l(e,t+136,12),this.cksum=g(e,t+148,12),this[A](r),this[A](n,!0),this[a]=u(e,t+156,1),""===this[a]&&(this[a]="0"),"0"===this[a]&&"/"===this.path.substr(-1)&&(this[a]="5"),"5"===this[a]&&(this.size=0),this.linkpath=u(e,t+157,100),"ustar\x0000"===e.slice(t+257,t+265).toString())if(this.uname=u(e,t+265,32),this.gname=u(e,t+297,32),this.devmaj=g(e,t+329,8),this.devmin=g(e,t+337,8),0!==e[t+475]){const r=u(e,t+345,155);this.path=r+"/"+this.path}else{const r=u(e,t+345,130);r&&(this.path=r+"/"+this.path),this.atime=l(e,t+476,12),this.ctime=l(e,t+488,12)}let i=256;for(let r=t;r=t+512))throw new Error("need 512 bytes for header");const r=this.ctime||this.atime?130:155,i=c(this.path||"",r),o=i[0],s=i[1];this.needPax=i[2],this.needPax=w(e,t,100,o)||this.needPax,this.needPax=d(e,t+100,8,this.mode)||this.needPax,this.needPax=d(e,t+108,8,this.uid)||this.needPax,this.needPax=d(e,t+116,8,this.gid)||this.needPax,this.needPax=d(e,t+124,12,this.size)||this.needPax,this.needPax=m(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[a].charCodeAt(0),this.needPax=w(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=w(e,t+265,32,this.uname)||this.needPax,this.needPax=w(e,t+297,32,this.gname)||this.needPax,this.needPax=d(e,t+329,8,this.devmaj)||this.needPax,this.needPax=d(e,t+337,8,this.devmin)||this.needPax,this.needPax=w(e,t+345,r,s)||this.needPax,0!==e[t+475]?this.needPax=w(e,t+345,155,s)||this.needPax:(this.needPax=w(e,t+345,130,s)||this.needPax,this.needPax=m(e,t+476,12,this.atime)||this.needPax,this.needPax=m(e,t+488,12,this.ctime)||this.needPax);let A=256;for(let r=t;r{"use strict";const t=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);e.exports=e=>e?Object.keys(e).map(r=>[t.has(r)?t.get(r):r,e[r]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}},62488:(e,t)=>{"use strict";t.encode=(e,t)=>{if(!Number.isSafeInteger(e))throw TypeError("cannot encode number outside of javascript safe integer range");return e<0?n(e,t):r(e,t),t};const r=(e,t)=>{t[0]=128;for(var r=t.length;r>1;r--)t[r-1]=255&e,e=Math.floor(e/256)},n=(e,t)=>{t[0]=255;var r=!1;e*=-1;for(var n=t.length;n>1;n--){var i=255&e;e=Math.floor(e/256),r?t[n-1]=s(i):0===i?t[n-1]=0:(r=!0,t[n-1]=A(i))}},i=(t.parse=e=>{e[e.length-1];var t,r=e[0];if(128===r)t=o(e.slice(1,e.length));else{if(255!==r)throw TypeError("invalid base256 encoding");t=i(e)}if(!Number.isSafeInteger(t))throw TypeError("parsed number outside of javascript safe integer range");return t},e=>{for(var t=e.length,r=0,n=!1,i=t-1;i>-1;i--){var o,a=e[i];n?o=s(a):0===a?o=a:(n=!0,o=A(a)),0!==o&&(r-=o*Math.pow(256,t-i-1))}return r}),o=e=>{for(var t=e.length,r=0,n=t-1;n>-1;n--){var i=e[n];0!==i&&(r+=i*Math.pow(256,t-n-1))}return r},s=e=>255&(255^e),A=e=>1+(255^e)&255},54768:(e,t,r)=>{"use strict";const n=r(15135),i=r(59087),o=r(67501),s=r(35747),A=r(28123),a=r(85622),c=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const n=i(e);if(n.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!n.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&u(n,t),n.noResume||c(n),n.file&&n.sync?l(n):n.file?h(n,r):g(n)},e=>{const t=e.onentry;e.onentry=t?e=>{t(e),e.resume()}:e=>e.resume()}),u=(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||a.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(a.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))},l=e=>{const t=g(e),r=e.file;let i,o=!0;try{const A=s.statSync(r),a=e.maxReadSize||16777216;if(A.size{const r=new o(e),n=e.maxReadSize||16777216,i=e.file,a=new Promise((e,t)=>{r.on("error",t),r.on("end",e),s.stat(i,(e,o)=>{if(e)t(e);else{const e=new A.ReadStream(i,{readSize:n,size:o.size});e.on("error",t),e.pipe(r)}})});return t?a.then(t,t):a},g=e=>new o(e)},65865:(e,t,r)=>{"use strict";const n=r(11436),i=r(35747),o=r(85622),s=r(82758);class A extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}}class a extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}}e.exports=(e,t,r)=>{const A=t.umask,u=448|t.mode,l=0!=(u&A),h=t.uid,g=t.gid,f="number"==typeof h&&"number"==typeof g&&(h!==t.processUid||g!==t.processGid),p=t.preserve,d=t.unlink,C=t.cache,E=t.cwd,I=(t,n)=>{t?r(t):(C.set(e,!0),n&&f?s(n,h,g,e=>I(e)):l?i.chmod(e,u,r):r())};if(C&&!0===C.get(e))return I();if(e===E)return i.stat(e,(t,r)=>{!t&&r.isDirectory()||(t=new a(e,t&&t.code||"ENOTDIR")),I(t)});if(p)return n(e,u,I);const m=o.relative(E,e).split(/\/|\\/);c(E,m,u,C,d,E,null,I)};const c=(e,t,r,n,o,s,A,a)=>{if(!t.length)return a(null,A);const l=e+"/"+t.shift();if(n.get(l))return c(l,t,r,n,o,s,A,a);i.mkdir(l,r,u(l,t,r,n,o,s,A,a))},u=(e,t,r,n,s,l,h,g)=>f=>{if(f){if(f.path&&o.dirname(f.path)===l&&("ENOTDIR"===f.code||"ENOENT"===f.code))return g(new a(l,f.code));i.lstat(e,(o,a)=>{if(o)g(o);else if(a.isDirectory())c(e,t,r,n,s,l,h,g);else if(s)i.unlink(e,o=>{if(o)return g(o);i.mkdir(e,r,u(e,t,r,n,s,l,h,g))});else{if(a.isSymbolicLink())return g(new A(e,e+"/"+t.join("/")));g(f)}})}else c(e,t,r,n,s,l,h=h||e,g)};e.exports.sync=(e,t)=>{const r=t.umask,c=448|t.mode,u=0!=(c&r),l=t.uid,h=t.gid,g="number"==typeof l&&"number"==typeof h&&(l!==t.processUid||h!==t.processGid),f=t.preserve,p=t.unlink,d=t.cache,C=t.cwd,E=t=>{d.set(e,!0),t&&g&&s.sync(t,l,h),u&&i.chmodSync(e,c)};if(d&&!0===d.get(e))return E();if(e===C){let t=!1,r="ENOTDIR";try{t=i.statSync(e).isDirectory()}catch(e){r=e.code}finally{if(!t)throw new a(e,r)}return void E()}if(f)return E(n.sync(e,c));const I=o.relative(C,e).split(/\/|\\/);let m=null;for(let e=I.shift(),t=C;e&&(t+="/"+e);e=I.shift())if(!d.get(t))try{i.mkdirSync(t,c),m=m||t,d.set(t,!0)}catch(e){if(e.path&&o.dirname(e.path)===C&&("ENOTDIR"===e.code||"ENOENT"===e.code))return new a(C,e.code);const r=i.lstatSync(t);if(r.isDirectory()){d.set(t,!0);continue}if(p){i.unlinkSync(t),i.mkdirSync(t,c),m=m||t,d.set(t,!0);continue}if(r.isSymbolicLink())return new A(t,t+"/"+I.join("/"))}return E(m)}},11754:e=>{"use strict";e.exports=(e,t)=>(e&=4095,t&&(256&e&&(e|=64),32&e&&(e|=8),4&e&&(e|=1)),e)},29231:(e,t,r)=>{"use strict";const n=r(15135);class i{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}}const o=r(44380),s=r(20671),A=r(88658),a=r(27052),c=a.Sync,u=a.Tar,l=r(80800),h=n.alloc(1024),g=Symbol("onStat"),f=Symbol("ended"),p=Symbol("queue"),d=Symbol("current"),C=Symbol("process"),E=Symbol("processing"),I=Symbol("processJob"),m=Symbol("jobs"),y=Symbol("jobDone"),w=Symbol("addFSEntry"),B=Symbol("addTarEntry"),Q=Symbol("stat"),v=Symbol("readdir"),D=Symbol("onreaddir"),b=Symbol("pipe"),S=Symbol("entry"),k=Symbol("entryOpt"),x=Symbol("writeEntryClass"),F=Symbol("write"),M=Symbol("ondrain"),N=r(35747),R=r(85622),K=r(7994)(class extends o{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[x]=a,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),this.zip=null,e.gzip?("object"!=typeof e.gzip&&(e.gzip={}),this.zip=new s.Gzip(e.gzip),this.zip.on("data",e=>super.write(e)),this.zip.on("end",e=>super.end()),this.zip.on("drain",e=>this[M]()),this.on("resume",e=>this.zip.resume())):this.on("drain",this[M]),this.portable=!!e.portable,this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter="function"==typeof e.filter?e.filter:e=>!0,this[p]=new l,this[m]=0,this.jobs=+e.jobs||4,this[E]=!1,this[f]=!1}[F](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[f]=!0,this[C](),this}write(e){if(this[f])throw new Error("write after end");return e instanceof A?this[B](e):this[w](e),this.flowing}[B](e){const t=R.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),this.filter(e.path,e)){const r=new i(e.path,t,!1);r.entry=new u(e,this[k](r)),r.entry.on("end",e=>this[y](r)),this[m]+=1,this[p].push(r)}else e.resume();this[C]()}[w](e){const t=R.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[p].push(new i(e,t)),this[C]()}[Q](e){e.pending=!0,this[m]+=1;const t=this.follow?"stat":"lstat";N[t](e.absolute,(t,r)=>{e.pending=!1,this[m]-=1,t?this.emit("error",t):this[g](e,r)})}[g](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[C]()}[v](e){e.pending=!0,this[m]+=1,N.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[m]-=1,t)return this.emit("error",t);this[D](e,r)})}[D](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[C]()}[C](){if(!this[E]){this[E]=!0;for(let e=this[p].head;null!==e&&this[m]{this.warn(e,t)},noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[S](e){this[m]+=1;try{return new this[x](e.path,this[k](e)).on("end",()=>this[y](e)).on("error",e=>this.emit("error",e))}catch(e){this.emit("error",e)}}[M](){this[d]&&this[d].entry&&this[d].entry.resume()}[b](e){e.piped=!0,e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)});const t=e.entry,r=this.zip;r?t.on("data",e=>{r.write(e)||t.pause()}):t.on("data",e=>{super.write(e)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}});K.Sync=class extends K{constructor(e){super(e),this[x]=c}pause(){}resume(){}[Q](e){const t=this.follow?"statSync":"lstatSync";this[g](e,N[t](e.absolute))}[v](e,t){this[D](e,N.readdirSync(e.absolute))}[b](e){const t=e.entry,r=this.zip;e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)}),r?t.on("data",e=>{r.write(e)}):t.on("data",e=>{super[F](e)})}},e.exports=K},67501:(e,t,r)=>{"use strict";const n=r(7994),i=(r(85622),r(46464)),o=r(28614),s=r(80800),A=r(88658),a=r(76516),c=r(20671),u=r(15135),l=u.from([31,139]),h=Symbol("state"),g=Symbol("writeEntry"),f=Symbol("readEntry"),p=Symbol("nextEntry"),d=Symbol("processEntry"),C=Symbol("extendedHeader"),E=Symbol("globalExtendedHeader"),I=Symbol("meta"),m=Symbol("emitMeta"),y=Symbol("buffer"),w=Symbol("queue"),B=Symbol("ended"),Q=Symbol("emittedEnd"),v=Symbol("emit"),D=Symbol("unzip"),b=Symbol("consumeChunk"),S=Symbol("consumeChunkSub"),k=Symbol("consumeBody"),x=Symbol("consumeMeta"),F=Symbol("consumeHeader"),M=Symbol("consuming"),N=Symbol("bufferConcat"),R=Symbol("maybeEnd"),K=Symbol("writing"),L=Symbol("aborted"),T=Symbol("onDone"),P=e=>!0;e.exports=n(class extends o{constructor(e){super(e=e||{}),e.ondone?this.on(T,e.ondone):this.on(T,e=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||1048576,this.filter="function"==typeof e.filter?e.filter:P,this.writable=!0,this.readable=!1,this[w]=new s,this[y]=null,this[f]=null,this[g]=null,this[h]="begin",this[I]="",this[C]=null,this[E]=null,this[B]=!1,this[D]=null,this[L]=!1,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),"function"==typeof e.onentry&&this.on("entry",e.onentry)}[F](e,t){let r;try{r=new i(e,t,this[C],this[E])}catch(e){return this.warn("invalid entry",e)}if(r.nullBlock)this[v]("nullBlock");else if(r.cksumValid)if(r.path){const e=r.type;if(/^(Symbolic)?Link$/.test(e)&&!r.linkpath)this.warn("invalid: linkpath required",r);else if(!/^(Symbolic)?Link$/.test(e)&&r.linkpath)this.warn("invalid: linkpath forbidden",r);else{const e=this[g]=new A(r,this[C],this[E]);e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[v]("ignoredEntry",e),this[h]="ignore"):e.size>0&&(this[I]="",e.on("data",e=>this[I]+=e),this[h]="meta"):(this[C]=null,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[v]("ignoredEntry",e),this[h]=e.remain?"ignore":"begin"):(e.remain?this[h]="body":(this[h]="begin",e.end()),this[f]?this[w].push(e):(this[w].push(e),this[p]())))}}else this.warn("invalid: path is required",r);else this.warn("invalid entry",r)}[d](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[f]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",e=>this[p]()),t=!1)):(this[f]=null,t=!1),t}[p](){do{}while(this[d](this[w].shift()));if(!this[w].length){const e=this[f];!e||e.flowing||e.size===e.remain?this[K]||this.emit("drain"):e.once("drain",e=>this.emit("drain"))}}[k](e,t){const r=this[g],n=r.blockRemain,i=n>=e.length&&0===t?e:e.slice(t,t+n);return r.write(i),r.blockRemain||(this[h]="begin",this[g]=null,r.end()),i.length}[x](e,t){const r=this[g],n=this[k](e,t);return this[g]||this[m](r),n}[v](e,t,r){this[w].length||this[f]?this[w].push([e,t,r]):this.emit(e,t,r)}[m](e){switch(this[v]("meta",this[I]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[C]=a.parse(this[I],this[C],!1);break;case"GlobalExtendedHeader":this[E]=a.parse(this[I],this[E],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[C]=this[C]||Object.create(null),this[C].path=this[I].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[C]=this[C]||Object.create(null),this[C].linkpath=this[I].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e,t){this[L]=!0,this.warn(e,t),this.emit("abort",t),this.emit("error",t)}write(e){if(this[L])return;if(null===this[D]&&e){if(this[y]&&(e=u.concat([this[y],e]),this[y]=null),e.lengththis[b](e)),this[D].on("error",e=>this.abort(e.message,e)),this[D].on("end",e=>{this[B]=!0,this[b]()}),this[K]=!0;const r=this[D][t?"end":"write"](e);return this[K]=!1,r}}this[K]=!0,this[D]?this[D].write(e):this[b](e),this[K]=!1;const t=!this[w].length&&(!this[f]||this[f].flowing);return t||this[w].length||this[f].once("drain",e=>this.emit("drain")),t}[N](e){e&&!this[L]&&(this[y]=this[y]?u.concat([this[y],e]):e)}[R](){if(this[B]&&!this[Q]&&!this[L]&&!this[M]){this[Q]=!0;const e=this[g];if(e&&e.blockRemain){const t=this[y]?this[y].length:0;this.warn("Truncated input (needed "+e.blockRemain+" more bytes, only "+t+" available)",e),this[y]&&e.write(this[y]),e.end()}this[v](T)}}[b](e){if(this[M])this[N](e);else if(e||this[y]){if(this[M]=!0,this[y]){this[N](e);const t=this[y];this[y]=null,this[S](t)}else this[S](e);for(;this[y]&&this[y].length>=512&&!this[L];){const e=this[y];this[y]=null,this[S](e)}this[M]=!1}else this[R]();this[y]&&!this[B]||this[R]()}[S](e){let t=0,r=e.length;for(;t+512<=r&&!this[L];)switch(this[h]){case"begin":this[F](e,t),t+=512;break;case"ignore":case"body":t+=this[k](e,t);break;case"meta":t+=this[x](e,t);break;default:throw new Error("invalid state: "+this[h])}t{"use strict";const n=r(15135),i=r(46464),o=r(85622);class s{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){const e=this.encodeBody();if(""===e)return null;const t=n.byteLength(e),r=512*Math.ceil(1+t/512),s=n.allocUnsafe(r);for(let e=0;e<512;e++)s[e]=0;new i({path:("PaxHeader/"+o.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(s),s.write(e,512,t,"utf8");for(let e=t+512;e=Math.pow(10,i)&&(i+=1);return i+r+t}}s.parse=(e,t,r)=>new s(A(a(e),t),r);const A=(e,t)=>t?Object.keys(e).reduce((t,r)=>(t[r]=e[r],t),t):e,a=e=>e.replace(/\n$/,"").split("\n").reduce(c,Object.create(null)),c=(e,t)=>{const r=parseInt(t,10);if(r!==n.byteLength(t)+1)return e;const i=(t=t.substr((r+" ").length)).split("="),o=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!o)return e;const s=i.join("=");return e[o]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(o)?new Date(1e3*s):/^[0-9]+$/.test(s)?+s:s,e};e.exports=s},88658:(e,t,r)=>{"use strict";r(6464);const n=r(44380),i=Symbol("slurp");e.exports=class extends n{constructor(e,t,r){switch(super(),this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=4095&this.mode),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[i](t),r&&this[i](r,!0)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");const r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),!!this.ignore||(r>=t?super.write(e):super.write(e.slice(0,r)))}[i](e,t){for(let r in e)null===e[r]||void 0===e[r]||t&&"path"===r||(this[r]=e[r])}}},84208:(e,t,r)=>{"use strict";const n=r(15135),i=r(59087),o=r(29231),s=(r(67501),r(35747)),A=r(28123),a=r(54768),c=r(85622),u=r(46464),l=(e.exports=(e,t,r)=>{const n=i(e);if(!n.file)throw new TypeError("file is required");if(n.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),n.sync?l(n,t):g(n,t,r)},(e,t)=>{const r=new o.Sync(e);let i,A,a=!0;try{try{i=s.openSync(e.file,"r+")}catch(t){if("ENOENT"!==t.code)throw t;i=s.openSync(e.file,"w+")}const o=s.fstatSync(i),c=n.alloc(512);e:for(A=0;Ao.size)break;A+=r,e.mtimeCache&&e.mtimeCache.set(t.path,t.mtime)}a=!1,h(e,r,A,i,t)}finally{if(a)try{s.closeSync(i)}catch(e){}}}),h=(e,t,r,n,i)=>{const o=new A.WriteStreamSync(e.file,{fd:n,start:r});t.pipe(o),f(t,i)},g=(e,t,r)=>{t=Array.from(t);const i=new o(e),a=new Promise((r,o)=>{i.on("error",o);let a="r+";const c=(l,h)=>l&&"ENOENT"===l.code&&"r+"===a?(a="w+",s.open(e.file,a,c)):l?o(l):void s.fstat(h,(a,c)=>{if(a)return o(a);((t,r,i)=>{const o=(e,r)=>{e?s.close(t,t=>i(e)):i(null,r)};let A=0;if(0===r)return o(null,0);let a=0;const c=n.alloc(512),l=(n,i)=>{if(n)return o(n);if(a+=i,a<512&&i)return s.read(t,c,a,c.length-a,A+a,l);if(0===A&&31===c[0]&&139===c[1])return o(new Error("cannot append to compressed archives"));if(a<512)return o(null,A);const h=new u(c);if(!h.cksumValid)return o(null,A);const g=512*Math.ceil(h.size/512);return A+g+512>r?o(null,A):(A+=g+512,A>=r?o(null,A):(e.mtimeCache&&e.mtimeCache.set(h.path,h.mtime),a=0,void s.read(t,c,0,512,A,l)))};s.read(t,c,0,512,A,l)})(h,c.size,(n,s)=>{if(n)return o(n);const a=new A.WriteStream(e.file,{fd:h,start:s});i.pipe(a),a.on("error",o),a.on("close",r),p(i,t)})});s.open(e.file,a,c)});return r?a.then(r,r):a},f=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?a({file:c.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},p=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return a({file:c.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>p(e,t));e.add(r)}e.end()}},6464:(e,t)=>{"use strict";t.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),t.code=new Map(Array.from(t.name).map(e=>[e[1],e[0]]))},43915:(e,t,r)=>{"use strict";const n=r(42357),i=(r(28614).EventEmitter,r(67501)),o=r(35747),s=r(28123),A=r(85622),a=r(65865),c=(a.sync,r(86895)),u=Symbol("onEntry"),l=Symbol("checkFs"),h=Symbol("isReusable"),g=Symbol("makeFs"),f=Symbol("file"),p=Symbol("directory"),d=Symbol("link"),C=Symbol("symlink"),E=Symbol("hardlink"),I=Symbol("unsupported"),m=(Symbol("unknown"),Symbol("checkPath")),y=Symbol("mkdir"),w=Symbol("onError"),B=Symbol("pending"),Q=Symbol("pend"),v=Symbol("unpend"),D=Symbol("ended"),b=Symbol("maybeClose"),S=Symbol("skip"),k=Symbol("doChown"),x=Symbol("uid"),F=Symbol("gid"),M=r(76417),N=(e,t,r)=>e===e>>>0?e:t===t>>>0?t:r;class R extends i{constructor(e){if(e||(e={}),e.ondone=e=>{this[D]=!0,this[b]()},super(e),this.transform="function"==typeof e.transform?e.transform:null,this.writable=!0,this.readable=!1,this[B]=0,this[D]=!1,this.dirCache=e.dirCache||new Map,"number"==typeof e.uid||"number"==typeof e.gid){if("number"!=typeof e.uid||"number"!=typeof e.gid)throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;void 0===e.preserveOwner&&"number"!=typeof e.uid?this.preserveOwner=process.getuid&&0===process.getuid():this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=!0===e.forceChown,this.win32=!!e.win32||"win32"===process.platform,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=A.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask="number"==typeof e.umask?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",e=>this[u](e))}[b](){this[D]&&0===this[B]&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[m](e){if(this.strip){const t=e.path.split(/\/|\\/);if(t.length=this.strip&&(e.linkpath=t.slice(this.strip).join("/"))}}if(!this.preservePaths){const t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("path contains '..'",t),!1;if(A.win32.isAbsolute(t)){const r=A.win32.parse(t);this.warn("stripping "+r.root+" from absolute path",t),e.path=t.substr(r.root.length)}}if(this.win32){const t=A.win32.parse(e.path);e.path=""===t.root?c.encode(e.path):t.root+c.encode(e.path.substr(t.root.length))}return A.isAbsolute(e.path)?e.absolute=e.path:e.absolute=A.resolve(this.cwd,e.path),!0}[u](e){if(!this[m](e))return e.resume();switch(n.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=448|e.mode);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[l](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[I](e)}}[w](e,t){"CwdError"===e.name?this.emit("error",e):(this.warn(e.message,e),this[v](),t.resume())}[y](e,t,r){a(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},r)}[k](e){return this.forceChown||this.preserveOwner&&("number"==typeof e.uid&&e.uid!==this.processUid||"number"==typeof e.gid&&e.gid!==this.processGid)||"number"==typeof this.uid&&this.uid!==this.processUid||"number"==typeof this.gid&&this.gid!==this.processGid}[x](e){return N(this.uid,e.uid,this.processUid)}[F](e){return N(this.gid,e.gid,this.processGid)}[f](e){const t=4095&e.mode||this.fmode,r=new s.WriteStream(e.absolute,{mode:t,autoClose:!1});r.on("error",t=>this[w](t,e));let n=1;const i=t=>{if(t)return this[w](t,e);0==--n&&o.close(r.fd,e=>this[v]())};r.on("finish",t=>{const s=e.absolute,A=r.fd;if(e.mtime&&!this.noMtime){n++;const t=e.atime||new Date,r=e.mtime;o.futimes(A,t,r,e=>e?o.utimes(s,t,r,t=>i(t&&e)):i())}if(this[k](e)){n++;const t=this[x](e),r=this[F](e);o.fchown(A,t,r,e=>e?o.chown(s,t,r,t=>i(t&&e)):i())}i()});const A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",t=>this[w](t,e)),e.pipe(A)),A.pipe(r)}[p](e){const t=4095&e.mode||this.dmode;this[y](e.absolute,t,t=>{if(t)return this[w](t,e);let r=1;const n=t=>{0==--r&&(this[v](),e.resume())};e.mtime&&!this.noMtime&&(r++,o.utimes(e.absolute,e.atime||new Date,e.mtime,n)),this[k](e)&&(r++,o.chown(e.absolute,this[x](e),this[F](e),n)),n()})}[I](e){this.warn("unsupported entry type: "+e.type,e),e.resume()}[C](e){this[d](e,e.linkpath,"symlink")}[E](e){this[d](e,A.resolve(this.cwd,e.linkpath),"link")}[Q](){this[B]++}[v](){this[B]--,this[b]()}[S](e){this[v](),e.resume()}[h](e,t){return"File"===e.type&&!this.unlink&&t.isFile()&&t.nlink<=1&&"win32"!==process.platform}[l](e){this[Q](),this[y](A.dirname(e.absolute),this.dmode,t=>{if(t)return this[w](t,e);o.lstat(e.absolute,(t,r)=>{r&&(this.keep||this.newer&&r.mtime>e.mtime)?this[S](e):t||this[h](e,r)?this[g](null,e):r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode?o.chmod(e.absolute,e.mode,t=>this[g](t,e)):this[g](null,e):o.rmdir(e.absolute,t=>this[g](t,e)):((e,t)=>{if("win32"!==process.platform)return o.unlink(e,t);const r=e+".DELETE."+M.randomBytes(16).toString("hex");o.rename(e,r,e=>{if(e)return t(e);o.unlink(r,t)})})(e.absolute,t=>this[g](t,e))})})}[g](e,t){if(e)return this[w](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[f](t);case"Link":return this[E](t);case"SymbolicLink":return this[C](t);case"Directory":case"GNUDumpDir":return this[p](t)}}[d](e,t,r){o[r](t,e.absolute,t=>{if(t)return this[w](t,e);this[v](),e.resume()})}}R.Sync=class extends R{constructor(e){super(e)}[l](e){const t=this[y](A.dirname(e.absolute),this.dmode);if(t)return this[w](t,e);try{const r=o.lstatSync(e.absolute);if(this.keep||this.newer&&r.mtime>e.mtime)return this[S](e);if(this[h](e,r))return this[g](null,e);try{return r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode&&o.chmodSync(e.absolute,e.mode):o.rmdirSync(e.absolute):(e=>{if("win32"!==process.platform)return o.unlinkSync(e);const t=e+".DELETE."+M.randomBytes(16).toString("hex");o.renameSync(e,t),o.unlinkSync(t)})(e.absolute),this[g](null,e)}catch(t){return this[w](t,e)}}catch(t){return this[g](null,e)}}[f](e){const t=4095&e.mode||this.fmode,r=t=>{try{o.closeSync(n)}catch(e){}t&&this[w](t,e)};let n;try{n=o.openSync(e.absolute,"w",t)}catch(e){return r(e)}const i=this.transform&&this.transform(e)||e;i!==e&&(i.on("error",t=>this[w](t,e)),e.pipe(i)),i.on("data",e=>{try{o.writeSync(n,e,0,e.length)}catch(e){r(e)}}),i.on("end",t=>{let i=null;if(e.mtime&&!this.noMtime){const t=e.atime||new Date,r=e.mtime;try{o.futimesSync(n,t,r)}catch(n){try{o.utimesSync(e.absolute,t,r)}catch(e){i=n}}}if(this[k](e)){const t=this[x](e),r=this[F](e);try{o.fchownSync(n,t,r)}catch(n){try{o.chownSync(e.absolute,t,r)}catch(e){i=i||n}}}r(i)})}[p](e){const t=4095&e.mode||this.dmode,r=this[y](e.absolute,t);if(r)return this[w](r,e);if(e.mtime&&!this.noMtime)try{o.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(r){}if(this[k](e))try{o.chownSync(e.absolute,this[x](e),this[F](e))}catch(r){}e.resume()}[y](e,t){try{return a.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(e){return e}}[d](e,t,r){try{o[r+"Sync"](t,e.absolute),e.resume()}catch(t){return this[w](t,e)}}},e.exports=R},68965:(e,t,r)=>{"use strict";const n=r(59087),i=r(84208),o=(e.exports=(e,t,r)=>{const s=n(e);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),o(s),i(s,t,r)},e=>{const t=e.filter;e.mtimeCache||(e.mtimeCache=new Map),e.filter=t?(r,n)=>t(r,n)&&!(e.mtimeCache.get(r)>n.mtime):(t,r)=>!(e.mtimeCache.get(t)>r.mtime)})},7994:e=>{"use strict";e.exports=e=>class extends e{warn(e,t){if(this.strict)if(t instanceof Error)this.emit("error",t);else{const r=new Error(e);r.data=t,this.emit("error",r)}else this.emit("warn",e,t)}}},86895:e=>{"use strict";const t=["|","<",">","?",":"],r=t.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),n=new Map(t.map((e,t)=>[e,r[t]])),i=new Map(r.map((e,r)=>[e,t[r]]));e.exports={encode:e=>t.reduce((e,t)=>e.split(t).join(n.get(t)),e),decode:e=>r.reduce((e,t)=>e.split(t).join(i.get(t)),e)}},27052:(e,t,r)=>{"use strict";const n=r(15135),i=r(44380),o=r(76516),s=r(46464),A=(r(88658),r(35747)),a=r(85622),c=(r(6464),Symbol("process")),u=Symbol("file"),l=Symbol("directory"),h=Symbol("symlink"),g=Symbol("hardlink"),f=Symbol("header"),p=Symbol("read"),d=Symbol("lstat"),C=Symbol("onlstat"),E=Symbol("onread"),I=Symbol("onreadlink"),m=Symbol("openfile"),y=Symbol("onopenfile"),w=Symbol("close"),B=Symbol("mode"),Q=r(7994),v=r(86895),D=r(11754),b=Q(class extends i{constructor(e,t){if(super(t=t||{}),"string"!=typeof e)throw new TypeError("path is required");if(this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||16777216,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),!this.preservePaths&&a.win32.isAbsolute(e)){const t=a.win32.parse(e);this.warn("stripping "+t.root+" from absolute path",e),this.path=e.substr(t.root.length)}this.win32=!!t.win32||"win32"===process.platform,this.win32&&(this.path=v.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||a.resolve(this.cwd,e),""===this.path&&(this.path="./"),this.statCache.has(this.absolute)?this[C](this.statCache.get(this.absolute)):this[d]()}[d](){A.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[C](t)})}[C](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=k(e),this.emit("stat",e),this[c]()}[c](){switch(this.type){case"File":return this[u]();case"Directory":return this[l]();case"SymbolicLink":return this[h]();default:return this.end()}}[B](e){return D(e,"Directory"===this.type)}[f](){"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.header=new s({path:this.path,linkpath:this.linkpath,mode:this[B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new o({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[l](){"/"!==this.path.substr(-1)&&(this.path+="/"),this.stat.size=0,this[f](),this.end()}[h](){A.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[I](t)})}[I](e){this.linkpath=e,this[f](),this.end()}[g](e){this.type="Link",this.linkpath=a.relative(this.cwd,e),this.stat.size=0,this[f](),this.end()}[u](){if(this.stat.nlink>1){const e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){const t=this.linkCache.get(e);if(0===t.indexOf(this.cwd))return this[g](t)}this.linkCache.set(e,this.absolute)}if(this[f](),0===this.stat.size)return this.end();this[m]()}[m](){A.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[y](t)})}[y](e){const t=512*Math.ceil(this.stat.size/512),r=Math.min(t,this.maxReadSize),i=n.allocUnsafe(r);this[p](e,i,0,i.length,0,this.stat.size,t)}[p](e,t,r,n,i,o,s){A.read(e,t,r,n,i,(A,a)=>{if(A)return this[w](e,e=>this.emit("error",A));this[E](e,t,r,n,i,o,s,a)})}[w](e,t){A.close(e,t)}[E](e,t,r,i,o,s,A,a){if(a<=0&&s>0){const t=new Error("encountered unexpected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e,e=>e),this.emit("error",t)}if(a>s){const t=new Error("did not encounter expected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e,e=>e),this.emit("error",t)}if(a===s)for(let e=a;ee);r>=i&&(t=n.allocUnsafe(i),r=0),i=t.length-r,this[p](e,t,r,i,o,s,A)}});const S=Q(class extends i{constructor(e,t){if(super(t=t||{}),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[B](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),a.isAbsolute(this.path)&&!this.preservePaths){const e=a.parse(this.path);this.warn("stripping "+e.root+" from absolute path",this.path),this.path=this.path.substr(e.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new s({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),this.header.encode()&&!this.noPax&&super.write(new o({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[B](e){return D(e,"Directory"===this.type)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(n.alloc(this.blockRemain)),super.end()}});b.Sync=class extends b{constructor(e,t){super(e,t)}[d](){this[C](A.lstatSync(this.absolute))}[h](){this[I](A.readlinkSync(this.absolute))}[m](){this[y](A.openSync(this.absolute,"r"))}[p](e,t,r,n,i,o,s){let a=!0;try{const c=A.readSync(e,t,r,n,i);this[E](e,t,r,n,i,o,s,c),a=!1}finally{if(a)try{this[w](e)}catch(e){}}}[w](e){A.closeSync(e)}},b.Tar=S;const k=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported";e.exports=b},75799:(e,t,r)=>{var n=r(31669),i=r(73975),o=r(77686),s=r(86897).Writable,A=r(86897).PassThrough,a=function(){},c=function(e){return(e&=511)&&512-e},u=function(e,t){this._parent=e,this.offset=t,A.call(this)};n.inherits(u,A),u.prototype.destroy=function(e){this._parent.destroy(e)};var l=function(e){if(!(this instanceof l))return new l(e);s.call(this,e),e=e||{},this._offset=0,this._buffer=i(),this._missing=0,this._partial=!1,this._onparse=a,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},A=function(e){if(t._locked=!1,e)return t.destroy(e);t._stream||n()},h=function(){t._stream=null;var e=c(t._header.size);e?t._parse(e,g):t._parse(512,E),t._locked||n()},g=function(){t._buffer.consume(c(t._header.size)),t._parse(512,E),n()},f=function(){var e=t._header.size;t._paxGlobal=o.decodePax(r.slice(0,e)),r.consume(e),h()},p=function(){var e=t._header.size;t._pax=o.decodePax(r.slice(0,e)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(e),h()},d=function(){var n=t._header.size;this._gnuLongPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),h()},C=function(){var n=t._header.size;this._gnuLongLinkPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),h()},E=function(){var i,s=t._offset;try{i=t._header=o.decode(r.slice(0,512),e.filenameEncoding)}catch(e){t.emit("error",e)}return r.consume(512),i?"gnu-long-path"===i.type?(t._parse(i.size,d),void n()):"gnu-long-link-path"===i.type?(t._parse(i.size,C),void n()):"pax-global-header"===i.type?(t._parse(i.size,f),void n()):"pax-header"===i.type?(t._parse(i.size,p),void n()):(t._gnuLongPath&&(i.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(i.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=i=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e}(i,t._pax),t._pax=null),t._locked=!0,i.size&&"directory"!==i.type?(t._stream=new u(t,s),t.emit("entry",i,t._stream,A),t._parse(i.size,h),void n()):(t._parse(512,E),void t.emit("entry",i,function(e,t){var r=new u(e,t);return r.end(),r}(t,s),A))):(t._parse(512,E),void n())};this._onheader=E,this._parse(512,E)};n.inherits(l,s),l.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))},l.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)},l.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=a,this._overflow?this._write(this._overflow,void 0,e):e()}},l.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,i=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(s=e.slice(o),e=e.slice(0,o)),n?n.end(e):i.append(e),this._overflow=s,this._onparse()}},l.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()},e.exports=l},77686:(e,t)=>{var r=Buffer.alloc,n="0".charCodeAt(0),i=parseInt("7777",8),o=function(e,t,r,n){for(;rt?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "};var a=function(e,t,r){if(128&(e=e.slice(t,t+r))[t=0])return function(e){var t;if(128===e[0])t=!0;else{if(255!==e[0])return null;t=!1}for(var r=!1,n=[],i=e.length-1;i>0;i--){var o=e[i];t?n.push(o):r&&0===o?n.push(0):r?(r=!1,n.push(256-o)):n.push(255-o)}var s=0,A=n.length;for(i=0;i=s?s:i>=0||(i+=s)>=0?i:0);t=Math.pow(10,r)&&r++,t+r+e};t.decodeLongPath=function(e,t){return c(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=u(" path="+e.name+"\n")),e.linkname&&(t+=u(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=u(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var c=o.indexOf("/");if(-1===c)return null;a+=a?"/"+o.slice(0,c):o.slice(0,c),o=o.slice(c+1)}return Buffer.byteLength(o)>100||Buffer.byteLength(a)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(o),t.write(A(e.mode&i,6),100),t.write(A(e.uid,6),108),t.write(A(e.gid,6),116),t.write(A(e.size,11),124),t.write(A(e.mtime.getTime()/1e3|0,11),136),t[156]=n+function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}(e.type),e.linkname&&t.write(e.linkname,157),t.write("ustar\x0000",257),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(A(e.devmajor||0,6),329),t.write(A(e.devminor||0,6),337),a&&t.write(a,345),t.write(A(s(t),6),148),t)},t.decode=function(e,t){var r=0===e[156]?0:e[156]-n,i=c(e,0,100,t),o=a(e,100,8),A=a(e,108,8),u=a(e,116,8),l=a(e,124,12),h=a(e,136,12),g=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}(r),f=0===e[157]?null:c(e,157,100,t),p=c(e,265,32),d=c(e,297,32),C=a(e,329,8),E=a(e,337,8);e[345]&&(i=c(e,345,155,t)+"/"+i),0===r&&i&&"/"===i[i.length-1]&&(r=5);var I=s(e);if(256===I)return null;if(I!==a(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");return{name:i,mode:o,uid:A,gid:u,size:l,mtime:new Date(1e3*h),type:g,linkname:f,uname:p,gname:d,devmajor:C,devminor:E}}},59938:(e,t,r)=>{r(75799),t.P=r(72203)},72203:(e,t,r)=>{var n=r(13302),i=r(17067),o=r(85870),s=Buffer.alloc,A=r(86897).Readable,a=r(86897).Writable,c=r(24304).StringDecoder,u=r(77686),l=parseInt("755",8),h=parseInt("644",8),g=s(1024),f=function(){},p=function(e,t){(t&=511)&&e.push(g.slice(0,512-t))};var d=function(e){a.call(this),this.written=0,this._to=e,this._destroyed=!1};o(d,a),d.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r},d.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var C=function(){a.call(this),this.linkname="",this._decoder=new c("utf-8"),this._destroyed=!1};o(C,a),C.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()},C.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var E=function(){a.call(this),this._destroyed=!1};o(E,a),E.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))},E.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var I=function(e){if(!(this instanceof I))return new I(e);A.call(this,e),this._drain=f,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};o(I,A),I.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!this._finalized&&!this._destroyed){"function"==typeof t&&(r=t,t=null),r||(r=f);var o=this;if(e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=function(e){switch(e&n.S_IFMT){case n.S_IFBLK:return"block-device";case n.S_IFCHR:return"character-device";case n.S_IFDIR:return"directory";case n.S_IFIFO:return"fifo";case n.S_IFLNK:return"symlink"}return"file"}(e.mode)),e.mode||(e.mode="directory"===e.type?l:h),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=Buffer.from(t)),Buffer.isBuffer(t))return e.size=t.length,this._encode(e),this.push(t),p(o,e.size),process.nextTick(r),new E;if("symlink"===e.type&&!e.linkname){var s=new C;return i(s,(function(t){if(t)return o.destroy(),r(t);e.linkname=s.linkname,o._encode(e),r()})),s}if(this._encode(e),"file"!==e.type&&"contiguous-file"!==e.type)return process.nextTick(r),new E;var A=new d(this);return this._stream=A,i(A,(function(t){return o._stream=null,t?(o.destroy(),r(t)):A.written!==e.size?(o.destroy(),r(new Error("size mismatch"))):(p(o,e.size),o._finalizing&&o.finalize(),void r())})),A}},I.prototype.finalize=function(){this._stream?this._finalizing=!0:this._finalized||(this._finalized=!0,this.push(g),this.push(null))},I.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())},I.prototype._encode=function(e){if(!e.pax){var t=u.encode(e);if(t)return void this.push(t)}this._encodePax(e)},I.prototype._encodePax=function(e){var t=u.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(u.encode(r)),this.push(t),p(this,t.length),r.size=e.size,r.type=e.type,this.push(u.encode(r))},I.prototype._read=function(e){var t=this._drain;this._drain=f,t()},e.exports=I},94864:(e,t,r)=>{var n=r(92413);function i(e,t,r){e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var i=!1,o=!1,s=[],A=!1,a=new n;function c(){for(;s.length&&!a.paused;){var e=s.shift();if(null===e)return a.emit("end");a.emit("data",e)}}function u(){a.writable=!1,t.call(a),!a.readable&&a.autoDestroy&&a.destroy()}return a.readable=a.writable=!0,a.paused=!1,a.autoDestroy=!(r&&!1===r.autoDestroy),a.write=function(t){return e.call(this,t),!a.paused},a.queue=a.push=function(e){return A||(null===e&&(A=!0),s.push(e),c()),a},a.on("end",(function(){a.readable=!1,!a.writable&&a.autoDestroy&&process.nextTick((function(){a.destroy()}))})),a.end=function(e){if(!i)return i=!0,arguments.length&&a.write(e),u(),a},a.destroy=function(){if(!o)return o=!0,i=!0,s.length=0,a.writable=a.readable=!1,a.emit("close"),a},a.pause=function(){if(!a.paused)return a.paused=!0,a},a.resume=function(){return a.paused&&(a.paused=!1,a.emit("resume")),c(),a.paused||a.emit("drain"),a},a}e.exports=i,i.through=i},67783:(e,t,r)=>{ +/*! + * Tmp + * + * Copyright (c) 2011-2017 KARASZI Istvan + * + * MIT Licensed + */ +const n=r(35747),i=r(85622),o=r(76417),s=r(82941),A=process.binding("constants"),a=s(),c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=/XXXXXX/,l=(A.O_CREAT||A.fs.O_CREAT)|(A.O_EXCL||A.fs.O_EXCL)|(A.O_RDWR||A.fs.O_RDWR),h=A.EBADF||A.os.errno.EBADF,g=A.ENOENT||A.os.errno.ENOENT,f=[];var p=!1,d=!1;function C(e){var t=[],r=null;try{r=o.randomBytes(e)}catch(t){r=o.pseudoRandomBytes(e)}for(var n=0;n0?e():o(new Error("Could not get a unique tmp filename, max tries reached "+t));o(null,t)}))}()}function w(e){var t=I(e)[0],r=t.name?1:t.tries||3;if(isNaN(r)||r<0)throw new Error("Invalid tries");if(t.template&&!t.template.match(u))throw new Error("Invalid template provided");do{const e=m(t);try{n.statSync(e)}catch(t){return e}}while(r-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function B(e){const t=[e];do{for(var r=t.pop(),o=!1,s=n.readdirSync(r),A=0,a=s.length;A=0&&f.splice(i,1),r=!0,e(t)}i&&i(null)}}function b(){if(!d||p)for(;f.length;)try{f[0].call(null)}catch(e){}}function S(e){return k(e,-g,"ENOENT")}function k(e,t,r){return e.code==t||e.code==r}const x=process.versions.node.split(".").map((function(e){return parseInt(e,10)}));0===x[0]&&(x[1]<9||9===x[1]&&x[2]<5)&&process.addListener("uncaughtException",(function(e){throw d=!0,b(),e})),process.addListener("exit",(function(e){e&&(d=!0),b()})),e.exports.tmpdir=a,e.exports.dir=function(e,t){var r=I(e,t),i=r[0],o=r[1];y(i,(function(e,t){if(e)return o(e);n.mkdir(t,i.mode||448,(function(e){if(e)return o(e);o(null,t,v(t,i))}))}))},e.exports.dirSync=function(e){var t=I(e)[0];const r=w(t);return n.mkdirSync(r,t.mode||448),{name:r,removeCallback:v(r,t)}},e.exports.file=function(e,t){var r=I(e,t),i=r[0],o=r[1];i.postfix=E(i.postfix)?".tmp":i.postfix,y(i,(function(e,t){if(e)return o(e);n.open(t,l,i.mode||384,(function(e,r){return e?o(e):i.discardDescriptor?n.close(r,(function(e){if(e){try{n.unlinkSync(t)}catch(t){S(t)||(e=t)}return o(e)}o(null,t,void 0,Q(t,-1,i))})):i.detachDescriptor?o(null,t,r,Q(t,-1,i)):void o(null,t,r,Q(t,r,i))}))}))},e.exports.fileSync=function(e){var t=I(e)[0];t.postfix=t.postfix||".tmp";const r=t.discardDescriptor||t.detachDescriptor,i=w(t);var o=n.openSync(i,l,t.mode||384);return t.discardDescriptor&&(n.closeSync(o),o=void 0),{name:i,fd:o,removeCallback:Q(i,r?-1:o,t)}},e.exports.tmpName=y,e.exports.tmpNameSync=w,e.exports.setGracefulCleanup=function(){p=!0}},84615:(e,t,r)=>{"use strict"; +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */const n=r(59235),i=(e,t,r)=>{if(!1===n(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===n(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};"boolean"==typeof o.strictZeros&&(o.relaxZeros=!1===o.strictZeros);let a=e+":"+t+"="+String(o.relaxZeros)+String(o.shorthand)+String(o.capture)+String(o.wrap);if(i.cache.hasOwnProperty(a))return i.cache[a].result;let c=Math.min(e,t),u=Math.max(e,t);if(1===Math.abs(c-u)){let r=e+"|"+t;return o.capture?`(${r})`:!1===o.wrap?r:`(?:${r})`}let l=f(e)||f(t),h={min:e,max:t,a:c,b:u},g=[],p=[];if(l&&(h.isPadded=l,h.maxLen=String(h.max).length),c<0){p=s(u<0?Math.abs(u):1,Math.abs(c),h,o),c=h.a=0}return u>=0&&(g=s(c,u,h,o)),h.negatives=p,h.positives=g,h.result=function(e,t,r){let n=A(e,t,"-",!1,r)||[],i=A(t,e,"",!1,r)||[],o=A(e,t,"-?",!0,r)||[];return n.concat(o).concat(i).join("|")}(p,g,o),!0===o.capture?h.result=`(${h.result})`:!1!==o.wrap&&g.length+p.length>1&&(h.result=`(?:${h.result})`),i.cache[a]=h,h.result};function o(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=function(e,t){let r=[];for(let n=0;n1&&i.count.pop(),i.count.push(a.count[0]),i.string=i.pattern+h(i.count),c=t+1)}return A}function A(e,t,r,n,i){let o=[];for(let i of e){let{string:e}=i;n||c(t,"string",e)||o.push(r+e),n&&c(t,"string",e)&&o.push(r+e)}return o}function a(e,t){return e>t?1:t>e?-1:0}function c(e,t,r){return e.some(e=>e[t]===r)}function u(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function l(e,t){return e-e%Math.pow(10,t)}function h(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function g(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function f(e){return/^-?(0+)\d/.test(e)}function p(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),i=!1!==r.relaxZeros;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:return i?`0{0,${n}}`:`0{${n}}`}}i.cache={},i.clearCache=()=>i.cache={},e.exports=i},75158:e=>{function t(e,t){var r=e.length,n=new Array(r),i={},o=r,s=function(e){for(var t=new Map,r=0,n=e.length;r0&&(i.forEach((function(e,t){t>0&&(u+=(e[1]?" ":"│")+" "),c||e[0]!==r||(c=!0)})),u+=function(e,t){var r=t?"└":"├";return r+=e?"─ ":"──┐"}(t,n)+t,o&&("object"!=typeof r||r instanceof Date)&&(u+=": "+r),c&&(u+=" (circular ref.)"),A(u)),!c&&"object"==typeof r){var g=function(e,t){var r=[];for(var n in e)e.hasOwnProperty(n)&&(t&&"function"==typeof e[n]||r.push(n));return r}(r,s);g.forEach((function(t){a=++l===g.length,e(t,r[t],a,h,o,s,A)}))}}var t={asLines:function(t,r,n,i){e(".",t,!1,[],r,"function"!=typeof n&&n,i||n)},asTree:function(t,r,n){var i="";return e(".",t,!1,[],r,n,(function(e){i+=e+"\n"})),i}};return t}()},36370:(e,t,r)=>{"use strict";r.d(t,{ZT:()=>i,gn:()=>o}); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function o(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(i=e[A])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}},98161:(e,t,r)=>{e.exports=r(69876)},69876:(e,t,r)=>{"use strict";r(11631);var n,i=r(4016),o=r(98605),s=r(57211),A=r(28614),a=(r(42357),r(31669));function c(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||o.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",(function(e,r,n,i){for(var o=l(r,n,i),s=0,A=t.requests.length;s=this.maxSockets?i.requests.push(o):i.createSocket(o,(function(t){function r(){i.emit("free",t,o)}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n)}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t)}))},c.prototype.createSocket=function(e,t){var r=this,i={};r.sockets.push(i);var o=h({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(o.localAddress=e.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),n("making CONNECT request");var s=r.request(o);function A(o,A,a){var c;return s.removeAllListeners(),A.removeAllListeners(),200!==o.statusCode?(n("tunneling socket could not be established, statusCode=%d",o.statusCode),A.destroy(),(c=new Error("tunneling socket could not be established, statusCode="+o.statusCode)).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):a.length>0?(n("got illegal response body from proxy"),A.destroy(),(c=new Error("got illegal response body from proxy")).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):(n("tunneling connection has established"),r.sockets[r.sockets.indexOf(i)]=A,t(A))}s.useChunkedEncodingByDefault=!1,s.once("response",(function(e){e.upgrade=!0})),s.once("upgrade",(function(e,t,r){process.nextTick((function(){A(e,t,r)}))})),s.once("connect",A),s.once("error",(function(t){s.removeAllListeners(),n("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var o=new Error("tunneling socket could not be established, cause="+t.message);o.code="ECONNRESET",e.request.emit("error",o),r.removeSocket(i)})),s.end()},c.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,(function(e){r.request.onSocket(e)}))}},n=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},t.debug=n},5817:(e,t,r)=>{var n;e=r.nmd(e),function(){var r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},i=r._,o=Array.prototype,s=Object.prototype,A="undefined"!=typeof Symbol?Symbol.prototype:null,a=o.push,c=o.slice,u=s.toString,l=s.hasOwnProperty,h=Array.isArray,g=Object.keys,f=Object.create,p=function(){},d=function(e){return e instanceof d?e:this instanceof d?void(this._wrapped=e):new d(e)};t.nodeType?r._=d:(!e.nodeType&&e.exports&&(t=e.exports=d),t._=d),d.VERSION="1.9.1";var C,E=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}},I=function(e,t,r){return d.iteratee!==C?d.iteratee(e,t):null==e?d.identity:d.isFunction(e)?E(e,t,r):d.isObject(e)&&!d.isArray(e)?d.matcher(e):d.property(e)};d.iteratee=C=function(e,t){return I(e,t,1/0)};var m=function(e,t){return t=null==t?e.length-1:+t,function(){for(var r=Math.max(arguments.length-t,0),n=Array(r),i=0;i=0&&t<=v};d.each=d.forEach=function(e,t,r){var n,i;if(t=E(t,r),b(e))for(n=0,i=e.length;n0?0:s-1;for(i||(n=t[o?o[A]:A],A+=e);A>=0&&A=3;return t(e,E(r,i,4),n,o)}};d.reduce=d.foldl=d.inject=S(1),d.reduceRight=d.foldr=S(-1),d.find=d.detect=function(e,t,r){var n=(b(e)?d.findIndex:d.findKey)(e,t,r);if(void 0!==n&&-1!==n)return e[n]},d.filter=d.select=function(e,t,r){var n=[];return t=I(t,r),d.each(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n},d.reject=function(e,t,r){return d.filter(e,d.negate(I(t)),r)},d.every=d.all=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=0;o=0},d.invoke=m((function(e,t,r){var n,i;return d.isFunction(t)?i=t:d.isArray(t)&&(n=t.slice(0,-1),t=t[t.length-1]),d.map(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=Q(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))})),d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,r){var n,i,o=-1/0,s=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var A=0,a=(e=b(e)?e:d.values(e)).length;Ao&&(o=n);else t=I(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))>s||i===-1/0&&o===-1/0)&&(o=e,s=i)}));return o},d.min=function(e,t,r){var n,i,o=1/0,s=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var A=0,a=(e=b(e)?e:d.values(e)).length;An||void 0===r)return 1;if(r0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+A,s):A=o>=0?Math.min(o+1,A):o+A+1;else if(r&&o&&A)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(c.call(n,s,A),d.isNaN))>=0?o+s:-1;for(o=e>0?s:A-1;o>=0&&ot?(n&&(clearTimeout(n),n=null),A=c,s=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(a,u)),s};return c.cancel=function(){clearTimeout(n),A=0,n=i=o=null},c},d.debounce=function(e,t,r){var n,i,o=function(t,r){n=null,r&&(i=e.apply(t,r))},s=m((function(s){if(n&&clearTimeout(n),r){var A=!n;n=setTimeout(o,t),A&&(i=e.apply(this,s))}else n=d.delay(o,t,this,s);return i}));return s.cancel=function(){clearTimeout(n),n=null},s},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},d.once=d.partial(d.before,2),d.restArguments=m;var K=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],T=function(e,t){var r=L.length,n=e.constructor,i=d.isFunction(n)&&n.prototype||s,o="constructor";for(B(e,o)&&!d.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!d.contains(t,o)&&t.push(o)};d.keys=function(e){if(!d.isObject(e))return[];if(g)return g(e);var t=[];for(var r in e)B(e,r)&&t.push(r);return K&&T(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var r in e)t.push(r);return K&&T(e,t),t},d.values=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i1&&(n=E(n,t[1])),t=d.allKeys(e)):(n=O,t=F(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i1&&(r=t[1])):(t=d.map(F(t,!1,!1),String),n=function(e,r){return!d.contains(t,r)}),d.pick(e,n,r)})),d.defaults=P(d.allKeys,!0),d.create=function(e,t){var r=y(e);return t&&d.extendOwn(r,t),r},d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var r=d.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o":">",'"':""","'":"'","`":"`"},G=d.invert(Y),J=function(e){var t=function(t){return e[t]},r="(?:"+d.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};d.escape=J(Y),d.unescape=J(G),d.result=function(e,t,r){d.isArray(t)||(t=[t]);var n=t.length;if(!n)return d.isFunction(r)?r.call(e):r;for(var i=0;i/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,V=function(e){return"\\"+z[e]};d.template=function(e,t,r){!t&&r&&(t=r),t=d.defaults({},t,d.templateSettings);var n,i=RegExp([(t.escape||q).source,(t.interpolate||q).source,(t.evaluate||q).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(i,(function(t,r,n,i,A){return s+=e.slice(o,A).replace(W,V),o=A+t.length,r?s+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?s+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(s+="';\n"+i+"\n__p+='"),t})),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{n=new Function(t.variable||"obj","_",s)}catch(e){throw e.source=s,e}var A=function(e){return n.call(this,e,d)},a=t.variable||"obj";return A.source="function("+a+"){\n"+s+"}",A},d.chain=function(e){var t=d(e);return t._chain=!0,t};var X=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){return d.each(d.functions(e),(function(t){var r=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return a.apply(e,arguments),X(this,r.apply(d,e))}})),d},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];d.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],X(this,r)}})),d.each(["concat","join","slice"],(function(e){var t=o[e];d.prototype[e]=function(){return X(this,t.apply(this._wrapped,arguments))}})),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return String(this._wrapped)},void 0===(n=function(){return d}.apply(t,[]))||(e.exports=n)}()},73212:(e,t,r)=>{e.exports=r(31669).deprecate},87945:(e,t,r)=>{const n="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,i=r(85622),o=n?";":":",s=r(64151),A=e=>Object.assign(new Error("not found: "+e),{code:"ENOENT"}),a=(e,t)=>{const r=t.colon||o,i=e.match(/\//)||n&&e.match(/\\/)?[""]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],s=n?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",A=n?s.split(r):[""];return n&&-1!==e.indexOf(".")&&""!==A[0]&&A.unshift(""),{pathEnv:i,pathExt:A,pathExtExe:s}},c=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});const{pathEnv:n,pathExt:o,pathExtExe:c}=a(e,t),u=[],l=r=>new Promise((o,s)=>{if(r===n.length)return t.all&&u.length?o(u):s(A(e));const a=n[r],c=/^".*"$/.test(a)?a.slice(1,-1):a,l=i.join(c,e),g=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;o(h(g,r,0))}),h=(e,r,n)=>new Promise((i,A)=>{if(n===o.length)return i(l(r+1));const a=o[n];s(e+a,{pathExt:c},(o,s)=>{if(!o&&s){if(!t.all)return i(e+a);u.push(e+a)}return i(h(e,r,n+1))})});return r?l(0).then(e=>r(null,e),r):l(0)};e.exports=c,c.sync=(e,t)=>{t=t||{};const{pathEnv:r,pathExt:n,pathExtExe:o}=a(e,t),c=[];for(let A=0;A{e.exports=function e(t,r){if(t&&r)return e(t)(r);if("function"!=typeof t)throw new TypeError("need wrapper function");return Object.keys(t).forEach((function(e){n[e]=t[e]})),n;function n(){for(var e=new Array(arguments.length),r=0;r{"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},80800:(e,t,r)=>{"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ithis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)r.push(o.value);return r},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;null!==r;r=r.prev){var n=r.prev;r.prev=r.next,r.next=n}return this.head=t,this.tail=e,this};try{r(99770)(n)}catch(e){}},94916:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(15215)),o=n(r(11050)),s=function(){function e(e,t){if(this.refs=e,"function"!=typeof t){if(!(0,i.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");var r=t.is,n=t.then,o=t.otherwise,s="function"==typeof r?r:function(){for(var e=arguments.length,t=new Array(e),n=0;n{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(11050)),o=function(){function e(e){this._resolve=function(t,r){var n=e(t,r);if(!(0,i.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(r)}}var t=e.prototype;return t.resolve=function(e){return this._resolve(e.value,e)},t.cast=function(e,t){return this._resolve(e,t).cast(e,t)},t.validate=function(e,t){return this._resolve(e,t).validate(e,t)},t.validateSync=function(e,t){return this._resolve(e,t).validateSync(e,t)},t.validateAt=function(e,t,r){return this._resolve(t,r).validateAt(e,t,r)},t.validateSyncAt=function(e,t,r){return this._resolve(t,r).validateSyncAt(e,t,r)},e}();o.prototype.__isYupSchema__=!0;var s=o;t.default=s,e.exports=t.default},95814:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(72912)),o=r(79588),s="$",A=".",a=function(){function e(e,t){if(void 0===t&&(t={}),"string"!=typeof e)throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),""===e)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===s,this.isValue=this.key[0]===A,this.isSibling=!this.isContext&&!this.isValue;var r=this.isContext?s:this.isValue?A:"";this.path=this.key.slice(r.length),this.getter=this.path&&(0,o.getter)(this.path,!0),this.map=t.map}var t=e.prototype;return t.getValue=function(e){var t=this.isContext?e.context:this.isValue?e.value:e.parent;return this.getter&&(t=this.getter(t||{})),this.map&&(t=this.map(t)),t},t.cast=function(e,t){return this.getValue((0,i.default)({},t,{value:e}))},t.resolve=function(){return this},t.describe=function(){return{type:"ref",key:this.key}},t.toString=function(){return"Ref("+this.key+")"},e.isRef=function(e){return e&&e.__isYupRef},e}();t.default=a,a.prototype.__isYupRef=!0,e.exports=t.default},40828:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=A;var i=n(r(21043)),o=/\$\{\s*(\w+)\s*\}/g,s=function(e){return function(t){return e.replace(o,(function(e,r){return(0,i.default)(t[r])}))}};function A(e,t,r,n){var i=this;this.name="ValidationError",this.value=t,this.path=r,this.type=n,this.errors=[],this.inner=[],e&&[].concat(e).forEach((function(e){i.errors=i.errors.concat(e.errors||e),e.inner&&(i.inner=i.inner.concat(e.inner.length?e.inner:e))})),this.message=this.errors.length>1?this.errors.length+" errors occurred":this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,A)}A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A.isError=function(e){return e&&"ValidationError"===e.name},A.formatError=function(e,t){"string"==typeof e&&(e=s(e));var r=function(t){return t.path=t.label||t.path||"this","function"==typeof e?e(t):e};return 1===arguments.length?r:r(t)},e.exports=t.default},18830:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=void 0;var o=i(r(72912)),s=i(r(62407)),A=i(r(31490)),a=i(r(71665)),c=i(r(11050)),u=i(r(7045)),l=i(r(21043)),h=i(r(16434)),g=r(63802),f=n(r(80180));function p(){var e=(0,s.default)(["","[","]"]);return p=function(){return e},e}var d=C;function C(e){var t=this;if(!(this instanceof C))return new C(e);h.default.call(this,{type:"array"}),this._subType=void 0,this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.of(e)}))}t.default=d,(0,A.default)(C,h.default,{_typeCheck:function(e){return Array.isArray(e)},_cast:function(e,t){var r=this,n=h.default.prototype._cast.call(this,e,t);if(!this._typeCheck(n)||!this._subType)return n;var i=!1,o=n.map((function(e){var n=r._subType.cast(e,t);return n!==e&&(i=!0),n}));return i?o:n},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=[],i=t.sync,s=t.path,A=this._subType,a=this._option("abortEarly",t),c=this._option("recursive",t),l=null!=t.originalValue?t.originalValue:e;return h.default.prototype._validate.call(this,e,t).catch((0,f.propagateErrors)(a,n)).then((function(e){if(!c||!A||!r._typeCheck(e)){if(n.length)throw n[0];return e}l=l||e;var h=e.map((function(r,n){var i=(0,u.default)(p(),t.path,n),s=(0,o.default)({},t,{path:i,strict:!0,parent:e,originalValue:l[n]});return!A.validate||A.validate(r,s)}));return(0,f.default)({sync:i,path:s,value:e,errors:n,endEarly:a,validations:h})}))},_isPresent:function(e){return h.default.prototype._cast.call(this,e)&&e.length>0},of:function(e){var t=this.clone();if(!1!==e&&!(0,c.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. not: "+(0,l.default)(e));return t._subType=e,t},min:function(e,t){return t=t||g.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,a.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return t=t||g.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,a.default)(t)||t.length<=this.resolve(e)}})},ensure:function(){var e=this;return this.default((function(){return[]})).transform((function(t){return e.isType(t)?t:null===t?[]:[].concat(t)}))},compact:function(e){var t=e?function(t,r,n){return!e(t,r,n)}:function(e){return!!e};return this.transform((function(e){return null!=e?e.filter(t):e}))},describe:function(){var e=h.default.prototype.describe.call(this);return this._subType&&(e.innerType=this._subType.describe()),e}}),e.exports=t.default},76595:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(31490)),o=n(r(16434)),s=A;function A(){var e=this;if(!(this instanceof A))return new A;o.default.call(this,{type:"boolean"}),this.withMutation((function(){e.transform((function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(e))return!0;if(/^(false|0)$/i.test(e))return!1}return e}))}))}t.default=s,(0,i.default)(A,o.default,{_typeCheck:function(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}}),e.exports=t.default},41755:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(16434)),o=n(r(31490)),s=n(r(76813)),A=r(63802),a=n(r(71665)),c=n(r(95814)),u=new Date(""),l=h;function h(){var e=this;if(!(this instanceof h))return new h;i.default.call(this,{type:"date"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:(e=(0,s.default)(e))?new Date(e):u}))}))}t.default=l,(0,o.default)(h,i.default,{_typeCheck:function(e){return t=e,"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(e.getTime());var t},min:function(e,t){void 0===t&&(t=A.date.min);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`min` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(e){return(0,a.default)(e)||e>=this.resolve(r)}})},max:function(e,t){void 0===t&&(t=A.date.max);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`max` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(e){return(0,a.default)(e)||e<=this.resolve(r)}})}}),e.exports=t.default},15966:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.addMethod=function(e,t,r){if(!e||!(0,p.default)(e.prototype))throw new TypeError("You must provide a yup schema constructor function");if("string"!=typeof t)throw new TypeError("A Method name must be provided");if("function"!=typeof r)throw new TypeError("Method function must be provided");e.prototype[t]=r},t.lazy=t.ref=t.boolean=void 0;var i=n(r(16434));t.mixed=i.default;var o=n(r(76595));t.bool=o.default;var s=n(r(45167));t.string=s.default;var A=n(r(72068));t.number=A.default;var a=n(r(41755));t.date=a.default;var c=n(r(51727));t.object=c.default;var u=n(r(18830));t.array=u.default;var l=n(r(95814)),h=n(r(6856)),g=n(r(40828));t.ValidationError=g.default;var f=n(r(43910));t.reach=f.default;var p=n(r(11050));t.isSchema=p.default;var d=n(r(24280));t.setLocale=d.default;var C=o.default;t.boolean=C;t.ref=function(e,t){return new l.default(e,t)};t.lazy=function(e){return new h.default(e)}},63802:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=t.array=t.object=t.boolean=t.date=t.number=t.string=t.mixed=void 0;var i=n(r(21043)),o={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:function(e){var t=e.path,r=e.type,n=e.value,o=e.originalValue,s=null!=o&&o!==n,A=t+" must be a `"+r+"` type, but the final value was: `"+(0,i.default)(n,!0)+"`"+(s?" (cast from the value `"+(0,i.default)(o,!0)+"`).":".");return null===n&&(A+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),A}};t.mixed=o;var s={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};t.string=s;var A={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",notEqual:"${path} must be not equal to ${notEqual}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};t.number=A;var a={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};t.date=a;var c={};t.boolean=c;var u={noUnknown:"${path} field cannot have keys not specified in the object shape"};t.object=u;var l={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items"};t.array=l;var h={mixed:o,string:s,number:A,date:a,object:u,array:l,boolean:c};t.default=h},16434:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=E;var i=n(r(72912)),o=n(r(15215)),s=n(r(26052)),A=n(r(78700)),a=r(63802),c=n(r(94916)),u=n(r(80180)),l=n(r(22808)),h=n(r(11050)),g=n(r(54107)),f=n(r(21043)),p=n(r(95814)),d=r(43910),C=function(){function e(){this.list=new Set,this.refs=new Map}var t=e.prototype;return t.toArray=function(){return(0,A.default)(this.list).concat((0,A.default)(this.refs.values()))},t.add=function(e){p.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)},t.delete=function(e){p.default.isRef(e)?this.refs.delete(e.key,e):this.list.delete(e)},t.has=function(e,t){if(this.list.has(e))return!0;for(var r,n=this.refs.values();!(r=n.next()).done;)if(t(r.value)===e)return!0;return!1},e}();function E(e){var t=this;if(void 0===e&&(e={}),!(this instanceof E))return new E;this._deps=[],this._conditions=[],this._options={abortEarly:!0,recursive:!0},this._exclusive=Object.create(null),this._whitelist=new C,this._blacklist=new C,this.tests=[],this.transforms=[],this.withMutation((function(){t.typeError(a.mixed.notType)})),(0,o.default)(e,"default")&&(this._defaultDefault=e.default),this._type=e.type||"mixed"}for(var I=E.prototype={__isYupSchema__:!0,constructor:E,clone:function(){var e=this;return this._mutate?this:(0,s.default)(this,(function(t){if((0,h.default)(t)&&t!==e)return t}))},label:function(e){var t=this.clone();return t._label=e,t},meta:function(e){if(0===arguments.length)return this._meta;var t=this.clone();return t._meta=(0,i.default)(t._meta||{},e),t},withMutation:function(e){var t=this._mutate;this._mutate=!0;var r=e(this);return this._mutate=t,r},concat:function(e){if(!e||e===this)return this;if(e._type!==this._type&&"mixed"!==this._type)throw new TypeError("You cannot `concat()` schema's of different types: "+this._type+" and "+e._type);var t=(0,l.default)(e.clone(),this);return(0,o.default)(e,"_default")&&(t._default=e._default),t.tests=this.tests,t._exclusive=this._exclusive,t.withMutation((function(t){e.tests.forEach((function(e){t.test(e.OPTIONS)}))})),t},isType:function(e){return!(!this._nullable||null!==e)||(!this._typeCheck||this._typeCheck(e))},resolve:function(e){var t=this;if(t._conditions.length){var r=t._conditions;(t=t.clone())._conditions=[],t=(t=r.reduce((function(t,r){return r.resolve(t,e)}),t)).resolve(e)}return t},cast:function(e,t){void 0===t&&(t={});var r=this.resolve((0,i.default)({},t,{value:e})),n=r._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==r.isType(n)){var o=(0,f.default)(e),s=(0,f.default)(n);throw new TypeError("The value of "+(t.path||"field")+' could not be cast to a value that satisfies the schema type: "'+r._type+'". \n\nattempted value: '+o+" \n"+(s!==o?"result of cast: "+s:""))}return n},_cast:function(e){var t=this,r=void 0===e?e:this.transforms.reduce((function(r,n){return n.call(t,r,e)}),e);return void 0===r&&(0,o.default)(this,"_default")&&(r=this.default()),r},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=e,o=null!=t.originalValue?t.originalValue:e,s=this._option("strict",t),A=this._option("abortEarly",t),a=t.sync,c=t.path,l=this._label;s||(n=this._cast(n,(0,i.default)({assert:!1},t)));var h={value:n,path:c,schema:this,options:t,label:l,originalValue:o,sync:a},g=[];return this._typeError&&g.push(this._typeError(h)),this._whitelistError&&g.push(this._whitelistError(h)),this._blacklistError&&g.push(this._blacklistError(h)),(0,u.default)({validations:g,endEarly:A,value:n,path:c,sync:a}).then((function(e){return(0,u.default)({path:c,sync:a,value:e,endEarly:A,validations:r.tests.map((function(e){return e(h)}))})}))},validate:function(e,t){return void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,t)},validateSync:function(e,t){var r,n;if(void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,(0,i.default)({},t,{sync:!0})).then((function(e){return r=e})).catch((function(e){return n=e})),n)throw n;return r},isValid:function(e,t){return this.validate(e,t).then((function(){return!0})).catch((function(e){if("ValidationError"===e.name)return!1;throw e}))},isValidSync:function(e,t){try{return this.validateSync(e,t),!0}catch(e){if("ValidationError"===e.name)return!1;throw e}},getDefault:function(e){return void 0===e&&(e={}),this.resolve(e).default()},default:function(e){if(0===arguments.length){var t=(0,o.default)(this,"_default")?this._default:this._defaultDefault;return"function"==typeof t?t.call(this):(0,s.default)(t)}var r=this.clone();return r._default=e,r},strict:function(e){void 0===e&&(e=!0);var t=this.clone();return t._options.strict=e,t},_isPresent:function(e){return null!=e},required:function(e){return void 0===e&&(e=a.mixed.required),this.test({message:e,name:"required",exclusive:!0,test:function(e){return this.schema._isPresent(e)}})},notRequired:function(){var e=this.clone();return e.tests=e.tests.filter((function(e){return"required"!==e.OPTIONS.name})),e},nullable:function(e){void 0===e&&(e=!0);var t=this.clone();return t._nullable=e,t},transform:function(e){var t=this.clone();return t.transforms.push(e),t},test:function(){var e;if(void 0===(e=1===arguments.length?"function"==typeof(arguments.length<=0?void 0:arguments[0])?{test:arguments.length<=0?void 0:arguments[0]}:arguments.length<=0?void 0:arguments[0]:2===arguments.length?{name:arguments.length<=0?void 0:arguments[0],test:arguments.length<=1?void 0:arguments[1]}:{name:arguments.length<=0?void 0:arguments[0],message:arguments.length<=1?void 0:arguments[1],test:arguments.length<=2?void 0:arguments[2]}).message&&(e.message=a.mixed.default),"function"!=typeof e.test)throw new TypeError("`test` is a required parameters");var t=this.clone(),r=(0,g.default)(e),n=e.exclusive||e.name&&!0===t._exclusive[e.name];if(e.exclusive&&!e.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t._exclusive[e.name]=!!e.exclusive,t.tests=t.tests.filter((function(t){if(t.OPTIONS.name===e.name){if(n)return!1;if(t.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),t.tests.push(r),t},when:function(e,t){1===arguments.length&&(t=e,e=".");var r=this.clone(),n=[].concat(e).map((function(e){return new p.default(e)}));return n.forEach((function(e){e.isSibling&&r._deps.push(e.key)})),r._conditions.push(new c.default(n,t)),r},typeError:function(e){var t=this.clone();return t._typeError=(0,g.default)({message:e,name:"typeError",test:function(e){return!(void 0!==e&&!this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t},oneOf:function(e,t){void 0===t&&(t=a.mixed.oneOf);var r=this.clone();return e.forEach((function(e){r._whitelist.add(e),r._blacklist.delete(e)})),r._whitelistError=(0,g.default)({message:t,name:"oneOf",test:function(e){if(void 0===e)return!0;var t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},notOneOf:function(e,t){void 0===t&&(t=a.mixed.notOneOf);var r=this.clone();return e.forEach((function(e){r._blacklist.add(e),r._whitelist.delete(e)})),r._blacklistError=(0,g.default)({message:t,name:"notOneOf",test:function(e){var t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},strip:function(e){void 0===e&&(e=!0);var t=this.clone();return t._strip=e,t},_option:function(e,t){return(0,o.default)(t,e)?t[e]:this._options[e]},describe:function(){var e=this.clone();return{type:e._type,meta:e._meta,label:e._label,tests:e.tests.map((function(e){return{name:e.OPTIONS.name,params:e.OPTIONS.params}})).filter((function(e,t,r){return r.findIndex((function(t){return t.name===e.name}))===t}))}}},m=["validate","validateSync"],y=function(){var e=m[w];I[e+"At"]=function(t,r,n){void 0===n&&(n={});var o=(0,d.getIn)(this,t,r,n.context),s=o.parent,A=o.parentPath;return o.schema[e](s&&s[A],(0,i.default)({},n,{parent:s,path:t}))}},w=0;w{"use strict";var n=r(60087);t.__esModule=!0,t.default=c;var i=n(r(31490)),o=n(r(16434)),s=r(63802),A=n(r(71665)),a=function(e){return(0,A.default)(e)||e===(0|e)};function c(){var e=this;if(!(this instanceof c))return new c;o.default.call(this,{type:"number"}),this.withMutation((function(){e.transform((function(e){var t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)}))}))}(0,i.default)(c,o.default,{_typeCheck:function(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!function(e){return e!=+e}(e)},min:function(e,t){return void 0===t&&(t=s.number.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,A.default)(t)||t>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=s.number.max),this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,A.default)(t)||t<=this.resolve(e)}})},lessThan:function(e,t){return void 0===t&&(t=s.number.lessThan),this.test({message:t,name:"max",exclusive:!0,params:{less:e},test:function(t){return(0,A.default)(t)||tthis.resolve(e)}})},positive:function(e){return void 0===e&&(e=s.number.positive),this.moreThan(0,e)},negative:function(e){return void 0===e&&(e=s.number.negative),this.lessThan(0,e)},integer:function(e){return void 0===e&&(e=s.number.integer),this.test({name:"integer",message:e,test:a})},truncate:function(){return this.transform((function(e){return(0,A.default)(e)?e:0|e}))},round:function(e){var t=["ceil","floor","round","trunc"];if("trunc"===(e=e&&e.toLowerCase()||"round"))return this.truncate();if(-1===t.indexOf(e.toLowerCase()))throw new TypeError("Only valid options for round() are: "+t.join(", "));return this.transform((function(t){return(0,A.default)(t)?t:Math[e](t)}))}}),e.exports=t.default},51727:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=B;var o=i(r(62407)),s=i(r(72912)),A=i(r(15215)),a=i(r(36494)),c=i(r(89170)),u=i(r(5253)),l=i(r(89612)),h=r(79588),g=i(r(16434)),f=r(63802),p=i(r(18417)),d=i(r(23316)),C=i(r(31490)),E=i(r(7045)),I=n(r(80180));function m(){var e=(0,o.default)(["",".",""]);return m=function(){return e},e}function y(){var e=(0,o.default)(["",".",""]);return y=function(){return e},e}var w=function(e){return"[object Object]"===Object.prototype.toString.call(e)};function B(e){var t=this;if(!(this instanceof B))return new B(e);g.default.call(this,{type:"object",default:function(){var e=this;if(this._nodes.length){var t={};return this._nodes.forEach((function(r){t[r]=e.fields[r].default?e.fields[r].default():void 0})),t}}}),this.fields=Object.create(null),this._nodes=[],this._excludedEdges=[],this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.shape(e)}))}(0,C.default)(B,g.default,{_typeCheck:function(e){return w(e)||"function"==typeof e},_cast:function(e,t){var r=this;void 0===t&&(t={});var n=g.default.prototype._cast.call(this,e,t);if(void 0===n)return this.default();if(!this._typeCheck(n))return n;var i=this.fields,o=!0===this._option("stripUnknown",t),a=this._nodes.concat(Object.keys(n).filter((function(e){return-1===r._nodes.indexOf(e)}))),c={},u=(0,s.default)({},t,{parent:c,__validating:!1}),l=!1;return a.forEach((function(e){var r=i[e],s=(0,A.default)(n,e);if(r){var a,h=r._options&&r._options.strict;if(u.path=(0,E.default)(y(),t.path,e),u.value=n[e],!0===(r=r.resolve(u))._strip)return void(l=l||e in n);void 0!==(a=t.__validating&&h?n[e]:r.cast(n[e],u))&&(c[e]=a)}else s&&!o&&(c[e]=n[e]);c[e]!==n[e]&&(l=!0)})),l?c:n},_validate:function(e,t){var r,n,i=this;void 0===t&&(t={});var o=t.sync,A=[],a=null!=t.originalValue?t.originalValue:e;return r=this._option("abortEarly",t),n=this._option("recursive",t),t=(0,s.default)({},t,{__validating:!0,originalValue:a}),g.default.prototype._validate.call(this,e,t).catch((0,I.propagateErrors)(r,A)).then((function(e){if(!n||!w(e)){if(A.length)throw A[0];return e}a=a||e;var c=i._nodes.map((function(r){var n=(0,E.default)(m(),t.path,r),o=i.fields[r],A=(0,s.default)({},t,{path:n,parent:e,originalValue:a[r]});return o&&o.validate?(A.strict=!0,o.validate(e[r],A)):Promise.resolve(!0)}));return(0,I.default)({sync:o,validations:c,value:e,errors:A,endEarly:r,path:t.path,sort:(0,d.default)(i.fields)})}))},concat:function(e){var t=g.default.prototype.concat.call(this,e);return t._nodes=(0,p.default)(t.fields,t._excludedEdges),t},shape:function(e,t){void 0===t&&(t=[]);var r=this.clone(),n=(0,s.default)(r.fields,e);if(r.fields=n,t.length){Array.isArray(t[0])||(t=[t]);var i=t.map((function(e){return e[0]+"-"+e[1]}));r._excludedEdges=r._excludedEdges.concat(i)}return r._nodes=(0,p.default)(n,r._excludedEdges),r},from:function(e,t,r){var n=(0,h.getter)(e,!0);return this.transform((function(i){if(null==i)return i;var o=i;return(0,A.default)(i,e)&&(o=(0,s.default)({},i),r||delete o[e],o[t]=n(i)),o}))},noUnknown:function(e,t){void 0===e&&(e=!0),void 0===t&&(t=f.object.noUnknown),"string"==typeof e&&(t=e,e=!0);var r=this.test({name:"noUnknown",exclusive:!0,message:t,test:function(t){return null==t||!e||0===function(e,t){var r=Object.keys(e.fields);return Object.keys(t).filter((function(e){return-1===r.indexOf(e)}))}(this.schema,t).length}});return r._options.stripUnknown=e,r},unknown:function(e,t){return void 0===e&&(e=!0),void 0===t&&(t=f.object.noUnknown),this.noUnknown(!e,t)},transformKeys:function(e){return this.transform((function(t){return t&&(0,u.default)(t,(function(t,r){return e(r)}))}))},camelCase:function(){return this.transformKeys(c.default)},snakeCase:function(){return this.transformKeys(a.default)},constantCase:function(){return this.transformKeys((function(e){return(0,a.default)(e).toUpperCase()}))},describe:function(){var e=g.default.prototype.describe.call(this);return e.fields=(0,l.default)(this.fields,(function(e){return e.describe()})),e}}),e.exports=t.default},24280:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e){Object.keys(e).forEach((function(t){Object.keys(e[t]).forEach((function(r){i.default[t][r]=e[t][r]}))}))};var i=n(r(63802));e.exports=t.default},45167:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=l;var i=n(r(31490)),o=n(r(16434)),s=r(63802),A=n(r(71665)),a=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,c=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,u=function(e){return(0,A.default)(e)||e===e.trim()};function l(){var e=this;if(!(this instanceof l))return new l;o.default.call(this,{type:"string"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:null!=e&&e.toString?e.toString():e}))}))}(0,i.default)(l,o.default,{_typeCheck:function(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e},_isPresent:function(e){return o.default.prototype._cast.call(this,e)&&e.length>0},length:function(e,t){return void 0===t&&(t=s.string.length),this.test({message:t,name:"length",exclusive:!0,params:{length:e},test:function(t){return(0,A.default)(t)||t.length===this.resolve(e)}})},min:function(e,t){return void 0===t&&(t=s.string.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,A.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=s.string.max),this.test({name:"max",exclusive:!0,message:t,params:{max:e},test:function(t){return(0,A.default)(t)||t.length<=this.resolve(e)}})},matches:function(e,t){var r,n=!1;return t&&(t.message||t.hasOwnProperty("excludeEmptyString")?(n=t.excludeEmptyString,r=t.message):r=t),this.test({message:r||s.string.matches,params:{regex:e},test:function(t){return(0,A.default)(t)||""===t&&n||e.test(t)}})},email:function(e){return void 0===e&&(e=s.string.email),this.matches(a,{message:e,excludeEmptyString:!0})},url:function(e){return void 0===e&&(e=s.string.url),this.matches(c,{message:e,excludeEmptyString:!0})},ensure:function(){return this.default("").transform((function(e){return null===e?"":e}))},trim:function(e){return void 0===e&&(e=s.string.trim),this.transform((function(e){return null!=e?e.trim():e})).test({message:e,name:"trim",test:u})},lowercase:function(e){return void 0===e&&(e=s.string.lowercase),this.transform((function(e){return(0,A.default)(e)?e:e.toLowerCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,A.default)(e)||e===e.toLowerCase()}})},uppercase:function(e){return void 0===e&&(e=s.string.uppercase),this.transform((function(e){return(0,A.default)(e)?e:e.toUpperCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,A.default)(e)||e===e.toUpperCase()}})}}),e.exports=t.default},54107:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.createErrorFactory=l,t.default=function(e){var t=e.name,r=e.message,n=e.test,s=e.params;function u(e){var u=e.value,h=e.path,g=e.label,f=e.options,p=e.originalValue,d=e.sync,C=(0,i.default)(e,["value","path","label","options","originalValue","sync"]),E=f.parent,I=function(e){return a.default.isRef(e)?e.getValue({value:u,parent:E,context:f.context}):e},m=l({message:r,path:h,value:u,originalValue:p,params:s,label:g,resolve:I,name:t}),y=(0,o.default)({path:h,parent:E,type:t,createError:m,resolve:I,options:f},C);return function(e,t,r,n){var i=e.call(t,r);if(!n)return Promise.resolve(i);if(o=i,o&&"function"==typeof o.then&&"function"==typeof o.catch)throw new Error('Validation test of type: "'+t.type+'" returned a Promise during a synchronous validate. This test will finish after the validate call has returned');var o;return c.SynchronousPromise.resolve(i)}(n,y,u,d).then((function(e){if(A.default.isError(e))throw e;if(!e)throw m()}))}return u.OPTIONS=e,u};var i=n(r(74943)),o=n(r(72912)),s=n(r(89612)),A=n(r(40828)),a=n(r(95814)),c=r(93255),u=A.default.formatError;function l(e){var t=e.value,r=e.label,n=e.resolve,a=e.originalValue,c=(0,i.default)(e,["value","label","resolve","originalValue"]);return function(e){var i=void 0===e?{}:e,l=i.path,h=void 0===l?c.path:l,g=i.message,f=void 0===g?c.message:g,p=i.type,d=void 0===p?c.name:p,C=i.params;return C=(0,o.default)({path:h,value:t,originalValue:a,label:r},function(e,t,r){return(0,s.default)((0,o.default)({},e,t),r)}(c.params,C,n)),(0,o.default)(new A.default(u(f,C),t,h,d),{params:C})}}},31490:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t,r){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),(0,i.default)(e.prototype,r)};var i=n(r(72912));e.exports=t.default},71665:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return null==e},e.exports=t.default},11050:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e&&e.__isYupSchema__},e.exports=t.default},76813:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){var t,n,i=[1,4,5,6,7,10,11],o=0;if(n=r.exec(e)){for(var s,A=0;s=i[A];++A)n[s]=+n[s]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,void 0!==n[8]&&""!==n[8]||void 0!==n[9]&&""!==n[9]?("Z"!==n[8]&&void 0!==n[9]&&(o=60*n[10]+n[11],"+"===n[9]&&(o=0-o)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+o,n[6],n[7])):t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7])}else t=Date.parse?Date.parse(e):NaN;return t};var r=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;e.exports=t.default},7045:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{"use strict";var n=r(60087);t.__esModule=!0,t.default=function e(t,r){for(var n in r)if((0,i.default)(r,n)){var A=r[n],a=t[n];if(void 0===a)t[n]=A;else{if(a===A)continue;(0,o.default)(a)?(0,o.default)(A)&&(t[n]=A.concat(a)):s(a)?s(A)&&(t[n]=e(a,A)):Array.isArray(a)&&Array.isArray(A)&&(t[n]=A.concat(a))}}return t};var i=n(r(15215)),o=n(r(11050)),s=function(e){return"[object Object]"===Object.prototype.toString.call(e)};e.exports=t.default},21043:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e,t){var r=A(e,t);return null!==r?r:JSON.stringify(e,(function(e,r){var n=A(this[e],t);return null!==n?n:r}),2)};var r=Object.prototype.toString,n=Error.prototype.toString,i=RegExp.prototype.toString,o="undefined"!=typeof Symbol?Symbol.prototype.toString:function(){return""},s=/^Symbol\((.*)\)(.*)$/;function A(e,t){if(void 0===t&&(t=!1),null==e||!0===e||!1===e)return""+e;var A=typeof e;if("number"===A)return function(e){return e!=+e?"NaN":0===e&&1/e<0?"-0":""+e}(e);if("string"===A)return t?'"'+e+'"':e;if("function"===A)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===A)return o.call(e).replace(s,"Symbol($1)");var a=r.call(e).slice(8,-1);return"Date"===a?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===a||e instanceof Error?"["+n.call(e)+"]":"RegExp"===a?i.call(e):null}e.exports=t.default},43910:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.getIn=s,t.default=void 0;var i=r(79588),o=n(r(15215));function s(e,t,r,n){var s,A,a;return n=n||r,t?((0,i.forEach)(t,(function(i,c,u){var l=c?function(e){return e.substr(0,e.length-1).substr(1)}(i):i;if(u||(0,o.default)(e,"_subType")){var h=u?parseInt(l,10):0;if(e=e.resolve({context:n,parent:s,value:r})._subType,r){if(u&&h>=r.length)throw new Error("Yup.reach cannot resolve an array item at index: "+i+", in the path: "+t+". because there is no value at that index. ");r=r[h]}}if(!u){if(e=e.resolve({context:n,parent:s,value:r}),!(0,o.default)(e,"fields")||!(0,o.default)(e.fields,l))throw new Error("The schema does not contain the path: "+t+". (failed at: "+a+' which is a type: "'+e._type+'") ');e=e.fields[l],s=r,r=r&&r[l],A=l,a=c?"["+i+"]":"."+i}})),{schema:e,parent:s,parentPath:A}):{parent:s,parentPath:t,schema:e}}var A=function(e,t,r,n){return s(e,t,r,n).schema};t.default=A},80180:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.propagateErrors=function(e,t){return e?null:function(e){return t.push(e),e.value}},t.settled=a,t.collectErrors=c,t.default=function(e){var t=e.endEarly,r=(0,i.default)(e,["endEarly"]);return t?function(e,t,r){return A(r).all(e).catch((function(e){throw"ValidationError"===e.name&&(e.value=t),e})).then((function(){return t}))}(r.validations,r.value,r.sync):c(r)};var i=n(r(74943)),o=r(93255),s=n(r(40828)),A=function(e){return e?o.SynchronousPromise:Promise};function a(e,t){var r=A(t);return r.all(e.map((function(e){return r.resolve(e).then((function(e){return{fulfilled:!0,value:e}}),(function(e){return{fulfilled:!1,value:e}}))})))}function c(e){var t=e.validations,r=e.value,n=e.path,i=e.sync,o=e.errors,A=e.sort;return o=function(e){return void 0===e&&(e=[]),e.inner&&e.inner.length?e.inner:[].concat(e)}(o),a(t,i).then((function(e){var t=e.filter((function(e){return!e.fulfilled})).reduce((function(e,t){var r=t.value;if(!s.default.isError(r))throw r;return e.concat(r)}),[]);if(A&&t.sort(A),(o=t.concat(o)).length)throw new s.default(o,r,n);return r}))}},23316:(e,t)=>{"use strict";function r(e,t){var r=1/0;return e.some((function(e,n){if(-1!==t.path.indexOf(e))return r=n,!0})),r}t.__esModule=!0,t.default=function(e){var t=Object.keys(e);return function(e,n){return r(t,e)-r(t,n)}},e.exports=t.default},18417:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t){void 0===t&&(t=[]);var r=[],n=[];function c(e,i){var o=(0,s.split)(e)[0];~n.indexOf(o)||n.push(o),~t.indexOf(i+"-"+o)||r.push([i,o])}for(var u in e)if((0,i.default)(e,u)){var l=e[u];~n.indexOf(u)||n.push(u),A.default.isRef(l)&&l.isSibling?c(l.path,u):(0,a.default)(l)&&l._deps&&l._deps.forEach((function(e){return c(e,u)}))}return o.default.array(n,r).reverse()};var i=n(r(15215)),o=n(r(75158)),s=r(79588),A=n(r(95814)),a=n(r(11050));e.exports=t.default},38422:e=>{"use strict";e.exports={u2:"yup"}},60306:e=>{"use strict";e.exports=JSON.parse('{"name":"@yarnpkg/cli","version":"2.1.1","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/core":"workspace:^2.1.1","@yarnpkg/fslib":"workspace:^2.1.0","@yarnpkg/libzip":"workspace:^2.1.0","@yarnpkg/parsers":"workspace:^2.1.0","@yarnpkg/plugin-compat":"workspace:^2.1.0","@yarnpkg/plugin-dlx":"workspace:^2.1.0","@yarnpkg/plugin-essentials":"workspace:^2.1.0","@yarnpkg/plugin-file":"workspace:^2.1.0","@yarnpkg/plugin-git":"workspace:^2.1.0","@yarnpkg/plugin-github":"workspace:^2.1.0","@yarnpkg/plugin-http":"workspace:^2.1.0","@yarnpkg/plugin-init":"workspace:^2.1.0","@yarnpkg/plugin-link":"workspace:^2.1.0","@yarnpkg/plugin-node-modules":"workspace:^2.1.0","@yarnpkg/plugin-npm":"workspace:^2.1.0","@yarnpkg/plugin-npm-cli":"workspace:^2.1.0","@yarnpkg/plugin-pack":"workspace:^2.1.0","@yarnpkg/plugin-patch":"workspace:^2.1.0","@yarnpkg/plugin-pnp":"workspace:^2.1.0","@yarnpkg/shell":"workspace:^2.1.0","chalk":"^3.0.0","clipanion":"^2.4.2","fromentries":"^1.2.0","semver":"^7.1.2","tslib":"^1.13.0","yup":"^0.27.0"},"devDependencies":{"@types/yup":"0.26.12","@yarnpkg/builder":"workspace:^2.1.0","@yarnpkg/monorepo":"workspace:0.0.0","@yarnpkg/pnpify":"workspace:^2.1.0","micromatch":"^4.0.2","typescript":"^3.9.5"},"peerDependencies":{"@yarnpkg/core":"^2.1.1"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\"","build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},"publishConfig":{"main":"./lib/index.js","types":"./lib/index.d.ts","bin":null},"files":["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{"bundles":{"standard":["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"]}},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"engines":{"node":">=10.19.0"}}')},98497:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=98497,e.exports=t},73841:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/core"}')},32178:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=32178,e.exports=t},4670:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/fslib"}')},81386:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/libzip"}')},3368:(e,t,r)=>{var n,i=Object.assign({},r(35747)),o=void 0!==o?o:{},s={};for(n in o)o.hasOwnProperty(n)&&(s[n]=o[n]);var A,a,c,u,l=[],h="";h=__dirname+"/",A=function(e,t){var n=Be(e);return n?t?n:n.toString():(c||(c=i),u||(u=r(85622)),e=u.normalize(e),c.readFileSync(e,t?null:"utf8"))},a=function(e){var t=A(e,!0);return t.buffer||(t=new Uint8Array(t)),I(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),l=process.argv.slice(2),e.exports=o,o.inspect=function(){return"[Emscripten Module object]"};var g=o.print||console.log.bind(console),f=o.printErr||console.warn.bind(console);for(n in s)s.hasOwnProperty(n)&&(o[n]=s[n]);s=null,o.arguments&&(l=o.arguments),o.thisProgram&&o.thisProgram,o.quit&&o.quit;var p,d;o.wasmBinary&&(p=o.wasmBinary),o.noExitRuntime&&o.noExitRuntime,"object"!=typeof WebAssembly&&f("no native wasm support detected");var C=new WebAssembly.Table({initial:31,maximum:31,element:"anyfunc"}),E=!1;function I(e,t){e||Z("Assertion failed: "+t)}function m(e){var t=o["_"+e];return I(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function y(e,t,r,n,i){var o={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);D(e,t=Re(r),r)}return t},array:function(e){var t=Re(e.length);return function(e,t){x.set(e,t)}(e,t),t}};var s=m(e),A=[],a=0;if(n)for(var c=0;c=n);)++i;if(i-t>16&&e.subarray&&w)return w.decode(e.subarray(t,i));for(var o="";t>10,56320|1023&c)}}else o+=String.fromCharCode((31&s)<<6|A)}else o+=String.fromCharCode(s)}return o}function Q(e,t){return e?B(F,e,t):""}function v(e,t,r,n){if(!(n>0))return 0;for(var i=r,o=r+n-1,s=0;s=55296&&A<=57343)A=65536+((1023&A)<<10)|1023&e.charCodeAt(++s);if(A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|63&A}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|63&A}else{if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|63&A}}return t[r]=0,r-i}function D(e,t,r){return v(e,F,t,r)}function b(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function S(e){var t=b(e)+1,r=Ke(t);return r&&v(e,x,r,t),r}var k,x,F,M,N,R,K;function L(e){k=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=M=new Int16Array(e),o.HEAP32=N=new Int32Array(e),o.HEAPU8=F=new Uint8Array(e),o.HEAPU16=new Uint16Array(e),o.HEAPU32=new Uint32Array(e),o.HEAPF32=R=new Float32Array(e),o.HEAPF64=K=new Float64Array(e)}var T=o.INITIAL_MEMORY||16777216;function P(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?o.dynCall_v(r):o.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}(d=o.wasmMemory?o.wasmMemory:new WebAssembly.Memory({initial:T/65536,maximum:32768}))&&(k=d.buffer),T=k.byteLength,L(k),N[5160]=5263680;var U=[],_=[],O=[],j=[];var Y=Math.abs,G=Math.ceil,J=Math.floor,H=Math.min,q=0,z=null,W=null;function V(e){q++,o.monitorRunDependencies&&o.monitorRunDependencies(q)}function X(e){if(q--,o.monitorRunDependencies&&o.monitorRunDependencies(q),0==q&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}function Z(e){throw o.onAbort&&o.onAbort(e),g(e+=""),f(e),E=!0,1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}o.preloadedImages={},o.preloadedAudios={};function $(e){return t=e,r="data:application/octet-stream;base64,",String.prototype.startsWith?t.startsWith(r):0===t.indexOf(r);var t,r}var ee,te,re="data:application/octet-stream;base64,AGFzbQEAAAAB0QIwYAF/AX9gA39/fwF/YAJ/fwF/YAF/AGACf38AYAR/f39/AX9gBX9/f39/AX9gA39/fwBgBH9+f38Bf2AAAX9gAn9+AX9gA39+fwF/YAF/AX5gBX9/f35/AX5gA39/fgF+YAR/f35/AX5gA39+fwF+YAN/f34Bf2AEf39+fwF/YAR/f39/AX5gBH9/f38AYAZ/f39/f38Bf2AFf39+f38Bf2ACfn8Bf2ADf39/AX5gAn9+AGAEf35+fwBgA398fwBgBX9+f39/AX9gBn98f39/fwF/YAJ/fwF+YAAAYAV/f39/fwBgBX9/f35/AGADf35/AGACf3wAYAN/fHwAYAR/f35+AX9gBH9+fn8Bf2AIf35+f39/fn8Bf2ABfgF/YAN+f38Bf2AFf39/f38BfmAEf39/fgF+YAJ/fgF+YAV+fn9+fwF+YAJ+fgF8YAJ8fwF8ApsBFwFhAWEAAwFhAWIAAAFhAWMAAgFhAWQABQFhAWUAAQFhAWYAAAFhAWcAAAFhAWgAAgFhAWkAAgFhAWoAAgFhAWsAAAFhAWwABgFhAW0AAAFhAW4ABQFhAW8AAQFhAXAAAgFhAXEAAQFhAXIAAQFhAXMAAAFhAXQAAQFhAXUAAAFhBm1lbW9yeQIBgAKAgAIBYQV0YWJsZQFwAB8D/gL8AgcDAwQAAQEDAwAKBAQPBwMDAyALFAoAAAoZDgwMAAcDDBEeAwIDAgMBAAMHCBcOBAgABQAADAAECAgCBQUAAQATAxQjAQECAwMBBgYSAwMFGAEIAwEAAAIDGAcGARUBAAcEAiESCAAWAicQAgsXAQIABgICAgAGBAADLQUAAQQAAQsLAgIBDAwAAggcHBMHAC8CAQoWAQEDBgIBAAICAAcHBwMDAwMsEgsICAQLASoHAQ4KCQIJDgMJAAoCAAUAAQEBAAYABQUGBgYBAgUFBQYVFQUBBAADAwkABQgCCBYSAgoBAgEAAgAADyYAAQEQAgIJAAkDAQACBAAAHg4LAQAAAAgAABMAGBkKCAwCAgQAAgEHBB0XKQcBAAkJCS4aGgIREQoBAgAAAA0rDQUFAAEBAxEAAAADAQABAwAAAgAABAQCAgICCQIDAwAAAgACBwQUAAADAwMBBAECDQYPDgsPAAokAwIDAygiEwMDAAQDAgINJRAEAgICCQkfBgkBfwFBwKLBAgsHnQI2AXYAkAMBdwCPAwF4ANsCAXkAlgIBegDXAQFBANMBAUIAzgEBQwDNAQFEAMoBAUUAuwIBRgDoAQFHAD8BSADVAgFJAJkCAUoAmAIBSwCkAgFMAJsCAU0A5wEBTgDmAQFPAOUBAVAA5AEBUQCTAgFSAOMBAVMA4gEBVADhAQFVAOABAVYA3wEBVwD5AQFYAJIBAVkA3gEBWgDdAQFfANwBASQAMgJhYQDiAgJiYQAcAmNhAOwBAmRhAEkCZWEA2wECZmEA2gECZ2EAbAJoYQDZAQJpYQDvAQJqYQDYAQJrYQDuAQJsYQDIAQJtYQCxAgJuYQCwAgJvYQCvAgJwYQDtAQJxYQDrAQJyYQDqAQJzYQAZAnRhABYCdWEA6QEJQQEAQQELHocD9QLwAvEC7gLtArIB2ALXAswCywLKAskCyALHAsYCxQLEAsACvgKpAqgCpgKiAluDAoICgQKAAv4BCqqaCfwCQAEBfyMAQRBrIgMgADYCDCADIAE2AgggAyACNgIEIAMoAgwEQCADKAIMIAMoAgg2AgAgAygCDCADKAIENgIECwuqDQEHfwJAIABFDQAgAEF4aiIDIABBfGooAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAyADKAIAIgJrIgNByJwBKAIAIgRJDQEgACACaiEAIANBzJwBKAIARwRAIAJB/wFNBEAgAygCCCIEIAJBA3YiAkEDdEHgnAFqRxogBCADKAIMIgFGBEBBuJwBQbicASgCAEF+IAJ3cTYCAAwDCyAEIAE2AgwgASAENgIIDAILIAMoAhghBgJAIAMgAygCDCIBRwRAIAQgAygCCCICTQRAIAIoAgwaCyACIAE2AgwgASACNgIIDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQECQCADIAMoAhwiAkECdEHongFqIgQoAgBGBEAgBCABNgIAIAENAUG8nAFBvJwBKAIAQX4gAndxNgIADAMLIAZBEEEUIAYoAhAgA0YbaiABNgIAIAFFDQILIAEgBjYCGCADKAIQIgIEQCABIAI2AhAgAiABNgIYCyADKAIUIgJFDQEgASACNgIUIAIgATYCGAwBCyAFKAIEIgFBA3FBA0cNAEHAnAEgADYCACAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAUgA00NACAFKAIEIgFBAXFFDQACQCABQQJxRQRAIAVB0JwBKAIARgRAQdCcASADNgIAQcScAUHEnAEoAgAgAGoiADYCACADIABBAXI2AgQgA0HMnAEoAgBHDQNBwJwBQQA2AgBBzJwBQQA2AgAPCyAFQcycASgCAEYEQEHMnAEgAzYCAEHAnAFBwJwBKAIAIABqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAFBeHEgAGohAAJAIAFB/wFNBEAgBSgCDCECIAUoAggiBCABQQN2IgFBA3RB4JwBaiIHRwRAQcicASgCABoLIAIgBEYEQEG4nAFBuJwBKAIAQX4gAXdxNgIADAILIAIgB0cEQEHInAEoAgAaCyAEIAI2AgwgAiAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIBRwRAQcicASgCACAFKAIIIgJNBEAgAigCDBoLIAIgATYCDCABIAI2AggMAQsCQCAFQRRqIgIoAgAiBA0AIAVBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCICQQJ0QeieAWoiBCgCAEYEQCAEIAE2AgAgAQ0BQbycAUG8nAEoAgBBfiACd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANBzJwBKAIARw0BQcCcASAANgIADwsgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgALIABB/wFNBEAgAEEDdiIBQQN0QeCcAWohAAJ/QbicASgCACICQQEgAXQiAXFFBEBBuJwBIAEgAnI2AgAgAAwBCyAAKAIICyECIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCA8LIANCADcCECADAn9BACAAQQh2IgFFDQAaQR8gAEH///8HSw0AGiABIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIEIARBgIAPakEQdkECcSIEdEEPdiABIAJyIARyayIBQQF0IAAgAUEVanZBAXFyQRxqCyICNgIcIAJBAnRB6J4BaiEBAkACQAJAQbycASgCACIEQQEgAnQiB3FFBEBBvJwBIAQgB3I2AgAgASADNgIAIAMgATYCGAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiABKAIAIQEDQCABIgQoAgRBeHEgAEYNAiACQR12IQEgAkEBdCECIAQgAUEEcWoiB0EQaigCACIBDQALIAcgAzYCECADIAQ2AhgLIAMgAzYCDCADIAM2AggMAQsgBCgCCCIAIAM2AgwgBCADNgIIIANBADYCGCADIAQ2AgwgAyAANgIIC0HYnAFB2JwBKAIAQX9qIgA2AgAgAA0AQYCgASEDA0AgAygCACIAQQhqIQMgAA0AC0HYnAFBfzYCAAsLQgEBfyMAQRBrIgEkACABIAA2AgwgASgCDARAIAEoAgwtAAFBAXEEQCABKAIMKAIEEBYLIAEoAgwQFgsgAUEQaiQAC0MBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMAn8jAEEQayIAIAIoAgg2AgwgACgCDEEMagsQRCACQRBqJAALzS4BC38jAEEQayILJAACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBuJwBKAIAIgZBECAAQQtqQXhxIABBC0kbIgVBA3YiAHYiAUEDcQRAIAFBf3NBAXEgAGoiAkEDdCIEQeicAWooAgAiAUEIaiEAAkAgASgCCCIDIARB4JwBaiIERgRAQbicASAGQX4gAndxNgIADAELQcicASgCABogAyAENgIMIAQgAzYCCAsgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDAsgBUHAnAEoAgAiCE0NASABBEACQEECIAB0IgJBACACa3IgASAAdHEiAEEAIABrcUF/aiIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqIgJBA3QiA0HonAFqKAIAIgEoAggiACADQeCcAWoiA0YEQEG4nAEgBkF+IAJ3cSIGNgIADAELQcicASgCABogACADNgIMIAMgADYCCAsgAUEIaiEAIAEgBUEDcjYCBCABIAVqIgcgAkEDdCICIAVrIgNBAXI2AgQgASACaiADNgIAIAgEQCAIQQN2IgRBA3RB4JwBaiEBQcycASgCACECAn8gBkEBIAR0IgRxRQRAQbicASAEIAZyNgIAIAEMAQsgASgCCAshBCABIAI2AgggBCACNgIMIAIgATYCDCACIAQ2AggLQcycASAHNgIAQcCcASADNgIADAwLQbycASgCACIKRQ0BIApBACAKa3FBf2oiACAAQQx2QRBxIgB2IgFBBXZBCHEiAiAAciABIAJ2IgBBAnZBBHEiAXIgACABdiIAQQF2QQJxIgFyIAAgAXYiAEEBdkEBcSIBciAAIAF2akECdEHongFqKAIAIgEoAgRBeHEgBWshAyABIQIDQAJAIAIoAhAiAEUEQCACKAIUIgBFDQELIAAoAgRBeHEgBWsiAiADIAIgA0kiAhshAyAAIAEgAhshASAAIQIMAQsLIAEoAhghCSABIAEoAgwiBEcEQEHInAEoAgAgASgCCCIATQRAIAAoAgwaCyAAIAQ2AgwgBCAANgIIDAsLIAFBFGoiAigCACIARQRAIAEoAhAiAEUNAyABQRBqIQILA0AgAiEHIAAiBEEUaiICKAIAIgANACAEQRBqIQIgBCgCECIADQALIAdBADYCAAwKC0F/IQUgAEG/f0sNACAAQQtqIgBBeHEhBUG8nAEoAgAiB0UNAEEAIAVrIQICQAJAAkACf0EAIABBCHYiAEUNABpBHyAFQf///wdLDQAaIAAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgMgA0GAgA9qQRB2QQJxIgN0QQ92IAAgAXIgA3JrIgBBAXQgBSAAQRVqdkEBcXJBHGoLIghBAnRB6J4BaigCACIDRQRAQQAhAAwBCyAFQQBBGSAIQQF2ayAIQR9GG3QhAUEAIQADQAJAIAMoAgRBeHEgBWsiBiACTw0AIAMhBCAGIgINAEEAIQIgAyEADAMLIAAgAygCFCIGIAYgAyABQR12QQRxaigCECIDRhsgACAGGyEAIAEgA0EAR3QhASADDQALCyAAIARyRQRAQQIgCHQiAEEAIABrciAHcSIARQ0DIABBACAAa3FBf2oiACAAQQx2QRBxIgB2IgFBBXZBCHEiAyAAciABIAN2IgBBAnZBBHEiAXIgACABdiIAQQF2QQJxIgFyIAAgAXYiAEEBdkEBcSIBciAAIAF2akECdEHongFqKAIAIQALIABFDQELA0AgACgCBEF4cSAFayIDIAJJIQEgAyACIAEbIQIgACAEIAEbIQQgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBEUNACACQcCcASgCACAFa08NACAEKAIYIQggBCAEKAIMIgFHBEBByJwBKAIAIAQoAggiAE0EQCAAKAIMGgsgACABNgIMIAEgADYCCAwJCyAEQRRqIgMoAgAiAEUEQCAEKAIQIgBFDQMgBEEQaiEDCwNAIAMhBiAAIgFBFGoiAygCACIADQAgAUEQaiEDIAEoAhAiAA0ACyAGQQA2AgAMCAtBwJwBKAIAIgEgBU8EQEHMnAEoAgAhAAJAIAEgBWsiAkEQTwRAQcCcASACNgIAQcycASAAIAVqIgM2AgAgAyACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQMAQtBzJwBQQA2AgBBwJwBQQA2AgAgACABQQNyNgIEIAAgAWoiASABKAIEQQFyNgIECyAAQQhqIQAMCgtBxJwBKAIAIgEgBUsEQEHEnAEgASAFayIBNgIAQdCcAUHQnAEoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAoLQQAhACAFQS9qIgQCf0GQoAEoAgAEQEGYoAEoAgAMAQtBnKABQn83AgBBlKABQoCggICAgAQ3AgBBkKABIAtBDGpBcHFB2KrVqgVzNgIAQaSgAUEANgIAQfSfAUEANgIAQYAgCyICaiIGQQAgAmsiB3EiAiAFTQ0JQfCfASgCACIDBEBB6J8BKAIAIgggAmoiCSAITQ0KIAkgA0sNCgtB9J8BLQAAQQRxDQQCQAJAQdCcASgCACIDBEBB+J8BIQADQCAAKAIAIgggA00EQCAIIAAoAgRqIANLDQMLIAAoAggiAA0ACwtBABA+IgFBf0YNBSACIQZBlKABKAIAIgBBf2oiAyABcQRAIAIgAWsgASADakEAIABrcWohBgsgBiAFTQ0FIAZB/v///wdLDQVB8J8BKAIAIgAEQEHonwEoAgAiAyAGaiIHIANNDQYgByAASw0GCyAGED4iACABRw0BDAcLIAYgAWsgB3EiBkH+////B0sNBCAGED4iASAAKAIAIAAoAgRqRg0DIAEhAAsCQCAFQTBqIAZNDQAgAEF/Rg0AQZigASgCACIBIAQgBmtqQQAgAWtxIgFB/v///wdLBEAgACEBDAcLIAEQPkF/RwRAIAEgBmohBiAAIQEMBwtBACAGaxA+GgwECyAAIgFBf0cNBQwDC0EAIQQMBwtBACEBDAULIAFBf0cNAgtB9J8BQfSfASgCAEEEcjYCAAsgAkH+////B0sNASACED4iAUEAED4iAE8NASABQX9GDQEgAEF/Rg0BIAAgAWsiBiAFQShqTQ0BC0HonwFB6J8BKAIAIAZqIgA2AgAgAEHsnwEoAgBLBEBB7J8BIAA2AgALAkACQAJAQdCcASgCACIDBEBB+J8BIQADQCABIAAoAgAiAiAAKAIEIgRqRg0CIAAoAggiAA0ACwwCC0HInAEoAgAiAEEAIAEgAE8bRQRAQcicASABNgIAC0EAIQBB/J8BIAY2AgBB+J8BIAE2AgBB2JwBQX82AgBB3JwBQZCgASgCADYCAEGEoAFBADYCAANAIABBA3QiAkHonAFqIAJB4JwBaiIDNgIAIAJB7JwBaiADNgIAIABBAWoiAEEgRw0AC0HEnAEgBkFYaiIAQXggAWtBB3FBACABQQhqQQdxGyICayIDNgIAQdCcASABIAJqIgI2AgAgAiADQQFyNgIEIAAgAWpBKDYCBEHUnAFBoKABKAIANgIADAILIAAtAAxBCHENACABIANNDQAgAiADSw0AIAAgBCAGajYCBEHQnAEgA0F4IANrQQdxQQAgA0EIakEHcRsiAGoiATYCAEHEnAFBxJwBKAIAIAZqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQdScAUGgoAEoAgA2AgAMAQsgAUHInAEoAgAiBEkEQEHInAEgATYCACABIQQLIAEgBmohAkH4nwEhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB+J8BIQADQCAAKAIAIgIgA00EQCACIAAoAgRqIgQgA0sNAwsgACgCCCEADAAACwALIAAgATYCACAAIAAoAgQgBmo2AgQgAUF4IAFrQQdxQQAgAUEIakEHcRtqIgkgBUEDcjYCBCACQXggAmtBB3FBACACQQhqQQdxG2oiASAJayAFayEAIAUgCWohByABIANGBEBB0JwBIAc2AgBBxJwBQcScASgCACAAaiIANgIAIAcgAEEBcjYCBAwDCyABQcycASgCAEYEQEHMnAEgBzYCAEHAnAFBwJwBKAIAIABqIgA2AgAgByAAQQFyNgIEIAAgB2ogADYCAAwDCyABKAIEIgJBA3FBAUYEQCACQXhxIQoCQCACQf8BTQRAIAEoAggiAyACQQN2IgRBA3RB4JwBakcaIAMgASgCDCICRgRAQbicAUG4nAEoAgBBfiAEd3E2AgAMAgsgAyACNgIMIAIgAzYCCAwBCyABKAIYIQgCQCABIAEoAgwiBkcEQCAEIAEoAggiAk0EQCACKAIMGgsgAiAGNgIMIAYgAjYCCAwBCwJAIAFBFGoiAygCACIFDQAgAUEQaiIDKAIAIgUNAEEAIQYMAQsDQCADIQIgBSIGQRRqIgMoAgAiBQ0AIAZBEGohAyAGKAIQIgUNAAsgAkEANgIACyAIRQ0AAkAgASABKAIcIgJBAnRB6J4BaiIDKAIARgRAIAMgBjYCACAGDQFBvJwBQbycASgCAEF+IAJ3cTYCAAwCCyAIQRBBFCAIKAIQIAFGG2ogBjYCACAGRQ0BCyAGIAg2AhggASgCECICBEAgBiACNgIQIAIgBjYCGAsgASgCFCICRQ0AIAYgAjYCFCACIAY2AhgLIAEgCmohASAAIApqIQALIAEgASgCBEF+cTYCBCAHIABBAXI2AgQgACAHaiAANgIAIABB/wFNBEAgAEEDdiIBQQN0QeCcAWohAAJ/QbicASgCACICQQEgAXQiAXFFBEBBuJwBIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgBzYCCCABIAc2AgwgByAANgIMIAcgATYCCAwDCyAHAn9BACAAQQh2IgFFDQAaQR8gAEH///8HSw0AGiABIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIDIANBgIAPakEQdkECcSIDdEEPdiABIAJyIANyayIBQQF0IAAgAUEVanZBAXFyQRxqCyIBNgIcIAdCADcCECABQQJ0QeieAWohAgJAQbycASgCACIDQQEgAXQiBHFFBEBBvJwBIAMgBHI2AgAgAiAHNgIADAELIABBAEEZIAFBAXZrIAFBH0YbdCEDIAIoAgAhAQNAIAEiAigCBEF4cSAARg0DIANBHXYhASADQQF0IQMgAiABQQRxaiIEKAIQIgENAAsgBCAHNgIQCyAHIAI2AhggByAHNgIMIAcgBzYCCAwCC0HEnAEgBkFYaiIAQXggAWtBB3FBACABQQhqQQdxGyICayIHNgIAQdCcASABIAJqIgI2AgAgAiAHQQFyNgIEIAAgAWpBKDYCBEHUnAFBoKABKAIANgIAIAMgBEEnIARrQQdxQQAgBEFZakEHcRtqQVFqIgAgACADQRBqSRsiAkEbNgIEIAJBgKABKQIANwIQIAJB+J8BKQIANwIIQYCgASACQQhqNgIAQfyfASAGNgIAQfifASABNgIAQYSgAUEANgIAIAJBGGohAANAIABBBzYCBCAAQQhqIQEgAEEEaiEAIAQgAUsNAAsgAiADRg0DIAIgAigCBEF+cTYCBCADIAIgA2siBEEBcjYCBCACIAQ2AgAgBEH/AU0EQCAEQQN2IgFBA3RB4JwBaiEAAn9BuJwBKAIAIgJBASABdCIBcUUEQEG4nAEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAQLIANCADcCECADAn9BACAEQQh2IgBFDQAaQR8gBEH///8HSw0AGiAAIABBgP4/akEQdkEIcSIAdCIBIAFBgOAfakEQdkEEcSIBdCICIAJBgIAPakEQdkECcSICdEEPdiAAIAFyIAJyayIAQQF0IAQgAEEVanZBAXFyQRxqCyIANgIcIABBAnRB6J4BaiEBAkBBvJwBKAIAIgJBASAAdCIGcUUEQEG8nAEgAiAGcjYCACABIAM2AgAgAyABNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAEoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIGKAIQIgENAAsgBiADNgIQIAMgAjYCGAsgAyADNgIMIAMgAzYCCAwDCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLIAlBCGohAAwFCyACKAIIIgAgAzYCDCACIAM2AgggA0EANgIYIAMgAjYCDCADIAA2AggLQcScASgCACIAIAVNDQBBxJwBIAAgBWsiATYCAEHQnAFB0JwBKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAAwDC0G0nAFBMDYCAEEAIQAMAgsCQCAIRQ0AAkAgBCgCHCIAQQJ0QeieAWoiAygCACAERgRAIAMgATYCACABDQFBvJwBIAdBfiAAd3EiBzYCAAwCCyAIQRBBFCAIKAIQIARGG2ogATYCACABRQ0BCyABIAg2AhggBCgCECIABEAgASAANgIQIAAgATYCGAsgBCgCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgAkEPTQRAIAQgAiAFaiIAQQNyNgIEIAAgBGoiACAAKAIEQQFyNgIEDAELIAQgBUEDcjYCBCAEIAVqIgMgAkEBcjYCBCACIANqIAI2AgAgAkH/AU0EQCACQQN2IgFBA3RB4JwBaiEAAn9BuJwBKAIAIgJBASABdCIBcUUEQEG4nAEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAELIAMCf0EAIAJBCHYiAEUNABpBHyACQf///wdLDQAaIAAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgUgBUGAgA9qQRB2QQJxIgV0QQ92IAAgAXIgBXJrIgBBAXQgAiAAQRVqdkEBcXJBHGoLIgA2AhwgA0IANwIQIABBAnRB6J4BaiEBAkACQCAHQQEgAHQiBXFFBEBBvJwBIAUgB3I2AgAgASADNgIADAELIAJBAEEZIABBAXZrIABBH0YbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSACRg0CIABBHXYhBSAAQQF0IQAgASAFQQRxaiIGKAIQIgUNAAsgBiADNgIQCyADIAE2AhggAyADNgIMIAMgAzYCCAwBCyABKAIIIgAgAzYCDCABIAM2AgggA0EANgIYIAMgATYCDCADIAA2AggLIARBCGohAAwBCwJAIAlFDQACQCABKAIcIgBBAnRB6J4BaiICKAIAIAFGBEAgAiAENgIAIAQNAUG8nAEgCkF+IAB3cTYCAAwCCyAJQRBBFCAJKAIQIAFGG2ogBDYCACAERQ0BCyAEIAk2AhggASgCECIABEAgBCAANgIQIAAgBDYCGAsgASgCFCIARQ0AIAQgADYCFCAAIAQ2AhgLAkAgA0EPTQRAIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEDAELIAEgBUEDcjYCBCABIAVqIgQgA0EBcjYCBCADIARqIAM2AgAgCARAIAhBA3YiBUEDdEHgnAFqIQBBzJwBKAIAIQICf0EBIAV0IgUgBnFFBEBBuJwBIAUgBnI2AgAgAAwBCyAAKAIICyEFIAAgAjYCCCAFIAI2AgwgAiAANgIMIAIgBTYCCAtBzJwBIAQ2AgBBwJwBIAM2AgALIAFBCGohAAsgC0EQaiQAIAALggQBA38gAkGABE8EQCAAIAEgAhATGiAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIAJBAUgEQCAAIQIMAQsgAEEDcUUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA08NASACQQNxDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIANBfGoiBCAASQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALPwEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBBDWASEAIANBEGokACAAC90BAQF/IwBBEGsiASQAIAEgADYCDAJAIAEoAgxFDQAgASgCDCgCMEEASwRAIAEoAgwiACAAKAIwQX9qNgIwCyABKAIMKAIwQQBLDQAgASgCDCgCIEEASwRAIAEoAgxBATYCICABKAIMEDIaCyABKAIMKAIkQQFGBEAgASgCDBBtCwJAIAEoAgwoAixFDQAgASgCDC0AKEEBcQ0AIAEoAgwoAiwgASgCDBCDAwsgASgCDEEAQgBBBRAiGiABKAIMKAIABEAgASgCDCgCABAcCyABKAIMEBYLIAFBEGokAAuBAgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMKAIcNgIEIAEoAgQQ6gIgASABKAIEKAIUNgIIIAEoAgggASgCDCgCEEsEQCABIAEoAgwoAhA2AggLAkAgASgCCEUNACABKAIMKAIMIAEoAgQoAhAgASgCCBAaGiABKAIMIgAgASgCCCAAKAIMajYCDCABKAIEIgAgASgCCCAAKAIQajYCECABKAIMIgAgASgCCCAAKAIUajYCFCABKAIMIgAgACgCECABKAIIazYCECABKAIEIgAgACgCFCABKAIIazYCFCABKAIEKAIUDQAgASgCBCABKAIEKAIINgIQCyABQRBqJAALYAEBfyMAQRBrIgEkACABIAA2AgggASABKAIIQgIQHzYCBAJAIAEoAgRFBEAgAUEAOwEODAELIAEgASgCBC0AACABKAIELQABQQh0ajsBDgsgAS8BDiEAIAFBEGokACAAC1oBAX8jAEEgayICJAAgAiAANgIcIAIgATcDECACIAIoAhwgAikDEBDPATYCDCACKAIMBEAgAigCHCIAIAIpAxAgACkDEHw3AxALIAIoAgwhACACQSBqJAAgAAtvAQF/IwBBEGsiAiQAIAIgADYCCCACIAE7AQYgAiACKAIIQgIQHzYCAAJAIAIoAgBFBEAgAkF/NgIMDAELIAIoAgAgAi8BBjoAACACKAIAIAIvAQZBCHU6AAEgAkEANgIMCyACKAIMGiACQRBqJAALjwEBAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAghCBBAfNgIAAkAgAigCAEUEQCACQX82AgwMAQsgAigCACACKAIEOgAAIAIoAgAgAigCBEEIdjoAASACKAIAIAIoAgRBEHY6AAIgAigCACACKAIEQRh2OgADIAJBADYCDAsgAigCDBogAkEQaiQAC7YCAQF/IwBBMGsiBCQAIAQgADYCJCAEIAE2AiAgBCACNwMYIAQgAzYCFAJAIAQoAiQpAxhCASAEKAIUrYaDUARAIAQoAiRBDGpBHEEAEBUgBEJ/NwMoDAELAkAgBCgCJCgCAEUEQCAEIAQoAiQoAgggBCgCICAEKQMYIAQoAhQgBCgCJCgCBBEPADcDCAwBCyAEIAQoAiQoAgAg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BCgCLEGUAWogBCgCLEGIE2oQtgELCyAEKAIsELkBIAQoAiAEQCAEKAIsELgBCyAEQTBqJAAL1AEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhFOgAPAkAgAigCGEUEQCACIAIpAxCnEBkiADYCGCAARQRAIAJBADYCHAwCCwsgAkEYEBkiADYCCCAARQRAIAItAA9BAXEEQCACKAIYEBYLIAJBADYCHAwBCyACKAIIQQE6AAAgAigCCCACKAIYNgIEIAIoAgggAikDEDcDCCACKAIIQgA3AxAgAigCCCACLQAPQQFxOgABIAIgAigCCDYCHAsgAigCHCEAIAJBIGokACAAC3gBAX8jAEEQayIBJAAgASAANgIIIAEgASgCCEIEEB82AgQCQCABKAIERQRAIAFBADYCDAwBCyABIAEoAgQtAAAgASgCBC0AASABKAIELQACIAEoAgQtAANBCHRqQQh0akEIdGo2AgwLIAEoAgwhACABQRBqJAAgAAuQAQEDfyAAIQECQAJAIABBA3FFDQAgAC0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQf/9+3dqcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAfNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMg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KAIUIANBngFqIANBnAFqEMQBIAMoAkwgAy8BngEQICADKAJMIAMvAZwBECACQAJAIAMtAIUBQQFxRQ0AIAMoAqQBKQMoQhRaDQAgAygCTEEAECEMAQsgAygCTCADKAKkASgCGBAhCwJAAkAgAygCoAFBgAJxQYACRw0AIAMoAqQBKQMgQv////8PVARAIAMoAqQBKQMoQv////8PVA0BCyADKAJMQX8QISADKAJMQX8QIQwBCwJAIAMoAqQBKQMgQv////8PVARAIAMoAkwgAygCpAEpAyCnECEMAQsgAygCTEF/ECELAkAgAygCpAEpAyhC/////w9UBEAgAygCTCADKAKkASkDKKcQIQwBCyADKAJMQX8QIQsLIAMoAkwgAygCpAEoAjAQUkH//wNxECAgAyADKAKkASgCNCADKAKgARCEAUH//wNxIAMoApABQYAGEIQBQf//A3FqNgKIASADKAJMIAMoAogBQf//A3EQICADKAKgAUGAAnFFBEAgAygCTCADKAKkASgCOBBSQf//A3EQICADKAJMIAMoAqQBKAI8Qf//A3EQICADKAJMIAMoAqQBLwFAECAgAygCTCADKAKkASgCRBAhAkAgAygCpAEpA0hC/////w9UBEAgAygCTCADKAKkASkDSKcQIQwBCyADKAJMQX8QIQsLAn8jAEEQayIAIAMoAkw2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCTBAXIAMoApABECQgA0F/NgKsAQwBCyADKAKoASADQdAAagJ+IwBBEGsiACADKAJMNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAkwQFyADKAKkASgCMARAIAMoAqgBIAMoAqQBKAIwEIgBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQAQRAIAMoAqgBIAMoApABQYAGEIMBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQARAkIAMoAqQBKAI0BEAgAygCqAEgAygCpAEoAjQgAygCoAEQgwFBAEgEQCADQX82AqwBDAILCyADKAKgAUGAAnFFBEAgAygCpAEoAjgEQCADKAKoASADKAKkASgCOBCIAUEASARAIANBfzYC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AygCgAEoAgAgAykDcKdBBHRqKAIAKAI0IAMoAjQQhwEhACADKAKAASgCACADKQNwp0EEdGooAgAgADYCNCADKAKAASgCACADKQNwp0EEdGooAgBBAToABCADQQA2AjQgAxBcIAMgAykDcEIBfDcDcAwCCwALCyADAn4gAykDYCADKQNofUL///////////8AVARAIAMpA2AgAykDaH0MAQtC////////////AAs3A4gBCyADKQOIASEEIANBkAFqJAAgBAumAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhAQ+gEiADYCDAJAIABFBEAgA0EANgIcDAELIAMoAgwgAygCGDYCACADKAIMIAMoAhQ2AgQgAygCFEEQcQRAIAMoAgwiACAAKAIUQQJyNgIUIAMoAgwiACAAKAIYQQJyNgIYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAvVAQEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQAJAIAQpAxBC////////////AFcEQCAEKQMQQoCAgICAgICAgH9ZDQELIAQoAghBBEE9EBUgBEF/NgIcDAELAn8gBCkDECEBIAQoAgwhACAEKAIYIgIoAkxBf0wEQCACIAEgABCXAQwBCyACIAEgABCXAQtBAEgEQCAEKAIIQQRBtJwBKAIAEBUgBEF/NgIcDAELIARBADYCHAsgBCgCHCEAIARBIGokACAACycAAn9BAEEAIAAQBSIAIABBG0YbIgBFDQAaQbScASAANgIAQQALGgteAQF/IwBBEGsiAyQAIAMgAUHAgIACcQR/IAMgAkEEajYCDCACKAIABUEACzYCACAAIAFBgIACciADEBEiAEGBYE8EQEG0nAFBACAAazYCAEF/IQALIANBEGokACAACzMBAX8CfyAAEAYiAUFhRgRAIAAQEiEBCyABQYFgTwsEf0G0nAFBACABazYCAEF/BSABCwtpAQJ/AkAgACgCFCAAKAIcTQ0AIABBAEEAIAAoAiQRAQAaIAAoAhQNAEF/DwsgACgCBCIBIAAoAggiAkkEQCAAIAEgAmusQQEgACgCKBEQABoLIABBADYCHCAAQgA3AxAgAEIANwIEQQALpgEBAX8jAEEQayICJAAgAiAANgIIIAIgATYC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AX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC7QCAQF/IwBBMGsiAyQAIAMgADYCKCADIAE3AyAgAyACNgIcAkAgAykDIFAEQCADQQE6AC8MAQsgAyADKAIoKQMQIAMpAyB8NwMIAkAgAykDCCADKQMgWgRAIAMpAwhC/////wBYDQELIAMoAhxBDkEAEBUgA0EAOgAvDAELIAMgAygCKCgCACADKQMIp0EEdBBPIgA2AgQgAEUEQCADKAIcQQ5BABAVIANBADoALwwBCyADKAIoIAMoAgQ2AgAgAyADKAIoKQMINwMQA0AgAykDECADKQMIWkUEQCADKAIoKAIAIAMpAxCnQQR0ahCOASADIAMpAxBCAXw3AxAMAQsLIAMoAiggAykDCCIBNwMQIAMoAiggATcDCCADQQE6AC8LIAMtAC9BAXEhACADQTBqJAAgAAvMAQEBfyMAQSBrIgIkACACIAA3AxAgAiABNgIMIAJBMBAZIgE2AggCQCABRQRAIAIoAgxBDkEAEBUgAkEANgIcDAELIAIoAghBADYCACACKAIIQgA3AxAgAigCCEIANwMIIAIoAghCADcDICACKAIIQgA3AxggAigCCEEANgIoIAIoAghBADoALCACKAIIIAIpAxAgAigCDBCBAUEBcUUEQCACKAIIECUgAkEANgIcDAELIAIgAigCCDYCHAsgAigCHCEBIAJBIGokACABC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMo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AgggASgCBEEANgIgIAEoAgRBADYCJCABKAIEQQA6ACggASgCBEEANgIsIAEoAgRBATYCMCMAQRBrIgAgASgCBEEMajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ADQgASgCBEEAOgA1IAEgASgCBDYCDAsgASgCDCEAIAFBEGokACAAC4IFAQF/IwBB4ABrIgMkACADIAA2AlggAyABNgJUIAMgAjYCUAJAAkAgAygCVEEATgRAIAMoAlgNAQsgAygCUEESQQAQFSADQQA2AlwMAQsgAyADKAJUNgJMIwBBEGsiACADKAJYNgIMIAMgACgCDCkDGDcDQEHgmwEpAwBCf1EEQCADQX82AhQgA0EDNgIQIANBBzYCDCADQQY2AgggA0ECNgIEIANBATYCAEHgmwFBACADEDc3AwAgA0F/NgI0IANBDzYCMCADQQ02AiwgA0EMNgIoIANBCjYCJCADQQk2AiBB6JsBQQggA0EgahA3NwMAC0HgmwEpAwAgAykDQEHgmwEpAwCDUgRAIAMoAlBBHEEAEBUgA0EANgJcDAELQeibASkDACADKQNAQeibASkDAINSBEAgAyADKAJMQRByNgJMCyADKAJMQRhxQRhGBEAgAygCUEEZQQAQFSADQQA2AlwMAQsgAyADKAJYIAMoAlAQ+AE2AjwCQAJAAkAgAygCPEEBag4CAAECCyADQQA2AlwMAgsgAygCTEEBcUUEQCADKAJQQQlBABAVIANBADYCXAwCCyADIAMoAlggAygCTCADKAJQEGY2AlwMAQsgAygCTEECcQRAIAMoAlBBCkEAEBUgA0EANgJcDAELIAMoAlgQSUEASARAIAMoAlAgAygCWBAYIANBADYCXAwBCwJAIAMoAkxBCHEEQCADIAMoAlggAygCTCADKAJQEGY2AjgMAQsgAyADKAJYIAMoAkwgAygCUBD3ATYCOAsgAygCOEUEQCADKAJYEDIaIANBADYCXAwBCyADIAMoAjg2AlwLIAMoAlwhACADQeAAaiQAIAALjgEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQA2AgQgAigCCARAIwBBEGsiACACKAIINgIMIAIgACgCDCgCADYCBCACKAIIELABQQFGBEAjAEEQayIAIAIoAgg2AgxBtJwBIAAoAgwoAgQ2AgALCyACKAIMBEAgAigCDCACKAIENgIACyACQRBqJAALlQEBAX8jAEEQayIBJAAgASAANgIIAkACfyMAQRBrIgAgASgCCDYCDCAAKAIMKQMYQoCAEINQCwRAIAEoAggoAgAEQCABIAEoAggoAgAQlAFBAXE6AA8MAgsgAUEBOgAPDAELIAEgASgCCEEAQgBBEhAiPgIEIAEgASgCBEEARzoADwsgAS0AD0EBcSEAIAFBEGokACAAC7ABAgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIQEJEBIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIMIAMoAhg2AgQgAygCDCADKAIUNgIIIAMoAhRBAEIAQQ4gAygCGBEPACEEIAMoAgwgBDcDGCADKAIMKQMYQgBTBEAgAygCDEI/NwMYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAt/AQF/IwBBIGsiAyQAIAMgADYCGCADIAE3AxAgA0EANgIMIAMgAjYCCAJAIAMpAxBC////////////AFYEQCADKAIIQQRBPRAVIANBfzYCHAwBCyADIAMoAhggAykDECADKAIMIAMoAggQZzYCHAsgAygCHCEAIANBIGokACAAC30AIAJBAUYEQCABIAAoAgggACgCBGusfSEBCwJAIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQEAGiAAKAIURQ0BCyAAQQA2AhwgAEIANwMQIAAgASACIAAoAigREABCAFMNACAAQgA3AgQgACAAKAIAQW9xNgIAQQAPC0F/C+ICAQJ/IwBBIGsiAyQAAn8CQAJAQfSXASABLAAAEJkBRQRAQbScAUEcNgIADAELQZgJEBkiAg0BC0EADAELIAJBAEGQARAzIAFBKxCZAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02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GCACKAIoKAIAKAIEaksEQCACIAIoAhggAigCKCgCACgCBGo2AhwLIAIoAhwgAigCFEsEQCACIAIoAhQ2AhwLAkAgAigCHCACKAIgTw0AAkAgAigCHEUEQCACKAIkQQRHDQELIAIoAiRFDQAgAigCHCACKAIYIAIoAigoAgAoAgRqRg0BCwwBC0EAIQAgAkEBQQAgAigCJEEERgR/IAIoAhwgAigCGCACKAIoKAIAKAIEakYFQQALQQFxGzYCECACKAIoQQBBACACKAIQEFcgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHSACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGhogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQcxogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGhogAigCKCACKAIoKAIsNgJsDAELIAIoAigoAjwgAigCKCgCbGsgAigCDE0EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAaGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAg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akECdGovAQI2AhQgAyADKAIQQQFqIgA2AhACQAJAIAAgAygCDE4NACADKAIYIAMoAhRHDQAMAQsCQCADKAIQIAMoAghIBEAgAygCLEH8FGogAygCGEECdGoiACADKAIQIAAvAQBqOwEADAELAkAgAygCGARAIAMoAhggAygCHEcEQCADKAIsIAMoAhhBAnRqQfwUaiIAIAAvAQBBAWo7AQALIAMoAiwiACAAQbwVai8BAEEBajsBvBUMAQsCQCADKAIQQQpMBEAgAygCLCIAIABBwBVqLwEAQQFqOwHAFQwBCyADKAIsIgAgAEHEFWovAQBBAWo7AcQVCwsLIANBADYCECADIAMoAhg2AhwCQCADKAIURQRAIANBigE2AgwgA0EDNgIIDAELAkAgAygCGCADKAIURgRAIANBBjYCDCADQQM2AggMAQsgA0EHNgIMIANBBDYCCAsLCyADIAMoAiBBAWo2AiAMAQsLC6cSAQJ/IwBB0ABrIgMgADYCTCADIAE2AkggAyACNgJEIANBADYCOCADKAJMKAKgLQRAA0AgAyADKAJMKAKkLSADKAI4QQF0ai8BADYCQCADKAJMKAKYLSEAIAMgAygCOCIBQQFqNgI4IAMgACABai0AADYCPAJAIAMoAkBFBEAgAyADKAJIIAMoAjxBAnRqLwECNgIsAkAgAygCTCgCvC1BECADKAIsa0oEQCADIAMoAkggAygCPEECdGovAQA2AiggAygCTCIAIAAvAbgtIAMoAihB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCKEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAixBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI8QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCLCAAKAK8LWo2ArwtCwwBCyADIAMoAjwtAIBZNgI0IAMgAygCSCADKAI0QYECakECdGovAQI2AiQCQCADKAJMKAK8LUEQIAMoAiRr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AixBLRAgIAMoAixBABAhIAMoAixBABAhIAMoAiwgAykDqAEQLiADKAIsIAMpA6gBEC4gAygCLCADKQOYARAuIAMoAiwgAykDoAEQLiADKAIsQbvTAEEEEEAgAygCLEEAECEgAygCLCADKQOgASADKQOYAXwQLiADKAIsQQEQIQsgAygCLEHA0wBBBBBAIAMoAixBABAhIAMoAiwCfkL//wMgAykDqAFC//8DWg0AGiADKQOoAQunQf//A3EQICADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ/QX8gAykDmAFC/////w9aDQAaIAMpA5gBpwsQISADKAIsAn9BfyADKQOgAUL/////D1oNABogAykDoAGnCxAhIAMCfyADKAK0AS0AKEEBcQRAIAMoArQBKAIkDAELIAMoArQBKAIgCzYClAEgAygCLAJ/IAMoApQBBEAgAygClAEvAQQMAQtBAAtB//8DcRAgAn8jAEEQayIAIAMoAiw2AgwgACgCDC0AAEEBcUULBEAgAygCtAFBCGpBFEEAEBUgAygCLBAXIANCfzcDuAEMAQsgAygCtAECfyMAQRBrIgAgAygCLDYCDCAAKAIMKAIECwJ+IwBBEGsiACADKAIsNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAIsEBcgA0J/NwO4AQwBCyADKAIsEBcgAygClAEEQCADKAK0ASADKAKUASgCACADKAKUAS8BBK0QNkEASARAIANCfzcDuAEMAgsLIAMgAykDmAE3A7gBCyADKQO4ASECIANBwAFqJAAgAgu2BQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELIAIgAigCKCgCQCACKQMgp0EEdGo2AhwCQCACKAIcKAIABEAgAigCHCgCAC0ABEEBcUUNAQsgAkEANgIsDAELIAIoAhwoAgApA0hCGnxC////////////AFYEQCACKAIoQQhqQQRBFhAVIAJBfzYCLAwBCyACKAIoKAIAIAIoAhwoAgApA0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhgFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCFATYCDCACKAIcKAIAKAI0IAIoAgwQhwEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsGAEG0nAELjAEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACQQA2AhACQCACKAIURQRAIAJBADYCHAwBCyACIAIoAhQQGTYCDCACKAIMRQRAIAIoAhBBDkEAEBUgAkEANgIcDAELIAIoAgwgAigCGCACKAIUEBoaIAIgAigCDDYCHAsgAigCHCEAIAJBIGokACAACxgAQaicAUIANwIAQbCcAUEANgIAQaicAQuIAQEBfyMAQSBrIgMkACADIAA2AhQgAyABNgIQIAMgAjcDCAJAAkAgAygCFCgCJEEBRgRAIAMpAwhC////////////AFgNAQsgAygCFEEMakESQQAQFSADQn83AxgMAQsgAyADKAIUIAMoAhAgAykDCEELECI3AxgLIAMpAxghAiADQSBqJAAgAgtzAQF/IwBBIGsiASQAIAEgADYCGCABQgg3AxAgASABKAIYKQMQIAEpAxB8NwMIAkAgASkDCCABKAIYKQMQVARAIAEoAhhBADoAACABQX82AhwMAQsgASABKAIYIAEpAwgQLTYCHAsgASgCHBogAUEgaiQACwgAQQFBDBB9CwcAIAAoAigLlgEBAX8jAEEgayICIAA2Ahgg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QRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIIDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwh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AUEJSyEEIAMhASAEDQALDwsgA0EwOgAAIABBADoADws3AQF/IwBBIGsiASQAAn9BASAAIAFBCGoQCCIARQ0AGkG0nAEgADYCAEEACyEAIAFBIGokACAACyABAn8gABAsQQFqIgEQGSICRQRAQQAPCyACIAAgARAaC6UBAQF/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQEEAIQAgAikDCEIAVgR/IAIoAhQoAkAgAikDCEIBfadBBHRqKAIARQVBAAtBAXEEQCACIAIpAwhCf3w3AwgMAQsLIAIgAikDCDcDGAwBCyACIAIoAhQpAzA3AxgLIAIpAxgL8gEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQCADKAIURQRAIANCfzcDGAwBCyADKAIUKAIEBEAgA0J/NwMYDAELIAMpAwhC////////////AFYEQCADKAIUQQRqQRJBABAVIANCfzcDGAwBCwJAIAMoAhQtABBBAXFFBEAgAykDCFBFDQELIANCADcDGAwBCyADIAMoAhQoAhQgAygCECADKQMIEC8iAjcDACACQgBTBEAgAygCFEEEaiADKAIUKAIUEBggA0J/NwMYDAELIAMgAykDADcDGAsgAykDGCECIANBIGokACACC0cBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHCgCHBCfASEAIANBIGokACAAC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEG4iBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEJ8BNgIcCyADKAIcIQAgA0EgaiQAIAALqgEBAX8jAEEQayIBJAAgASAANgIIIAFBGBAZIgA2AgQCQCAARQRAIAEoAghBCGpBDkEAEBUgAUEANgIMDAELIAEoAgQgASgCCDYCACMAQRBrIgAgASgCBEEEajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ABAgASgCBEEANgIUIAEgASgCBDYCDAsgASgCDCEAIAFBEGok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QdAAaiADQaABahBwIARFDQAaIABBAEEAIAAoAiQRAQAaIABBADYCMCAAIAQ2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAFcjYCACACRQ0ACyADQdABaiQACy8AIAECfyACKAJMQX9MBEAgACABIAIQcQwBCyAAIAEgAhBxCyIARgRAIAEPCyAAC1kBAX8gACAALQBKIgFBf2ogAXI6AEogACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQfSgAQsGAEHwoAELBgBB6KABC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELQCIAIgACAEQYH4ACADaxCzAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBDGASICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtgI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQvAIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsg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BEAgASgCGEEGNgIkCyABIAEoAhgoAihBAUHQNyABKAIYKAIgEQEANgIEIAEoAgRFBEAgAUF8NgIcDAELIAEoAhggASgCBDYCHCABKAIEIAEoAhg2AgAgASgCBEEANgI4IAEoAgRBtP4ANgIEIAEgASgCGCABKAIUENICNgIIIAEoAggEQCABKAIYKAIoIAEoAgQgASgCGCgCJBEEACABKAIYQQA2AhwLIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC60CAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYEEsEQCACQX42AhwMAQsgAiACKAIYKAIcNgIMAkAgAigCFEEASARAIAJBADYCECACQQAgAigCFGs2AhQMAQsgAiACKAIUQQR1QQVqNgIQIAIoAhRBMEgEQCACIAIoAhRBD3E2AhQLCwJAIAIoAhRFDQAgAigCFEEITgRAIAIoAhRBD0wNAQsgAkF+NgIcDAELAkAgAigCDCgCOEUNACACKAIMKAIoIAIoAhRGDQAgAigCGCgCKCACKAIMKAI4IAIoAhgoAiQRBAAgAigCDEEANgI4CyACKAIMIAIoAhA2AgwgAigCDCACKAIUNgIoIAIgAigCGBDTAjYCHAsgAigCHCEAIAJBIGokACAAC3IBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCBBLBEAgAUF+NgIMDAELIAEgASgCCCgCHDYCBCABKAIEQQA2AiwgASgCBEEANgIwIAEoAgRBADYCNCABIAEoAggQ1AI2AgwLIAEoAgwhACABQRBqJAAgAAubAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEEsEQCABQX42AgwMAQsgASABKAIIKAIcNgIEIAEoAgRBADYCICABKAIIQQA2AhQgASgCCEEANgIIIAEoAghBADYCGCABKAIEKAIMBEAgASgCCCABKAIEKAIMQQFxNgIwCyABKAIEQbT+ADYCBCABKAIEQQA2AgggASgCBEEANgIQIAEoAgRBgIACNgIYIAEoAgRBADYCJCABKAIEQQA2AjwgASgCBEEANgJAIAEoAgQgASgCBEG0CmoiADYCcCABKAIEIAA2AlQgASgCBCAANgJQIAEoAgRBATYCxDcgASgCBEF/NgLINyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAuI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AgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsLCwNAIAIoAghBAk1FBEAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIDAELCwwBCyACIAIoAkggAigCBGs2AgADQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAghBA2s2AgggAigCCEECSw0ACwsgAigCCARAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAigCCEEBSwRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAALCwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiAgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAlxBzu0ANgIYIAIoAlRB0f4ANgIEDAQLDAILIAIoAgxBwABxRQRAIAJBEGogAigCJCACLwESIAIoAixBASACKAIMdEEBa3FqQQJ0aigBADYBAAwBCwsgAigCDEEgcQRAIAIoAlRBv/4ANgIEDAILIAIoAlxB5O0ANgIYIAIoAlRB0f4ANgIEDAELQQAhACACKAJQIAIoAkxJBH8gAigCSCACKAJASQVBAAtBAXENAQsLIAIgAigCKEEDdjYCCCACIAIoAlAgAigCCGs2AlAgAiACKAIoIAIoAghBA3RrNgIoIAIgAigCLEEBIAIoAih0QQFrcTYCLCACKAJcIAIoAlA2AgAgAigCXCAC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AghBASACKAIIKAIwdDYCLCACKAIIIAIoAggoAixBAWs2AjQgAigCCCACKAIYQQdqNgJQIAIoAghBASACKAIIKAJQdDYCTCACKAIIIAIoAggoAkxBAWs2AlQgAigCCCACKAIIKAJQQQJqQQNuNgJYIAIoAigoAiggAigCCCgCLEECIAIoAigoAiARAQAhACACKAIIIAA2AjggAigCKCgCKCACKAIIKAIsQQIgAigCKCgCIBEBACEAIAIoAgggADYCQCACKAIoKAIoIAIoAggoAkxBAiACKAIoKAIgEQEAIQAgAigCCCAANgJEIAIoAghBADYCwC0gAigCCEEBIAIoAhhBBmp0NgKcLSACIAIoAigoAiggAigCCCgCnC1BBCACKAIoKAIgEQEANgIAIAIoAgggAigCADYCCCACKAIIIAIoAggoApwtQQJ0NgIMAkACQCACKAIIKAI4RQ0AIAIoAggoAkBFDQAgAigCCCgCREUNACACKAIIKAIIDQELIAIoAghBmgU2AgQgAigCKEHo1AAoAgA2AhggAigCKBCzARogAkF8NgIsDAELIAIoAgggAigCACACKAIIKAKcLUEBdkEBdGo2AqQtIAIoAgggAigCCCgCCCACKAIIKAKcLUEDbGo2ApgtIAIoAgggAigCJDYChAEgAigCCCACKAIUNgKIASACKAIIIAIoAiA6ACQgAiACKAIoEOACNgIsCyACKAIsIQAgAkEwaiQAIAALGAEBfyMAQRBrIgEgADYCDCABKAIMQQxqC2wBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBANAIAIgAigCBCACKAIMQQFxcjYCBCACIAIoAgxBAXY2AgwgAiACKAIEQQF0NgIEIAIgAigCCEF/aiIANgIIIABBAEoNAAsgAigCBEEBdguVAgEBfyMAQUBqIgMkACADIAA2AjwgAyABNgI4IAMgAjYCNCADQQA2AgwgA0EBNgIIA0AgAygCCEEPSkUEQCADIAMoAgwgAygCNCADKAIIQQFrQQF0ai8BAGpBAXQ2AgwgA0EQaiADKAIIQQF0aiADKAIMOwEAIAMgAygCCEEBajYCCAwBCwsgA0EANgIEA0AgAygCBCADKAI4TARAIAMgAygCPCADKAIEQQJ0ai8BAjYCACADKAIABEAgA0EQaiADKAIAQQF0aiIBLwEAIQAgASAAQQFqOwEAIABB//8DcSADKAIAEOMCIQAgAygCPCADKAIEQQJ0aiAAOwEACyADIAMoAgRBAWo2AgQMAQsLIANBQGskAAuICAEBfyMAQUBqIgIgADYCPCACIAE2AjggAiACKAI4KAIANgI0IAIgAigCOCgCBDYCMCACIAIoAjgoAggoAgA2AiwgAiACKAI4KAIIKAIENgIoIAIgAigCOCgCCCgCCDYCJCACIAIoAjgoAggoAhA2AiAgAkEANgIEIAJBADYCEANAIAIoAhBBD0pFBEAgAigCPEG8FmogAigCEEEBdGpBADsBACACIAIoAhBBAWo2AhAMAQsLIAIoAjQgAigCPEHcFmogAigCPCgC1ChBAnRqKAIAQQJ0akEAOwECIAIgAigCPCgC1ChBAWo2AhwDQCACKAIcQb0ESARAIAIgAigCPEHcFmogAigCHEECdGooAgA2AhggAiACKAI0IAIoAjQgAigCGEECdGovAQJBAnRqLwECQQFqNgIQIAIoAhAgAigCIEoEQCACIAIoAiA2AhAgAiACKAIEQQFqNgIECyACKAI0IAIoAhhBAnRqIAIoAhA7AQIgAigCGCACKAIwTARAIAIoAjwgAigCEEEBdGpBvBZqIgAgAC8BAEEBajsBACACQQA2AgwgAigCGCACKAIkTgRAIAIgAigCKCACKAIYIAIoAiRrQQJ0aigCADYCDAsgAiACKAI0IAIoAhhBAnRqLwEAOwEKIAIoAjwiACAAKAKoLSACLwEKIAIoAhAgAigCDGpsajYCqC0gAigCLARAIAIoAjwiACAAKAKsLSACLwEKIAIoAiwgAigCGEECdGovAQIgAigCDGpsajYCrC0LCyACIAIoAhxBAWo2AhwMAQsLAkAgAigCBEUNAANAIAIgAigCIEEBazYCEANAIAIoAjxBvBZqIAIoAhBBAXRqLwEARQRAIAIgAigCEEF/ajYCEAwBCwsgAigCPCACKAIQQQF0akG8FmoiACAALwEAQX9qOwEAIAIoAjwgAigCEEEBdGpBvhZqIgAgAC8BAEECajsBACACKAI8IAIoAiBBAXRqQbwWaiIAIAAvAQBBf2o7AQAgAiACKAIEQQJrNgIEIAIoAgRBAEoNAAsgAiACKAIgNgIQA0AgAigCEEUNASACIAIoAjxBvBZqIAIoAhBBAXRqLwEANgIYA0AgAigCGARAIAIoAjxB3BZqIQAgAiACKAIcQX9qIgE2AhwgAiABQQJ0IABqKAIANgIUIAIoAhQgAigCMEoNASACKAI0IAIoAhRBAnRqLwECIAIoAhBHBEAgAigCPCIAIAAoAqgtIAIoAjQgAigCFEECdGovAQAgAigCECACKAI0IAIoAhRBAnRqLwECa2xqNgKoLSACKAI0IAIoAhRBAnRqIAIoAhA7AQILIAIgAigCGEF/ajYCGAwBCwsgAiACKAIQQX9qNgIQDAAACwALC6ULAQF/IwBBQGoiBCQAIAQgADYCPCAEIAE2AjggBCACNgI0IAQgAzYCMCAEQQU2AigCQCAEKAI8KAK8LUEQIAQoAihrSgRAIAQgBCgCOEGBAms2AiQgBCgCPCIAIAAvAbgtIAQoAiRB//8DcSAEKAI8KAK8LXRyOwG4LSAEKAI8LwG4LUH/AXEhASAEKAI8KAIIIQIgBCgCPCIDKAIUIQAgAyAAQQFqNgIUIAAgAmogAToAACAEKAI8LwG4LUEIdSEBIAQoAjwoAgghAiAEKAI8IgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAjwgBCgCJEH//wNxQRAgBCgCPCgCvC1rdTsBuC0gBCgCPCIAIAAoArwtIAQoAihBEGtqNgK8LQwBCyAEKAI8IgAgAC8BuC0gBCgCOEGBAmtB//8DcSAEKAI8KAK8LXRyOwG4LSAEKAI8IgAgBCgCKCAAKAK8LWo2ArwtCyAEQQU2AiACQCAEKAI8KAK8LUEQIAQoAiBrSgRAIAQgBCgCNEEBazYCHCAEKAI8IgAgAC8BuC0gBCgCHEH//wNxIAQoAjwoArwtdHI7AbgtIAQoAjwvAbgtQf8BcSEBIAQoAjwoAgghAiAEKAI8IgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAjwvAbgtQQh1IQEgBCgCPCgCCCECIAQoAjwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCPCAEKAIcQf//A3FBECAEKAI8KAK8LWt1OwG4LSAEKAI8IgAgACgCvC0gBCgCIEEQa2o2ArwtDAELIAQoAjwiACAALwG4LSAEKAI0QQFrQf//A3EgBCgCPCgCvC10cjsBuC0gBCgCPCIAIAQoAiAgACgCvC1qNgK8LQsgBEEENgIYAkAgBCgCPCgCvC1BECAEKAIYa0oEQCAEIAQoAjBBBGs2AhQgBCgCPCIAIAAvAbgtIAQoAhRB//8DcSAEKAI8KAK8LXRyOwG4LSAEKAI8LwG4LUH/AXEhASAEKAI8KAIIIQIgBCgCPCIDKAIUIQAgAyAAQQFqNgIUIAAgAmogAToAACAEKAI8LwG4LUEIdSEBIAQoAjwoAgghAiAEKAI8IgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAjwgBCgCFEH//wNxQRAgBCgCPCgCvC1rdTsBuC0gBCgCPCIAIAAoArwtIAQoAhhBEGtqNgK8LQwBCyAEKAI8IgAgAC8BuC0gBCgCMEEEa0H//wNxIAQoAjwoArwtdHI7AbgtIAQoAjwiACAEKAIYIAAoArwtajYCvC0LIARBADYCLANAIAQoAiwgBCgCME5FBEAgBEEDNgIQAkAgBCgCPCgCvC1BECAEKAIQa0oEQCAEIAQoAjxB/BRqIAQoAiwtAJBoQQJ0ai8BAjYCDCAEKAI8IgAgAC8BuC0gBCgCDEH//wNxIAQoAjwoArwtdHI7AbgtIAQoAjwvAbgtQf8BcSEBIAQoAjwoAgghAiAEKAI8IgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAjwvAbgtQQh1IQEgBCgCPCgCCCECIAQoAjwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCPCAEKAIMQf//A3FBECAEKAI8KAK8LWt1OwG4LSAEKAI8IgAgACgCvC0gBCgCEEEQa2o2ArwtDAELIAQoAjwiACAALwG4LSAEKAI8QfwUaiAEKAIsLQCQaEECdGovAQIgBCgCPCgCvC10cjsBuC0gBCgCPCIAIAQoAhAgACgCvC1qNgK8LQsgBCAEKAIsQQFqNgIsDAELCyAEKAI8IAQoAjxBlAFqIAQoAjhBAWsQtAEgBCgCPCAEKAI8QYgTaiAEKAI0QQFrELQBIARBQGskAAvGAQEBfyMAQRBrIgEkACABIAA2AgwgASgCDCABKAIMQZQBaiABKAIMKAKcFhC1ASABKAIMIAEoAgxBiBNqIAEoAgwoAqgWELUBIAEoAgwgASgCDEGwFmoQdiABQRI2AggDQAJAIAEoAghBA0gNACABKAIMQfwUaiABKAIILQCQaEECdGovAQINACABIAEoAghBf2o2AggMAQsLIAEoAgwiACAAKAKoLSABKAIIQQNsQRFqajYCqC0gASgCCCEAIAFBEGokACAAC4MCAQF/IwBBEGsiASAANgIIIAFB/4D/n382AgQgAUEANgIAAkADQCABKAIAQR9MBEACQCABKAIEQQFxRQ0AIAEoAghBlAFqIAEoAgBBAnRqLwEARQ0AIAFBADYCDAwDCyABIAEoAgBBAWo2AgAgASABKAIEQQF2NgIEDAELCwJAAkAgASgCCC8BuAENACABKAIILwG8AQ0AIAEoAggvAcgBRQ0BCyABQQE2AgwMAQsgAUEgNgIAA0AgASgCAEGAAkgEQCABKAIIQZQBaiABKAIAQQJ0ai8BAARAIAFBATYCDAwDBSABIAEoAgBBAWo2AgAMAgsACwsgAUEANgIMCyABKAIMC44FAQR/IwBBIGsiASQAIAEgADYCHCABQQM2AhgCQCABKAIcKAK8LUEQIAEoAhhrSgRAIAFBAjYCFCABKAIcIgAgAC8BuC0gASgCFEH//wNxIAEoAhwoArwtdHI7AbgtIAEoAhwvAbgtQf8BcSECIAEoAhwoAgghAyABKAIcIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAhwvAbgtQQh1IQIgASgCHCgCCCEDIAEoAhwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCHCABKAIUQf//A3FBECABKAIcKAK8LWt1OwG4LSABKAIcIgAgACgCvC0gASgCGEEQa2o2ArwtDAELIAEoAhwiACAALwG4LUECIAEoAhwoArwtdHI7AbgtIAEoAhwiACABKAIYIAAoArwtajYCvC0LIAFBwuMALwEANgIQAkAgASgCHCgCvC1BECABKAIQa0oEQCABQcDjAC8BADYCDCABKAIcIgAgAC8BuC0gASgCDEH//wNxIAEoAhwoArwtdHI7AbgtIAEoAhwvAbgtQf8BcSECIAEoAhwoAgghAyABKAIcIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAhwvAbgtQQh1IQIgASgCHCgCCCEDIAEoAhwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCHCABKAIMQf//A3FBECABKAIcKAK8LWt1OwG4LSABKAIcIgAgACgCvC0gASgCEEEQa2o2ArwtDAELIAEoAhwiACAALwG4LUHA4wAvAQAgASgCHCgCvC10cjsBuC0gASgCHCIAIAEoAhAgACgCvC1qNgK8LQsgASgCHBC3ASABQSBqJAALIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBC3ASABQRBqJAALlgEBAX8jAEEQayIBJAAgASAANgIMIAEoAgwgASgCDEGUAWo2ApgWIAEoAgxBgNsANgKgFiABKAIMIAEoAgxBiBNqNgKkFiABKAIMQZTbADYCrBYgASgCDCABKAIMQfwUajYCsBYgASgCDEGo2wA2ArgWIAEoAgxBADsBuC0gASgCDEEANgK8LSABKAIMELkBIAFBEGokAAvXDQEBfyMAQSBrIgMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCGEEQdjYCDCADIAMoAhhB//8DcTYCGAJAIAMoAhBBAUYEQCADIAMoAhQtAAAgAygCGGo2AhggAygCGEHx/wNPBEAgAyADKAIYQfH/A2s2AhgLIAMgAygCGCADKAIMajYCDCADKAIMQfH/A08EQCADIAMoAgxB8f8DazYCDAsgAyADKAIYIAMoAgxBEHRyNgIcDAELIAMoAhRFBEAgA0EBNgIcDAELIAMoAhBBEEkEQANAIAMgAygCECIAQX9qNgIQIAAEQCADIAMoAhQiAEEBajYCFCADIAAtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMDAELCyADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIMQfH/A3A2AgwgAyADKAIYIAMoAgxBEHRyNgIcDAELA0AgAygCEEGwK0lFBEAgAyADKAIQQbArazYCECADQdsCNgIIA0AgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAPIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhRBEGo2AhQgAyADKAIIQX9qIgA2AgggAA0ACyADIAMoAhhB8f8DcDYCGCADIAMoAgxB8f8DcDYCDAwBCwsgAygCEARAA0AgAygCEEEQSUUEQCADIAMoAhBBEGs2AhAgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygC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JCADIAE3AxggAyACNgIUIAMgAygCJCADKQMYIAMoAhQQfyIBNwMIAkAgAVAEQCADQgA3AygMAQsgAyADKAIkKAJAIAMpAxinQQR0aigCADYCBAJAIAMpAwggAygCBCkDIHwgAykDCFoEQCADKQMIIAMoAgQpAyB8Qv///////////wBYDQELIAMoAhRBBEEWEBUgA0IANwMoDAELIAMgAygCBCkDICADKQMIfDcDCCADKAIELwEMQQhxBEAgAygCJCgCACADKQMIQQAQKEEASARAIAMoAhQgAygCJCgCABAYIANCADcDKAwCCyADKAIkKAIAIANCBBAvQgRSBEAgAygCFCADKAIkKAIAEBggA0IANwMoDAILIAMoAABB0JadwABGBEAgAyADKQMIQgR8NwMICyADIAMpAwhCDHw3AwggAygCBEEAEIABQQFxBEAgAyADKQMIQgh8NwMICyADKQMIQv///////////wBWBEAgAygCFEEEQRYQFSADQgA3AygMAgsLIAMgAykDCDcDKAsgAykDKCEBIANBMGokACABC/8BAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABCAAUEBcUUNAQsgAigCDEEtOwEKDAELAkAgAigCDCgCEEEIRwRAIAIoAgwvAVJBAUcNAQsgAigCDEEUOwEKDAELIAIgAigCDCgCMBBSIgA7AQggAEH//wNxQQBKBEAgAigCDCgCMCgCACACLwEIQQFrai0AAEEvRgRAIAIoAgxBFDsBCgwCCwsgAigCDEEKOwEKCyACQRBqJAALwAIBAX8jAEEwayICJAAgAiAANgIoIAJBgAI7ASYgAiABNgIgIAIgAi8BJkGAAnFBAEc6ABsgAkEeQS4gAi0AG0EBcRs2AhwCQCACKAIoQRpBHCACLQAbQQFxG6xBARAoQQBIBEAgAigCICACKAIoEBggAkF/NgIsDAELIAIgAigCKEEEQQYgAi0AG0EBcRusIAJBDmogAigCIBBBIgA2AgggAEUEQCACQX82AiwMAQsgAkEANgIUA0AgAigCFEECQQMgAi0AG0EBcRtIBEAgAiACKAIIEB5B//8DcSACKAIcajYCHCACIAIoAhRBAWo2AhQMAQsLIAIoAggQSEEBcUUEQCACKAIgQRRBABAVIAIoAggQFyACQX82AiwMAQsgAigCCBAXIAIgAigCHDYCLAsgAigCLCEAIAJBMGokACAAC/8DAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYKAIQQeMARwRAIAJBAToAHwwBCyACIAIoAhgoAjQgAkESakGBsgJBgAZBABBfNgIIAkAgAigCCARAIAIvARJBB04NAQsgAigCFEEVQQAQFSACQQA6AB8MAQsgAiACKAIIIAIvARKtECoiADYCDCAARQRAIAIoAhRBFEEAEBUgAkEAOgAfDAELIAJBAToABwJAAkACQCACKAIMEB5Bf2oOAgIAAQsgAigCGCkDKEIUVARAIAJBADoABwsMAQsgAigCFEEYQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAgxCAhAfLwAAQcGKAUcEQCACKAIUQRhBABAVIAIoAgwQFyACQQA6AB8MAQsCQAJAAkACQAJAIAIoAgwQjQFBf2oOAwABAgMLIAJBgQI7AQQMAwsgAkGCAjsBBAwCCyACQYMCOwEEDAELIAIoAhRBGEEAEBUgAigCDBAXIAJBADoAHwwBCyACLwESQQdHBEAgAigCFEEVQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAhggAi0AB0EBcToABiACKAIYIAIvAQQ7AVIgAigCDBAeQf//A3EhACACKAIYIAA2AhAgAigCDBAXIAJBAToAHwsgAi0AH0EBcSEAIAJBIGokACAAC7kBAQF/IwBBMGsiAiQAIAIgADsBLiACIAE7ASwgAkIANwIAIAJBADYCKCACQgA3AiAgAkIANwIYIAJCADcCECACQgA3AgggAkEANgIgIAIgAi8BLEEJdUHQAGo2AhQgAiACLwEsQQV1QQ9xQQFrNgIQIAIgAi8BLEEfcTYCDCACIAIvAS5BC3U2AgggAiACLwEuQQV1QT9xNgIEIAIgAi8BLkEBdEE+cTYCACACEAwhACACQTBqJAAgAAtMAQJ/IwBBEGsiACQAIABB2AAQGSIBNgIIAkAgAUUEQCAAQQA2AgwMAQsgACgCCBBdIAAgACgCCDYCDAsgACgCDCEBIABBEGokACABCwgAQQFBOBB9CwMAAQsL8o0BJwBBgAgLlAVObyBlcnJvcgBNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABTZWVrIGVycm9yAFJlYWQgZXJyb3IAV3JpdGUgZXJyb3IAQ1JDIGVycm9yAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABObyBzdWNoIGZpbGUARmlsZSBhbHJlYWR5IGV4aXN0cwBDYW4ndCBvcGVuIGZpbGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAWmxpYiBlcnJvcgBNYWxsb2MgZmFpbHVyZQBFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBJbnZhbGlkIGFyZ3VtZW50AE5vdCBhIHppcCBhcmNoaXZlAEludGVybmFsIGVycm9yAFppcCBhcmNoaXZlIGluY29uc2lzdGVudABDYW4ndCByZW1vdmUgZmlsZQBFbnRyeSBoYXMgYmVlbiBkZWxldGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAUmVhZC1vbmx5IGFyY2hpdmUATm8gcGFzc3dvcmQgcHJvdmlkZWQAV3JvbmcgcGFzc3dvcmQgcHJvdmlkZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAFRlbGwgZXJyb3IAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQAQaENC4ABBAAACQQAAC8EAABOBAAAaQQAAHQEAAB/BAAAiwQAAJUEAAC3BAAAxAQAANgEAADoBAAACQUAABQFAAAjBQAAOgUAAFsFAABxBQAAggUAAJQFAACjBQAAvAUAAM4FAADlBQAABQYAABcGAAAsBgAARAYAAFwGAAByBgAAfQYAACAAQbgOCxEBAAAAAQAAAAEAAAABAAAAAQBB3A4LCQEAAAABAAAAAgBBiA8LAQEAQagPCwEBAEG0DwuSRZYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2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AAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0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AAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAMS4yLjExAC0rICAgMFgweAAobnVsbCkAQbCDAQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQtLDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAEHchwELARcAQYOIAQsF//////8AQdCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGwiQEL3Q5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAVW5rbm93biBlcnJvciAlZAAlcyVzJXMAADogAC9wcm9jL3NlbGYvZmQvAC9kZXYvdXJhbmRvbQByd2EAJXMuWFhYWFhYAHIrYgByYgBQSwUGAEGQmAELTgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAABAAAACAAAABBMAAAwTABBkJoBCwJQUABByJoBCwkfAAAAZE0AAAMAQeSaAQuMAS30UVjPjLHARva1yykxA8cEW3AwtF39IHh/i5rYWSlQaEiJq6dWA2z/t82IP9R3tCulo3DxuuSo/EGD/dlv4Yp6Ly10lgcfDQleA3YscPdApSynb1dBqKp036BYZANKx8Q8U66vXxgEFbHjbSiGqwykv0Pw6VCBOVcWUjf/////////////////////";function ne(){var e=function(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}();return o.extraStackTrace&&(e+="\n"+o.extraStackTrace()),e.replace(/\b_Z[\w\d_]+/g,(function(e){return e==e?e:e+" ["+e+"]"}))}$(re)||(re=function(e){return o.locateFile?o.locateFile(e,h):h+e}(re)),_.push({func:function(){be()}});var ie={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=ie.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=e.lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return ie.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return ie.normalize(e.join("/"))},join2:function(e,t){return ie.normalize(e+"/"+t)}};function oe(e){return N[Se()>>2]=e,e}var se={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:he.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return(t?"/":"")+(e=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=se.resolve(e).substr(1),t=se.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),s=o,A=0;A0?r.slice(0,n).toString("utf-8"):null))return null;e.input=we(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(g(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(g(B(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(f(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(f(B(e.output,0)),e.output=[])}}},ae={ops_table:null,mount:function(e){return ae.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(he.isBlkdev(r)||he.isFIFO(r))throw new he.ErrnoError(63);ae.ops_table||(ae.ops_table={dir:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,lookup:ae.node_ops.lookup,mknod:ae.node_ops.mknod,rename:ae.node_ops.rename,unlink:ae.node_ops.unlink,rmdir:ae.node_ops.rmdir,readdir:ae.node_ops.readdir,symlink:ae.node_ops.symlink},stream:{llseek:ae.stream_ops.llseek}},file:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:{llseek:ae.stream_ops.llseek,read:ae.stream_ops.read,write:ae.stream_ops.write,allocate:ae.stream_ops.allocate,mmap:ae.stream_ops.mmap,msync:ae.stream_ops.msync}},link:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,readlink:ae.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:he.chrdev_stream_ops}});var i=he.createNode(e,t,r,n);return he.isDir(i.mode)?(i.node_ops=ae.ops_table.dir.node,i.stream_ops=ae.ops_table.dir.stream,i.contents={}):he.isFile(i.mode)?(i.node_ops=ae.ops_table.file.node,i.stream_ops=ae.ops_table.file.stream,i.usedBytes=0,i.contents=null):he.isLink(i.mode)?(i.node_ops=ae.ops_table.link.node,i.stream_ops=ae.ops_table.link.stream):he.isChrdev(i.mode)&&(i.node_ops=ae.ops_table.chrdev.node,i.stream_ops=ae.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i),i},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-i,n);if(s>8&&o.subarray)t.set(o.subarray(i,i+s),r);else for(var A=0;A0||n+r>2)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return t.mode},realPath:function(e){for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),ie.join.apply(null,t)},flagsForNode:function(e){e&=-2097153,e&=-2049,e&=-32769,e&=-524289;var t=0;for(var r in ue.flagsForNodeMap)e&r&&(t|=ue.flagsForNodeMap[r],e^=r);if(e)throw new he.ErrnoError(28);return t},node_ops:{getattr:function(e){var t,r=ue.realPath(e);try{t=Ce.lstatSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return ue.isWindows&&!t.blksize&&(t.blksize=4096),ue.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:function(e,t){var r=ue.realPath(e);try{if(void 0!==t.mode&&(Ce.chmodSync(r,t.mode),e.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);Ce.utimesSync(r,n,n)}void 0!==t.size&&Ce.truncateSync(r,t.size)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},lookup:function(e,t){var r=ie.join2(ue.realPath(e),t),n=ue.getMode(r);return ue.createNode(e,t,n)},mknod:function(e,t,r,n){var i=ue.createNode(e,t,r,n),o=ue.realPath(i);try{he.isDir(i.mode)?Ce.mkdirSync(o,i.mode):Ce.writeFileSync(o,"",{mode:i.mode})}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return i},rename:function(e,t,r){var n=ue.realPath(e),i=ie.join2(ue.realPath(t),r);try{Ce.renameSync(n,i)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}e.name=r},unlink:function(e,t){var r=ie.join2(ue.realPath(e),t);try{Ce.unlinkSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},rmdir:function(e,t){var r=ie.join2(ue.realPath(e),t);try{Ce.rmdirSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},readdir:function(e){var t=ue.realPath(e);try{return Ce.readdirSync(t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},symlink:function(e,t,r){var n=ie.join2(ue.realPath(e),t);try{Ce.symlinkSync(r,n)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},readlink:function(e){var t=ue.realPath(e);try{return t=Ce.readlinkSync(t),t=Ee.relative(Ee.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}}},stream_ops:{open:function(e){var t=ue.realPath(e.node);try{he.isFile(e.node.mode)&&(e.nfd=Ce.openSync(t,ue.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},close:function(e){try{he.isFile(e.node.mode)&&e.nfd&&Ce.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},read:function(e,t,r,n,i){if(0===n)return 0;try{return Ce.readSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}},write:function(e,t,r,n,i){try{return Ce.writeSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}},llseek:function(e,t,r){var n=t;if(1===r)n+=e.position;else if(2===r&&he.isFile(e.node.mode))try{n+=Ce.fstatSync(e.nfd).size}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}if(n<0)throw new he.ErrnoError(28);return n},mmap:function(e,t,r,n,i,o){if(I(0===t),!he.isFile(e.node.mode))throw new he.ErrnoError(43);var s=Ke(r);return ue.stream_ops.read(e,x,s,r,n),{ptr:s,allocated:!0}},msync:function(e,t,r,n,i){if(!he.isFile(e.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;ue.stream_ops.write(e,t,0,n,r,!1);return 0}}},le={lookupPath:function(e){return{path:e,node:{mode:ue.getMode(e)}}},createStandardStreams:function(){he.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var e=1;e<3;e++)he.streams[e]={fd:e,nfd:e,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(e,t){he.isDir(e)?Ce.mkdirSync(e,t):Ce.writeFileSync(e,"",{mode:t})},mkdir:function(){Ce.mkdirSync.apply(void 0,arguments)},symlink:function(){Ce.symlinkSync.apply(void 0,arguments)},rename:function(){Ce.renameSync.apply(void 0,arguments)},rmdir:function(){Ce.rmdirSync.apply(void 0,arguments)},readdir:function(){Ce.readdirSync.apply(void 0,arguments)},unlink:function(){Ce.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ce.readlinkSync.apply(void 0,arguments)},stat:function(){return Ce.statSync.apply(void 0,arguments)},lstat:function(){return Ce.lstatSync.apply(void 0,arguments)},chmod:function(){Ce.chmodSync.apply(void 0,arguments)},fchmod:function(){Ce.fchmodSync.apply(void 0,arguments)},chown:function(){Ce.chownSync.apply(void 0,arguments)},fchown:function(){Ce.fchownSync.apply(void 0,arguments)},truncate:function(){Ce.truncateSync.apply(void 0,arguments)},ftruncate:function(){Ce.ftruncateSync.apply(void 0,arguments)},utime:function(){Ce.utimesSync.apply(void 0,arguments)},open:function(e,t,r,n){"string"==typeof t&&(t=me.modeStringToFlags(t));var i=Ce.openSync(e,ue.flagsForNode(t),r),o=null!=n?n:he.nextfd(i),s={fd:o,nfd:i,position:0,path:e,flags:t,seekable:!0};return he.streams[o]=s,s},close:function(e){e.stream_ops||Ce.closeSync(e.nfd),he.closeStream(e.fd)},llseek:function(e,t,r){if(e.stream_ops)return me.llseek(e,t,r);var n=t;if(1===r)n+=e.position;else if(2===r)n+=Ce.fstatSync(e.nfd).size;else if(0!==r)throw new he.ErrnoError(ce.EINVAL);if(n<0)throw new he.ErrnoError(ce.EINVAL);return e.position=n,n},read:function(e,t,r,n,i){if(e.stream_ops)return me.read(e,t,r,n,i);var o=void 0!==i;!o&&e.seekable&&(i=e.position);var s=Ce.readSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i);return o||(e.position+=s),s},write:function(e,t,r,n,i){if(e.stream_ops)return me.write(e,t,r,n,i);1024&e.flags&&he.llseek(e,0,2);var o=void 0!==i;!o&&e.seekable&&(i=e.position);var s=Ce.writeSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i);return o||(e.position+=s),s},allocate:function(){throw new he.ErrnoError(ce.EOPNOTSUPP)},mmap:function(){throw new he.ErrnoError(ce.ENODEV)},msync:function(){return 0},munmap:function(){return 0},ioctl:function(){throw new he.ErrnoError(ce.ENOTTY)}},he={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof he.ErrnoError))throw e+" : "+ne();return oe(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=se.resolve(he.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new he.ErrnoError(32);for(var i=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),o=he.root,s="/",A=0;A40)throw new he.ErrnoError(32)}}return{path:s,node:o}},getPath:function(e){for(var t;;){if(he.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,n=0;n>>0)%he.nameTable.length},hashAddNode:function(e){var t=he.hashName(e.parent.id,e.name);e.name_next=he.nameTable[t],he.nameTable[t]=e},hashRemoveNode:function(e){var t=he.hashName(e.parent.id,e.name);if(he.nameTable[t]===e)he.nameTable[t]=e.name_next;else for(var r=he.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=he.mayLookup(e);if(r)throw new he.ErrnoError(r,e);for(var n=he.hashName(e.id,t),i=he.nameTable[n];i;i=i.name_next){var o=i.name;if(i.parent.id===e.id&&o===t)return i}return he.lookup(e,t)},createNode:function(e,t,r,n){var i=new he.FSNode(e,t,r,n);return he.hashAddNode(i),i},destroyNode:function(e){he.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=he.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return he.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=he.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{he.lookupNode(e,t);return 20}catch(e){}return he.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=he.lookupNode(e,t)}catch(e){return e.errno}var i=he.nodePermissions(e,"wx");if(i)return i;if(r){if(!he.isDir(n.mode))return 54;if(he.isRoot(n)||he.getPath(n)===he.cwd())return 10}else if(he.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?he.isLink(e.mode)?32:he.isDir(e.mode)&&("r"!==he.flagsToPermissionString(t)||512&t)?31:he.nodePermissions(e,he.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||he.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!he.streams[r])return r;throw new he.ErrnoError(33)},getStream:function(e){return he.streams[e]},createStream:function(e,t,r){he.FSStream||(he.FSStream=function(){},he.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new he.FSStream;for(var i in e)n[i]=e[i];e=n;var o=he.nextfd(t,r);return e.fd=o,he.streams[o]=e,e},closeStream:function(e){he.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=he.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new he.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){he.devices[e]={stream_ops:t}},getDevice:function(e){return he.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),he.syncFSRequests++,he.syncFSRequests>1&&f("warning: "+he.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=he.getMounts(he.root.mount),n=0;function i(e){return he.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach((function(t){if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:function(e,t,r){var n,i="/"===r,o=!r;if(i&&he.root)throw new he.ErrnoError(10);if(!i&&!o){var s=he.lookupPath(r,{follow_mount:!1});if(r=s.path,n=s.node,he.isMountpoint(n))throw new he.ErrnoError(10);if(!he.isDir(n.mode))throw new he.ErrnoError(54)}var A={type:e,opts:t,mountpoint:r,mounts:[]},a=e.mount(A);return a.mount=A,A.root=a,i?he.root=a:n&&(n.mounted=A,n.mount&&n.mount.mounts.push(A)),a},unmount:function(e){var t=he.lookupPath(e,{follow_mount:!1});if(!he.isMountpoint(t.node))throw new he.ErrnoError(28);var r=t.node,n=r.mounted,i=he.getMounts(n);Object.keys(he.nameTable).forEach((function(e){for(var t=he.nameTable[e];t;){var r=t.name_next;-1!==i.indexOf(t.mount)&&he.destroyNode(t),t=r}})),r.mounted=null;var o=r.mount.mounts.indexOf(n);r.mount.mounts.splice(o,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=he.lookupPath(e,{parent:!0}).node,i=ie.basename(e);if(!i||"."===i||".."===i)throw new he.ErrnoError(28);var o=he.mayCreate(n,i);if(o)throw new he.ErrnoError(o);if(!n.node_ops.mknod)throw new he.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,he.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,he.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",i=0;ithis.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,s=1048576;i||(s=n);var A=this;A.setDataGetter((function(e){var t=e*s,i=(e+1)*s-1;if(i=Math.min(i,n-1),void 0===A.chunks[e]&&(A.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",r,!1),n!==s&&i.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(i.responseType="arraybuffer"),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+r+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):we(i.responseText||"",!0)}(t,i)),void 0===A.chunks[e])throw new Error("doXHR failed!");return A.chunks[e]})),!o&&n||(s=n=1,n=this.getter(0).length,s=n,g("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s={isDevice:!1,url:r},A=he.createFile(e,t,s,n,i);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var a={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];a[e]=function(){if(!he.forceLoadFile(A))throw new he.ErrnoError(29);return t.apply(null,arguments)}})),a.read=function(e,t,r,n,i){if(!he.forceLoadFile(A))throw new he.ErrnoError(29);var o=e.node.contents;if(i>=o.length)return 0;var s=Math.min(o.length-i,n);if(o.slice)for(var a=0;a>2]=n.dev,N[r+4>>2]=0,N[r+8>>2]=n.ino,N[r+12>>2]=n.mode,N[r+16>>2]=n.nlink,N[r+20>>2]=n.uid,N[r+24>>2]=n.gid,N[r+28>>2]=n.rdev,N[r+32>>2]=0,te=[n.size>>>0,(ee=n.size,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[r+40>>2]=te[0],N[r+44>>2]=te[1],N[r+48>>2]=4096,N[r+52>>2]=n.blocks,N[r+56>>2]=n.atime.getTime()/1e3|0,N[r+60>>2]=0,N[r+64>>2]=n.mtime.getTime()/1e3|0,N[r+68>>2]=0,N[r+72>>2]=n.ctime.getTime()/1e3|0,N[r+76>>2]=0,te=[n.ino>>>0,(ee=n.ino,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[r+80>>2]=te[0],N[r+84>>2]=te[1],0},doMsync:function(e,t,r,n,i){var o=F.slice(e,e+r);he.msync(t,o,i,r,n)},doMkdir:function(e,t){return"/"===(e=ie.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),he.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return he.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=he.readlink(e),i=Math.min(r,b(n)),o=x[t+i];return D(n,t,r+1),x[t+i]=o,i},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=he.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&he.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=he.getStream(r);return n&&he.close(n),he.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var i=0,o=0;o>2],A=N[t+(8*o+4)>>2],a=he.read(e,x,s,A,n);if(a<0)return-1;if(i+=a,a>2],A=N[t+(8*o+4)>>2],a=he.write(e,x,s,A,n);if(a<0)return-1;i+=a}return i},varargs:void 0,get:function(){return ge.varargs+=4,N[ge.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var t=he.getStream(e);if(!t)throw new he.ErrnoError(8);return t},get64:function(e,t){return e}};function fe(e){try{return d.grow(e-k.byteLength+65535>>>16),L(d.buffer),1}catch(e){}}var pe=(D("GMT",20704,4),20704);var de=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=he.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(de.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return he.isDir(this.mode)}},isDevice:{get:function(){return he.isChrdev(this.mode)}}}),he.FSNode=de,he.staticInit();var Ce=i,Ee=r(85622);ue.staticInit();var Ie=function(e){return function(){try{return e.apply(this,arguments)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ce[e.code])}}},me=Object.assign({},he);for(var ye in le)he[ye]=Ie(le[ye]);function we(e,t,r){var n=r>0?r:b(e)+1,i=new Array(n),o=v(e,i,0,i.length);return t&&(i.length=o),i}"function"==typeof atob&&atob;function Be(e){if($(e))return function(e){var t;try{t=Buffer.from(e,"base64")}catch(r){t=new Buffer(e,"base64")}return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}(e.slice("data:application/octet-stream;base64,".length))}var Qe,ve={p:function(e,t){try{return e=ge.getStr(e),he.chmod(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},e:function(e,t,r){ge.varargs=r;try{var n=ge.getStreamFromFD(e);switch(t){case 0:return(i=ge.get())<0?-28:he.open(n.path,n.flags,0,i).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var i=ge.get();return n.flags|=i,0;case 12:i=ge.get();return M[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return oe(28),-1;default:return-28}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},j:function(e,t){try{var r=ge.getStreamFromFD(e);return ge.doStat(he.stat,r.path,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},o:function(e,t,r){ge.varargs=r;try{var n=ge.getStreamFromFD(e);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var i=ge.get();return N[i>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:i=ge.get();return he.ioctl(n,t,i);case 21523:case 21524:return n.tty?0:-59;default:Z("bad ioctl syscall "+t)}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},r:function(e,t,r){ge.varargs=r;try{var n=ge.getStr(e),i=ge.get();return he.open(n,t,i).fd}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},q:function(e,t,r){try{var n=ge.getStreamFromFD(e);return he.read(n,x,t,r)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},h:function(e,t){try{return e=ge.getStr(e),t=ge.getStr(t),he.rename(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},s:function(e){try{return e=ge.getStr(e),he.rmdir(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},c:function(e,t){try{return e=ge.getStr(e),ge.doStat(he.stat,e,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},g:function(e){try{return e=ge.getStr(e),he.unlink(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},t:function(e,t,r){F.copyWithin(e,t,t+r)},u:function(e){e>>>=0;var t=F.length;if(e>2147483648)return!1;for(var r,n,i=1;i<=4;i*=2){var o=t*(1+.2/i);if(o=Math.min(o,e+100663296),fe(Math.min(2147483648,((r=Math.max(16777216,e,o))%(n=65536)>0&&(r+=n-r%n),r))))return!0}return!1},f:function(e){try{var t=ge.getStreamFromFD(e);return he.close(t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},i:function(e,t){try{var r=ge.getStreamFromFD(e),n=r.tty?2:he.isDir(r.mode)?3:he.isLink(r.mode)?7:4;return x[t>>0]=n,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},n:function(e,t,r,n){try{var i=ge.getStreamFromFD(e),o=ge.doReadv(i,t,r);return N[n>>2]=o,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},l:function(e,t,r,n,i){try{var o=ge.getStreamFromFD(e),s=4294967296*r+(t>>>0);return s<=-9007199254740992||s>=9007199254740992?-61:(he.llseek(o,s,n),te=[o.position>>>0,(ee=o.position,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[i>>2]=te[0],N[i+4>>2]=te[1],o.getdents&&0===s&&0===n&&(o.getdents=null),0)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},d:function(e,t,r,n){try{var i=ge.getStreamFromFD(e),o=ge.doWritev(i,t,r);return N[n>>2]=o,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},k:function(e){return function(e,t){var r=new Date(1e3*N[e>>2]);N[t>>2]=r.getUTCSeconds(),N[t+4>>2]=r.getUTCMinutes(),N[t+8>>2]=r.getUTCHours(),N[t+12>>2]=r.getUTCDate(),N[t+16>>2]=r.getUTCMonth(),N[t+20>>2]=r.getUTCFullYear()-1900,N[t+24>>2]=r.getUTCDay(),N[t+36>>2]=0,N[t+32>>2]=0;var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return N[t+28>>2]=i,N[t+40>>2]=pe,t}(e,20656)},memory:d,a:function(e){0|e},table:C,b:function(e){var t=Date.now()/1e3|0;return e&&(N[e>>2]=t),t},m:function(e){!function e(){if(!e.called){e.called=!0,N[Fe()>>2]=60*(new Date).getTimezoneOffset();var t=(new Date).getFullYear(),r=new Date(t,0,1),n=new Date(t,6,1);N[xe()>>2]=Number(r.getTimezoneOffset()!=n.getTimezoneOffset());var i=a(r),o=a(n),s=S(i),A=S(o);n.getTimezoneOffset()>2]=s,N[ke()+4>>2]=A):(N[ke()>>2]=A,N[ke()+4>>2]=s)}function a(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}();var t=Date.UTC(N[e+20>>2]+1900,N[e+16>>2],N[e+12>>2],N[e+8>>2],N[e+4>>2],N[e>>2],0),r=new Date(t);N[e+24>>2]=r.getUTCDay();var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return N[e+28>>2]=i,r.getTime()/1e3|0}},De=function(){var e={a:ve};function t(e,t){var r=e.exports;o.asm=r,X()}if(V(),o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return f("Module.instantiateWasm callback failed with error: "+e),!1}return function(){var r,n,i;try{i=function(){try{if(p)return new Uint8Array(p);var e=Be(re);if(e)return e;if(a)return a(re);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(e){Z(e)}}(),n=new WebAssembly.Module(i),r=new WebAssembly.Instance(n,e)}catch(e){var o=e.toString();throw f("failed to compile wasm module: "+o),(o.indexOf("imported Memory")>=0||o.indexOf("memory import")>=0)&&f("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),e}t(r)}(),o.asm}(),be=o.___wasm_call_ctors=De.v,Se=(o._zipstruct_stat=De.w,o._zipstruct_statS=De.x,o._zipstruct_stat_name=De.y,o._zipstruct_stat_index=De.z,o._zipstruct_stat_size=De.A,o._zipstruct_stat_mtime=De.B,o._zipstruct_error=De.C,o._zipstruct_errorS=De.D,o._zip_close=De.E,o._zip_dir_add=De.F,o._zip_discard=De.G,o._zip_error_init_with_code=De.H,o._zip_get_error=De.I,o._zip_file_get_error=De.J,o._zip_error_strerror=De.K,o._zip_fclose=De.L,o._zip_file_add=De.M,o._zip_file_get_external_attributes=De.N,o._zip_file_set_external_attributes=De.O,o._zip_file_set_mtime=De.P,o._zip_fopen=De.Q,o._zip_fopen_index=De.R,o._zip_fread=De.S,o._zip_get_name=De.T,o._zip_get_num_entries=De.U,o._zip_name_locate=De.V,o._zip_open=De.W,o._zip_open_from_source=De.X,o._zip_set_file_compression=De.Y,o._zip_source_buffer=De.Z,o._zip_source_buffer_create=De._,o._zip_source_close=De.$,o._zip_source_error=De.aa,o._zip_source_free=De.ba,o._zip_source_keep=De.ca,o._zip_source_open=De.da,o._zip_source_read=De.ea,o._zip_source_seek=De.fa,o._zip_source_set_mtime=De.ga,o._zip_source_tell=De.ha,o._zip_stat=De.ia,o._zip_stat_index=De.ja,o._zip_ext_count_symlinks=De.ka,o.___errno_location=De.la),ke=o.__get_tzname=De.ma,xe=o.__get_daylight=De.na,Fe=o.__get_timezone=De.oa,Me=o.stackSave=De.pa,Ne=o.stackRestore=De.qa,Re=o.stackAlloc=De.ra,Ke=o._malloc=De.sa;o._free=De.ta,o.dynCall_vi=De.ua;function Le(e){function t(){Qe||(Qe=!0,o.calledRun=!0,E||(!0,o.noFSInit||he.init.initialized||he.init(),Ae.init(),P(_),he.ignorePermissions=!1,P(O),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),j.unshift(e);var e;P(j)}()))}e=e||l,q>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),U.unshift(e);var e;P(U)}(),q>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t()))}if(o.cwrap=function(e,t,r,n){var i=(r=r||[]).every((function(e){return"number"===e}));return"string"!==t&&i&&!n?m(e):function(){return y(e,t,r,arguments)}},o.getValue=function(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return x[e>>0];case"i16":return M[e>>1];case"i32":case"i64":return N[e>>2];case"float":return R[e>>2];case"double":return K[e>>3];default:Z("invalid type for getValue: "+t)}return null},W=function e(){Qe||Le(),Qe||(W=e)},o.run=Le,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();Le()},54920:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/parsers"}')},98261:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;tC&&(C=f,E=[]),E.push(e))}function Q(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function v(){var t,r,n,o;return t=f,(r=D())!==i?(47===e.charCodeAt(f)?(n="/",f++):(n=i,B(A)),n!==i&&(o=D())!==i?(p=t,t=r={from:r,descriptor:o}):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=D())!==i&&(p=t,r=function(e){return{descriptor:e}}(r)),t=r),t}function D(){var t,r,n,o;return t=f,(r=b())!==i?(64===e.charCodeAt(f)?(n="@",f++):(n=i,B(a)),n!==i&&(o=function(){var t,r,n;t=f,r=[],h.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(g));if(n!==i)for(;n!==i;)r.push(n),h.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(g));else r=i;r!==i&&(p=t,r=c());return t=r}())!==i?(p=t,t=r={fullName:r,description:o}):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=b())!==i&&(p=t,r=function(e){return{fullName:e}}(r)),t=r),t}function b(){var t,r,n;return t=f,64===e.charCodeAt(f)?(r="@",f++):(r=i,B(a)),r!==i&&S()!==i?(47===e.charCodeAt(f)?(n="/",f++):(n=i,B(A)),n!==i&&S()!==i?(p=t,t=r=c()):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=S())!==i&&(p=t,r=c()),t=r),t}function S(){var t,r,n;if(t=f,r=[],u.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(l)),n!==i)for(;n!==i;)r.push(n),u.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(l));else r=i;return r!==i&&(p=t,r=c()),t=r}if((n=s())!==i&&f===e.length)return n;throw n!==i&&f{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return'"'+i(e.text)+'"'},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t>",!1),d=$(">",!1),C=$("<<<",!1),E=$("<",!1),I=$("'",!1),m=$('"',!1),y=function(e){return{type:"text",text:e}},w=$("\\",!1),B={type:"any"},Q=/^[^']/,v=ee(["'"],!0,!1),D=function(e){return e.join("")},b=/^[^$"]/,S=ee(["$",'"'],!0,!1),k=$("$(",!1),x=$("${",!1),F=$(":-",!1),M=$("}",!1),N=$(":-}",!1),R=function(e){return{name:e}},K=$("$",!1),L=/^[a-zA-Z0-9_]/,T=ee([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),P=function(){return e.substring(z,q)},U=/^[@*?#a-zA-Z0-9_\-]/,_=ee(["@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),O=/^[(){}<>$|&; \t"']/,j=ee(["(",")","{","}","<",">","$","|","&",";"," ","\t",'"',"'"],!1,!1),Y=/^[<>&; \t"']/,G=ee(["<",">","&",";"," ","\t",'"',"'"],!1,!1),J=/^[ \t]/,H=ee([" ","\t"],!1,!1),q=0,z=0,W=[{line:1,column:1}],V=0,X=[],Z=0;if("startRule"in r){if(!(r.startRule in o))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=o[r.startRule]}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function ee(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function te(t){var r,n=W[t];if(n)return n;for(r=t-1;!W[r];)r--;for(n={line:(n=W[r]).line,column:n.column};rV&&(V=q,X=[]),X.push(e))}function ie(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function oe(){var e,t;return e=q,(t=se())===i&&(t=null),t!==i&&(z=e,t=t||[]),e=t}function se(){var t,r,n;return t=q,(r=Ae())!==i?((n=function(){var t,r,n,o,s,a,c;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if(59===e.charCodeAt(q)?(n=";",q++):(n=i,0===Z&&ne(A)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=se())!==i){for(a=[],c=Be();c!==i;)a.push(c),c=Be();a!==i?(z=t,t=r=s):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,t=r=[r].concat(n||[])):(q=t,t=i)):(q=t,t=i),t}function Ae(){var t,r,n,o,s;return t=q,(r=ae())!==i?((n=function(){var t,r,n,o,s,A,u;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if((n=function(){var t;"&&"===e.substr(q,2)?(t="&&",q+=2):(t=i,0===Z&&ne(a));t===i&&("||"===e.substr(q,2)?(t="||",q+=2):(t=i,0===Z&&ne(c)));return t}())!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=Ae())!==i){for(A=[],u=Be();u!==i;)A.push(u),u=Be();A!==i?(z=t,t=r={type:n,line:s}):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,o=r,t=r=(s=n)?{chain:o,then:s}:{chain:o}):(q=t,t=i)):(q=t,t=i),t}function ae(){var t,r,n,o,s;return t=q,(r=function(){var t,r,n,o,s,A,a,c,u,l,h;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if(40===e.charCodeAt(q)?(n="(",q++):(n=i,0===Z&&ne(g)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=se())!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();if(A!==i)if(41===e.charCodeAt(q)?(a=")",q++):(a=i,0===Z&&ne(f)),a!==i){for(c=[],u=Be();u!==i;)c.push(u),u=Be();if(c!==i){for(u=[],l=le();l!==i;)u.push(l),l=le();if(u!==i){for(l=[],h=Be();h!==i;)l.push(h),h=Be();l!==i?(z=t,t=r={type:"subshell",subshell:s,args:u}):(q=t,t=i)}else q=t,t=i}else q=t,t=i}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;if(t===i){for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();if(r!==i){for(n=[],o=ce();o!==i;)n.push(o),o=ce();if(n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i){if(s=[],(A=ue())!==i)for(;A!==i;)s.push(A),A=ue();else s=i;if(s!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();A!==i?(z=t,r=function(e,t){return{type:"command",args:t,envs:e}}(n,s),t=r):(q=t,t=i)}else q=t,t=i}else q=t,t=i}else q=t,t=i}else q=t,t=i;if(t===i){for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();if(r!==i){if(n=[],(o=ce())!==i)for(;o!==i;)n.push(o),o=ce();else n=i;if(n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();o!==i?(z=t,t=r={type:"envs",envs:n}):(q=t,t=i)}else q=t,t=i}else q=t,t=i}}return t}())!==i?((n=function(){var t,r,n,o,s,A,a;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if((n=function(){var t;"|&"===e.substr(q,2)?(t="|&",q+=2):(t=i,0===Z&&ne(u));t===i&&(124===e.charCodeAt(q)?(t="|",q++):(t=i,0===Z&&ne(l)));return t}())!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=ae())!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();A!==i?(z=t,t=r={type:n,chain:s}):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,o=r,t=r=(s=n)?{...o,then:s}:o):(q=t,t=i)):(q=t,t=i),t}function ce(){var t,r,n,o,s,A;if(t=q,(r=Ie())!==i)if(61===e.charCodeAt(q)?(n="=",q++):(n=i,0===Z&&ne(h)),n!==i)if((o=ge())!==i){for(s=[],A=Be();A!==i;)s.push(A),A=Be();s!==i?(z=t,t=r={name:r,args:[o]}):(q=t,t=i)}else q=t,t=i;else q=t,t=i;else q=t,t=i;if(t===i)if(t=q,(r=Ie())!==i)if(61===e.charCodeAt(q)?(n="=",q++):(n=i,0===Z&&ne(h)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();o!==i?(z=t,t=r=function(e){return{name:e,args:[]}}(r)):(q=t,t=i)}else q=t,t=i;else q=t,t=i;return t}function ue(){var e,t,r;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();if(t!==i&&(r=le())!==i?(z=e,e=t=r):(q=e,e=i),e===i){for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();t!==i&&(r=he())!==i?(z=e,e=t=r):(q=e,e=i)}return e}function le(){var t,r,n,o;for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();return r!==i?(">>"===e.substr(q,2)?(n=">>",q+=2):(n=i,0===Z&&ne(p)),n===i&&(62===e.charCodeAt(q)?(n=">",q++):(n=i,0===Z&&ne(d)),n===i&&("<<<"===e.substr(q,3)?(n="<<<",q+=3):(n=i,0===Z&&ne(C)),n===i&&(60===e.charCodeAt(q)?(n="<",q++):(n=i,0===Z&&ne(E))))),n!==i&&(o=he())!==i?(z=t,t=r={type:"redirection",subtype:n,args:[o]}):(q=t,t=i)):(q=t,t=i),t}function he(){var e,t,r;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();return t!==i&&(r=ge())!==i?(z=e,e=t=r):(q=e,e=i),e}function ge(){var e,t,r,n;if(e=q,t=[],(r=fe())!==i)for(;r!==i;)t.push(r),r=fe();else t=i;return t!==i&&(z=e,n=t,t={type:"argument",segments:[].concat(...n)}),e=t}function fe(){var t,r;return t=q,(r=function(){var t,r,n,o;t=q,39===e.charCodeAt(q)?(r="'",q++):(r=i,0===Z&&ne(I));r!==i&&(n=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(Q.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(v)));for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(Q.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(v)));r!==i&&(z=t,r=D(r));return t=r}())!==i?(39===e.charCodeAt(q)?(o="'",q++):(o=i,0===Z&&ne(I)),o!==i?(z=t,r=function(e){return[{type:"text",text:e}]}(n),t=r):(q=t,t=i)):(q=t,t=i);return t}())!==i&&(z=t,r=r),(t=r)===i&&(t=q,(r=function(){var t,r,n,o;t=q,34===e.charCodeAt(q)?(r='"',q++):(r=i,0===Z&&ne(m));if(r!==i){for(n=[],o=pe();o!==i;)n.push(o),o=pe();n!==i?(34===e.charCodeAt(q)?(o='"',q++):(o=i,0===Z&&ne(m)),o!==i?(z=t,t=r=n):(q=t,t=i)):(q=t,t=i)}else q=t,t=i;return t}())!==i&&(z=t,r=r),(t=r)===i&&(t=q,(r=function(){var e,t,r;if(e=q,t=[],(r=de())!==i)for(;r!==i;)t.push(r),r=de();else t=i;t!==i&&(z=e,t=t);return e=t}())!==i&&(z=t,r=r),t=r)),t}function pe(){var t,r,n;return t=q,(r=Ce())!==i&&(z=t,r={type:"shell",shell:r,quoted:!0}),(t=r)===i&&(t=q,(r=Ee())!==i&&(z=t,n=r,r={type:"variable",...n,quoted:!0}),(t=r)===i&&(t=q,(r=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(b.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(S)));if(n!==i)for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(b.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(S)));else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i&&(z=t,r=y(r)),t=r)),t}function de(){var t,n,o;return t=q,(n=Ce())!==i&&(z=t,n={type:"shell",shell:n,quoted:!1}),(t=n)===i&&(t=q,(n=Ee())!==i&&(z=t,o=n,n={type:"variable",...o,quoted:!1}),(t=n)===i&&(t=q,(n=function(){var t,n;t=q,(n=function(){var t,r,n,o,s;t=q,r=[],n=q,o=q,Z++,s=we(),Z--,s===i?o=void 0:(q=o,o=i);o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);if(n!==i)for(;n!==i;)r.push(n),n=q,o=q,Z++,s=we(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i?(z=q,o=n,(r.isGlobPattern(o)?void 0:i)!==i?(z=t,t=n=n):(q=t,t=i)):(q=t,t=i);var o;return t}())!==i&&(z=t,n={type:"glob",pattern:n}),(t=n)===i&&(t=q,(n=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(n=q,o=q,Z++,s=ye(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i));if(n!==i)for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(n=q,o=q,Z++,s=ye(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i));else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i&&(z=t,n=y(n)),t=n))),t}function Ce(){var t,r,n,o;return t=q,"$("===e.substr(q,2)?(r="$(",q+=2):(r=i,0===Z&&ne(k)),r!==i&&(n=se())!==i?(41===e.charCodeAt(q)?(o=")",q++):(o=i,0===Z&&ne(f)),o!==i?(z=t,t=r=n):(q=t,t=i)):(q=t,t=i),t}function Ee(){var t,r,n,o,s,A;return t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(":-"===e.substr(q,2)?(o=":-",q+=2):(o=i,0===Z&&ne(F)),o!==i&&(s=function(){var e,t,r,n,o;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();if(t!==i){if(r=[],(n=he())!==i)for(;n!==i;)r.push(n),n=he();else r=i;if(r!==i){for(n=[],o=Be();o!==i;)n.push(o),o=Be();n!==i?(z=e,e=t=r):(q=e,e=i)}else q=e,e=i}else q=e,e=i;return e}())!==i?(125===e.charCodeAt(q)?(A="}",q++):(A=i,0===Z&&ne(M)),A!==i?(z=t,t=r={name:n,defaultValue:s}):(q=t,t=i)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(":-}"===e.substr(q,3)?(o=":-}",q+=3):(o=i,0===Z&&ne(N)),o!==i?(z=t,t=r=function(e){return{name:e,defaultValue:[]}}(n)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(125===e.charCodeAt(q)?(o="}",q++):(o=i,0===Z&&ne(M)),o!==i?(z=t,t=r=R(n)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,36===e.charCodeAt(q)?(r="$",q++):(r=i,0===Z&&ne(K)),r!==i&&(n=me())!==i?(z=t,t=r=R(n)):(q=t,t=i)))),t}function Ie(){var t,r,n;if(t=q,r=[],L.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(T)),n!==i)for(;n!==i;)r.push(n),L.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(T));else r=i;return r!==i&&(z=t,r=P()),t=r}function me(){var t,r,n;if(t=q,r=[],U.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(_)),n!==i)for(;n!==i;)r.push(n),U.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(_));else r=i;return r!==i&&(z=t,r=P()),t=r}function ye(){var t;return O.test(e.charAt(q))?(t=e.charAt(q),q++):(t=i,0===Z&&ne(j)),t}function we(){var t;return Y.test(e.charAt(q))?(t=e.charAt(q),q++):(t=i,0===Z&&ne(G)),t}function Be(){var t,r;if(t=[],J.test(e.charAt(q))?(r=e.charAt(q),q++):(r=i,0===Z&&ne(H)),r!==i)for(;r!==i;)t.push(r),J.test(e.charAt(q))?(r=e.charAt(q),q++):(r=i,0===Z&&ne(H));else t=i;return t}if((n=s())!==i&&q===e.length)return n;throw n!==i&&q{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t'"%@`\-]/,E=oe(["\r","\n","\t"," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),I=/^[^\r\n\t ,\][{}:#"']/,m=oe(["\r","\n","\t"," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),y=function(){return ne().replace(/^ *| *$/g,"")},w=ie("--",!1),B=/^[a-zA-Z\/0-9]/,Q=oe([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),v=/^[^\r\n\t :,]/,D=oe(["\r","\n","\t"," ",":",","],!0,!1),b=ie("null",!1),S=ie("true",!1),k=ie("false",!1),x=se("string"),F=ie('"',!1),M=/^[^"\\\0-\x1F\x7F]/,N=oe(['"',"\\",["\0",""],""],!0,!1),R=ie('\\"',!1),K=ie("\\\\",!1),L=ie("\\/",!1),T=ie("\\b",!1),P=ie("\\f",!1),U=ie("\\n",!1),_=ie("\\r",!1),O=ie("\\t",!1),j=ie("\\u",!1),Y=/^[0-9a-fA-F]/,G=oe([["0","9"],["a","f"],["A","F"]],!1,!1),J=se("blank space"),H=/^[ \t]/,q=oe([" ","\t"],!1,!1),z=(se("white space"),oe([" ","\t","\n","\r"],!1,!1),ie("\r\n",!1)),W=ie("\n",!1),V=ie("\r",!1),X=0,Z=0,$=[{line:1,column:1}],ee=0,te=[],re=0;if("startRule"in r){if(!(r.startRule in o))throw new Error(`Can't start parsing from rule "${r.startRule}".`);s=o[r.startRule]}function ne(){return e.substring(Z,X)}function ie(e,t){return{type:"literal",text:e,ignoreCase:t}}function oe(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function se(e){return{type:"other",description:e}}function Ae(t){var r,n=$[t];if(n)return n;for(r=t-1;!$[r];)r--;for(n={line:(n=$[r]).line,column:n.column};ree&&(ee=X,te=[]),te.push(e))}function ue(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function le(){return ge()}function he(){var t,r,n;return t=X,de()!==i?(45===e.charCodeAt(X)?(r="-",X++):(r=i,0===re&&ce(A)),r!==i&&De()!==i&&(n=pe())!==i?(Z=t,t=n):(X=t,t=i)):(X=t,t=i),t}function ge(){var e,t,r,n;for(e=X,t=[],r=fe();r!==i;)t.push(r),r=fe();return t!==i&&(Z=e,n=t,t=Object.assign({},...n)),e=t}function fe(){var t,r,n,o,s,A,f,p,d,C,E,I;if(t=X,(r=De())===i&&(r=null),r!==i){if(n=X,35===e.charCodeAt(X)?(o="#",X++):(o=i,0===re&&ce(a)),o!==i){if(s=[],A=X,f=X,re++,p=Se(),re--,p===i?f=void 0:(X=f,f=i),f!==i?(e.length>X?(p=e.charAt(X),X++):(p=i,0===re&&ce(c)),p!==i?A=f=[f,p]:(X=A,A=i)):(X=A,A=i),A!==i)for(;A!==i;)s.push(A),A=X,f=X,re++,p=Se(),re--,p===i?f=void 0:(X=f,f=i),f!==i?(e.length>X?(p=e.charAt(X),X++):(p=i,0===re&&ce(c)),p!==i?A=f=[f,p]:(X=A,A=i)):(X=A,A=i);else s=i;s!==i?n=o=[o,s]:(X=n,n=i)}else X=n,n=i;if(n===i&&(n=null),n!==i){if(o=[],(s=be())!==i)for(;s!==i;)o.push(s),s=be();else o=i;o!==i?(Z=t,t=r={}):(X=t,t=i)}else X=t,t=i}else X=t,t=i;if(t===i&&(t=X,(r=de())!==i&&(n=function(){var e;(e=Be())===i&&(e=me());return e}())!==i?((o=De())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(u)),s!==i?((A=De())===i&&(A=null),A!==i&&(f=pe())!==i?(Z=t,t=r=l(n,f)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,(r=de())!==i&&(n=Ie())!==i?((o=De())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(u)),s!==i?((A=De())===i&&(A=null),A!==i&&(f=pe())!==i?(Z=t,t=r=l(n,f)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i))){if(t=X,(r=de())!==i)if((n=Ie())!==i)if((o=De())!==i)if((s=function(){var e;(e=we())===i&&(e=Be())===i&&(e=ye());return e}())!==i){if(A=[],(f=be())!==i)for(;f!==i;)A.push(f),f=be();else A=i;A!==i?(Z=t,t=r=l(n,s)):(X=t,t=i)}else X=t,t=i;else X=t,t=i;else X=t,t=i;else X=t,t=i;if(t===i)if(t=X,(r=de())!==i)if((n=Ie())!==i){if(o=[],s=X,(A=De())===i&&(A=null),A!==i?(44===e.charCodeAt(X)?(f=",",X++):(f=i,0===re&&ce(h)),f!==i?((p=De())===i&&(p=null),p!==i&&(d=Ie())!==i?(Z=s,s=A=g(0,d)):(X=s,s=i)):(X=s,s=i)):(X=s,s=i),s!==i)for(;s!==i;)o.push(s),s=X,(A=De())===i&&(A=null),A!==i?(44===e.charCodeAt(X)?(f=",",X++):(f=i,0===re&&ce(h)),f!==i?((p=De())===i&&(p=null),p!==i&&(d=Ie())!==i?(Z=s,s=A=g(0,d)):(X=s,s=i)):(X=s,s=i)):(X=s,s=i);else o=i;o!==i?((s=De())===i&&(s=null),s!==i?(58===e.charCodeAt(X)?(A=":",X++):(A=i,0===re&&ce(u)),A!==i?((f=De())===i&&(f=null),f!==i&&(p=pe())!==i?(Z=t,C=n,E=o,I=p,t=r=Object.assign({},...[C].concat(E).map(e=>({[e]:I})))):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)}else X=t,t=i;else X=t,t=i}return t}function pe(){var t,r,n,o,s,a,c;if(t=X,r=X,re++,n=X,(o=Se())!==i&&(s=function(){var t,r,n;t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));for(;n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));r!==i?(Z=X,(n=(n=r.length===(xe+1)*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i);return t}())!==i?(45===e.charCodeAt(X)?(a="-",X++):(a=i,0===re&&ce(A)),a!==i&&(c=De())!==i?n=o=[o,s,a,c]:(X=n,n=i)):(X=n,n=i),re--,n!==i?(X=r,r=void 0):r=i,r!==i&&(n=be())!==i&&(o=Ce())!==i&&(s=function(){var e,t,r,n;for(e=X,t=[],r=he();r!==i;)t.push(r),r=he();return t!==i&&(Z=e,n=t,t=[].concat(...n)),e=t}())!==i&&(a=Ee())!==i?(Z=t,t=r=s):(X=t,t=i),t===i&&(t=X,(r=Se())!==i&&(n=Ce())!==i&&(o=ge())!==i&&(s=Ee())!==i?(Z=t,t=r=o):(X=t,t=i),t===i))if(t=X,(r=function(){var t;(t=we())===i&&(t=function(){var t,r;t=X,"true"===e.substr(X,4)?(r="true",X+=4):(r=i,0===re&&ce(S));r!==i&&(Z=t,r=!0);(t=r)===i&&(t=X,"false"===e.substr(X,5)?(r="false",X+=5):(r=i,0===re&&ce(k)),r!==i&&(Z=t,r=!1),t=r);return t}())===i&&(t=Be())===i&&(t=me());return t}())!==i){if(n=[],(o=be())!==i)for(;o!==i;)n.push(o),o=be();else n=i;n!==i?(Z=t,t=r=r):(X=t,t=i)}else X=t,t=i;return t}function de(){var t,r,n;for(re++,t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));return r!==i?(Z=X,(n=(n=r.length===xe*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i),re--,t===i&&(r=i,0===re&&ce(f)),t}function Ce(){return Z=X,xe++,!0?void 0:i}function Ee(){return Z=X,xe--,!0?void 0:i}function Ie(){var e,t,r;if((e=Be())===i){if(e=X,t=[],(r=ye())!==i)for(;r!==i;)t.push(r),r=ye();else t=i;t!==i&&(Z=e,t=ne()),e=t}return e}function me(){var t,r,n,o,s,A;if(re++,t=X,C.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(E)),r!==i){for(n=[],o=X,(s=De())===i&&(s=null),s!==i?(I.test(e.charAt(X))?(A=e.charAt(X),X++):(A=i,0===re&&ce(m)),A!==i?o=s=[s,A]:(X=o,o=i)):(X=o,o=i);o!==i;)n.push(o),o=X,(s=De())===i&&(s=null),s!==i?(I.test(e.charAt(X))?(A=e.charAt(X),X++):(A=i,0===re&&ce(m)),A!==i?o=s=[s,A]:(X=o,o=i)):(X=o,o=i);n!==i?(Z=t,t=r=y()):(X=t,t=i)}else X=t,t=i;return re--,t===i&&(r=i,0===re&&ce(d)),t}function ye(){var t,r,n,o,s;if(t=X,"--"===e.substr(X,2)?(r="--",X+=2):(r=i,0===re&&ce(w)),r===i&&(r=null),r!==i)if(B.test(e.charAt(X))?(n=e.charAt(X),X++):(n=i,0===re&&ce(Q)),n!==i){for(o=[],v.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(D));s!==i;)o.push(s),v.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(D));o!==i?(Z=t,t=r=y()):(X=t,t=i)}else X=t,t=i;else X=t,t=i;return t}function we(){var t,r;return t=X,"null"===e.substr(X,4)?(r="null",X+=4):(r=i,0===re&&ce(b)),r!==i&&(Z=t,r=null),t=r}function Be(){var t,r,n,o;return re++,t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(F)),r!==i?(34===e.charCodeAt(X)?(n='"',X++):(n=i,0===re&&ce(F)),n!==i?(Z=t,t=r=""):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(F)),r!==i&&(n=function(){var e,t,r;if(e=X,t=[],(r=Qe())!==i)for(;r!==i;)t.push(r),r=Qe();else t=i;t!==i&&(Z=e,t=t.join(""));return e=t}())!==i?(34===e.charCodeAt(X)?(o='"',X++):(o=i,0===re&&ce(F)),o!==i?(Z=t,t=r=n):(X=t,t=i)):(X=t,t=i)),re--,t===i&&(r=i,0===re&&ce(x)),t}function Qe(){var t,r,n,o,s,A,a,c,u,l;return M.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(N)),t===i&&(t=X,'\\"'===e.substr(X,2)?(r='\\"',X+=2):(r=i,0===re&&ce(R)),r!==i&&(Z=t,r='"'),(t=r)===i&&(t=X,"\\\\"===e.substr(X,2)?(r="\\\\",X+=2):(r=i,0===re&&ce(K)),r!==i&&(Z=t,r="\\"),(t=r)===i&&(t=X,"\\/"===e.substr(X,2)?(r="\\/",X+=2):(r=i,0===re&&ce(L)),r!==i&&(Z=t,r="/"),(t=r)===i&&(t=X,"\\b"===e.substr(X,2)?(r="\\b",X+=2):(r=i,0===re&&ce(T)),r!==i&&(Z=t,r="\b"),(t=r)===i&&(t=X,"\\f"===e.substr(X,2)?(r="\\f",X+=2):(r=i,0===re&&ce(P)),r!==i&&(Z=t,r="\f"),(t=r)===i&&(t=X,"\\n"===e.substr(X,2)?(r="\\n",X+=2):(r=i,0===re&&ce(U)),r!==i&&(Z=t,r="\n"),(t=r)===i&&(t=X,"\\r"===e.substr(X,2)?(r="\\r",X+=2):(r=i,0===re&&ce(_)),r!==i&&(Z=t,r="\r"),(t=r)===i&&(t=X,"\\t"===e.substr(X,2)?(r="\\t",X+=2):(r=i,0===re&&ce(O)),r!==i&&(Z=t,r="\t"),(t=r)===i&&(t=X,"\\u"===e.substr(X,2)?(r="\\u",X+=2):(r=i,0===re&&ce(j)),r!==i&&(n=ve())!==i&&(o=ve())!==i&&(s=ve())!==i&&(A=ve())!==i?(Z=t,a=n,c=o,u=s,l=A,t=r=String.fromCharCode(parseInt(`0x${a}${c}${u}${l}`))):(X=t,t=i)))))))))),t}function ve(){var t;return Y.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(G)),t}function De(){var t,r;if(re++,t=[],H.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q)),r!==i)for(;r!==i;)t.push(r),H.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q));else t=i;return re--,t===i&&(r=i,0===re&&ce(J)),t}function be(){var e,t,r,n,o,s;if(e=X,(t=Se())!==i){for(r=[],n=X,(o=De())===i&&(o=null),o!==i&&(s=Se())!==i?n=o=[o,s]:(X=n,n=i);n!==i;)r.push(n),n=X,(o=De())===i&&(o=null),o!==i&&(s=Se())!==i?n=o=[o,s]:(X=n,n=i);r!==i?e=t=[t,r]:(X=e,e=i)}else X=e,e=i;return e}function Se(){var t;return"\r\n"===e.substr(X,2)?(t="\r\n",X+=2):(t=i,0===re&&ce(z)),t===i&&(10===e.charCodeAt(X)?(t="\n",X++):(t=i,0===re&&ce(W)),t===i&&(13===e.charCodeAt(X)?(t="\r",X++):(t=i,0===re&&ce(V)))),t}const ke=2;let xe=0;if((n=s())!==i&&X===e.length)return n;throw n!==i&&X{e.exports=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString()},75418:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/shell"}')},42357:e=>{"use strict";e.exports=require("assert")},64293:e=>{"use strict";e.exports=require("buffer")},63129:e=>{"use strict";e.exports=require("child_process")},27619:e=>{"use strict";e.exports=require("constants")},76417:e=>{"use strict";e.exports=require("crypto")},40881:e=>{"use strict";e.exports=require("dns")},28614:e=>{"use strict";e.exports=require("events")},35747:e=>{"use strict";e.exports=require("fs")},98605:e=>{"use strict";e.exports=require("http")},97565:e=>{"use strict";e.exports=require("http2")},57211:e=>{"use strict";e.exports=require("https")},32282:e=>{"use strict";e.exports=require("module")},11631:e=>{"use strict";e.exports=require("net")},12087:e=>{"use strict";e.exports=require("os")},85622:e=>{"use strict";e.exports=require("path")},71191:e=>{"use strict";e.exports=require("querystring")},51058:e=>{"use strict";e.exports=require("readline")},92413:e=>{"use strict";e.exports=require("stream")},24304:e=>{"use strict";e.exports=require("string_decoder")},4016:e=>{"use strict";e.exports=require("tls")},33867:e=>{"use strict";e.exports=require("tty")},78835:e=>{"use strict";e.exports=require("url")},31669:e=>{"use strict";e.exports=require("util")},68987:e=>{"use strict";e.exports=require("v8")},92184:e=>{"use strict";e.exports=require("vm")},78761:e=>{"use strict";e.exports=require("zlib")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(28638)})(); \ No newline at end of file diff --git a/tgui/.yarnrc.yml b/tgui/.yarnrc.yml new file mode 100644 index 0000000000..cecb449dd1 --- /dev/null +++ b/tgui/.yarnrc.yml @@ -0,0 +1 @@ +yarnPath: ".yarn/releases/yarn-berry.js" diff --git a/tgui/README.md b/tgui/README.md index 9eab0196de..5efd4b14b3 100644 --- a/tgui/README.md +++ b/tgui/README.md @@ -37,30 +37,41 @@ to translate concepts between old and new tgui, read this You will need these programs to start developing in tgui: -- [Node v12.13+](https://nodejs.org/en/download/) -- [Yarn v1.19+](https://yarnpkg.com/en/docs/install) -- [MSys2](https://www.msys2.org/) (optional) +- [Node v12.18.3+](https://nodejs.org/en/download/) +- [Yarn v1.22.4+](https://yarnpkg.com/en/docs/install) (optional) +- [Git Bash](https://git-scm.com/downloads) + or [MSys2](https://www.msys2.org/) (optional) -> MSys2 closely replicates a unix-like environment which is necessary for -> the `bin/tgui` script to run. It comes with a robust "mintty" terminal -> emulator which is better than any standard Windows shell, it supports -> "git" out of the box (almost like Git for Windows, but better), has -> a "pacman" package manager, and you can install a text editor like "vim" -> for a full boomer experience. +**DO NOT install Chocolatey if Node installer asks you to!** ## Usage -**For MSys2, Git Bash, WSL, Linux or macOS users:** +**For Git Bash, MSys2, WSL, Linux or macOS users:** -First and foremost, change your directory to `tgui`. +Change your directory to `tgui`. -Run `bin/tgui --install-git-hooks` (optional) to install merge drivers -which will assist you in conflict resolution when rebasing your branches. +Run `bin/tgui --install-git-hooks` to install merge drivers which will +assist you in conflict resolution when rebasing your branches. Only has +to be done once. -Run one of the following: +Run `bin/tgui` with any of the options listed below. -- `bin/tgui` - build the project in production mode. -- `bin/tgui --dev` - launch a development server. +**For Windows CMD or PowerShell users:** + +If you haven't opened the console already, you can do that by holding +Shift and right clicking on the `tgui` folder, then pressing +either `Open command window here` or `Open PowerShell window here`. + +Run `.\bin\tgui.bat` with any of the options listed below. + +> If using PowerShell, you will receive errors if trying to run +> `.\bin\tgui.ps1`, because default Windows policy does not allow direct +> execution of PS1 scripts. Run `.\bin\tgui.bat` instead. + +**Available commands:** + +- `bin/tgui` - Build the project in production mode. +- `bin/tgui --dev` - Launch a development server. - tgui development server provides you with incremental compilation, hot module replacement and logging facilities in all running instances of tgui. In short, this means that you will instantly see changes in the @@ -70,36 +81,23 @@ Run one of the following: in the lobby. Start tgui dev server, and once it has finished building, press F5 on any tgui window. You'll know that it's hooked correctly if you see a green bug icon in titlebar and data gets dumped to the console. -- `bin/tgui --dev --reload` - reload byond cache once. -- `bin/tgui --dev --debug` - run server with debug logging enabled. -- `bin/tgui --dev --no-hot` - disable hot module replacement (helps when +- `bin/tgui --dev --reload` - Reload byond cache once. +- `bin/tgui --dev --debug` - Run server with debug logging enabled. +- `bin/tgui --dev --no-hot` - Disable hot module replacement (helps when doing development on IE8). -- `bin/tgui --lint` - show problems with the code. -- `bin/tgui --lint --fix` - auto-fix problems with the code. -- `bin/tgui --analyze` - run a bundle analyzer. -- `bin/tgui --clean` - clean up project repo. -- `bin/tgui [webpack options]` - build the project with custom webpack +- `bin/tgui --lint` - Show problems with the code. +- `bin/tgui --fix` - Auto-fix problems with the code. +- `bin/tgui --analyze` - Run a bundle analyzer. +- `bin/tgui --clean` - Clean up project repo. +- `bin/tgui [webpack options]` - Build the project with custom webpack options. -**For everyone else:** +**For virgins:** -If you haven't opened the console already, you can do that by holding -Shift and right clicking on the `tgui` folder, then pressing -either `Open command window here` or `Open PowerShell window here`. +You can double-click these batch files to achieve the same thing: -Run `yarn install` to install npm dependencies, then one of the following: - -- `yarn run build` - build the project in production mode. -- `yarn run watch` - launch a development server. -- `yarn run lint` - show problems with the code. -- `yarn run lint --fix` - auto-fix problems with the code. -- `yarn run analyze` - run a bundle analyzer. - -We also got some batch files in store, for those who don't like fiddling -with the console: - -- `bin/tgui-build.bat` - build the project in production mode. -- `bin/tgui-dev-server.bat` - launch a development server. +- `bin\tgui.bat` - Build the project in production mode. +- `bin\tgui-dev-server.bat` - Launch a development server. > Remember to always run a full build before submitting a PR. It creates > a compressed javascript bundle which is then referenced from DM code. @@ -108,22 +106,26 @@ with the console: ## Troubleshooting +**Development server is crashing** + +Make sure path to your working directory does not contain spaces or special +unicode characters. If so, move codebase to a location which does not contain +spaces or unicode characters. + +This is a known issue with Yarn Berry, and fix is going to happen someday. + **Development server doesn't find my BYOND cache!** This happens if your Documents folder in Windows has a custom location, for -example in `E:\Libraries\Documents`. Development server has no knowledge -of these non-standard locations, therefore you have to run the dev server -with an additional environmental variable, with a full path to BYOND cache. +example in `E:\Libraries\Documents`. Development server tries its best to find +this non-standard location (searches for a Windows Registry key), but it can +fail. You have to run the dev server with an additional environmental +variable, with a full path to BYOND cache. ``` -export BYOND_CACHE="E:/Libraries/Documents/BYOND/cache" -bin/tgui --dev +BYOND_CACHE="E:/Libraries/Documents/BYOND/cache" ``` -Note that in Windows, you have to go through Advanced System Settings, -System Properties and then open Environment Variables window to do the -same thing. You may need to reboot after this. - ## Developer Tools When developing with `tgui-dev-server`, you will have access to certain diff --git a/tgui/bin/tgui b/tgui/bin/tgui index 97a86159e6..e3c7d1e95a 100755 --- a/tgui/bin/tgui +++ b/tgui/bin/tgui @@ -1,4 +1,7 @@ #!/bin/bash +## Copyright (c) 2020 Aleksej Komarov +## SPDX-License-Identifier: MIT + set -e shopt -s globstar shopt -s expand_aliases @@ -23,8 +26,10 @@ fi base_dir="$(dirname "$(tgui-realpath "${0}")")/.." base_dir="$(tgui-realpath "${base_dir}")" -## Add locally installed node programs to path -PATH="${PATH}:node_modules/.bin" +## Fall back to running Yarn from the repo +if ! hash yarn 2>/dev/null; then + alias yarn="node '${base_dir}/.yarn/releases/yarn-berry.js'" +fi ## Functions @@ -38,27 +43,37 @@ task-install() { ## Runs webpack task-webpack() { - cd "${base_dir}/packages/tgui" - webpack "${@}" + cd "${base_dir}" + yarn run webpack-cli "${@}" } ## Runs a development server task-dev-server() { - cd "${base_dir}/packages/tgui-dev-server" - exec node --experimental-modules index.js "${@}" + cd "${base_dir}" + yarn node packages/tgui-dev-server/index.esm.js "${@}" } ## Run a linter through all packages task-eslint() { cd "${base_dir}" - eslint ./packages "${@}" + yarn run eslint packages "${@}" echo "tgui: eslint check passed" } ## Mr. Proper task-clean() { cd "${base_dir}" - rm -rf packages/tgui/public/.tmp + ## Build artifacts + rm -rf public/.tmp + rm -f public/*.map + rm -f public/*.hot-update.* + ## Yarn artifacts + rm -rf .yarn/cache + rm -rf .yarn/unplugged + rm -rf .yarn/build-state.yml + rm -rf .yarn/install-state.gz + rm -f .pnp.js + ## NPM artifacts rm -rf **/node_modules rm -f **/package-lock.json } @@ -67,7 +82,7 @@ task-clean() { task-validate-build() { cd "${base_dir}" local diff - diff="$(git diff packages/tgui/public/tgui.bundle.*)" + diff="$(git diff public/*)" if [[ -n ${diff} ]]; then echo "Error: our build differs from the build committed into git." echo "Please rebuild tgui." diff --git a/tgui/bin/tgui-build.bat b/tgui/bin/tgui-build.bat deleted file mode 100644 index 89e1aca915..0000000000 --- a/tgui/bin/tgui-build.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -cd "%~dp0\.." -call yarn install -call yarn run build -timeout /t 9 diff --git a/tgui/bin/tgui-dev-server.bat b/tgui/bin/tgui-dev-server.bat index 1b5bdcfb1d..28c27e6fca 100644 --- a/tgui/bin/tgui-dev-server.bat +++ b/tgui/bin/tgui-dev-server.bat @@ -1,4 +1,9 @@ @echo off -cd "%~dp0\.." -call yarn install -call yarn run watch +rem Copyright (c) 2020 Aleksej Komarov +rem SPDX-License-Identifier: MIT +call powershell.exe -NoLogo -ExecutionPolicy Bypass -File "%~dp0\tgui.ps1" --dev %* +rem Pause if launched in a separate shell unless initiated from powershell +echo %PSModulePath% | findstr %USERPROFILE% >NUL +if %errorlevel% equ 0 exit 0 +echo %cmdcmdline% | find /i "/c" +if %errorlevel% equ 0 pause diff --git a/tgui/bin/tgui.bat b/tgui/bin/tgui.bat new file mode 100644 index 0000000000..d4fa916b51 --- /dev/null +++ b/tgui/bin/tgui.bat @@ -0,0 +1,9 @@ +@echo off +rem Copyright (c) 2020 Aleksej Komarov +rem SPDX-License-Identifier: MIT +call powershell.exe -NoLogo -ExecutionPolicy Bypass -File "%~dp0\tgui.ps1" %* +rem Pause if launched in a separate shell unless initiated from powershell +echo %PSModulePath% | findstr %USERPROFILE% >NUL +if %errorlevel% equ 0 exit 0 +echo %cmdcmdline% | find /i "/c" +if %errorlevel% equ 0 pause diff --git a/tgui/bin/tgui.ps1 b/tgui/bin/tgui.ps1 new file mode 100644 index 0000000000..e3329f4521 --- /dev/null +++ b/tgui/bin/tgui.ps1 @@ -0,0 +1,116 @@ +## Copyright (c) 2020 Aleksej Komarov +## SPDX-License-Identifier: MIT + +## Initial set-up +## -------------------------------------------------------- + +## Normalize current directory +$basedir = Split-Path $MyInvocation.MyCommand.Path +$basedir = Resolve-Path "$($basedir)\.." +Set-Location $basedir +[Environment]::CurrentDirectory = $basedir + + +## Functions +## -------------------------------------------------------- + +function yarn { + node.exe ".yarn\releases\yarn-berry.js" @Args +} + +function Remove-Quiet { + Remove-Item -ErrorAction SilentlyContinue @Args +} + +function task-install { + yarn install +} + +## Runs webpack +function task-webpack { + yarn run webpack-cli @Args +} + +## Runs a development server +function task-dev-server { + yarn node "packages/tgui-dev-server/index.esm.js" @Args +} + +## Run a linter through all packages +function task-eslint { + yarn run eslint packages @Args + Write-Output "tgui: eslint check passed" +} + +## Mr. Proper +function task-clean { + ## Build artifacts + Remove-Quiet -Recurse -Force "public\.tmp" + Remove-Quiet -Force "public\*.map" + Remove-Quiet -Force "public\*.hot-update.*" + ## Yarn artifacts + Remove-Quiet -Recurse -Force ".yarn\cache" + Remove-Quiet -Recurse -Force ".yarn\unplugged" + Remove-Quiet -Recurse -Force ".yarn\build-state.yml" + Remove-Quiet -Recurse -Force ".yarn\install-state.gz" + Remove-Quiet -Force ".pnp.js" + ## NPM artifacts + Get-ChildItem -Path "." -Include "node_modules" -Recurse -File:$false | Remove-Item -Recurse -Force + Remove-Quiet -Force "package-lock.json" +} + + +## Main +## -------------------------------------------------------- + +if ($Args[0] -eq "--clean") { + task-clean + exit 0 +} + +if ($Args[0] -eq "--dev") { + $Rest = $Args | Select-Object -Skip 1 + task-install + task-dev-server @Rest + exit 0 +} + +if ($Args[0] -eq "--lint") { + $Rest = $Args | Select-Object -Skip 1 + task-install + task-eslint @Rest + exit 0 +} + +if ($Args[0] -eq "--lint-harder") { + $Rest = $Args | Select-Object -Skip 1 + task-install + task-eslint -c ".eslintrc-harder.yml" @Rest + exit 0 +} + +if ($Args[0] -eq "--fix") { + $Rest = $Args | Select-Object -Skip 1 + task-install + task-eslint --fix @Rest + exit 0 +} + +## Analyze the bundle +if ($Args[0] -eq "--analyze") { + task-install + task-webpack --mode=production --analyze + exit 0 +} + +## Make a production webpack build +if ($Args.Length -eq 0) { + task-install + task-eslint + task-webpack --mode=production + exit 0 +} + +## Run webpack with custom flags +task-install +task-webpack @Args diff --git a/tgui/docs/component-reference.md b/tgui/docs/component-reference.md index ff1b4e7dfd..4e56377ddc 100644 --- a/tgui/docs/component-reference.md +++ b/tgui/docs/component-reference.md @@ -227,7 +227,7 @@ be truncated with an ellipsis. Be careful however, because this prop breaks the baseline alignment. - `title: string` - A native browser tooltip, which appears when hovering over the button. -- `content/children: any` - Content to render inside the button. +- `children: any` - Content to render inside the button. - `onClick: function` - Called when element is clicked. ### `Button.Checkbox` @@ -258,7 +258,7 @@ commit, while escape cancels. **Props:** - See inherited props: [Box](#box) -- `fluid`: fill availible horizontal space +- `fluid`: fill available horizontal space - `onCommit: (e, value) => void`: function that is called after the user defocuses the input or presses enter - `currentValue: string`: default string to display when the input is shown @@ -275,7 +275,7 @@ interface. Example (button): -```jsx +``` - ``` @@ -625,7 +627,9 @@ to perform some sort of action), there is a way to do that: + )}> Content @@ -643,7 +647,7 @@ to perform some sort of action), there is a way to do that: - `label: string` - Item label. - `color: string` - Sets the color of the text. - `buttons: any` - Buttons to render aside the content. -- `content/children: any` - Content of this labeled item. +- `children: any` - Content of this labeled item. ### `LabeledList.Divider` @@ -748,7 +752,7 @@ percentage and how filled the bar is. - `ranges: { color: [from, to] }` - Applies a `color` to the progress bar based on whether the value lands in the range between `from` and `to`. - `color: string` - Color of the progress bar. -- `content/children: any` - Content to render inside the progress bar. +- `children: any` - Content to render inside the progress bar. ### `Section` @@ -773,7 +777,9 @@ If you want to have a button on the right side of an section title

    + )}> Here you can order supply crates.
    @@ -784,7 +790,10 @@ If you want to have a button on the right side of an section title - `level: number` - Section level in hierarchy. Default is 1, higher number means deeper level of nesting. Must be an integer number. - `buttons: any` - Buttons to render aside the section title. -- `content/children: any` - Content of this section. +- `fill: boolean` - If true, fills all available vertical space. +- `fitted: boolean` - If true, removes all section padding. +- `scrollable: boolean` - Shows or hides the scrollbar. +- `children: any` - Content of this section. ### `Slider` @@ -953,7 +962,7 @@ Usage: **Props:** - `position: string` - Tooltip position. -- `content/children: string` - Content of the tooltip. Must be a plain string. +- `content: string` - Content of the tooltip. Must be a plain string. Fragments or other elements are **not** supported. ## `tgui/layouts` @@ -978,6 +987,7 @@ Example: **Props:** +- See inherited props: [Box](#box) - `className: string` - Applies a CSS class to the element. - `theme: string` - A name of the theme. - For a list of themes, see `packages/tgui/styles/themes`. @@ -995,6 +1005,8 @@ Can be scrollable. **Props:** +- See inherited props: [Box](#box) - `className: string` - Applies a CSS class to the element. +- `fitted: boolean` - If true, removes all padding. - `scrollable: boolean` - Shows or hides the scrollbar. - `children: any` - Main content of your window. diff --git a/tgui/docs/converting-old-tgui-interfaces.md b/tgui/docs/converting-old-tgui-interfaces.md index fe2feebfee..a42724e05c 100644 --- a/tgui/docs/converting-old-tgui-interfaces.md +++ b/tgui/docs/converting-old-tgui-interfaces.md @@ -73,7 +73,6 @@ This might look a bit intimidating compared to the reactive part but it's not as You don't really need to know all this to understand how to use it, but I find it helps with understanding when things go wrong. Ractive conditionals can have an `else` as well - ```ractive {{#if data.condition}} value @@ -117,7 +116,7 @@ and you can mix string literals, values, and tags as well. Ractive has loops for iterating over data and inserting something for each member of an array or object -```ractive +``` {{#each data.list_of_foo}} foo {{number}} is here. {{/each}} @@ -136,7 +135,6 @@ Objects are represented by `{}`, arrays by `[]` `list("bla", "blo")` would become `["bla", "blo"]` and `list("foo" = 1, "bar" = 2)` would become `{"foo": 1, "bar": 2}` First things first, above the `return` of the function you're making the interface in, you're going to want to add something like this - ```jsx const things = data.things || []; ``` @@ -144,7 +142,6 @@ const things = data.things || []; This ensures that you'll never be reading a null entry by mistake. Substitute `{}` for objects as appropriate. If it's an array, you'll want to do this in the template - ```jsx {things.map(thing => ( @@ -190,7 +187,7 @@ const fooArray = toArray(fooObject); Also occasionally you'd see an else: -```ractive +``` {{#each data.potentially_empty_list}} Thing "{{name}}" is in this list! {{else}} @@ -223,7 +220,7 @@ This will be a reference of tgui components and the tgui-next equivalent. Equivalent of `` is `
    ` -```ractive +``` Contents @@ -239,7 +236,7 @@ becomes A feature sometimes used is if `ui-display` has the `button` property, it will contain a `partial` command. This becomes the `buttons` property on `Section`: -```ractive +``` {{#partial button}} // lots more button bullshit here @@ -266,7 +263,7 @@ Very important to note `ui-section` is NOT the equivalent of `Section` `` does not have a direct equivalent, but the closest equivalent is `` -```ractive +``` No Power @@ -296,7 +293,7 @@ Also good to know that if you need the contents of a `LabeledList.Item` to be co `` has a direct equivalent in `` -```ractive +``` Notice stuff! @@ -314,7 +311,7 @@ becomes The equivalent of `ui-button` is `Button` but it works quite a bit differently. -```ractive +``` ; + /** + * Assigns properties to BYOND skin elements. + */ + winset(props: object): void; + /** * Assigns properties to the BYOND skin element. */ @@ -90,6 +95,13 @@ interface ByondType { * Sets a property on the BYOND skin element to a certain value. */ winset(id: string, propName: string, propValue: any): void; -}; + + /** + * Parses BYOND JSON + * + * Uses a special encoding to preverse Infinity and NaN. + */ + parseJson(text: string): any; +} declare const Byond: ByondType; diff --git a/tgui/package.json b/tgui/package.json index 8dd15925b2..c4f08bde36 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -1,19 +1,36 @@ { "private": true, - "name": "tgui", - "version": "3.0.0", + "name": "tgui-workspace", + "version": "4.2.0", "workspaces": [ "packages/*" ], - "scripts": { - "build": "eslint packages && cd packages/tgui && npx webpack --mode=production", - "watch": "cd packages/tgui-dev-server && node --experimental-modules index.js", - "analyze": "cd packages/tgui && npx webpack --mode=production --env.analyze=1", - "lint": "eslint packages" - }, "dependencies": { + "@babel/core": "^7.6.2", + "@babel/plugin-transform-jscript": "^7.2.0", + "@babel/preset-env": "^7.6.2", "babel-eslint": "^10.0.3", + "babel-loader": "^8.0.6", + "babel-plugin-inferno": "^6.1.0", + "babel-plugin-transform-remove-console": "^6.9.4", + "common": "workspace:*", + "css-loader": "^3.2.0", + "cssnano": "^4.1.10", "eslint": "^7.4.0", - "eslint-plugin-react": "^7.17.0" + "eslint-plugin-react": "^7.17.0", + "extract-css-chunks-webpack-plugin": "^4.6.0", + "file-loader": "^6.0.0", + "inferno": "^7.4.2", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "pnp-webpack-plugin": "^1.6.4", + "sass": "^1.22.12", + "sass-loader": "^9.0.2", + "style-loader": "^1.0.0", + "terser-webpack-plugin": "^3.0.6", + "url-loader": "^4.1.0", + "webpack": "^4.40.2", + "webpack-build-notifier": "^2.0.0", + "webpack-bundle-analyzer": "^3.5.1", + "webpack-cli": "^3.3.12" } } diff --git a/tgui/packages/common/color.js b/tgui/packages/common/color.js new file mode 100644 index 0000000000..510579bc26 --- /dev/null +++ b/tgui/packages/common/color.js @@ -0,0 +1,62 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +const EPSILON = 0.0001; + +export class Color { + constructor(r = 0, g = 0, b = 0, a = 1) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + + toString() { + return `rgba(${this.r | 0}, ${this.g | 0}, ${this.b | 0}, ${this.a | 0})`; + } +} + +/** + * Creates a color from the CSS hex color notation. + */ +Color.fromHex = hex => ( + new Color( + parseInt(hex.substr(1, 2), 16), + parseInt(hex.substr(3, 2), 16), + parseInt(hex.substr(5, 2), 16)) +); + +/** + * Linear interpolation of two colors. + */ +Color.lerp = (c1, c2, n) => ( + new Color( + (c2.r - c1.r) * n + c1.r, + (c2.g - c1.g) * n + c1.g, + (c2.b - c1.b) * n + c1.b, + (c2.a - c1.a) * n + c1.a) +); + +/** + * Loops up the color in the provided list of colors + * with linear interpolation. + */ +Color.lookup = (value, colors = []) => { + const len = colors.length; + if (len < 2) { + throw new Error('Needs at least two colors!'); + } + const scaled = value * (len - 1); + if (value < EPSILON) { + return colors[0]; + } + if (value >= 1 - EPSILON) { + return colors[len - 1]; + } + const ratio = scaled % 1; + const index = scaled | 0; + return Color.lerp(colors[index], colors[index + 1], ratio); +}; diff --git a/tgui/packages/common/events.js b/tgui/packages/common/events.js new file mode 100644 index 0000000000..6d590a3445 --- /dev/null +++ b/tgui/packages/common/events.js @@ -0,0 +1,42 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +export class EventEmitter { + constructor() { + this.listeners = {}; + } + + on(name, listener) { + this.listeners[name] = this.listeners[name] || []; + this.listeners[name].push(listener); + } + + off(name, listener) { + const listeners = this.listeners[name]; + if (!listeners) { + throw new Error(`There is no listeners for "${name}"`); + } + this.listeners[name] = listeners + .filter(existingListener => { + return existingListener !== listener; + }); + } + + emit(name, ...params) { + const listeners = this.listeners[name]; + if (!listeners) { + return; + } + for (let i = 0, len = listeners.length; i < len; i += 1) { + const listener = listeners[i]; + listener(...params); + } + } + + clear() { + this.listeners = {}; + } +} diff --git a/tgui/packages/common/keycodes.js b/tgui/packages/common/keycodes.js new file mode 100644 index 0000000000..8f18b154b5 --- /dev/null +++ b/tgui/packages/common/keycodes.js @@ -0,0 +1,86 @@ +/** + * All possible browser keycodes, in one file. + * + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +export const KEY_BACKSPACE = 8; +export const KEY_TAB = 9; +export const KEY_ENTER = 13; +export const KEY_SHIFT = 16; +export const KEY_CTRL = 17; +export const KEY_ALT = 18; +export const KEY_PAUSE = 19; +export const KEY_CAPSLOCK = 20; +export const KEY_ESCAPE = 27; +export const KEY_SPACE = 32; +export const KEY_PAGEUP = 33; +export const KEY_PAGEDOWN = 34; +export const KEY_END = 35; +export const KEY_HOME = 36; +export const KEY_LEFT = 37; +export const KEY_UP = 38; +export const KEY_RIGHT = 39; +export const KEY_DOWN = 40; +export const KEY_INSERT = 45; +export const KEY_DELETE = 46; +export const KEY_0 = 48; +export const KEY_1 = 49; +export const KEY_2 = 50; +export const KEY_3 = 51; +export const KEY_4 = 52; +export const KEY_5 = 53; +export const KEY_6 = 54; +export const KEY_7 = 55; +export const KEY_8 = 56; +export const KEY_9 = 57; +export const KEY_A = 65; +export const KEY_B = 66; +export const KEY_C = 67; +export const KEY_D = 68; +export const KEY_E = 69; +export const KEY_F = 70; +export const KEY_G = 71; +export const KEY_H = 72; +export const KEY_I = 73; +export const KEY_J = 74; +export const KEY_K = 75; +export const KEY_L = 76; +export const KEY_M = 77; +export const KEY_N = 78; +export const KEY_O = 79; +export const KEY_P = 80; +export const KEY_Q = 81; +export const KEY_R = 82; +export const KEY_S = 83; +export const KEY_T = 84; +export const KEY_U = 85; +export const KEY_V = 86; +export const KEY_W = 87; +export const KEY_X = 88; +export const KEY_Y = 89; +export const KEY_Z = 90; +export const KEY_F1 = 112; +export const KEY_F2 = 113; +export const KEY_F3 = 114; +export const KEY_F4 = 115; +export const KEY_F5 = 116; +export const KEY_F6 = 117; +export const KEY_F7 = 118; +export const KEY_F8 = 119; +export const KEY_F9 = 120; +export const KEY_F10 = 121; +export const KEY_F11 = 122; +export const KEY_F12 = 123; +export const KEY_SEMICOLON = 186; +export const KEY_EQUAL = 187; +export const KEY_COMMA = 188; +export const KEY_MINUS = 189; +export const KEY_PERIOD = 190; +export const KEY_SLASH = 191; +export const KEY_LEFT_BRACKET = 219; +export const KEY_BACKSLASH = 220; +export const KEY_RIGHT_BRACKET = 221; +export const KEY_QUOTE = 222; diff --git a/tgui/packages/common/package.json b/tgui/packages/common/package.json index fbd255abab..3eeb12ca5b 100644 --- a/tgui/packages/common/package.json +++ b/tgui/packages/common/package.json @@ -1,6 +1,5 @@ { "private": true, "name": "common", - "version": "3.0.0", - "type": "module" + "version": "4.2.0" } diff --git a/tgui/packages/common/perf.js b/tgui/packages/common/perf.js index 319b77cea3..8414971f93 100644 --- a/tgui/packages/common/perf.js +++ b/tgui/packages/common/perf.js @@ -1,21 +1,32 @@ /** * Ghetto performance measurement tools. * - * Uses NODE_ENV to redact itself from production bundles. + * Uses NODE_ENV to remove itself from production builds. * * @file * @copyright 2020 Aleksej Komarov * @license MIT */ -let markersByLabel = {}; +const FPS = 60; +const FRAME_DURATION = 1000 / FPS; + +// True if Performance API is supported +const supportsPerf = !!window.performance?.now; +// High precision markers +let hpMarkersByName = {}; +// Low precision markers +let lpMarkersByName = {}; /** * Marks a certain spot in the code for later measurements. */ -const mark = (label, timestamp) => { +const mark = (name, timestamp) => { if (process.env.NODE_ENV !== 'production') { - markersByLabel[label] = timestamp || Date.now(); + if (supportsPerf && !timestamp) { + hpMarkersByName[name] = performance.now(); + } + lpMarkersByName[name] = timestamp || Date.now(); } }; @@ -24,18 +35,23 @@ const mark = (label, timestamp) => { * * Use logger.log() to print the measurement. */ -const measure = (markerA, markerB) => { +const measure = (markerNameA, markerNameB) => { if (process.env.NODE_ENV !== 'production') { - return timeDiff( - markersByLabel[markerA], - markersByLabel[markerB]); + let markerA = hpMarkersByName[markerNameA]; + let markerB = hpMarkersByName[markerNameB]; + if (!markerA || !markerB) { + markerA = lpMarkersByName[markerNameA]; + markerB = lpMarkersByName[markerNameB]; + } + const duration = Math.abs(markerB - markerA); + return formatDuration(duration); } }; -const timeDiff = (startedAt, finishedAt) => { - const diff = Math.abs(finishedAt - startedAt); - const diffFrames = (diff / 16.6667).toFixed(2); - return `${diff}ms (${diffFrames} frames)`; +const formatDuration = duration => { + const durationInFrames = duration / FRAME_DURATION; + return duration.toFixed(duration < 10 ? 1 : 0) + 'ms ' + + '(' + durationInFrames.toFixed(2) + ' frames)'; }; export const perf = { diff --git a/tgui/packages/common/react.js b/tgui/packages/common/react.js index dba84b7b10..c0b24563f1 100644 --- a/tgui/packages/common/react.js +++ b/tgui/packages/common/react.js @@ -64,10 +64,10 @@ export const pureComponentHooks = { }; /** - * A helper to determine whether to render an item. + * A helper to determine whether the object is renderable by React. */ -export const isFalsy = value => { - return value === undefined - || value === null - || value === false; +export const canRender = value => { + return value !== undefined + && value !== null + && typeof value !== 'boolean'; }; diff --git a/tgui/packages/common/redux.js b/tgui/packages/common/redux.js index dc486ff7b8..5348ee3430 100644 --- a/tgui/packages/common/redux.js +++ b/tgui/packages/common/redux.js @@ -26,7 +26,9 @@ export const createStore = (reducer, enhancer) => { const dispatch = action => { currentState = reducer(currentState, action); - listeners.forEach(fn => fn()); + for (let i = 0; i < listeners.length; i++) { + listeners[i](); + } }; // This creates the initial store by causing each reducer to be called @@ -81,7 +83,7 @@ export const applyMiddleware = (...middlewares) => { export const combineReducers = reducersObj => { const keys = Object.keys(reducersObj); let hasChanged = false; - return (prevState, action) => { + return (prevState = {}, action) => { const nextState = { ...prevState }; for (let key of keys) { const reducer = reducersObj[key]; @@ -97,3 +99,55 @@ export const combineReducers = reducersObj => { : prevState; }; }; + +/** + * A utility function to create an action creator for the given action + * type string. The action creator accepts a single argument, which will + * be included in the action object as a field called payload. The action + * creator function will also have its toString() overriden so that it + * returns the action type, allowing it to be used in reducer logic that + * is looking for that action type. + * + * @param type The action type to use for created actions. + * @param prepare (optional) a method that takes any number of arguments + * and returns { payload } or { payload, meta }. If this is given, the + * resulting action creator will pass it's arguments to this method to + * calculate payload & meta. + * + * @public + */ +export const createAction = (type, prepare) => { + const actionCreator = (...args) => { + if (!prepare) { + return { type, payload: args[0] }; + } + const prepared = prepare(...args); + if (!prepared) { + throw new Error('prepare function did not return an object'); + } + const action = { type }; + if ('payload' in prepared) { + action.payload = prepared.payload; + } + if ('meta' in prepared) { + action.meta = prepared.meta; + } + return action; + }; + actionCreator.toString = () => '' + type; + actionCreator.type = type; + actionCreator.match = action => action.type === type; + return actionCreator; +}; + + +// Implementation specific +// -------------------------------------------------------- + +export const useDispatch = context => { + return context.store.dispatch; +}; + +export const useSelector = (context, selector) => { + return selector(context.store.getState()); +}; diff --git a/tgui/packages/common/storage.js b/tgui/packages/common/storage.js index 8e1d2183e4..83dc6d99c1 100644 --- a/tgui/packages/common/storage.js +++ b/tgui/packages/common/storage.js @@ -6,71 +6,190 @@ * @license MIT */ -export const STORAGE_NONE = 0; -export const STORAGE_LOCAL_STORAGE = 1; -export const STORAGE_INDEXED_DB = 2; +export const IMPL_MEMORY = 0; +export const IMPL_LOCAL_STORAGE = 1; +export const IMPL_INDEXED_DB = 2; -const createMock = () => { - let storage = {}; - const get = key => storage[key]; - const set = (key, value) => { - storage[key] = value; - }; - const remove = key => { - storage[key] = undefined; - }; - const clear = () => { - // NOTE: On IE8, this will probably leak memory if used often. - storage = {}; - }; - return { - get, - set, - remove, - clear, - engine: STORAGE_NONE, - }; -}; +const INDEXED_DB_VERSION = 1; +const INDEXED_DB_NAME = 'tgui'; +const INDEXED_DB_STORE_NAME = 'storage-v1'; -const createLocalStorage = () => { - const get = key => { - const value = localStorage.getItem(key); - if (typeof value !== 'string') { - return; - } - return JSON.parse(value); - }; - const set = (key, value) => { - localStorage.setItem(key, JSON.stringify(value)); - }; - const remove = key => { - localStorage.removeItem(key); - }; - const clear = () => { - localStorage.clear(); - }; - return { - get, - set, - remove, - clear, - engine: STORAGE_LOCAL_STORAGE, - }; -}; +const READ_ONLY = 'readonly'; +const READ_WRITE = 'readwrite'; -const testLocalStorage = () => { - // Localstorage can sometimes throw an error, even if DOM storage is not - // disabled in IE11 settings. - // See: https://superuser.com/questions/1080011 +const testGeneric = testFn => () => { try { - return Boolean(window.localStorage && window.localStorage.getItem); + return Boolean(testFn()); } catch { return false; } }; -export const storage = ( - testLocalStorage() && createLocalStorage() - || createMock() -); +// Localstorage can sometimes throw an error, even if DOM storage is not +// disabled in IE11 settings. +// See: https://superuser.com/questions/1080011 +const testLocalStorage = testGeneric(() => ( + window.localStorage && window.localStorage.getItem +)); + +const testIndexedDb = testGeneric(() => ( + (window.indexedDB || window.msIndexedDB) + && (window.IDBTransaction || window.msIDBTransaction) +)); + +class MemoryBackend { + constructor() { + this.impl = IMPL_MEMORY; + this.store = {}; + } + + get(key) { + return this.store[key]; + } + + set(key, value) { + this.store[key] = value; + } + + remove(key) { + this.store[key] = undefined; + } + + clear() { + this.store = {}; + } +} + +class LocalStorageBackend { + constructor() { + this.impl = IMPL_LOCAL_STORAGE; + } + + get(key) { + const value = localStorage.getItem(key); + if (typeof value === 'string') { + return JSON.parse(value); + } + } + + set(key, value) { + localStorage.setItem(key, JSON.stringify(value)); + } + + remove(key) { + localStorage.removeItem(key); + } + + clear() { + localStorage.clear(); + } +} + +class IndexedDbBackend { + constructor() { + this.impl = IMPL_INDEXED_DB; + /** @type {Promise} */ + this.dbPromise = new Promise((resolve, reject) => { + const indexedDB = window.indexedDB || window.msIndexedDB; + const req = indexedDB.open(INDEXED_DB_NAME, INDEXED_DB_VERSION); + req.onupgradeneeded = () => { + try { + req.result.createObjectStore(INDEXED_DB_STORE_NAME); + } + catch (err) { + reject(new Error('Failed to upgrade IDB: ' + req.error)); + } + }; + req.onsuccess = () => resolve(req.result); + req.onerror = () => { + reject(new Error('Failed to open IDB: ' + req.error)); + }; + }); + } + + getStore(mode) { + return this.dbPromise.then(db => db + .transaction(INDEXED_DB_STORE_NAME, mode) + .objectStore(INDEXED_DB_STORE_NAME)); + } + + async get(key) { + const store = await this.getStore(READ_ONLY); + return new Promise((resolve, reject) => { + const req = store.get(key); + req.onsuccess = () => resolve(req.result); + req.onerror = () => reject(req.error); + }); + } + + async set(key, value) { + // The reason we don't _save_ null is because IE 10 does + // not support saving the `null` type in IndexedDB. How + // ironic, given the bug below! + // See: https://github.com/mozilla/localForage/issues/161 + if (value === null) { + value = undefined; + } + // NOTE: We deliberately make this operation transactionless + const store = await this.getStore(READ_WRITE); + store.put(value, key); + } + + async remove(key) { + // NOTE: We deliberately make this operation transactionless + const store = await this.getStore(READ_WRITE); + store.delete(key); + } + + async clear() { + // NOTE: We deliberately make this operation transactionless + const store = await this.getStore(READ_WRITE); + store.clear(); + } +} + +/** + * Web Storage Proxy object, which selects the best backend available + * depending on the environment. + */ +class StorageProxy { + constructor() { + this.backendPromise = (async () => { + if (testIndexedDb()) { + try { + const backend = new IndexedDbBackend(); + await backend.dbPromise; + return backend; + } + catch {} + } + if (testLocalStorage()) { + return new LocalStorageBackend(); + } + return new MemoryBackend(); + })(); + } + + async get(key) { + const backend = await this.backendPromise; + return backend.get(key); + } + + async set(key, value) { + const backend = await this.backendPromise; + return backend.set(key, value); + } + + async remove(key) { + const backend = await this.backendPromise; + return backend.remove(key); + } + + async clear() { + const backend = await this.backendPromise; + return backend.clear(); + } +} + +export const storage = new StorageProxy(); diff --git a/tgui/packages/common/timer.js b/tgui/packages/common/timer.js index f4e26fa5aa..1177071b9c 100644 --- a/tgui/packages/common/timer.js +++ b/tgui/packages/common/timer.js @@ -27,3 +27,12 @@ export const debounce = (fn, time, immediate = false) => { } }; }; + +/** + * Suspends an asynchronous function for N milliseconds. + * + * @param {number} time + */ +export const sleep = time => ( + new Promise(resolve => setTimeout(resolve, time)) +); diff --git a/tgui/packages/common/uuid.js b/tgui/packages/common/uuid.js new file mode 100644 index 0000000000..7721af6494 --- /dev/null +++ b/tgui/packages/common/uuid.js @@ -0,0 +1,19 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +/** + * Creates a UUID v4 string + * + * @return {string} + */ +export const createUuid = () => { + let d = new Date().getTime(); + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + const r = (d + Math.random() * 16) % 16 | 0; + d = Math.floor(d / 16); + return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); + }); +}; diff --git a/tgui/packages/tgui-dev-server/dreamseeker.js b/tgui/packages/tgui-dev-server/dreamseeker.js new file mode 100644 index 0000000000..3a5260ead2 --- /dev/null +++ b/tgui/packages/tgui-dev-server/dreamseeker.js @@ -0,0 +1,99 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import axios from 'axios'; +import { exec } from 'child_process'; +import { createLogger } from 'common/logging.js'; +import { promisify } from 'util'; + +const logger = createLogger('dreamseeker'); + +const instanceByPid = new Map(); + +export class DreamSeeker { + constructor(pid, addr) { + this.pid = pid; + this.addr = addr; + this.client = axios.create({ + baseURL: `http://${addr}/`, + }); + } + + topic(params = {}) { + const query = Object.keys(params) + .map(key => encodeURIComponent(key) + + '=' + encodeURIComponent(params[key])) + .join('&'); + return this.client.get('/dummy?' + query); + } +} + +/** + * @param {number[]} pids + * @returns {DreamSeeker[]} + */ +DreamSeeker.getInstancesByPids = async pids => { + if (process.platform !== 'win32') { + return []; + } + const instances = []; + const pidsToResolve = []; + for (let pid of pids) { + const instance = instanceByPid.get(pid); + if (instance) { + instances.push(instance); + } + else { + pidsToResolve.push(pid); + } + } + if (pidsToResolve.length > 0) { + try { + const command = 'netstat -ano | findstr LISTENING'; + const { stdout } = await promisify(exec)(command, { + // Max buffer of 1MB (default is 200KB) + maxBuffer: 1024 * 1024, + }); + // Line format: + // proto addr mask mode pid + const entries = []; + const lines = stdout.split('\r\n'); + for (let line of lines) { + const words = line.match(/\S+/g); + if (!words || words.length === 0) { + continue; + } + const entry = { + addr: words[1], + pid: parseInt(words[4], 10), + }; + if (pidsToResolve.includes(entry.pid)) { + entries.push(entry); + } + } + const len = entries.length; + logger.log('found', len, plural('instance', len)); + for (let entry of entries) { + const { pid, addr } = entry; + const instance = new DreamSeeker(pid, addr); + instances.push(instance); + instanceByPid.set(pid, instance); + } + } + catch (err) { + if (err.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') { + logger.error(err.message, err.code); + } + else { + logger.error(err); + } + return []; + } + } + return instances; +}; + +const plural = (word, n) => n !== 1 ? word + 's' : word; diff --git a/tgui/packages/tgui-dev-server/index.esm.js b/tgui/packages/tgui-dev-server/index.esm.js new file mode 100644 index 0000000000..903fc9c17c --- /dev/null +++ b/tgui/packages/tgui-dev-server/index.esm.js @@ -0,0 +1,5 @@ +const esmRequire = require('esm')(module, { + cache: false, +}); + +esmRequire('./index.js'); diff --git a/tgui/packages/tgui-dev-server/index.js b/tgui/packages/tgui-dev-server/index.js index f4e8155d29..43acd87474 100644 --- a/tgui/packages/tgui-dev-server/index.js +++ b/tgui/packages/tgui-dev-server/index.js @@ -8,12 +8,15 @@ import { setupWebpack, getWebpackConfig } from './webpack.js'; import { reloadByondCache } from './reloader.js'; const noHot = process.argv.includes('--no-hot'); +const noTmp = process.argv.includes('--no-tmp'); const reloadOnce = process.argv.includes('--reload'); const setupServer = async () => { const config = await getWebpackConfig({ mode: 'development', hot: !noHot, + devServer: true, + useTmpFolder: !noTmp, }); // Reload cache once if (reloadOnce) { diff --git a/tgui/packages/tgui-dev-server/link/client.js b/tgui/packages/tgui-dev-server/link/client.js index 4671b340c5..5a4d2f6112 100644 --- a/tgui/packages/tgui-dev-server/link/client.js +++ b/tgui/packages/tgui-dev-server/link/client.js @@ -37,7 +37,7 @@ if (process.env.NODE_ENV !== 'production') { window.onunload = () => socket && socket.close(); } -const subscribe = fn => subscribers.push(fn); +export const subscribe = fn => subscribers.push(fn); /** * A json serializer which handles circular references and other junk. @@ -68,7 +68,10 @@ const serializeObject = obj => { } refs.push(value); // Error object - if (value instanceof Error) { + const isError = value instanceof Error || ( + value.code && value.message && value.message.includes('Error') + ); + if (isError) { return { __error__: true, string: String(value), @@ -88,7 +91,7 @@ const serializeObject = obj => { return json; }; -const sendRawMessage = msg => { +export const sendMessage = msg => { if (process.env.NODE_ENV !== 'production') { const json = serializeObject(msg); // Send message using WebSocket @@ -109,8 +112,8 @@ const sendRawMessage = msg => { else { const DEV_SERVER_IP = process.env.DEV_SERVER_IP || '127.0.0.1'; const req = new XMLHttpRequest(); - req.open('POST', `http://${DEV_SERVER_IP}:3001`); - req.timeout = 500; + req.open('POST', `http://${DEV_SERVER_IP}:3001`, true); + req.timeout = 250; req.send(json); } } @@ -119,7 +122,7 @@ const sendRawMessage = msg => { export const sendLogEntry = (level, ns, ...args) => { if (process.env.NODE_ENV !== 'production') { try { - sendRawMessage({ + sendMessage({ type: 'log', payload: { level, diff --git a/tgui/packages/tgui-dev-server/link/retrace.js b/tgui/packages/tgui-dev-server/link/retrace.js index e0b17a01d6..c86b40456c 100644 --- a/tgui/packages/tgui-dev-server/link/retrace.js +++ b/tgui/packages/tgui-dev-server/link/retrace.js @@ -8,7 +8,7 @@ import { createLogger } from 'common/logging.js'; import fs from 'fs'; import { basename } from 'path'; import SourceMap from 'source-map'; -import StackTraceParser from 'stacktrace-parser'; +import { parse as parseStackTrace } from 'stacktrace-parser'; import { resolveGlob } from '../util.js'; const logger = createLogger('retrace'); @@ -39,8 +39,12 @@ export const loadSourceMaps = async bundleDir => { }; export const retrace = stack => { + if (typeof stack !== 'string') { + logger.log('ERROR: Stack is not a string!', stack); + return stack; + } const header = stack.split(/\n\s.*at/)[0]; - const mappedStack = StackTraceParser.parse(stack) + const mappedStack = parseStackTrace(stack) .map(frame => { if (!frame.file) { return frame; diff --git a/tgui/packages/tgui-dev-server/link/server.js b/tgui/packages/tgui-dev-server/link/server.js index 94a79c9ad5..2586d77779 100644 --- a/tgui/packages/tgui-dev-server/link/server.js +++ b/tgui/packages/tgui-dev-server/link/server.js @@ -16,37 +16,108 @@ const DEBUG = process.argv.includes('--debug'); export { loadSourceMaps }; -export const setupLink = () => { - logger.log('setting up'); - const wss = setupWebSocketLink(); - setupHttpLink(); - return { - wss, - }; -}; +export const setupLink = () => new LinkServer(); -export const broadcastMessage = (link, msg) => { - const { wss } = link; - const clients = [...wss.clients]; - logger.log(`broadcasting ${msg.type} to ${clients.length} clients`); - for (let client of clients) { - const json = JSON.stringify(msg); - client.send(json); +class LinkServer { + constructor() { + logger.log('setting up'); + this.wss = null; + this.setupWebSocketLink(); + this.setupHttpLink(); } -}; + + // WebSocket-based client link + setupWebSocketLink() { + const port = 3000; + this.wss = new WebSocket.Server({ port }); + this.wss.on('connection', ws => { + logger.log('client connected'); + ws.on('message', json => { + const msg = deserializeObject(json); + this.handleLinkMessage(ws, msg); + }); + ws.on('close', () => { + logger.log('client disconnected'); + }); + }); + logger.log(`listening on port ${port} (WebSocket)`); + } + + // One way HTTP-based client link for IE8 + setupHttpLink() { + const port = 3001; + this.httpServer = http.createServer((req, res) => { + if (req.method === 'POST') { + let body = ''; + req.on('data', chunk => { + body += chunk.toString(); + }); + req.on('end', () => { + const msg = deserializeObject(body); + this.handleLinkMessage(null, msg); + res.end(); + }); + return; + } + res.write('Hello'); + res.end(); + }); + this.httpServer.listen(port); + logger.log(`listening on port ${port} (HTTP)`); + } + + handleLinkMessage(ws, msg) { + const { type, payload } = msg; + if (type === 'log') { + const { level, ns, args } = payload; + // Skip debug messages + if (level <= 0 && !DEBUG) { + return; + } + directLog(ns, ...args.map(arg => { + if (typeof arg === 'object') { + return inspect(arg, { + depth: Infinity, + colors: true, + compact: 8, + }); + } + return arg; + })); + return; + } + if (type === 'relay') { + for (let client of this.wss.clients) { + if (client === ws) { + continue; + } + this.sendMessage(client, msg); + } + return; + } + logger.log('unhandled message', msg); + } + + sendMessage(ws, msg) { + ws.send(JSON.stringify(msg)); + } + + broadcastMessage(msg) { + const clients = [...this.wss.clients]; + if (clients.length === 0) { + return; + } + logger.log(`broadcasting ${msg.type} to ${clients.length} clients`); + for (let client of clients) { + const json = JSON.stringify(msg); + client.send(json); + } + } +} const deserializeObject = str => { return JSON.parse(str, (key, value) => { if (typeof value === 'object' && value !== null) { - if (value.__error__) { - if (!value.stack) { - return value.string; - } - return retrace(value.stack); - } - if (value.__number__) { - return parseFloat(value.__number__); - } if (value.__undefined__) { // NOTE: You should not rely on deserialized object's undefined, // this is purely for inspection purposes. @@ -54,80 +125,17 @@ const deserializeObject = str => { [inspect.custom]: () => undefined, }; } + if (value.__number__) { + return parseFloat(value.__number__); + } + if (value.__error__) { + if (!value.stack) { + return value.string; + } + return retrace(value.stack); + } return value; } return value; }); }; - -const handleLinkMessage = msg => { - const { type, payload } = msg; - - if (type === 'log') { - const { level, ns, args } = payload; - // Skip debug messages - if (level <= 0 && !DEBUG) { - return; - } - directLog(ns, ...args.map(arg => { - if (typeof arg === 'object') { - return inspect(arg, { - depth: Infinity, - colors: true, - compact: 8, - }); - } - return arg; - })); - return; - } - - logger.log('unhandled message', msg); -}; - -// WebSocket-based client link -const setupWebSocketLink = () => { - const port = 3000; - const wss = new WebSocket.Server({ port }); - - wss.on('connection', ws => { - logger.log('client connected'); - - ws.on('message', json => { - const msg = deserializeObject(json); - handleLinkMessage(msg); - }); - - ws.on('close', () => { - logger.log('client disconnected'); - }); - }); - - logger.log(`listening on port ${port} (WebSocket)`); - return wss; -}; - -// One way HTTP-based client link for IE8 -const setupHttpLink = () => { - const port = 3001; - - const server = http.createServer((req, res) => { - if (req.method === 'POST') { - let body = ''; - req.on('data', chunk => { - body += chunk.toString(); - }); - req.on('end', () => { - const msg = deserializeObject(body); - handleLinkMessage(msg); - res.end(); - }); - return; - } - res.write('Hello'); - res.end(); - }); - - server.listen(port); - logger.log(`listening on port ${port} (HTTP)`); -}; diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json index e397fe3e0b..f1ab17a264 100644 --- a/tgui/packages/tgui-dev-server/package.json +++ b/tgui/packages/tgui-dev-server/package.json @@ -1,12 +1,15 @@ { "private": true, "name": "tgui-dev-server", - "version": "3.0.0", - "type": "module", + "version": "4.2.0", "dependencies": { + "axios": "^0.19.2", + "common": "workspace:*", + "esm": "^3.2.25", "glob": "^7.1.4", "source-map": "^0.7.3", "stacktrace-parser": "^0.1.7", + "webpack": "^4.40.2", "ws": "^7.1.2" } } diff --git a/tgui/packages/tgui-dev-server/reloader.js b/tgui/packages/tgui-dev-server/reloader.js index e33f7226b9..1271e67d2a 100644 --- a/tgui/packages/tgui-dev-server/reloader.js +++ b/tgui/packages/tgui-dev-server/reloader.js @@ -11,6 +11,7 @@ import { basename } from 'path'; import { promisify } from 'util'; import { resolveGlob, resolvePath } from './util.js'; import { regQuery } from './winreg.js'; +import { DreamSeeker } from './dreamseeker.js'; const logger = createLogger('reloader'); @@ -43,7 +44,7 @@ export const findCacheRoot = async () => { const paths = await resolveGlob(pattern); if (paths.length > 0) { cacheRoot = paths[0]; - logger.log(`found cache at '${cacheRoot}'`); + onCacheRootFound(cacheRoot); return cacheRoot; } } @@ -58,13 +59,19 @@ export const findCacheRoot = async () => { .replace(/\\$/, '') .replace(/\\/g, '/') + '/cache'; - logger.log(`found cache at '${cacheRoot}'`); + onCacheRootFound(cacheRoot); return cacheRoot; } } logger.log('found no cache directories'); }; +const onCacheRootFound = cacheRoot => { + logger.log(`found cache at '${cacheRoot}'`); + // Plant dummy + fs.closeSync(fs.openSync(cacheRoot + '/dummy', 'w')); +}; + export const reloadByondCache = async bundleDir => { const cacheRoot = await findCacheRoot(); if (!cacheRoot) { @@ -76,10 +83,16 @@ export const reloadByondCache = async bundleDir => { logger.log('found no tmp folder in cache'); return; } - const assets = await resolveGlob(bundleDir, './*.+(bundle|hot-update).*'); + // Get dreamseeker instances + const pids = cacheDirs.map(cacheDir => ( + parseInt(cacheDir.split('/cache/tmp').pop(), 10) + )); + const dssPromise = DreamSeeker.getInstancesByPids(pids); + // Copy assets + const assets = await resolveGlob(bundleDir, './*.+(bundle|chunk|hot-update).*'); for (let cacheDir of cacheDirs) { // Clear garbage - const garbage = await resolveGlob(cacheDir, './*.+(bundle|hot-update).*'); + const garbage = await resolveGlob(cacheDir, './*.+(bundle|chunk|hot-update).*'); for (let file of garbage) { await promisify(fs.unlink)(file); } @@ -90,4 +103,15 @@ export const reloadByondCache = async bundleDir => { } logger.log(`copied ${assets.length} files to '${cacheDir}'`); } + // Notify dreamseeker + const dss = await dssPromise; + if (dss.length > 0) { + logger.log(`notifying dreamseeker`); + for (let dreamseeker of dss) { + dreamseeker.topic({ + tgui: 1, + type: 'cacheReloaded', + }); + } + } }; diff --git a/tgui/packages/tgui-dev-server/webpack.js b/tgui/packages/tgui-dev-server/webpack.js index c625827409..a3ddda7c04 100644 --- a/tgui/packages/tgui-dev-server/webpack.js +++ b/tgui/packages/tgui-dev-server/webpack.js @@ -9,7 +9,7 @@ import fs from 'fs'; import { createRequire } from 'module'; import { promisify } from 'util'; import webpack from 'webpack'; -import { broadcastMessage, loadSourceMaps, setupLink } from './link/server.js'; +import { loadSourceMaps, setupLink } from './link/server.js'; import { reloadByondCache } from './reloader.js'; import { resolveGlob } from './util.js'; @@ -17,7 +17,8 @@ const logger = createLogger('webpack'); export const getWebpackConfig = async options => { const require = createRequire(import.meta.url); - const createConfig = await require('../tgui/webpack.config.js'); + const cwd = process.cwd(); + const createConfig = await require(cwd + '/webpack.config.js'); return createConfig({}, options); }; @@ -44,7 +45,7 @@ export const setupWebpack = async config => { // Reload cache await reloadByondCache(bundleDir); // Notify all clients that update has happened - broadcastMessage(link, { + link.broadcastMessage({ type: 'hotUpdate', }); }); @@ -55,6 +56,9 @@ export const setupWebpack = async config => { logger.error('compilation error', err); return; } - logger.log(stats.toString(config.devServer.stats)); + stats + .toString(config.devServer.stats) + .split('\n') + .forEach(line => logger.log(line)); }); }; diff --git a/tgui/packages/tgui-panel/Notifications.js b/tgui/packages/tgui-panel/Notifications.js new file mode 100644 index 0000000000..a64ddd8e30 --- /dev/null +++ b/tgui/packages/tgui-panel/Notifications.js @@ -0,0 +1,41 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { Flex } from 'tgui/components'; + +export const Notifications = props => { + const { children } = props; + return ( +
    + {children} +
    + ); +}; + +const NotificationsItem = props => { + const { + rightSlot, + children, + } = props; + return ( + + + {children} + + {rightSlot && ( + + {rightSlot} + + )} + + ); +}; + +Notifications.Item = NotificationsItem; diff --git a/tgui/packages/tgui-panel/Panel.js b/tgui/packages/tgui-panel/Panel.js new file mode 100644 index 0000000000..b04cd62967 --- /dev/null +++ b/tgui/packages/tgui-panel/Panel.js @@ -0,0 +1,142 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { Button, Flex, Section } from 'tgui/components'; +import { Pane } from 'tgui/layouts'; +import { NowPlayingWidget, useAudio } from './audio'; +import { ChatPanel, ChatTabs } from './chat'; +import { useGame } from './game'; +import { Notifications } from './Notifications'; +import { PingIndicator } from './ping'; +import { SettingsPanel, useSettings } from './settings'; + +export const Panel = (props, context) => { + // IE8-10: Needs special treatment due to missing Flex support + if (Byond.IS_LTE_IE10) { + return ( + + ); + } + const audio = useAudio(context); + const settings = useSettings(context); + const game = useGame(context); + if (process.env.NODE_ENV !== 'production') { + const { useDebug, KitchenSink } = require('tgui/debug'); + const debug = useDebug(context); + if (debug.kitchenSink) { + return ( + + ); + } + } + return ( + + + +
    + + + + + + + + +
    +
    + {audio.visible && ( + +
    + +
    +
    + )} + {settings.visible && ( + + + + )} + +
    + + + + + {game.connectionLostAt && ( + Byond.command('.reconnect')}> + Reconnect + + )}> + You are either AFK, experiencing lag or the connection + has closed. + + )} + {game.roundRestartedAt && ( + + The connection has been closed because the server is + restarting. Please wait while you automatically reconnect. + + )} + +
    +
    +
    +
    + ); +}; + +const HoboPanel = (props, context) => { + const settings = useSettings(context); + return ( + + + + {settings.visible && ( + + + + ) || ( + + )} + + + ); +}; diff --git a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js b/tgui/packages/tgui-panel/audio/NowPlayingWidget.js new file mode 100644 index 0000000000..654f2a6b7c --- /dev/null +++ b/tgui/packages/tgui-panel/audio/NowPlayingWidget.js @@ -0,0 +1,69 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { toFixed } from 'common/math'; +import { useDispatch, useSelector } from 'common/redux'; +import { Fragment } from 'inferno'; +import { Button, Flex, Knob } from 'tgui/components'; +import { useSettings } from '../settings'; +import { selectAudio } from './selectors'; + +export const NowPlayingWidget = (props, context) => { + const audio = useSelector(context, selectAudio); + const dispatch = useDispatch(context); + const settings = useSettings(context); + const title = audio.meta?.title; + return ( + + {audio.playing && ( + + + Now playing: + + + {title || 'Unknown Track'} + + + ) || ( + + Nothing to play. + + )} + {audio.playing && ( + + + + + +
    + {MESSAGE_TYPES + .filter(typeDef => !typeDef.important && !typeDef.admin) + .map(typeDef => ( + dispatch(toggleAcceptedType({ + pageId: page.id, + type: typeDef.type, + }))}> + {typeDef.name} + + ))} + + {MESSAGE_TYPES + .filter(typeDef => !typeDef.important && typeDef.admin) + .map(typeDef => ( + dispatch(toggleAcceptedType({ + pageId: page.id, + type: typeDef.type, + }))}> + {typeDef.name} + + ))} + +
    +
    + ); +}; diff --git a/tgui/packages/tgui-panel/chat/ChatPanel.js b/tgui/packages/tgui-panel/chat/ChatPanel.js new file mode 100644 index 0000000000..bf7eb90e6f --- /dev/null +++ b/tgui/packages/tgui-panel/chat/ChatPanel.js @@ -0,0 +1,71 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { shallowDiffers } from 'common/react'; +import { Component, createRef, Fragment } from 'inferno'; +import { Button } from 'tgui/components'; +import { chatRenderer } from './renderer'; + +export class ChatPanel extends Component { + constructor() { + super(); + this.ref = createRef(); + this.state = { + scrollTracking: true, + }; + this.handleScrollTrackingChange = value => this.setState({ + scrollTracking: value, + }); + } + + componentDidMount() { + chatRenderer.mount(this.ref.current); + chatRenderer.events.on('scrollTrackingChanged', + this.handleScrollTrackingChange); + this.componentDidUpdate(); + } + + componentWillUnmount() { + chatRenderer.events.off('scrollTrackingChanged', + this.handleScrollTrackingChange); + } + + componentDidUpdate(prevProps) { + requestAnimationFrame(() => { + chatRenderer.ensureScrollTracking(); + }); + const shouldUpdateStyle = ( + !prevProps || shallowDiffers(this.props, prevProps) + ); + if (shouldUpdateStyle) { + chatRenderer.assignStyle({ + 'width': '100%', + 'white-space': 'pre-wrap', + 'font-size': this.props.fontSize, + 'line-height': this.props.lineHeight, + }); + } + } + + render() { + const { + scrollTracking, + } = this.state; + return ( + +
    + {!scrollTracking && ( + + )} + + ); + } +} diff --git a/tgui/packages/tgui-panel/chat/ChatTabs.js b/tgui/packages/tgui-panel/chat/ChatTabs.js new file mode 100644 index 0000000000..a0e6cc59e5 --- /dev/null +++ b/tgui/packages/tgui-panel/chat/ChatTabs.js @@ -0,0 +1,61 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { useDispatch, useSelector } from 'common/redux'; +import { Box, Tabs, Flex, Button } from 'tgui/components'; +import { changeChatPage, addChatPage } from './actions'; +import { selectChatPages, selectCurrentChatPage } from './selectors'; +import { openChatSettings } from '../settings/actions'; + +const UnreadCountWidget = ({ value }) => ( + + {Math.min(value, 99)} + +); + +export const ChatTabs = (props, context) => { + const pages = useSelector(context, selectChatPages); + const currentPage = useSelector(context, selectCurrentChatPage); + const dispatch = useDispatch(context); + return ( + + + + {pages.map(page => ( + 0 && ( + + )} + onClick={() => dispatch(changeChatPage({ + pageId: page.id, + }))}> + {page.name} + + ))} + + + +

    >>0|(d|0)==(p|0)&f>>>0>>0)){e=14;break}o[t+(h<<2)>>2]=c;o[n+(o[u>>2]<<2)>>2]=h;if(!a){h=0;e=14;break}}if((e|0)==14){C=t+(h<<2)|0;o[C>>2]=i;C=n+(i<<2)|0;o[C>>2]=h;l=r;return}}function Or(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;A=e+824|0;u=(o[e+840>>2]|0)>(t|0);if(u?(o[(o[e+836>>2]|0)+(t<<2)>>2]|0)>-1:0)a=7;else a=3;do{if((a|0)==3){if(n[(o[e+876>>2]|0)+t>>0]|0){l=r;return}if(n[(o[e+904>>2]|0)+t>>0]|0){l=r;return}f=n[(o[e+332>>2]|0)+t>>0]|0;g=n[2624]|0;p=g&255;if((p>>>1^1)&f<<24>>24==g<<24>>24|f&2&p)if(u){a=7;break}else break;else{l=r;return}}}while(0);if((a|0)==7?(i=o[e+836>>2]|0,s=i+(t<<2)|0,c=o[s>>2]|0,(c|0)>-1):0){t=o[A>>2]|0;a=o[t+(c<<2)>>2]|0;e:do{if(!c)f=0;else{u=e+852|0;h=a<<1;e=h|1;while(1){f=c;c=c+-1>>1;p=t+(c<<2)|0;g=o[p>>2]|0;m=o[o[u>>2]>>2]|0;C=o[m+(h<<2)>>2]|0;I=o[m+(e<<2)>>2]|0;C=Ci(I|0,((I|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;I=R;E=g<<1;d=o[m+(E<<2)>>2]|0;E=o[m+((E|1)<<2)>>2]|0;d=Ci(E|0,((E|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;E=R;if(!(I>>>0>>0|(I|0)==(E|0)&C>>>0>>0))break e;o[t+(f<<2)>>2]=g;o[i+(o[p>>2]<<2)>>2]=f;if(!c){f=0;break}}}}while(0);o[t+(f<<2)>>2]=a;o[i+(a<<2)>>2]=f;jr(A,o[s>>2]|0);l=r;return}_r(A,t);l=r;return}function jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;n=o[e>>2]|0;i=o[n+(t<<2)>>2]|0;h=t<<1|1;u=e+4|0;f=o[u>>2]|0;if((h|0)>=(f|0)){p=t;d=e+12|0;f=n+(p<<2)|0;o[f>>2]=i;d=o[d>>2]|0;d=d+(i<<2)|0;o[d>>2]=p;l=r;return}A=e+28|0;c=i<<1;a=c|1;e=e+12|0;while(1){g=(t<<1)+2|0;if((g|0)<(f|0)){p=o[n+(g<<2)>>2]|0;d=o[n+(h<<2)>>2]|0;m=p<<1;f=o[o[A>>2]>>2]|0;E=o[f+(m<<2)>>2]|0;m=o[f+((m|1)<<2)>>2]|0;E=Ci(m|0,((m|0)<0)<<31>>31|0,E|0,((E|0)<0)<<31>>31|0)|0;m=R;I=d<<1;C=o[f+(I<<2)>>2]|0;I=o[f+((I|1)<<2)>>2]|0;C=Ci(I|0,((I|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;I=R;if(!(m>>>0>>0|(m|0)==(I|0)&E>>>0>>0)){p=d;s=7}}else{p=o[n+(h<<2)>>2]|0;f=o[o[A>>2]>>2]|0;s=7}if((s|0)==7){s=0;g=h}C=p<<1;I=o[f+(C<<2)>>2]|0;C=o[f+((C|1)<<2)>>2]|0;I=Ci(C|0,((C|0)<0)<<31>>31|0,I|0,((I|0)<0)<<31>>31|0)|0;C=R;m=o[f+(c<<2)>>2]|0;E=o[f+(a<<2)>>2]|0;m=Ci(E|0,((E|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;E=R;if(!(C>>>0>>0|(C|0)==(E|0)&I>>>0>>0)){s=10;break}o[n+(t<<2)>>2]=p;o[(o[e>>2]|0)+(p<<2)>>2]=t;h=g<<1|1;f=o[u>>2]|0;if((h|0)>=(f|0)){t=g;s=10;break}else t=g}if((s|0)==10){m=n+(t<<2)|0;o[m>>2]=i;m=o[e>>2]|0;m=m+(i<<2)|0;o[m>>2]=t;l=r;return}}function Yr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0;r=l;A=o[e>>2]|0;if(A){n=e+4|0;i=o[n>>2]|0;e:do{if((i|0)>0){s=0;while(1){a=A+(s*12|0)|0;c=o[a>>2]|0;if(c){o[A+(s*12|0)+4>>2]=0;_n(c);o[a>>2]=0;o[A+(s*12|0)+8>>2]=0;i=o[n>>2]|0}s=s+1|0;if((s|0)>=(i|0))break e;A=o[e>>2]|0}}}while(0);o[n>>2]=0;if(t){_n(o[e>>2]|0);o[e>>2]=0;o[e+8>>2]=0}}n=e+16|0;i=o[n>>2]|0;if((i|0)!=0?(o[e+20>>2]=0,t):0){_n(i);o[n>>2]=0;o[e+24>>2]=0}i=e+32|0;n=o[i>>2]|0;if(!n){l=r;return}o[e+36>>2]=0;if(!t){l=r;return}_n(n);o[i>>2]=0;o[e+40>>2]=0;l=r;return}function Gr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;n=l;i=o[e>>2]|0;r=e+4|0;if(i){o[r>>2]=0;if(t){_n(i);o[e>>2]=0;o[e+8>>2]=0;i=0}}else i=0;if((o[r>>2]|0)>=1){A=e+16|0;o[A>>2]=0;A=e+12|0;o[A>>2]=0;l=n;return}A=e+8|0;s=o[A>>2]|0;if((s|0)<1){a=2-s&-2;t=(s>>1)+2&-2;t=(a|0)>(t|0)?a:t;if((t|0)>(2147483647-s|0)){a=Qe(1)|0;ze(a|0,48,0)}a=t+s|0;o[A>>2]=a;i=On(i,a<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}t=o[r>>2]|0;if((t|0)<1)while(1){s=i+(t<<2)|0;if(s)o[s>>2]=0;if(!t)break;else t=t+1|0}o[r>>2]=1;a=e+16|0;o[a>>2]=0;a=e+12|0;o[a>>2]=0;l=n;return}function Jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;n=l;l=l+16|0;r=n;i=e+16|0;a=o[i>>2]|0;o[i>>2]=a+1;o[(o[e>>2]|0)+(a<<2)>>2]=t;a=o[i>>2]|0;t=e+4|0;A=o[t>>2]|0;if((a|0)==(A|0)){o[i>>2]=0;a=0}s=e+12|0;if((o[s>>2]|0)!=(a|0)){l=n;return}Lr(r,(A*3|0)+1>>1);u=o[s>>2]|0;h=o[t>>2]|0;if((u|0)<(h|0)){a=o[e>>2]|0;c=o[r>>2]|0;h=0;while(1){A=h+1|0;o[c+(h<<2)>>2]=o[a+(u<<2)>>2];u=u+1|0;h=o[t>>2]|0;if((u|0)>=(h|0)){c=A;break}else h=A}}else c=0;A=o[e>>2]|0;if((o[i>>2]|0)>0){a=o[r>>2]|0;u=0;while(1){o[a+(c<<2)>>2]=o[A+(u<<2)>>2];u=u+1|0;if((u|0)>=(o[i>>2]|0))break;else c=c+1|0}h=o[t>>2]|0}o[s>>2]=0;o[i>>2]=h;if(!A)i=e+8|0;else{o[t>>2]=0;_n(A);o[e>>2]=0;i=e+8|0;o[i>>2]=0}o[e>>2]=o[r>>2];u=r+4|0;o[t>>2]=o[u>>2];h=r+8|0;o[i>>2]=o[h>>2];o[r>>2]=0;o[u>>2]=0;o[h>>2]=0;l=n;return}function Hr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function qr(){var e=0,t=0;t=l;Ue(3864)|0;e=cn(936)|0;Cr(e);l=t;return e|0}function zr(e){e=e|0;var t=0;t=l;if(!e){l=t;return}ji[o[(o[e>>2]|0)+4>>2]&31](e);l=t;return}function Wr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;r=cn(936)|0;Cr(r);o[964]=r;wr(r,1)|0;r=o[964]|0;n[t+0>>0]=n[3840]|0;mr(r,t,1)|0;l=e;return}function Vr(e){e=e|0;var t=0,r=0,i=0;t=l;l=l+16|0;r=t;if((o[962]|0)>=(e|0)){l=t;return}do{i=o[964]|0;n[r+0>>0]=n[3840]|0;mr(i,r,1)|0;i=(o[962]|0)+1|0;o[962]=i}while((i|0)<(e|0));l=t;return}function Xr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;s=l;l=l+32|0;A=s+16|0;r=s+4|0;a=s;o[r>>2]=0;i=r+4|0;o[i>>2]=0;t=r+8|0;o[t>>2]=0;c=o[e>>2]|0;if(c)do{u=(c|0)<0?0-c|0:c;if((o[962]|0)<(u|0))do{h=o[964]|0;n[A+0>>0]=n[3840]|0;mr(h,A,1)|0;h=(o[962]|0)+1|0;o[962]=h}while((h|0)<(u|0));o[a>>2]=u<<1|c>>>31;sr(r,a);e=e+4|0;c=o[e>>2]|0}while((c|0)!=0);a=o[964]|0;A=a+628|0;sn(r,A);A=Br(a,A)|0;a=o[r>>2]|0;if(!a){l=s;return A|0}o[i>>2]=0;_n(a);o[r>>2]=0;o[t>>2]=0;l=s;return A|0}function Zr(){var e=0,t=0,r=0,i=0;t=l;l=l+16|0;e=t;r=o[964]|0;i=r+664|0;o[i+0>>2]=-1;o[i+4>>2]=-1;o[i+8>>2]=-1;o[i+12>>2]=-1;if(o[r+304>>2]|0)o[r+308>>2]=0;yr(e,r,1,0);l=t;return(n[e>>0]|0)==0|0}function $r(){return(o[(o[964]|0)+4>>2]|0)+1|0}function en(){return o[962]|0}function tn(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0;t=l;l=l+32|0;A=t+16|0;i=t+4|0;a=t;o[i>>2]=0;r=i+4|0;o[r>>2]=0;s=i+8|0;o[s>>2]=0;o[a>>2]=e<<1;sr(i,a);e=o[964]|0;a=e+664|0;o[a+0>>2]=-1;o[a+4>>2]=-1;o[a+8>>2]=-1;o[a+12>>2]=-1;sn(i,e+304|0);yr(A,e,1,0);e=(n[A>>0]|0)==0;A=o[i>>2]|0;if(!A){l=t;return e|0}o[r>>2]=0;_n(A);o[i>>2]=0;o[s>>2]=0;l=t;return e|0}function rn(e){e=e|0;var t=0,r=0,n=0;t=l;l=l+16|0;n=t;r=o[964]|0;o[n>>2]=e<<1|1;e=r+628|0;if(o[e>>2]|0)o[r+632>>2]=0;sr(e,n);Br(r,e)|0;l=t;return}function nn(){return o[(o[964]|0)+36>>2]|0}function on(){return o[(o[964]|0)+32>>2]|0}function sn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;A=o[t>>2]|0;n=t+4|0;if(!A)a=o[n>>2]|0;else{o[n>>2]=0;a=0}n=e+4|0;i=o[n>>2]|0;s=t+4|0;if((a|0)<(i|0)){c=t+8|0;a=o[c>>2]|0;if((a|0)<(i|0)){h=i+1-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}h=u+a|0;o[c>>2]=h;A=On(A,h<<2)|0;o[t>>2]=A;if((A|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=o[s>>2]|0;e:do{if((a|0)<(i|0))while(1){A=A+(a<<2)|0;if(A)o[A>>2]=0;a=a+1|0;if((a|0)==(i|0))break e;A=o[t>>2]|0}}while(0);o[s>>2]=i;i=o[n>>2]|0}if((i|0)<=0){l=r;return}t=o[t>>2]|0;e=o[e>>2]|0;i=0;do{o[t+(i<<2)>>2]=o[e+(i<<2)>>2];i=i+1|0}while((i|0)<(o[n>>2]|0));l=r;return}function An(e,t){e=e|0;t=t|0;var r=0;r=l;l=l+16|0;o[r>>2]=t;t=o[E>>2]|0;Be(t|0,e|0,r|0)|0;qe(10,t|0)|0;Xe()}function an(){var e=0,t=0;e=l;l=l+16|0;if(!(Pe(4064,3)|0)){t=Le(o[1014]|0)|0;l=e;return t|0}else An(4072,e);return 0}function cn(e){e=e|0;var t=0,r=0;t=l;e=(e|0)==0?1:e;r=Un(e)|0;if(r){l=t;return r|0}while(1){r=dn()|0;if(!r){e=4;break}Ji[r&3]();r=Un(e)|0;if(r){e=5;break}}if((e|0)==4){r=Qe(4)|0;o[r>>2]=4248;ze(r|0,4296,12)}else if((e|0)==5){l=t;return r|0}return 0}function un(e){e=e|0;var t=0;t=l;_n(e);l=t;return}function ln(e){e=e|0;var t=0;t=l;un(e);l=t;return}function hn(e){e=e|0;return}function gn(e){e=e|0;return 4264}function fn(e){e=e|0;var t=0;t=l;l=l+16|0;Ji[e&3]();An(4312,t)}function pn(){var e=0,t=0;t=an()|0;if(((t|0)!=0?(e=o[t>>2]|0,(e|0)!=0):0)?(t=e+48|0,(o[t>>2]&-256|0)==1126902528?(o[t+4>>2]|0)==1129074247:0):0)fn(o[e+12>>2]|0);t=o[968]|0;o[968]=t+0;fn(t)}function dn(){var e=0;e=o[1102]|0;o[1102]=e+0;return e|0}function Cn(e){e=e|0;return}function En(e){e=e|0;return}function In(e){e=e|0;return}function mn(e){e=e|0;return}function yn(e){e=e|0;return}function wn(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Bn(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Qn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0;n=l;l=l+64|0;i=n;if((e|0)==(t|0)){A=1;l=n;return A|0}if(!t){A=0;l=n;return A|0}t=Sn(t,4504,4560,0)|0;if(!t){A=0;l=n;return A|0}A=i+0|0;s=A+56|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(s|0));o[i>>2]=t;o[i+8>>2]=e;o[i+12>>2]=-1;o[i+48>>2]=1;zi[o[(o[t>>2]|0)+28>>2]&3](t,i,o[r>>2]|0,1);if((o[i+24>>2]|0)!=1){A=0;l=n;return A|0}o[r>>2]=o[i+16>>2];A=1;l=n;return A|0}function vn(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,A=0;e=l;s=t+16|0;A=o[s>>2]|0;if(!A){o[s>>2]=r;o[t+24>>2]=i;o[t+36>>2]=1;l=e;return}if((A|0)!=(r|0)){A=t+36|0;o[A>>2]=(o[A>>2]|0)+1;o[t+24>>2]=2;n[t+54>>0]=1;l=e;return}r=t+24|0;if((o[r>>2]|0)!=2){l=e;return}o[r>>2]=i;l=e;return}function Dn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((o[t+8>>2]|0)!=(e|0)){l=i;return}vn(0,t,r,n);l=i;return}function bn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((e|0)==(o[t+8>>2]|0)){vn(0,t,r,n);l=i;return}else{e=o[e+8>>2]|0;zi[o[(o[e>>2]|0)+28>>2]&3](e,t,r,n);l=i;return}}function Sn(e,t,r,s){e=e|0;t=t|0;r=r|0;s=s|0;var A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;A=l;l=l+64|0;a=A;c=o[e>>2]|0;u=e+(o[c+-8>>2]|0)|0;c=o[c+-4>>2]|0;o[a>>2]=r;o[a+4>>2]=e;o[a+8>>2]=t;o[a+12>>2]=s;g=a+16|0;f=a+20|0;t=a+24|0;h=a+28|0;s=a+32|0;e=a+40|0;p=(c|0)==(r|0);d=g+0|0;r=d+36|0;do{o[d>>2]=0;d=d+4|0}while((d|0)<(r|0));i[g+36>>1]=0;n[g+38>>0]=0;if(p){o[a+48>>2]=1;Hi[o[(o[c>>2]|0)+20>>2]&3](c,a,u,u,1,0);d=(o[t>>2]|0)==1?u:0;l=A;return d|0}Oi[o[(o[c>>2]|0)+24>>2]&3](c,a,u,1,0);a=o[a+36>>2]|0;if(!a){d=(o[e>>2]|0)==1&(o[h>>2]|0)==1&(o[s>>2]|0)==1?o[f>>2]|0:0;l=A;return d|0}else if((a|0)==1){if((o[t>>2]|0)!=1?!((o[e>>2]|0)==0&(o[h>>2]|0)==1&(o[s>>2]|0)==1):0){d=0;l=A;return d|0}d=o[g>>2]|0;l=A;return d|0}else{d=0;l=A;return d|0}return 0}function kn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;e=l;n[t+53>>0]=1;if((o[t+4>>2]|0)!=(i|0)){l=e;return}n[t+52>>0]=1;i=t+16|0;A=o[i>>2]|0;if(!A){o[i>>2]=r;o[t+24>>2]=s;o[t+36>>2]=1;if(!((s|0)==1?(o[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}if((A|0)!=(r|0)){A=t+36|0;o[A>>2]=(o[A>>2]|0)+1;n[t+54>>0]=1;l=e;return}r=t+24|0;i=o[r>>2]|0;if((i|0)==2)o[r>>2]=s;else s=i;if(!((s|0)==1?(o[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}function xn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0,a=0,c=0,u=0,h=0;A=l;if((e|0)==(o[t+8>>2]|0)){if((o[t+4>>2]|0)!=(r|0)){l=A;return}a=t+28|0;if((o[a>>2]|0)==1){l=A;return}o[a>>2]=i;l=A;return}if((e|0)!=(o[t>>2]|0)){u=o[e+8>>2]|0;Oi[o[(o[u>>2]|0)+24>>2]&3](u,t,r,i,s);l=A;return}if((o[t+16>>2]|0)!=(r|0)?(c=t+20|0,(o[c>>2]|0)!=(r|0)):0){o[t+32>>2]=i;i=t+44|0;if((o[i>>2]|0)==4){l=A;return}u=t+52|0;n[u>>0]=0;h=t+53|0;n[h>>0]=0;e=o[e+8>>2]|0;Hi[o[(o[e>>2]|0)+20>>2]&3](e,t,r,r,1,s);if(n[h>>0]|0){if(!(n[u>>0]|0)){e=1;a=13}}else{e=0;a=13}do{if((a|0)==13){o[c>>2]=r;h=t+40|0;o[h>>2]=(o[h>>2]|0)+1;if((o[t+36>>2]|0)==1?(o[t+24>>2]|0)==2:0){n[t+54>>0]=1;if(e)break}else a=16;if((a|0)==16?e:0)break;o[i>>2]=4;l=A;return}}while(0);o[i>>2]=3;l=A;return}if((i|0)!=1){l=A;return}o[t+32>>2]=1;l=A;return}function Fn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;s=l;if((o[t+8>>2]|0)==(e|0)){if((o[t+4>>2]|0)!=(r|0)){l=s;return}t=t+28|0;if((o[t>>2]|0)==1){l=s;return}o[t>>2]=i;l=s;return}if((o[t>>2]|0)!=(e|0)){l=s;return}if((o[t+16>>2]|0)!=(r|0)?(A=t+20|0,(o[A>>2]|0)!=(r|0)):0){o[t+32>>2]=i;o[A>>2]=r;e=t+40|0;o[e>>2]=(o[e>>2]|0)+1;if((o[t+36>>2]|0)==1?(o[t+24>>2]|0)==2:0)n[t+54>>0]=1;o[t+44>>2]=4;l=s;return}if((i|0)!=1){l=s;return}o[t+32>>2]=1;l=s;return}function Mn(e,t,r,n,i,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;s=s|0;var A=0;A=l;if((e|0)==(o[t+8>>2]|0)){kn(0,t,r,n,i);l=A;return}else{e=o[e+8>>2]|0;Hi[o[(o[e>>2]|0)+20>>2]&3](e,t,r,n,i,s);l=A;return}}function Nn(e,t,r,n,i,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;s=s|0;s=l;if((o[t+8>>2]|0)!=(e|0)){l=s;return}kn(0,t,r,n,i);l=s;return}function Rn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;n=l;l=l+16|0;i=n;o[i>>2]=o[r>>2];e=_i[o[(o[e>>2]|0)+16>>2]&1](e,t,i)|0;t=e&1;if(!e){l=n;return t|0}o[r>>2]=o[i>>2];l=n;return t|0}function Kn(e){e=e|0;var t=0;t=l;if(!e)e=0;else e=(Sn(e,4504,4672,0)|0)!=0;l=t;return e&1|0}function Ln(){var e=0,t=0,r=0,n=0,i=0;e=l;l=l+16|0;t=e;e=e+12|0;r=an()|0;if(!r)An(4040,t);r=o[r>>2]|0;if(!r)An(4040,t);i=r+48|0;n=o[i>>2]|0;i=o[i+4>>2]|0;if(!((n&-256|0)==1126902528&(i|0)==1129074247)){o[t>>2]=o[970];An(4e3,t)}if((n|0)==1126902529&(i|0)==1129074247)n=o[r+44>>2]|0;else n=r+80|0;o[e>>2]=n;i=o[r>>2]|0;r=o[i+4>>2]|0;if(_i[o[(o[4432>>2]|0)+16>>2]&1](4432,i,e)|0){i=o[e>>2]|0;n=o[970]|0;i=Gi[o[(o[i>>2]|0)+8>>2]&1](i)|0;o[t>>2]=n;o[t+4>>2]=r;o[t+8>>2]=i;An(3904,t)}else{o[t>>2]=o[970];o[t+4>>2]=r;An(3952,t)}}function Tn(){var e=0;e=l;l=l+16|0;if(!(Oe(4056,20)|0)){l=e;return}else An(4128,e)}function Pn(e){e=e|0;var t=0;t=l;l=l+16|0;_n(e);if(!(Ge(o[1014]|0,0)|0)){l=t;return}else An(4184,t)}function Un(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0;t=l;do{if(e>>>0<245){if(e>>>0<11)e=16;else e=e+11&-8;B=e>>>3;p=o[1206]|0;w=p>>>B;if(w&3){s=(w&1^1)+B|0;i=s<<1;r=4864+(i<<2)|0;i=4864+(i+2<<2)|0;A=o[i>>2]|0;a=A+8|0;n=o[a>>2]|0;do{if((r|0)!=(n|0)){if(n>>>0<(o[1210]|0)>>>0)Xe();c=n+12|0;if((o[c>>2]|0)==(A|0)){o[c>>2]=r;o[i>>2]=n;break}else Xe()}else o[1206]=p&~(1<>2]=N|3;N=A+(N|4)|0;o[N>>2]=o[N>>2]|1;N=a;l=t;return N|0}y=o[1208]|0;if(e>>>0>y>>>0){if(w){A=2<>>12&16;A=A>>>r;a=A>>>5&8;A=A>>>a;i=A>>>2&4;A=A>>>i;s=A>>>1&2;A=A>>>s;n=A>>>1&1;n=(a|r|i|s|n)+(A>>>n)|0;A=n<<1;s=4864+(A<<2)|0;A=4864+(A+2<<2)|0;i=o[A>>2]|0;r=i+8|0;a=o[r>>2]|0;do{if((s|0)!=(a|0)){if(a>>>0<(o[1210]|0)>>>0)Xe();c=a+12|0;if((o[c>>2]|0)==(i|0)){o[c>>2]=s;o[A>>2]=a;x=o[1208]|0;break}else Xe()}else{o[1206]=p&~(1<>2]=e|3;s=i+e|0;o[i+(e|4)>>2]=n|1;o[i+N>>2]=n;if(x){i=o[1211]|0;u=x>>>3;a=u<<1;A=4864+(a<<2)|0;c=o[1206]|0;u=1<>2]|0;if(c>>>0<(o[1210]|0)>>>0)Xe();else{k=a;S=c}}else{o[1206]=c|u;k=4864+(a+2<<2)|0;S=A}o[k>>2]=i;o[S+12>>2]=i;o[i+8>>2]=S;o[i+12>>2]=A}o[1208]=n;o[1211]=s;N=r;l=t;return N|0}p=o[1207]|0;if(p){r=(p&0-p)+-1|0;M=r>>>12&16;r=r>>>M;F=r>>>5&8;r=r>>>F;N=r>>>2&4;r=r>>>N;i=r>>>1&2;r=r>>>i;n=r>>>1&1;n=o[5128+((F|M|N|i|n)+(r>>>n)<<2)>>2]|0;r=(o[n+4>>2]&-8)-e|0;i=n;while(1){s=o[i+16>>2]|0;if(!s){s=o[i+20>>2]|0;if(!s)break}i=(o[s+4>>2]&-8)-e|0;N=i>>>0>>0;r=N?i:r;i=s;n=N?s:n}A=o[1210]|0;if(n>>>0>>0)Xe();i=n+e|0;if(n>>>0>=i>>>0)Xe();s=o[n+24>>2]|0;c=o[n+12>>2]|0;do{if((c|0)==(n|0)){c=n+20|0;a=o[c>>2]|0;if(!a){c=n+16|0;a=o[c>>2]|0;if(!a){b=0;break}}while(1){u=a+20|0;h=o[u>>2]|0;if(h){a=h;c=u;continue}u=a+16|0;h=o[u>>2]|0;if(!h)break;else{a=h;c=u}}if(c>>>0>>0)Xe();else{o[c>>2]=0;b=a;break}}else{a=o[n+8>>2]|0;if(a>>>0>>0)Xe();A=a+12|0;if((o[A>>2]|0)!=(n|0))Xe();u=c+8|0;if((o[u>>2]|0)==(n|0)){o[A>>2]=c;o[u>>2]=a;b=c;break}else Xe()}}while(0);do{if(s){a=o[n+28>>2]|0;A=5128+(a<<2)|0;if((n|0)==(o[A>>2]|0)){o[A>>2]=b;if(!b){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();A=s+16|0;if((o[A>>2]|0)==(n|0))o[A>>2]=b;else o[s+20>>2]=b;if(!b)break}A=o[1210]|0;if(b>>>0>>0)Xe();o[b+24>>2]=s;s=o[n+16>>2]|0;do{if(s)if(s>>>0>>0)Xe();else{o[b+16>>2]=s;o[s+24>>2]=b;break}}while(0);s=o[n+20>>2]|0;if(s)if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[b+20>>2]=s;o[s+24>>2]=b;break}}}while(0);if(r>>>0<16){N=r+e|0;o[n+4>>2]=N|3;N=n+(N+4)|0;o[N>>2]=o[N>>2]|1}else{o[n+4>>2]=e|3;o[n+(e|4)>>2]=r|1;o[n+(r+e)>>2]=r;A=o[1208]|0;if(A){s=o[1211]|0;c=A>>>3;u=c<<1;A=4864+(u<<2)|0;a=o[1206]|0;c=1<>2]|0;if(c>>>0<(o[1210]|0)>>>0)Xe();else{D=a;v=c}}else{o[1206]=a|c;D=4864+(u+2<<2)|0;v=A}o[D>>2]=s;o[v+12>>2]=s;o[s+8>>2]=v;o[s+12>>2]=A}o[1208]=r;o[1211]=i}N=n+8|0;l=t;return N|0}}}else if(e>>>0<=4294967231){v=e+11|0;e=v&-8;b=o[1207]|0;if(b){D=0-e|0;v=v>>>8;if(v)if(e>>>0>16777215)S=31;else{M=(v+1048320|0)>>>16&8;N=v<>>16&4;N=N<>>16&2;S=14-(F|M|S)+(N<>>15)|0;S=e>>>(S+7|0)&1|S<<1}else S=0;k=o[5128+(S<<2)>>2]|0;e:do{if(!k){F=0;v=0}else{if((S|0)==31)v=0;else v=25-(S>>>1)|0;F=0;x=e<>2]&-8;N=M-e|0;if(N>>>0>>0)if((M|0)==(e|0)){D=N;F=k;v=k;break e}else{D=N;v=k}N=o[k+20>>2]|0;k=o[k+(x>>>31<<2)+16>>2]|0;F=(N|0)==0|(N|0)==(k|0)?F:N;if(!k)break;else x=x<<1}}}while(0);if((F|0)==0&(v|0)==0){N=2<>>12&16;N=N>>>k;S=N>>>5&8;N=N>>>S;x=N>>>2&4;N=N>>>x;M=N>>>1&2;N=N>>>M;F=N>>>1&1;F=o[5128+((S|k|x|M|F)+(N>>>F)<<2)>>2]|0}if(F)while(1){N=(o[F+4>>2]&-8)-e|0;b=N>>>0>>0;D=b?N:D;v=b?F:v;b=o[F+16>>2]|0;if(b){F=b;continue}F=o[F+20>>2]|0;if(!F)break}if((v|0)!=0?D>>>0<((o[1208]|0)-e|0)>>>0:0){i=o[1210]|0;if(v>>>0>>0)Xe();r=v+e|0;if(v>>>0>=r>>>0)Xe();n=o[v+24>>2]|0;s=o[v+12>>2]|0;do{if((s|0)==(v|0)){A=v+20|0;s=o[A>>2]|0;if(!s){A=v+16|0;s=o[A>>2]|0;if(!s){B=0;break}}while(1){a=s+20|0;c=o[a>>2]|0;if(c){s=c;A=a;continue}a=s+16|0;c=o[a>>2]|0;if(!c)break;else{s=c;A=a}}if(A>>>0>>0)Xe();else{o[A>>2]=0;B=s;break}}else{A=o[v+8>>2]|0;if(A>>>0>>0)Xe();a=A+12|0;if((o[a>>2]|0)!=(v|0))Xe();i=s+8|0;if((o[i>>2]|0)==(v|0)){o[a>>2]=s;o[i>>2]=A;B=s;break}else Xe()}}while(0);do{if(n){i=o[v+28>>2]|0;s=5128+(i<<2)|0;if((v|0)==(o[s>>2]|0)){o[s>>2]=B;if(!B){o[1207]=o[1207]&~(1<>>0<(o[1210]|0)>>>0)Xe();i=n+16|0;if((o[i>>2]|0)==(v|0))o[i>>2]=B;else o[n+20>>2]=B;if(!B)break}i=o[1210]|0;if(B>>>0>>0)Xe();o[B+24>>2]=n;n=o[v+16>>2]|0;do{if(n)if(n>>>0>>0)Xe();else{o[B+16>>2]=n;o[n+24>>2]=B;break}}while(0);n=o[v+20>>2]|0;if(n)if(n>>>0<(o[1210]|0)>>>0)Xe();else{o[B+20>>2]=n;o[n+24>>2]=B;break}}}while(0);e:do{if(D>>>0>=16){o[v+4>>2]=e|3;o[v+(e|4)>>2]=D|1;o[v+(D+e)>>2]=D;i=D>>>3;if(D>>>0<256){A=i<<1;n=4864+(A<<2)|0;s=o[1206]|0;i=1<>2]|0;if(s>>>0>=(o[1210]|0)>>>0){w=i;y=s;break}Xe()}}while(0);o[w>>2]=r;o[y+12>>2]=r;o[v+(e+8)>>2]=y;o[v+(e+12)>>2]=n;break}n=D>>>8;if(n)if(D>>>0>16777215)n=31;else{M=(n+1048320|0)>>>16&8;N=n<>>16&4;N=N<>>16&2;n=14-(F|M|n)+(N<>>15)|0;n=D>>>(n+7|0)&1|n<<1}else n=0;i=5128+(n<<2)|0;o[v+(e+28)>>2]=n;o[v+(e+20)>>2]=0;o[v+(e+16)>>2]=0;s=o[1207]|0;A=1<>2]=r;o[v+(e+24)>>2]=i;o[v+(e+12)>>2]=r;o[v+(e+8)>>2]=r;break}A=o[i>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((o[A+4>>2]&-8|0)!=(D|0)){n=D<>>31<<2)+16|0;i=o[s>>2]|0;if(!i)break;if((o[i+4>>2]&-8|0)==(D|0)){p=i;break t}else{n=n<<1;A=i}}if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[s>>2]=r;o[v+(e+24)>>2]=A;o[v+(e+12)>>2]=r;o[v+(e+8)>>2]=r;break e}}else p=A}while(0);i=p+8|0;n=o[i>>2]|0;N=o[1210]|0;if(p>>>0>=N>>>0&n>>>0>=N>>>0){o[n+12>>2]=r;o[i>>2]=r;o[v+(e+8)>>2]=n;o[v+(e+12)>>2]=p;o[v+(e+24)>>2]=0;break}else Xe()}else{N=D+e|0;o[v+4>>2]=N|3;N=v+(N+4)|0;o[N>>2]=o[N>>2]|1}}while(0);N=v+8|0;l=t;return N|0}}}else e=-1}while(0);p=o[1208]|0;if(p>>>0>=e>>>0){n=p-e|0;r=o[1211]|0;if(n>>>0>15){o[1211]=r+e;o[1208]=n;o[r+(e+4)>>2]=n|1;o[r+p>>2]=n;o[r+4>>2]=e|3}else{o[1208]=0;o[1211]=0;o[r+4>>2]=p|3;N=r+(p+4)|0;o[N>>2]=o[N>>2]|1}N=r+8|0;l=t;return N|0}p=o[1209]|0;if(p>>>0>e>>>0){M=p-e|0;o[1209]=M;N=o[1212]|0;o[1212]=N+e;o[N+(e+4)>>2]=M|1;o[N+4>>2]=e|3;N=N+8|0;l=t;return N|0}do{if(!(o[1324]|0)){p=Ke(30)|0;if(!(p+-1&p)){o[1326]=p;o[1325]=p;o[1327]=-1;o[1328]=-1;o[1329]=0;o[1317]=0;o[1324]=($e(0)|0)&-16^1431655768;break}else Xe()}}while(0);B=e+48|0;p=o[1326]|0;w=e+47|0;D=p+w|0;p=0-p|0;y=D&p;if(y>>>0<=e>>>0){N=0;l=t;return N|0}v=o[1316]|0;if((v|0)!=0?(M=o[1314]|0,N=M+y|0,N>>>0<=M>>>0|N>>>0>v>>>0):0){N=0;l=t;return N|0}e:do{if(!(o[1317]&4)){b=o[1212]|0;t:do{if(b){v=5272|0;while(1){S=o[v>>2]|0;if(S>>>0<=b>>>0?(Q=v+4|0,(S+(o[Q>>2]|0)|0)>>>0>b>>>0):0)break;v=o[v+8>>2]|0;if(!v){f=181;break t}}if(v){D=D-(o[1209]|0)&p;if(D>>>0<2147483647){p=ke(D|0)|0;if((p|0)==((o[v>>2]|0)+(o[Q>>2]|0)|0)){v=D;f=190}else{v=D;f=191}}else v=0}else f=181}else f=181}while(0);do{if((f|0)==181){Q=ke(0)|0;if((Q|0)!=(-1|0)){D=Q;v=o[1325]|0;p=v+-1|0;if(!(p&D))v=y;else v=y-D+(p+D&0-v)|0;p=o[1314]|0;D=p+v|0;if(v>>>0>e>>>0&v>>>0<2147483647){N=o[1316]|0;if((N|0)!=0?D>>>0<=p>>>0|D>>>0>N>>>0:0){v=0;break}p=ke(v|0)|0;if((p|0)==(Q|0)){p=Q;f=190}else f=191}else v=0}else v=0}}while(0);t:do{if((f|0)==190){if((p|0)!=(-1|0)){d=v;f=201;break e}}else if((f|0)==191){f=0-v|0;do{if((p|0)!=(-1|0)&v>>>0<2147483647&B>>>0>v>>>0?(m=o[1326]|0,m=w-v+m&0-m,m>>>0<2147483647):0)if((ke(m|0)|0)==(-1|0)){ke(f|0)|0;v=0;break t}else{v=m+v|0;break}}while(0);if((p|0)==(-1|0))v=0;else{d=v;f=201;break e}}}while(0);o[1317]=o[1317]|4;f=198}else{v=0;f=198}}while(0);if((((f|0)==198?y>>>0<2147483647:0)?(I=ke(y|0)|0,E=ke(0)|0,(I|0)!=(-1|0)&(E|0)!=(-1|0)&I>>>0>>0):0)?(C=E-I|0,d=C>>>0>(e+40|0)>>>0,d):0){p=I;d=d?C:v;f=201}if((f|0)==201){C=(o[1314]|0)+d|0;o[1314]=C;if(C>>>0>(o[1315]|0)>>>0)o[1315]=C;C=o[1212]|0;e:do{if(C){I=5272|0;while(1){E=o[I>>2]|0;y=I+4|0;w=o[y>>2]|0;if((p|0)==(E+w|0)){f=213;break}m=o[I+8>>2]|0;if(!m)break;else I=m}if(((f|0)==213?(o[I+12>>2]&8|0)==0:0)?C>>>0>=E>>>0&C>>>0