diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index b07e0c9d965..02610147294 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -312,7 +312,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/item/ammo_casing/shotgun/dart, /obj/item/ammo_casing/shotgun/dart, -/obj/item/weapon/gun/projectile/revolver/doublebarrel{ +/obj/item/weapon/gun/ballistic/revolver/doublebarrel{ desc = "For putting critters out to pasture." }, /obj/item/ammo_casing/shotgun/buckshot, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index 8a69cfab7e0..2c4442c4b65 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -15,7 +15,7 @@ /area/ruin/powered) "e" = ( /obj/structure/table/wood/poker, -/obj/item/weapon/gun/projectile/revolver/russian/soul, +/obj/item/weapon/gun/ballistic/revolver/russian/soul, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/lava/smooth; icon_state = "carpetsymbol" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm index 1900c39487b..d2594d4aeea 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm @@ -76,7 +76,7 @@ }, /area/ruin/unpowered) "n" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/mineral/plastitanium/brig{ baseturf = /turf/open/floor/plating/lava/smooth }, @@ -107,7 +107,7 @@ /area/ruin/unpowered) "s" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/effect/decal/cleanable/blood, /turf/open/floor/mineral/plastitanium/brig{ baseturf = /turf/open/floor/plating/lava/smooth @@ -135,7 +135,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "x" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "y" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm index 54d740040f1..82ca15d842b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm @@ -206,7 +206,7 @@ item_state = "facehugger_impregnated"; stat = 2 }, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/awaycontent/a5{ always_unpowered = 1; diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 53a6c411894..e8dc2fc4350 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -84,7 +84,7 @@ "bF" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) "bG" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) "bH" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) -"bI" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bI" = (/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) "bJ" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) "bK" = (/obj/structure/table,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) "bL" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) @@ -174,7 +174,7 @@ "dr" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) "ds" = (/turf/closed/mineral,/area/ruin/derelictoutpost) "dt" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) -"du" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/item/ammo_box/magazine/m45,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"du" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/item/ammo_box/magazine/m45,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dv" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dw" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dx" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) @@ -189,7 +189,7 @@ "dG" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dH" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dI" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) -"dJ" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dJ" = (/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) "dK" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) "dL" = (/turf/closed/wall,/area/ruin/derelictoutpost/cargostorage) "dM" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index 664806db2d7..4db800cedc5 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -57,9 +57,9 @@ "be" = (/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) "bf" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) "bg" = (/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) -"bh" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/automatic/pistol/APS,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bh" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/automatic/pistol/APS,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) "bi" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) -"bj" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bj" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) "bk" = (/obj/structure/girder,/turf/open/space,/area/space) "bl" = (/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) "bm" = (/turf/open/floor/plating,/obj/machinery/door/poddoor{id = "caravantrade1"; name = "cargo blastdoor"},/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) @@ -112,7 +112,7 @@ "ch" = (/turf/open/space,/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) "ci" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) "cj" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) -"ck" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"ck" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cl" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cm" = (/obj/structure/door_assembly/door_assembly_shuttle{density = 0; name = "broken airlock"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cn" = (/obj/structure/table,/obj/item/device/gps{gpstag = "Distress Signal"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) @@ -128,9 +128,9 @@ "cx" = (/turf/open/space,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) "cy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) "cz" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) -"cA" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/gun/projectile/shotgun/riot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cA" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/shotgun/riot,/obj/item/weapon/gun/ballistic/shotgun/riot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cB" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/syringe/syndicate,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) -"cC" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cC" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cD" = (/mob/living/simple_animal/hostile/pirate/space/ranged{environment_smash = 0},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) "cE" = (/obj/structure/table,/obj/item/weapon/clipboard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) "cF" = (/obj/structure/shuttle/engine/propulsion/burst/right{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 20f6c5a649a..5f5b0aa8c4c 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -22,7 +22,7 @@ "av" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) "aw" = (/obj/structure/mirror{pixel_x = 30},/obj/structure/sink{dir = 4;icon_state = "sink";pixel_x = 11;pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) "ax" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/drone,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/ruin/deepstorage) -"ay" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = -3;pixel_y = 6},/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = 2;pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ay" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = -3;pixel_y = 6},/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = 2;pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) "az" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical);desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools.";name = "dufflebag";pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/deepstorage) "aA" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -4},/obj/item/device/radio,/obj/item/device/radio{pixel_x = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) "aB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/deepstorage) diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index efbcfee9a2c..584962dd38a 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -15,7 +15,7 @@ "o" = (/obj/structure/table,/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "november report"},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/awaymission/listeningpost) "p" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly";freerange = 1;frequency = 1213;name = "Syndicate Intercom";pixel_x = 32;subspace_transmission = 1;syndie = 1},/turf/open/floor/plasteel,/area/awaymission/listeningpost) "q" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"r" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";name = "odd report"},/obj/item/weapon/gun/projectile/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"r" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";name = "odd report"},/obj/item/weapon/gun/ballistic/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost) "s" = (/obj/structure/disposalpipe/segment{dir = 4;icon_state = "pipe-c"},/turf/closed/mineral,/area/ruin/unpowered/no_grav) "t" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/mineral,/area/ruin/unpowered/no_grav) "u" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index f7026bd84fe..7df0895e72e 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -2263,14 +2263,14 @@ info = "Grade: A+ Educator's Notes: Excellent form."; name = "Summoning Midterm Exam" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/awaymission/academy/classrooms) "gI" = ( /obj/structure/table, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/weapon/paper{ info = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement."; name = "Summoning Midterm Exam" diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 2aa4616c628..f9e40b73fc3 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -310,7 +310,7 @@ /area/awaymission/cabin) "aZ" = ( /obj/structure/guncase/shotgun, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/carpet, /area/awaymission/cabin) "ba" = ( diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index a375cabe157..992ed6dbbfc 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -805,7 +805,7 @@ name = "\improper BMP Asteroid Level 3" }) "bG" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold, +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index b5be7862dcb..cd8daceac19 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -4160,7 +4160,7 @@ /obj/structure/safe/floor, /obj/item/clothing/under/rank/centcom_officer, /obj/item/clothing/suit/det_suit, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /turf/open/floor/plasteel/grimy, /area/awaymission/centcomAway/general) "mR" = ( diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 79a8b400cfb..2376fd21fb8 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -720,7 +720,7 @@ }, /area/awaymission/challenge/end) "bQ" = ( -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /turf/open/floor/plasteel/white/side{ dir = 2 }, @@ -858,7 +858,7 @@ /area/awaymission/challenge/end) "ck" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /turf/open/floor/wood, /area/awaymission/challenge/end) "cl" = ( @@ -927,7 +927,7 @@ /area/awaymission/challenge/end) "cw" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/l6_saw, +/obj/item/weapon/gun/ballistic/automatic/l6_saw, /turf/open/floor/wood, /area/awaymission/challenge/end) "cx" = ( diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 0edafbfe3ad..170681bb1d9 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -254,7 +254,7 @@ item_state = "facehugger_impregnated"; stat = 2 }, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -8748,7 +8748,7 @@ /obj/effect/decal/remains/human{ desc = "They look like human remains. The skeleton is sitting upright with its legs tucked in and hands still holding onto its arms." }, -/obj/item/weapon/gun/projectile/shotgun/sc_pump, +/obj/item/weapon/gun/ballistic/shotgun/sc_pump, /turf/open/floor/plasteel/showroomfloor{ heat_capacity = 1e+006; temperature = 273.15 diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 243ef869fe4..b03bd92f358 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -1433,8 +1433,8 @@ /area/awaymission/research/interior/security) "dU" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/wt550, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /turf/open/floor/plasteel/red, @@ -1563,8 +1563,8 @@ /area/awaymission/research/interior/security) "ep" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45, /turf/open/floor/plasteel/red, @@ -3916,7 +3916,7 @@ /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "kt" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/plasteel, /area/awaymission/research/interior/dorm) "ku" = ( diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 95a067649e7..91f9619b9fc 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -129,7 +129,7 @@ }, /area/awaymission/snowdin/base) "au" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -363,9 +363,9 @@ /area/awaymission/snowdin) "aY" = ( /obj/structure/guncase/shotgun, -/obj/item/weapon/gun/projectile/shotgun/automatic, -/obj/item/weapon/gun/projectile/shotgun/automatic, -/obj/item/weapon/gun/projectile/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -2423,7 +2423,7 @@ name = "Contraband Locker"; req_access_txt = "3" }, -/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/gun/ballistic/automatic/speargun, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, @@ -2721,7 +2721,7 @@ }, /area/awaymission/snowdin/post) "hm" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -3080,7 +3080,7 @@ }, /area/awaymission/snowdin/sekret) "ir" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -3893,7 +3893,7 @@ /area/awaymission/snowdin/sekret) "ku" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/gun/ballistic/automatic/speargun, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, /turf/open/floor/plasteel/darkwarning{ @@ -3915,7 +3915,7 @@ /area/awaymission/snowdin/sekret) "kx" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/l6_saw/unrestricted, /obj/machinery/light/small{ dir = 4 }, @@ -3997,7 +3997,7 @@ }, /area/awaymission/snowdin/sekret) "kH" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -4015,8 +4015,8 @@ /area/awaymission/snowdin/sekret) "kI" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, /obj/machinery/light/small{ dir = 8 }, @@ -4041,7 +4041,7 @@ /area/awaymission/snowdin/sekret) "kL" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/revolver, +/obj/item/weapon/gun/ballistic/revolver, /obj/machinery/light/small{ dir = 4 }, @@ -4089,8 +4089,8 @@ /area/awaymission/snowdin/sekret) "kS" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/mini_uzi, -/obj/item/weapon/gun/projectile/automatic/mini_uzi, +/obj/item/weapon/gun/ballistic/automatic/mini_uzi, +/obj/item/weapon/gun/ballistic/automatic/mini_uzi, /turf/open/floor/plasteel/darkwarning{ tag = "icon-warndark (SOUTHWEST)"; dir = 10; @@ -4099,8 +4099,8 @@ /area/awaymission/snowdin/sekret) "kT" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, /turf/open/floor/plasteel/darkwarning{ tag = "icon-warndark (SOUTHEAST)"; dir = 6; @@ -4467,7 +4467,7 @@ }, /area/awaymission/snowdin) "lN" = ( -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel/shuttle/red{ baseturf = /turf/open/floor/plating/asteroid/snow; temperature = 180 @@ -4573,7 +4573,7 @@ /area/awaymission/snowdin/sekret) "ma" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/automatic/c20r/toy, +/obj/item/weapon/gun/ballistic/automatic/c20r/toy, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -5198,7 +5198,7 @@ /area/awaymission/snowdin/sekret) "nx" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 @@ -5216,7 +5216,7 @@ /area/awaymission/snowdin/sekret) "nz" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index bef870b8092..1d097a115dd 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -79,7 +79,7 @@ /area/awaymission/spacebattle/syndicate2) "ap" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) @@ -99,7 +99,7 @@ /area/awaymission/spacebattle/syndicate2) "at" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) "au" = ( @@ -145,7 +145,7 @@ /area/awaymission/spacebattle/syndicate3) "aA" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) "aB" = ( @@ -906,7 +906,7 @@ /area/awaymission/spacebattle/cruiser) "db" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate3) @@ -1374,7 +1374,7 @@ mob_name = "Davis Hume"; name = "Davis Hume" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "ez" = ( @@ -1383,7 +1383,7 @@ /area/awaymission/spacebattle/cruiser) "eA" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate1) @@ -1518,7 +1518,7 @@ mob_name = "Kurt Kliest"; name = "Kurt Kliest" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/ammo_casing/shotgun, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -1623,7 +1623,7 @@ /area/awaymission/spacebattle/cruiser) "fp" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -1640,7 +1640,7 @@ /area/awaymission/spacebattle/cruiser) "fr" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "fs" = ( @@ -1652,7 +1652,7 @@ "ft" = ( /obj/item/ammo_casing/a357, /obj/item/ammo_casing/a357, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /obj/effect/mob_spawn/human/commander{ mob_name = "Aaron Bowden"; name = "Aaron Bowden" @@ -1777,7 +1777,7 @@ /area/awaymission/spacebattle/cruiser) "fN" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -2012,7 +2012,7 @@ /turf/open/floor/wood, /area/awaymission/spacebattle/cruiser) "gz" = ( -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "gA" = ( @@ -2413,7 +2413,7 @@ /area/awaymission/spacebattle/cruiser) "hR" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -2584,7 +2584,7 @@ /area/awaymission/spacebattle/cruiser) "iu" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /turf/open/floor/plasteel{ icon_state = "damaged2" }, @@ -2846,12 +2846,12 @@ /area/awaymission/spacebattle/cruiser) "js" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jt" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "ju" = ( @@ -2916,7 +2916,7 @@ "jB" = ( /obj/structure/rack, /obj/structure/window/reinforced, -/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jC" = ( @@ -2986,7 +2986,7 @@ mob_name = "Walter Strider"; name = "Walter Strider" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -3033,7 +3033,7 @@ /area/awaymission/spacebattle/cruiser) "jU" = ( /mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/ballistic/automatic/c20r) }, /turf/open/floor/plasteel/airless, /area/awaymission/spacebattle/cruiser) @@ -3060,14 +3060,14 @@ /area/awaymission/spacebattle/cruiser) "jY" = ( /mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/ballistic/automatic/c20r) }, /turf/open/floor/plating/airless, /area/awaymission/spacebattle/cruiser) "jZ" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/laser, -/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "ka" = ( @@ -3127,7 +3127,7 @@ /area/awaymission/spacebattle/cruiser) "kl" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -3193,7 +3193,7 @@ /area/awaymission/spacebattle/cruiser) "ku" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/white, /area/awaymission/spacebattle/cruiser) diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index 025f32aeb63..cefd6b67e80 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -366,7 +366,7 @@ /area/awaymission/wwmines) "bC" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "bD" = ( @@ -620,7 +620,7 @@ /area/awaymission/wwmines) "ch" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -1307,7 +1307,7 @@ /turf/open/floor/carpet, /area/awaymission/wwmines) "eq" = ( -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/wood, /area/awaymission/wwmines) "er" = ( @@ -1387,7 +1387,7 @@ "eE" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/blue, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "eF" = ( @@ -1839,7 +1839,7 @@ /area/awaymission/wwmines) "fS" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/wood, /area/awaymission/wwmines) "fT" = ( @@ -1928,7 +1928,7 @@ /area/awaymission/wwmines) "gg" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /turf/open/floor/wood, /area/awaymission/wwmines) "gh" = ( @@ -1956,7 +1956,7 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "gm" = ( -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "gn" = ( @@ -2007,11 +2007,11 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "gw" = ( -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/wood, /area/awaymission/wwmines) "gx" = ( -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm index d3e61a2caaf..aa63064c3b7 100644 --- a/_maps/map_files/BirdStation/BirdStation.dmm +++ b/_maps/map_files/BirdStation/BirdStation.dmm @@ -6570,7 +6570,7 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "aqc" = ( -/obj/item/weapon/gun/projectile/shotgun/toy, +/obj/item/weapon/gun/ballistic/shotgun/toy, /turf/open/floor/wood, /area/maintenance/fsmaint) "aqd" = ( @@ -12643,7 +12643,7 @@ }) "aFh" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /turf/open/floor/wood, /area/crew_quarters/bar{ name = "\improper Bar and Kitchen" @@ -17155,8 +17155,8 @@ /area/toxins/xenobiology) "aQz" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 5; pixel_y = -5 }, @@ -20557,7 +20557,7 @@ }) "aYD" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/wood, /area/maintenance/fore{ name = "Security Maintenance" @@ -23169,7 +23169,7 @@ /area/toxins/xenobiology) "beI" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/bot, /area/security/warden) "beJ" = ( @@ -23179,11 +23179,11 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -5; pixel_y = 5 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/bot, /area/security/warden) "beK" = ( @@ -23233,7 +23233,7 @@ lootcount = 3; name = "teargas clusterbuster spawner" }, -/obj/item/weapon/gun/energy/gun/hos, +/obj/item/weapon/gun/energy/e_gun/hos, /obj/item/weapon/storage/box/lethalshot, /obj/item/weapon/storage/box/lethalshot, /turf/open/floor/plasteel, diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm index fd247eea4bd..17a76c2cfa6 100644 --- a/_maps/map_files/DreamStation/dreamstation04.dmm +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -39854,7 +39854,7 @@ "bCK" = ( /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/stack/sheet/metal{ amount = 50 }, @@ -45110,11 +45110,11 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/vault{ tag = "icon-vault (WEST)"; dir = 8 @@ -46884,12 +46884,12 @@ /area/security/armory) "bPk" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -46922,12 +46922,12 @@ /area/security/armory) "bPm" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -48792,8 +48792,8 @@ pixel_y = -24 }, /obj/machinery/light, -/obj/item/weapon/gun/energy/gun/dragnet, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/vault{ dir = 8 }, diff --git a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm index 536b9cdaefe..37b2c3283dd 100644 --- a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm +++ b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm @@ -31581,7 +31581,7 @@ /area/crew_quarters/kitchen) "bkV" = ( /obj/structure/table, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/reagent_containers/food/drinks/shaker, /turf/open/floor/plasteel/black, @@ -41900,8 +41900,8 @@ pixel_x = -2; pixel_y = -2 }, -/obj/item/weapon/gun/energy/gun/dragnet, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/black, /area/security/warden) "bFG" = ( @@ -43328,12 +43328,12 @@ /area/security/warden) "bIq" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -44008,12 +44008,12 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_x = 30 }, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = -3 }, @@ -44657,12 +44657,12 @@ /area/security/warden) "bKI" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c9481b69bef..c2885b4335d 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2389,7 +2389,7 @@ name = "3maintenance loot spawner" }, /obj/effect/spawner/lootdrop/armory_contraband{ - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol = 5, /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, /obj/item/weapon/gun/projectile/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -3471,12 +3471,12 @@ /area/ai_monitored/security/armory) "agh" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -3943,23 +3943,23 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/vault{ dir = 1 }, /area/ai_monitored/security/armory) "aha" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -8279,7 +8279,7 @@ pixel_x = 28 }, /obj/structure/closet/secure_closet/warden, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoH" = ( @@ -16431,7 +16431,7 @@ "aCy" = ( /obj/structure/safe, /obj/item/weapon/storage/secure/briefcase{ - contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) + contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) }, /obj/item/weapon/storage/backpack/dufflebag{ contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); @@ -16446,8 +16446,8 @@ registered_name = "Thirteen" }, /obj/item/weapon/lazarus_injector, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/ammo_box/a357, /obj/item/clothing/neck/stethoscope, /obj/item/weapon/book{ @@ -39791,7 +39791,7 @@ /obj/structure/table/wood, /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/machinery/camera{ c_tag = "Bar - Backroom"; dir = 2; @@ -46729,7 +46729,7 @@ "bCu" = ( /obj/structure/table/wood/poker, /obj/effect/spawner/lootdrop{ - loot = list(/obj/item/weapon/gun/projectile/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); + loot = list(/obj/item/weapon/gun/ballistic/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); name = "gambling valuables spawner" }, /turf/open/floor/wood, diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 86824d3f85d..d23543cb8b4 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -10679,7 +10679,7 @@ /area/engine/engineering) "xU" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/weapon/reagent_containers/food/drinks/shaker, /turf/open/floor/wood, /area/crew_quarters/bar) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 8d63ea85dd7..fc536d95b46 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -4224,12 +4224,12 @@ /area/security/brig) "ajk" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -4677,12 +4677,12 @@ /area/security/brig) "ajY" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -4716,12 +4716,12 @@ /area/security/armory) "akc" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = -3 }, @@ -19900,7 +19900,7 @@ /area/maintenance/fsmaint2) "aOK" = ( /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/structure/table/wood, /obj/item/weapon/coin/silver, /obj/item/stack/spacecash/c10, @@ -43942,7 +43942,7 @@ /obj/item/weapon/kitchen/knife, /obj/item/candle, /obj/item/pipe, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/stack/cable_coil/white, /obj/item/weapon/wrench, /obj/effect/decal/cleanable/cobweb{ diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 440aff34c0b..075efa3cc66 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -420,8 +420,8 @@ /obj/machinery/firealarm{ pixel_y = 24 }, -/obj/item/weapon/gun/energy/gun/dragnet, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -1126,12 +1126,12 @@ /area/ai_monitored/security/armory) "acM" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -1322,12 +1322,12 @@ /area/ai_monitored/security/armory) "adj" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -1337,12 +1337,12 @@ /area/ai_monitored/security/armory) "adk" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = -3 }, @@ -14675,7 +14675,7 @@ /obj/item/clothing/head/bearpelt, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/ammo_box/a357, /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, /turf/open/floor/plasteel/vault{ @@ -16331,7 +16331,7 @@ /area/maintenance/fsmaint2) "aJE" = ( /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/structure/table/wood, /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, @@ -57763,7 +57763,7 @@ "cvG" = ( /obj/machinery/porta_turret/ai{ dir = 4; - installation = /obj/item/weapon/gun/energy/gun + installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ icon_state = "tube1"; @@ -57803,7 +57803,7 @@ "cvJ" = ( /obj/machinery/porta_turret/ai{ dir = 4; - installation = /obj/item/weapon/gun/energy/gun + installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ icon_state = "tube1"; diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index fedee36221d..66ab65a9d9c 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -1,1298 +1,1298 @@ -"aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/indestructible/riveted,/area/space) -"ac" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) -"ad" = (/obj/effect/landmark/transit,/turf/open/space,/area/space) -"ae" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) -"af" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) -"ah" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) -"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) -"aj" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) -"ak" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) -"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) -"am" = (/obj/structure/table/wood{layer = 3.3},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"an" = (/obj/structure/closet/crate/bin,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"ao" = (/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{layer = 3.3; pixel_y = 0},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aq" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) -"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) -"as" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) -"at" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/court) -"au" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/court) -"av" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/court) -"aw" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) -"ax" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"ay" = (/obj/item/toy/snowball{pixel_x = 0; pixel_y = 6},/obj/item/toy/snowball{pixel_x = 5; pixel_y = 0},/obj/item/toy/snowball{pixel_x = -4},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"az" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn (WEST)"; icon_state = "asteroid_warn"; dir = 8},/area/holodeck/rec_center/bunker) -"aA" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) -"aB" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches{pixel_x = -4; pixel_y = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aC" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aD" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) -"aE" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) -"aF" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/court) -"aG" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) -"aH" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/court) -"aI" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aJ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) -"aK" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aL" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aM" = (/obj/structure/table/wood/poker,/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aN" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aO" = (/obj/structure/statue/snow/snowman{anchored = 1},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aP" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aQ" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aR" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aS" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aT" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aU" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aV" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 10},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aW" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-l"},/area/holodeck/rec_center/lounge) -"aX" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-r"},/area/holodeck/rec_center/lounge) -"aY" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/court) -"aZ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/court) -"ba" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_y = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bb" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bc" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bd" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"be" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) -"bf" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bg" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bh" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bi" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/court) -"bj" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/court) -"bk" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/court) -"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) -"bm" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"bn" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bo" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bp" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bq" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"br" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bs" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bt" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bu" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"bv" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bw" = (/obj/structure/holohoop{layer = 3.9},/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bx" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/basketball) -"by" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bz" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) -"bA" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) -"bB" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) -"bC" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bF" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bG" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bH" = (/obj/effect/holodeck_effect/mobspawner/pet,/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bI" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) -"bJ" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"bK" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/medical) -"bL" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bM" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) -"bN" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bO" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bP" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bQ" = (/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) -"bR" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) -"bT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bU" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bV" = (/obj/item/weapon/storage/bag/easterbasket{name = "picnic basket"; pixel_y = 6},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"bW" = (/obj/item/trash/plate,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"bX" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"bY" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"bZ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"ca" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"cb" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"cc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cd" = (/obj/effect/holodeck_effect/mobspawner/monkey,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"ce" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cf" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cg" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"ch" = (/obj/item/weapon/shovel/spade{pixel_x = 2; pixel_y = -2},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"ci" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cj" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/clothing/head/beekeeper_head,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"ck" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"cl" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"cm" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cn" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"co" = (/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cp" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cr" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"cs" = (/obj/structure/window,/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) -"ct" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cu" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cv" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cw" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/effect/decal/remains/human,/obj/item/clothing/suit/beekeeper_suit,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"cx" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/weapon/melee/flyswatter,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"cy" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"cz" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"cA" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cB" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cC" = (/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cF" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"cG" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) -"cH" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cI" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cJ" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cK" = (/obj/structure/sink/puddle,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cL" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cM" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cN" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) -"cO" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cQ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cR" = (/obj/machinery/hydroponics/soil,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cS" = (/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cT" = (/obj/machinery/hydroponics/soil,/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cU" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"cW" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"cX" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cY" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cZ" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"da" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"db" = (/obj/item/weapon/shovel/spade,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"dc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dd" = (/obj/structure/flora/ausbushes/pointybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"de" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) -"df" = (/turf/open/floor/holofloor{dir = 8; icon_state = "white_warn_corner"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) -"dg" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"dh" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"di" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) -"dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"dk" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"dl" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"dm" = (/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"dn" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"do" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/basketball) -"dp" = (/obj/structure/holohoop{dir = 1; layer = 4.1},/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) -"dq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/basketball) -"dr" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) -"ds" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) -"dt" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) -"du" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) -"dv" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dw" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dx" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dy" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) -"dz" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/spacechess) -"dA" = (/obj/item/weapon/banner/blue,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dB" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dC" = (/obj/structure/table/wood/fancy,/obj/item/clothing/head/crown/fancy{pixel_y = 6},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dD" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/knight/red,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dE" = (/obj/item/weapon/banner/red,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dF" = (/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"dG" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"dH" = (/obj/structure/closet{density = 0; opened = 1},/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/powdered_wig,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dI" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/nun,/obj/item/clothing/head/nun_hood,/obj/item/clothing/suit/holidaypriest,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/book/bible,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dL" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dM" = (/obj/machinery/conveyor/holodeck{dir = 5; icon_state = "conveyor0"; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"dN" = (/obj/machinery/conveyor/holodeck{dir = 8; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"dO" = (/obj/machinery/conveyor/holodeck{dir = 6; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"dP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/firingrange) -"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/firingrange) -"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/firingrange) -"dS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/firingrange) -"dT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/firingrange) -"dU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) -"dV" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_viva"; name = "Black Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"dW" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_mime"; name = "Black Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"dX" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_clown"; name = "Black King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"dY" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_ian"; name = "Black Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"dZ" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"ea" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"eb" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo1"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"ec" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ed" = (/obj/machinery/button/massdriver{id = "trektorpedo1"; layer = 3.9; name = "photon torpedo button"; pixel_x = -16; pixel_y = -5},/obj/machinery/button/massdriver{id = "trektorpedo2"; layer = 3.9; name = "photon torpedo button"; pixel_x = 16; pixel_y = -5},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ee" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ef" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo2"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"eg" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) -"eh" = (/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) -"ei" = (/obj/structure/chair,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"ej" = (/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) -"ek" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) -"el" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"em" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"en" = (/obj/machinery/conveyor/holodeck{dir = 1; id = "holocoaster"; layer = 2.5},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"eo" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/firingrange) -"ep" = (/obj/structure/target_stake,/obj/machinery/magnetic_module,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/firingrange) -"eq" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/firingrange) -"er" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"es" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"et" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"eu" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"ev" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"ew" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ex" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ey" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ez" = (/obj/structure/table/glass,/obj/item/weapon/gun/energy/gun/mini/practice_phaser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eA" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) -"eB" = (/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) -"eC" = (/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/obj/structure/table/wood,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"eD" = (/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) -"eE" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) -"eF" = (/obj/item/weapon/shovel,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"eG" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/firingrange) -"eH" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/firingrange) -"eI" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/firingrange) -"eJ" = (/obj/item/weapon/weldingtool,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) -"eK" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"eL" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"eM" = (/turf/open/floor/holofloor{tag = "icon-stairs-old (WEST)"; icon_state = "stairs-old"; dir = 8},/area/holodeck/rec_center/thunderdome1218) -"eN" = (/obj/structure/table/wood,/obj/item/weapon/melee/chainofcommand{name = "chain whip"},/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eO" = (/obj/structure/table/wood,/obj/item/weapon/scythe,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eP" = (/obj/structure/table/wood,/obj/item/weapon/tailclub,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eQ" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"eR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"eS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"eT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"eU" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eV" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eX" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eY" = (/obj/machinery/computer/station_alert,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) -"fa" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) -"fb" = (/obj/machinery/modular_computer/console/preset/civilian,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fc" = (/obj/machinery/computer/atmos_alert,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fd" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) -"fe" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) -"ff" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/obj/structure/chair/office{dir = 1; name = "coaster car"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fg" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fh" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fi" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"fj" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"fk" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"fl" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"fm" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fn" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen/blue,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fo" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fp" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/folder,/obj/item/weapon/pen/red,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fq" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fr" = (/obj/structure/closet/crate/miningcar{can_buckle = 1; desc = "Great for mining!"; name = "minecart"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fs" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"ft" = (/obj/item/weapon/paper/range,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fu" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"fv" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_viva"; name = "White Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"fw" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_mime"; name = "White Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"fx" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_clown"; name = "White King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"fy" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_ian"; name = "White Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"fz" = (/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fA" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/kobayashi) -"fB" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/firingrange) -"fC" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/spacechess) -"fD" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"fE" = (/obj/structure/rack,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/command,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fF" = (/turf/open/floor/holofloor{tag = "icon-neutral"; icon_state = "neutral"; dir = 2},/area/holodeck/rec_center/kobayashi) -"fG" = (/obj/structure/rack,/obj/item/clothing/under/trek/engsec,/obj/item/clothing/under/trek/engsec,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fH" = (/obj/machinery/conveyor/holodeck{dir = 9; icon_state = "conveyor0"; id = "holocoaster"; tag = "icon-conveyor0 (NORTHWEST)"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fI" = (/obj/machinery/conveyor/holodeck{dir = 4; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fJ" = (/obj/machinery/conveyor/holodeck{dir = 10; id = "holocoaster"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fK" = (/obj/item/target,/obj/item/target/clown,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fL" = (/obj/item/target,/obj/item/target/syndicate,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fN" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) -"fO" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) -"fP" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) -"fQ" = (/turf/open/floor/plasteel,/area/tdome/arena_source) -"fR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"fS" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"fT" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) -"fU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) -"fV" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) -"fW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"fX" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) -"fY" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) -"fZ" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"ga" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"gb" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"gc" = (/turf/closed/indestructible/riveted,/area/start) -"gd" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) -"ge" = (/turf/closed/indestructible/riveted,/area/ctf) -"gf" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/area/ctf) -"gg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/ctf) -"gh" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ctf) -"gi" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/area/ctf) -"gj" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/ctf) -"gk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/area/ctf) -"gl" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/area/ctf) -"gm" = (/turf/open/floor/plasteel/black,/area/ctf) -"gn" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ctf) -"go" = (/turf/open/floor/plasteel/blue,/area/ctf) -"gp" = (/turf/open/floor/plasteel/darkblue,/area/ctf) -"gq" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) -"gr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) -"gs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) -"gt" = (/turf/open/floor/plasteel/bluespace,/area/ctf) -"gu" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)"; dir = 8},/area/ctf) -"gv" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) -"gw" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/area/ctf) -"gx" = (/turf/open/floor/plasteel/red,/area/ctf) -"gy" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) -"gz" = (/turf/closed/indestructible/splashscreen,/area/start) -"gA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/area/ctf) -"gB" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) -"gC" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/area/ctf) -"gD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/area/ctf) -"gE" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) -"gF" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/area/ctf) -"gG" = (/obj/structure/window/reinforced/fulltile{obj_integrity = 5000; max_integrity = 5000; name = "hardened window"},/turf/open/floor/plating,/area/ctf) -"gH" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) -"gI" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"gJ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"gK" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"gL" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"gM" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"gN" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) -"gO" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"gP" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"gQ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/ctf) -"gR" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ctf) -"gS" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) -"gT" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"gU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) -"gV" = (/turf/open/floor/plating,/area/ctf) -"gW" = (/turf/open/floor/plating/airless/warnplate{dir = 4; luminosity = 2},/area/ctf) -"gX" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"gY" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/area/ctf) -"gZ" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) -"ha" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) -"hb" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"hc" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) -"hd" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) -"he" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"hf" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1},/turf/open/floor/plating,/area/ctf) -"hg" = (/obj/structure/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) -"hh" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"hi" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hj" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"hk" = (/turf/open/floor/plasteel/darkred,/area/ctf) -"hl" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) -"hm" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"hn" = (/turf/open/floor/plasteel/circuit,/area/ctf) -"ho" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"hp" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"hq" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) -"hr" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"hs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) -"ht" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) -"hu" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"hv" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hw" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hx" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hy" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hz" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hA" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"hB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"hC" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) -"hD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"hE" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) -"hF" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hG" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hH" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hI" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hJ" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hK" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) -"hL" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"hM" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) -"hN" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) -"hO" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) -"hP" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) -"hQ" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) -"hR" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"hS" = (/turf/closed/wall/mineral/titanium/overspace,/area/centcom/evac) -"hT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"hU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"hW" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"hX" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"hY" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"hZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"ia" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"ib" = (/turf/closed/wall/mineral/titanium,/area/centcom/evac) -"ic" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"id" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/centcom/evac) -"ie" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) -"if" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"ig" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"ih" = (/turf/open/floor/plating,/area/centcom/evac) -"ii" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) -"ij" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) -"ik" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"il" = (/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) -"im" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"in" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"io" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"ip" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"iq" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) -"ir" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"is" = (/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"it" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"iu" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"iv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"iw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"ix" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) -"iy" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/area/ctf) -"iz" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"iA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iD" = (/obj/structure/table/reinforced,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iE" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iF" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iG" = (/obj/machinery/computer/secure_data,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iH" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iI" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iJ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iK" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/ctf) -"iL" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/area/ctf) -"iM" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"iN" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iO" = (/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iP" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iQ" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"iR" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) -"iS" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) -"iT" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"iU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iV" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iW" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"iX" = (/obj/structure/bed,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) -"iZ" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) -"ja" = (/obj/docking_port/stationary{dir = 4; dwidth = 2; height = 7; id = "pod1_away"; name = "recovery ship"; width = 5},/turf/open/space,/area/space) -"jb" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jc" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jd" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"je" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) -"jf" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jg" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jh" = (/obj/structure/filingcabinet,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"ji" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jj" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"jk" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"jl" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jm" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jn" = (/obj/machinery/computer/shuttle,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jo" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jp" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jq" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) -"jr" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"js" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/escape) -"jt" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) -"ju" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/centcom/ferry) -"jv" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"jw" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"jx" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/obj/docking_port/mobile/emergency/backup{dwidth = 3},/turf/open/floor/plating,/area/shuttle/escape) -"jy" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"jz" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"jA" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"jB" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) -"jC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jE" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jF" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jG" = (/obj/machinery/status_display{density = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jH" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jI" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jJ" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) -"jK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jL" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jM" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) -"jN" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) -"jO" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jP" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jQ" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jR" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jT" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jV" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jW" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jX" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jZ" = (/turf/closed/indestructible/riveted,/area/centcom/prison) -"ka" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) -"kb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) -"kc" = (/turf/open/floor/wood,/area/centcom/ferry) -"kd" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) -"ke" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"kf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"kg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"kh" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"ki" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) -"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) -"kk" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) -"kl" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) -"km" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) -"kn" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) -"ko" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) -"kp" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"kq" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) -"kr" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) -"ks" = (/turf/open/floor/carpet,/area/centcom/ferry) -"kt" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"ku" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"kv" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) -"kw" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) -"kx" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/ferry) -"ky" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) -"kz" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) -"kA" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) -"kB" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) -"kC" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) -"kD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) -"kE" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) -"kF" = (/turf/closed/indestructible/riveted,/area/centcom/evac) -"kG" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; width = 5},/turf/open/space,/area/space) -"kH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"kI" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) -"kJ" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) -"kK" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) -"kL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) -"kM" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) -"kN" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) -"kO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) -"kP" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) -"kQ" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) -"kR" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) -"kS" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) -"kT" = (/turf/open/floor/plasteel/black,/area/centcom/evac) -"kU" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/ferry) -"kV" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) -"kW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) -"kX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) -"kY" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) -"kZ" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) -"la" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) -"lb" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) -"lc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) -"ld" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"le" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) -"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) -"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) -"lh" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) -"li" = (/turf/closed/indestructible/riveted,/area/centcom/control) -"lj" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) -"lk" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) -"ll" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) -"lm" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) -"ln" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac) -"lo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac) -"lp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac) -"lq" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"lr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/evac) -"ls" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) -"lt" = (/turf/open/floor/plasteel,/area/centcom/control) -"lu" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) -"lv" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"lw" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"lx" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"ly" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"lz" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) -"lA" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) -"lB" = (/turf/open/floor/plasteel,/area/centcom/evac) -"lC" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) -"lD" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) -"lE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) -"lF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) -"lG" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) -"lH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) -"lI" = (/turf/open/floor/grass,/area/centcom/control) -"lJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) -"lK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) -"lL" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) -"lM" = (/turf/open/floor/plasteel/black,/area/centcom/control) -"lN" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) -"lO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) -"lP" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) -"lQ" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) -"lR" = (/turf/open/space/transit,/area/space) -"lS" = (/turf/closed/indestructible/riveted,/area/centcom/supply) -"lT" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) -"lU" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) -"lV" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) -"lW" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) -"lX" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) -"lY" = (/obj/docking_port/stationary{dir = 4; dwidth = 25; height = 50; id = "emergency_away"; name = "Centcom Emergency Shuttle Dock"; width = 50},/turf/open/space,/area/space) -"lZ" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) -"ma" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) -"mb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) -"mc" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) -"md" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) -"me" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"mf" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) -"mg" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) -"mh" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) -"mi" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) -"mj" = (/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mk" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"ml" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mm" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mn" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/supply) -"mp" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) -"mq" = (/turf/open/floor/plasteel,/area/centcom/supply) -"mr" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) -"ms" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) -"mt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) -"mu" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) -"mv" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mw" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) -"mx" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) -"my" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) -"mz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) -"mA" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) -"mB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) -"mC" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mD" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) -"mE" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) -"mF" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/centcom/control) -"mG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) -"mH" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/open/space,/area/space) -"mI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"mJ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) -"mK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/supply) -"mL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) -"mM" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) -"mN" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) -"mO" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/supply) -"mP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) -"mQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) -"mR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) -"mS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) -"mT" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) -"mU" = (/turf/open/floor/plating/asteroid/snow,/area/space) -"mV" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) -"mW" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) -"mX" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) -"mY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) -"mZ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"na" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) -"nb" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) -"nc" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) -"nd" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) -"ne" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) -"nf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) -"ng" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) -"nh" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) -"ni" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) -"nj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) -"nk" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) -"nl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) -"nm" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"nn" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) -"no" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) -"np" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) -"nq" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) -"nr" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) -"ns" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nt" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nu" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nv" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) -"nx" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"ny" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nz" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) -"nA" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"nB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"nD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/evac) -"nE" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"nF" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) -"nG" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) -"nH" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) -"nI" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) -"nJ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nK" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nL" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nM" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nN" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nO" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nP" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nQ" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nR" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) -"nS" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"nT" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"nU" = (/turf/open/floor/engine/cult,/area/wizard_station) -"nV" = (/obj/machinery/computer/shuttle,/turf/open/floor/engine/cult,/area/wizard_station) -"nW" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nX" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nY" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oa" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"ob" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"oc" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"od" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"oe" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) -"of" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"og" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oh" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oi" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) -"oj" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"ok" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) -"ol" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) -"om" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) -"on" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) -"oo" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) -"op" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) -"oq" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) -"or" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) -"os" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) -"ot" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) -"ou" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) -"ov" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) -"ow" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) -"ox" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) -"oy" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) -"oB" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) -"oC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) -"oD" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"oE" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/assault_pod) -"oF" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"oG" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"oH" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) -"oI" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) -"oJ" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) -"oK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) -"oL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Cockpit"},/turf/open/floor/engine/cult,/area/wizard_station) -"oM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) -"oN" = (/turf/open/floor/plating,/area/syndicate_mothership) -"oO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) -"oP" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) -"oQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"oR" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"oS" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"oT" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) -"oU" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) -"oV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) -"oW" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) -"oX" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) -"oY" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/wood,/area/wizard_station) -"oZ" = (/obj/structure/table/wood/fancy,/obj/item/device/radio/intercom{desc = "Talk smack through this."; syndie = 1},/turf/open/floor/wood,/area/wizard_station) -"pa" = (/turf/open/floor/carpet,/area/wizard_station) -"pb" = (/obj/structure/chair/wood/wings,/turf/open/floor/carpet,/area/wizard_station) -"pc" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) -"pd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) -"pe" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"pf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) -"pg" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"ph" = (/turf/open/floor/wood,/area/wizard_station) -"pi" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/wood,/area/wizard_station) -"pj" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/carpet,/area/wizard_station) -"pk" = (/obj/structure/table/wood/poker,/obj/item/toy/figure/wizard,/turf/open/floor/carpet,/area/wizard_station) -"pl" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/carpet,/area/wizard_station) -"pm" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/open/floor/plating/asteroid/snow; width = 18},/turf/open/floor/plating/asteroid/snow,/area/space) -"pn" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) -"po" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) -"pp" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) -"pq" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) -"pr" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"ps" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) -"pt" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"pu" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"pv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"pw" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Game Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"px" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/carpet,/area/wizard_station) -"py" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"pz" = (/turf/open/floor/wood,/area/syndicate_mothership) -"pA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) -"pB" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) -"pC" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"pD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) -"pE" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"pF" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/wood,/area/wizard_station) -"pG" = (/obj/structure/table/wood/fancy,/obj/item/device/camera/spooky,/turf/open/floor/carpet,/area/wizard_station) -"pH" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/wizard_station) -"pI" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) -"pJ" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) -"pK" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) -"pL" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"pM" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"pN" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"pO" = (/obj/item/weapon/statuebust{pixel_y = 12},/obj/structure/table/wood/fancy,/turf/open/floor/wood,/area/wizard_station) -"pP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) -"pQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) -"pR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/pill_bottle/dice{icon_state = "magicdicebag"},/turf/open/floor/carpet,/area/wizard_station) -"pS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/wizard_station) -"pT" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"pU" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) -"pV" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) -"pW" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) -"pX" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"pY" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) -"pZ" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) -"qa" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3; name = "steel rain"; port_angle = 90; preferred_direction = 4},/turf/open/floor/plating,/area/shuttle/assault_pod) -"qb" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) -"qc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Study"},/turf/open/floor/engine/cult,/area/wizard_station) -"qd" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"qe" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) -"qf" = (/turf/closed/indestructible/riveted,/area/tdome/arena) -"qg" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) -"qh" = (/turf/open/floor/plasteel,/area/tdome/arena) -"qi" = (/obj/structure/chair/wood/wings,/turf/open/floor/engine/cult,/area/wizard_station) -"qj" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/engine/cult,/area/wizard_station) -"qk" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/open/floor/engine/cult,/area/wizard_station) -"ql" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/engine/cult,/area/wizard_station) -"qm" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) -"qn" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/grass,/area/wizard_station) -"qo" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/open/floor/grass,/area/wizard_station) -"qp" = (/obj/effect/decal/remains/xeno/larva,/turf/open/floor/grass,/area/wizard_station) -"qq" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) -"qr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) -"qs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"qt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) -"qu" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) -"qv" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"qw" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) -"qx" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) -"qy" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) -"qz" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"qA" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) -"qB" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) -"qC" = (/obj/structure/destructible/cult/tome,/turf/open/floor/engine/cult,/area/wizard_station) -"qD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/open/floor/engine/cult,/area/wizard_station) -"qE" = (/turf/open/floor/grass,/area/wizard_station) -"qF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/turf/open/floor/grass,/area/wizard_station) -"qG" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) -"qH" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) -"qI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"qJ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"qK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) -"qL" = (/obj/structure/bookcase/random/reference,/turf/open/floor/engine/cult,/area/wizard_station) -"qM" = (/obj/structure/destructible/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/open/floor/engine/cult,/area/wizard_station) -"qN" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/open/floor/engine/cult,/area/wizard_station) -"qO" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/open/floor/grass,/area/wizard_station) -"qP" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"qQ" = (/turf/open/floor/bluegrid,/area/tdome/arena) -"qR" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) -"qS" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"qT" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) -"qU" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/engine/cult,/area/wizard_station) -"qV" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) -"qW" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/grass,/area/wizard_station) -"qX" = (/obj/effect/decal/remains/xeno,/turf/open/floor/grass,/area/wizard_station) -"qY" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) -"qZ" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) -"ra" = (/mob/living/simple_animal/bot/medbot/mysterious{desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; faction = list("neutral","silicon","creature"); name = "Nobody's Perfect"},/turf/open/floor/engine/cult,/area/wizard_station) -"rb" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/turf/open/floor/grass,/area/wizard_station) -"rc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Deck"},/turf/open/floor/engine/cult,/area/wizard_station) -"rd" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"re" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) -"rf" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) -"rg" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) -"rh" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) -"ri" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) -"rj" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) -"rk" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rl" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rm" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rn" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"ro" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rp" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Storage"},/turf/open/floor/engine/cult,/area/wizard_station) -"rq" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) -"rr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Bathroom"},/turf/open/floor/engine/cult,/area/wizard_station) -"rs" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) -"rt" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"ru" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rv" = (/obj/item/clothing/suit/wizrobe/black,/obj/item/clothing/head/wizard/black,/turf/open/floor/plasteel/bot,/area/wizard_station) -"rw" = (/turf/open/floor/plasteel/bot,/area/wizard_station) -"rx" = (/obj/item/cardboard_cutout,/turf/open/floor/plasteel/bot,/area/wizard_station) -"ry" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) -"rz" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/wizard_station) -"rA" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/white,/area/wizard_station) -"rB" = (/turf/open/floor/plasteel/white,/area/wizard_station) -"rC" = (/obj/structure/mirror/magic{pixel_y = 28},/obj/structure/sink{pixel_y = 20},/turf/open/floor/plasteel/white,/area/wizard_station) -"rD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) -"rE" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rF" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rG" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rH" = (/obj/item/weapon/cautery/alien,/turf/open/floor/plasteel/bot,/area/wizard_station) -"rI" = (/obj/item/weapon/coin/antagtoken,/turf/open/floor/plasteel/bot,/area/wizard_station) -"rJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) -"rK" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/white,/area/wizard_station) -"rL" = (/obj/structure/closet/cardboard,/obj/item/weapon/banhammer,/turf/open/floor/plasteel/warning,/area/wizard_station) -"rM" = (/turf/open/floor/plasteel/warning,/area/wizard_station) -"rN" = (/obj/vehicle/scooter/skateboard{tag = "icon-skateboard (EAST)"; icon_state = "skateboard"; dir = 4},/turf/open/floor/plasteel/warning,/area/wizard_station) -"rO" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/open/floor/carpet,/area/wizard_station) -"rP" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) -"rQ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/plasteel/white,/area/wizard_station) -"rR" = (/obj/structure/toilet{tag = "icon-toilet00 (NORTH)"; icon_state = "toilet00"; dir = 1},/turf/open/floor/plasteel/white,/area/wizard_station) -"rS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/skub{pixel_y = 16},/turf/open/floor/plasteel/white,/area/wizard_station) -"rT" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Engine Room"},/obj/structure/barricade/wooden,/turf/open/floor/engine/cult,/area/wizard_station) -"rU" = (/turf/closed/indestructible/riveted,/area/centcom/holding) -"rV" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) -"rW" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines."; max_charges = 0; name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) -"rX" = (/obj/structure/table/wood,/obj/item/weapon/bikehorn/golden{pixel_x = -8; pixel_y = 8},/turf/open/floor/engine/cult,/area/wizard_station) -"rY" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"rZ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sa" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sd" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"se" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sf" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sg" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sh" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"si" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sj" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sk" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sm" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sn" = (/obj/structure/destructible/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) -"so" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sq" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"ss" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"st" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"su" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sv" = (/obj/structure/window/reinforced{resistance_flags = 3; color = "#008000"; dir = 1},/turf/open/floor/plating/lava,/area/wizard_station) -"sw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sx" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sy" = (/obj/structure/shuttle/engine/heater{resistance_flags = 3},/turf/open/floor/plating/lava,/area/wizard_station) -"sz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sA" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sB" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/wizard_station) -"sC" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sD" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) -"sE" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) -"sF" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sG" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sH" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) -"sI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) -"sJ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) -"sK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/centcom/holding) -"sL" = (/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{desc = "I bet you think you're pretty clever... well you are."; name = "easter egg"},/turf/open/space,/area/space) -"sM" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) -"sN" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) -"sO" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) -"sP" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) -"sQ" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) -"sR" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) -"sS" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) -"sT" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) -"sU" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"sV" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) -"sW" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"sX" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) -"sY" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) -"sZ" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"ta" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tb" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tc" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) -"td" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"te" = (/turf/open/floor/plating/abductor,/area/abductor_ship) -"tf" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tg" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) -"th" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"ti" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) -"tj" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tk" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tl" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tm" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tn" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) -"to" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) -"tp" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tq" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tr" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) -"ts" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tt" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) -"tu" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) -"tv" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) -"tw" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tx" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) -"ty" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tz" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) -"tA" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) -"tB" = (/turf/closed/indestructible/abductor,/area/abductor_ship) -"tC" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) -"tD" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) -"tE" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) -"tF" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) -"tG" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tH" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tI" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tJ" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tK" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tL" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tM" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tN" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tO" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tP" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tQ" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tR" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tS" = (/turf/closed/indestructible/riveted,/area/awaymission/errorroom) -"tT" = (/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) -"tU" = (/obj/structure/speaking_tile,/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) -"tV" = (/obj/item/rupee,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tW" = (/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tX" = (/obj/effect/landmark/error,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tY" = (/obj/structure/signpost/salvation{icon = 'icons/obj/structures.dmi'; icon_state = "ladder10"; invisibility = 100},/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tZ" = (/obj/structure/lattice,/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacab -aaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakalagamanaoaoapagaqaqaqaqaqagarararararagasasasasasagatauauauavaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaxayayafagahaiajazaAagaBaoaCaCaoagaqaDaqaDaqagarararararagasaEasaEasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaIafagahaiajazaJagaoaKaLaMaNagaqaqaqaqaqagarararararagasasasasasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaOafagahaiajakakagaoaoaPaPaoagaqaqaqaqaqagarararararagasasaEasasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaQafafafagahaiajazaJagaRaSaoaoaSagaqaqaDaqaqagarararararagasasasasasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaTafaUaxagahaiajazaJagaRaVaWaXaVagaqaqaDaqaqagarararararagasasasasasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaIafafafagahaiajakakagaRbabbbbbbagaqaqaqaqaqagarararararagasasaEasasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajazaJagaRbcbbbbbdagaqaqaqaqaqagarararararagasasasasasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafayayaIafagahaiajazaAagaRbcbbbbbdagaqaDaqaDaqagarararararagasaEasaEasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakbeagaRbfbgbgbhagaqaqaqaqaqagarararararagasasasasasagbibjbjbjbkaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbnbobnbpbnagbqbrbsbtbuagbvbvbwbxbxagbybybybybyagbzbAbAbAbBagbCbDbDbDbEaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbpbFbGbHbnagbIbJbJbJbKagbLbLbMbNbNagbybObybPbyagbQbQbQbQbQagbRbSbSbSbTaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFbUbVbWbFagbXbYbZcacbagbLccccccbNagbycdbycdbyagbQbQbQbQbQagbRcececebTaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfbncgchcfagbJbJciciciagbLbMbMbMbNagbybybybybyagbQbQbQbQbQagbRbSbSbSbTaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcjbmbmagbFbnbnbnbnagckclcmbJcnagcocpcpcpcqagbycrbybybyagcscscscscsagctcucucucvaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcwcxbmagbnbGbnbobFagcyczcAbJcBagcCcDcDcDcEagbybybycFbyagcGcGcGcGcGagcHcIcIcIcJaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfcKbUcLbnagbJbJbJbJbJagcMbMcNbMcOagbybybybybyagbQbQbQbQbQagcPbSbSbScQaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFcRcScTcUagcVcWcXbJbJagcMcYcYcYcOagcZdadbcZcZagbQbQbQbQbQagcPdcdcdccQaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbocRcTcRddagdedfdgdhclagcMcMbMcOcOagdididididiagbQbQbQbQbQagcPbSbSbScQaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbncfbnbpbnagdjdkdldmdnagdododpdqdqagdrdrdrdrdragdsdtdtdtduagdvdwdwdwdxaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabacacacacacabblblblblblabblblblblblabblblblblblabblblblblblab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagdzdzdzdzdzagdAdBdCdDdEagdFdGdGdGdFagdHdIdJdKdLagdMdNdNdNdOagdPdQdRdSdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagdVdWdXdYdVagdZdZeadZdZagebecedeeefagegeheiejekagelemememenagdPeoepeqdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageresereserageteueueuevagewexeyexezageAeBeCeDeEageleFememenagdPeGeHeIdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageKeLeKeLeKageMeNeOePeMagexexexexexageQeQeQeQeQagelemememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageLeKeLeKeLageUeUeUeUeUageVeWexeXeYageZfaeQeZfaagelemememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageKeLeKeLeKageUeUeUeUeUagfbeWexeXfcagfdfeeQfdfeagfffgememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageLeKeLeKeLageUeUeUeUeUagexfhfhfhexageZfaeQeZfaagffemememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfifjfifjfiagfkfkflfkfkagfmfnfofpfqagfdfeeQfdfeagffememfrenagdPfsftfudTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfvfwfxfyfvagdZdZdZdZdZagfzfAfAfAfzageZfaeQeZfaagffemememenagdPfBfBfBdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagfCfCfCfCfCagfDfDfDfDfDagfEfFfFfFfGageDeBeQeDeBagfHfIfIfIfJagdPfKfLfMdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOfOfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfOfOfOfOfOfOfOfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfYfXfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfXfXfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfZfZfZfZfZfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfZfZfZfZfZfOfOfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOgagagagagafOabababababababababababababababfOgbgbgbgbgbfOaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgdgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -gzgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegmgmgmgegegegegmgmgmgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegHgHgHgegegegegHgHgHgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegIgJgKgKgLgJgKgKgLgJgKgKgLgJgKgKgLgJgKgMgegegNgegegegNgegegegNgegegegegNgegegegegNgegegegNgegegegNgegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgPgpgQgmgRgpgQgmgRgpgQgmgRgpgQgmgRgqgQgOgegegSgegegegSgegegegSgegegegegSgegegegegSgegegegSgegegegSgegegegegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngOgTgngpgmgmgngpgmgmgngpgmgmgngpgmgmgqgpgOgUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgXgpgYgmgZgpgYgmgZgpgYgmgZgpgYgmgZgqgYgOgegehagegGgehagegGgehagegegGgehagegGgegehagegGgehagegGgehagegegGgegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgehbhcgHgHhdhcgHgHhdhcgHgHhdhcgHgHhdhcgHhegegehfgegGgehfgegGgehfgegegGgehfgegGgegehfgegGgehfgegGgehfgegegGgegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegKgegegegegegqgqgqgegegegegehhhihihihjgegegGgegGgegGgegGgegGgegegGgegGgegGgegegGgegGgegGgegGgegGgegegGgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgthmhnhnhnhogtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgehphqhqhqhrgegGgGgGgehshshsgegGgGgGgegmgegegegmgegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvgvgvgvgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhuhvhvhvhwhxhxhxhxhxhxhxhxhxhxhxhxhxhyhzhzhzhAgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgphFhGhFgpgpgegpgmgqgmgpgpgphFhHhFgpgpgpgmgqgmgpgpgmgmgGgogpgohnhngqhnhngogpgogehBgpgqgpgngegqhnhChChnhChEhChChEgvgeguhkgvhkhDgegxhkgxhEhEgvhEhEgxhkgxgGgmgmhkhkgmgvgmhkhkhkhFhIhFhkhkhkgmgvgmhkgehkhkhFhJhFhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhLhMhMhMhNhOhOhOhOhOhOhOhOhOhOhOhOhOhPhQhQhQhRgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahShThUhVhSaahWaaaaaahXaahShThUhVhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgegmgegegegmgegGgGgGgehshshsgegGgGgGgehYhZhZhZiagegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvgvgvgvgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicibibidibieibidibibicicicibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtifhEhEhEiggtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihiiijikiliminioilikijiiihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegGgegegGgegGgegGgegGgegGgegegGgegegegGgegegGgegGgegGgegGgegGgegeipiqiqiqirgegegegegegvgvgvgegegegegegHgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihibisisilisisisilisisibihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegGgegegNgegGgegNgegGgegNgegegGgegNgegGgegegNgegGgegNgegGgegNgegeitgKiuivgKgKiuivgKgKiuivgKgKiuivgKgKiuiwgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSihihidisilililililililisidihihhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegGgegegSgegGgegSgegGgegSgegegGgegSgegGgegegSgegGgegSgegGgegSgegegTixgviygmixhkiygmixhkiygmixhkiygmixhkizgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibiAiBiCiDiliEisiliFibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgThkgvgmgmhkgugmgmhkgugmgmhkgugmgmhkgugOgTgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiGiHiIiJilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegegegehagegegehagegegehagegegegehagegegegehagegegehagegegehagegegTiKgviLgmiKhkiLgmiKhkiLgmiKhkiLgmiKhkiMgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiNiOiOiDiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegehfgegegehfgegegehfgegegegehfgegegegehfgegegehfgegegehfgegeiQgHiRiSgHgHiRiSgHgHiRiSgHgHiRiSgHgHiRiTgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiUiOiOiViliFiPililidiWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegKgKgKgegegegegKgKgKgegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibibibibibilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegmgmgmgegegegegmgmgmgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngmgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXililiZilililililidjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibilisisisisibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiljbjcjdikibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibibibjeibibibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibjfiFiljgjhibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjdisjiisjfibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjljmjnjojpibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSiYiYiYiYiYhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjujvjwjxjrjrjsjsjyjzjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjqjqjqjjjrjrjsjsjrjAjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjBjqjqjqjCjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjDjEjFjtjtjtjGjHjtjqaaaajjjrjrjrjrjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjtjIjtjIjtjtjtjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjJjJjJjJjKjtjtjqaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjqjqjqjtjLjJjMjNjJjtjtjOjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjPjQjRjSjTjTjqjtjtjJjJjJjJjKjtjUjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjXjtjXjtjtjtjYjqjqjqjqjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjtjtjtjtjtjtkakbkckckcjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqkekekfkgkhkhjqkikjjtjtjtjtjtjtkakkkcklkcjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqkmknknkojqjqkmknknkojqjqjqkpjqjqkqkrksjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaktjtjtkakukvkwksjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakxkyjtjtkakzkAkBkCjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkykEjtjtkajqjqjqjqjqjZjZjZjZjZjZjZjZjZaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakGkHjvkIjtjtkJjqkKkckLjqjZkdjZkdjZkdjZkdjZaakFkMkNkNkOkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkPkIjtjtjtkQkckckRjqjZjZjZjZjZjZjZjZjZaakSkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakUkPjtjtkVjqkckckWjqjZkdjZkdjZkdjZkdjZaakFkTkXkYkZkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalajtjtkajqkclblcjqjZjZjZjZjZjZjZjZjZaakFldlelflgkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqlhjqjqjqjqjqjqaaaaaaaaaaaaaaaaaaaakFkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljlkljlllmllljlkljliaaaaaakFkFkFkFkFkFkFkFlnlolplqlrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljljljlsltlsljljljliaaaaaakFlulvlvlvlwlxlylzlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilElilEliltlilElilElilililikFlFlBlBlBlBlBlGlHlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilIlllJltltltltltlKlLlMlMlNkFlFlBlBlBlBlOlPlQlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSlSlSlIlTlJltltltlUlilElililMlVkFlFlBlBlBlBlWlWlWlXlBlBlClDlYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSmambmcmbmdlSlIlslJltltltmelElIlimfmgmhkFmilBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmkmjmjmjmlmmmjmjmjmjmjmlmjmjmjmjmjmnmlmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmqmqmqmqlSlElimrltltltmslilElilEmtlEkFmulBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmkmjmjmjmjmjmjmjmjmjmjmjmlmjmjmjmjmjmjmjmlmjmvmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmpmqmqmqmqmxmyltltltltltltltlKmzlMlMlMmAmBlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmCmjmjmjmjmjmkmjmjmmmjmjmlmjmjmlmjmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamomDmqmqmqmqlSlElimEltltltlUlimFlilililikFmGlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmlmjmjmkmjmjmlmmmjmjmlmjmmlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmwmpmqmqmqmqlSlIlllJltltltmIlllIliaaaaaakFmJlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmkmjmjmjmjmjmjmjmmmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKmpmqmqmqmqlSlIlTlJltltltmIlTlIliaaaaaakFmLlBlBlBlBmMmMmMmNlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmmmjmjmjmlmjmjmCmmmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamOmpmqmqmqmqlSlIlsmPmEltlUmQlslIliaaaaaakFmLlBlBlBlBmRmSmTlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmCmjmjmkmjmkmjmlmjmllZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamVmpmqmqmqmqlSmWmWmXmYmZmXmYmWmWmWaaaaaakFmLlBlBlBlBlBnanblAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjncncndnencncmjmmmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnfngnhmqmqlSninjnknlnmnnnonpnqmWaaaaaakFnrnsnsnsntnunvnwlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjncncnxnynynxncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSnzlSlSnAnmnBnlnmnnnBnmnCmWaaaaaakFkFkFkFkFkFkFkFnDlolpnElrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRnFnGnHnInFlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmCmjmjmjncnJnKnKnKnKnLnMnNncnOnPnQncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSnSnmnBnlnmnnnBnmnTmWaaaaaaaaaaaaaaaaaaaaaakFlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFnUnVnUnFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmkncnWnKnXnXnYnKnKnKnZoaoaobncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSocnmnBnlnmnnnBnmodmWaaaaaaaaaaaaaaaaaaaaaakFlBoemSmRkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnUnUnUnUnUnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmUmUmUmUmUmUmUmjmjmjmjmjmjncnKnXofognXnKohoincoaojncncokokokolololololokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSomononoonmopoqoqormWaaaaaaaaaaaaaaaaaaaaaakFlBosnaotkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFounUnUnUovnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmUmUmUmUmUowoxoxoxoxoxnencnKnXoyoznXnKohoAncncncncncokoBoCoDoEoFoEoGoHokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSmXoImYmWnmmWmXoImYmWaaaaaaaaaaaaaaaaaaaaaaoJlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFnFoKoLoKnFnFnFnFlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUoMoNoNoNoNoNoNoOnKnKnKnKnKnKohoAncncncncncokoPoDoEoQoRoSoEoGoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWoUoUoUoVnmoVoUoUoUmWaaaaaaaaaaaaaaaaaaaaaakFoWntntoXkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFoYoZnFnUnUnUnFpapbnFnFlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUpcpdndoxoxoxnencpenXnXnXnKnKohpfndoxoxoxoxoxoxoEoQoRpgoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmWmWmWmWmWmWmWmZmWmWmWmWmWmWmWmWaaaaaaaaaaaaaaaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFphpiphnFnUnUnUnFpjpkplnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUpmmUmUmjmjmjncpnpopppopqnKnKnKpdoNoNoNoNoNpdproRoSpsoQoRproTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFoZphphphpvnUnUnUpwpapxpapbnFnFlRlRlRlRlRlRlRaaaaaaaalZpymjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmkncpzpApzpzpBnKnKnKndoxoxoxoxoxoxoEoQoRpCoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDptptptpEptptptptptptptpEptptptpDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFoYpFphphphnFnUnUnUnFpGpapjpHplnFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmCmjncncoipIpJpKncpLncncncncncncokoPpMoEoQoRoSoEpNoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFphphphphpOnFpPnUpQnFpRpSpapxpanFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjncncncncncncpTpTpUpVpWpXncokpYpZpMoEqaoEpNqbokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmXoIoIoIoIoIoIoIoIoIoIoIoIoImYmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFqcnFnFnFnFnFnFqdnFnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmCmjncpTpTpTpTpTpTncokokokqeqeqeqeqeokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfqfqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfqfqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqinUnUqinFqjqknUnUnUqlqmnFqnqoqpqqnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmkmjmjmmqrpTpTpTpTpTqsncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqBqCnUnUqCqBnUnUnUnUnUnUqDqBqqqEqFqEnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmCmlmkmCncqGqGqGqGqGqHncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqKqLnUnUnUqKnUnUnUqMnUnUqNqKqOqoqqqonFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmlmjncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqPqvqvqwqxqhqhqhqhqhqQqRqQqhqhqhqhqhqyqwqzqzqSqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqTqCnUnUqCqTnUnUnUqUnUnUnUqTqVqWqEqXnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmlmjmCmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqQqYqQqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqZnUnUqZnFranUnUnUnUnUnUnFqqqoqqrbnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFrcnFnFnFnFnFoKrcoKnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqBnUnUnUnUnUnUnUnUnUnUnUnUnUnUnUqBlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmjmUmUmUmUmUmjmjmjmvrdmvmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfrerererereqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfrerererereqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqTnUpanUpanUpanUpanUpanUpanUpanUqTlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfrfrfrfrfrfqfrgrhrhrhrhrhrhrhrhrhrhrhrhrhriqfrjrjrjrjrjqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFnUnUnUnUnUnUnUnUnUnUnUnUnUnFnFlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfrkrlrlrlrlrlrmrnrorlrlrlrlrlrkqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFnFrpnFnFnFrqnFnFnFrrnFnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrkrkrkrtrkrurururururkrtrkrkrkrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrvrwrxnFryparznFrArBrCnFlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrDrsrsrsrsrErFrGrsrsrsrsrDrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrHrwrInFparJpanFrKrBrBnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrsrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrLrMrNnFrOparPnFrQrRrSnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFrTnFnFnFoKnFnFnFnFnFnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnUnFnUrVrWrVrXnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZsasbsbrZscsdsesfsgshsishshshsjrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRoKnUrTnUnUnUnUnUoKlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZrZrZrZrZsksgsgsgslshshshsmshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFsnnUnUnUsnnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsorZsprYsqsrsssgsgsgsgshshstshsusirUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFsvsvsvsvsvnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUswsgslslslslslsgsgsgsgshshshsxshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFsysysynFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUszsgsgsgsgsgsgsgsgsgsgsAshshshshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRsBsBsBlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsCsgsgsgsgsgsgsgsgslsgsAsDsDsDsEsDrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsFsgsgsgsgsgsgsgslsGslsAsHsHsHsHsHrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUsIsJsJsKrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTsUsVsWsXsYaasSsTsZtatbsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctdtetetetftgaatcthtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtktltmtntoaatitjtptltqtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTtGtHtIsXsYaasSsTtJtKtLsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctMtetetetftgaatctNtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtOtltPtntoaatitjtQtltRtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtTtTtTtTtTtUtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtWtWtWtWtWtWtWtWtWtWtWtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtWtWtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtWtXtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtWtYtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtTtTtTtTtTtTtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ -"} +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/indestructible/riveted,/area/space) +"ac" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"ad" = (/obj/effect/landmark/transit,/turf/open/space,/area/space) +"ae" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) +"af" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ah" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"aj" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ak" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"am" = (/obj/structure/table/wood{layer = 3.3},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"an" = (/obj/structure/closet/crate/bin,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"ao" = (/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{layer = 3.3; pixel_y = 0},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aq" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) +"as" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"at" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/court) +"au" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/court) +"av" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/court) +"aw" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ax" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ay" = (/obj/item/toy/snowball{pixel_x = 0; pixel_y = 6},/obj/item/toy/snowball{pixel_x = 5; pixel_y = 0},/obj/item/toy/snowball{pixel_x = -4},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"az" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn (WEST)"; icon_state = "asteroid_warn"; dir = 8},/area/holodeck/rec_center/bunker) +"aA" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) +"aB" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches{pixel_x = -4; pixel_y = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aC" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aD" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"aE" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"aF" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/court) +"aG" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) +"aH" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/court) +"aI" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aJ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) +"aK" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aL" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aM" = (/obj/structure/table/wood/poker,/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aN" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aO" = (/obj/structure/statue/snow/snowman{anchored = 1},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aP" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aQ" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aR" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aS" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aT" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aU" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aV" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 10},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aW" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-l"},/area/holodeck/rec_center/lounge) +"aX" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-r"},/area/holodeck/rec_center/lounge) +"aY" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/court) +"aZ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/court) +"ba" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_y = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bb" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bc" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bd" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"be" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"bf" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bg" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bh" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bi" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/court) +"bj" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/court) +"bk" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/court) +"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"bm" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"bn" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bo" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bp" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bq" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"br" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bs" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bt" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bu" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"bv" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bw" = (/obj/structure/holohoop{layer = 3.9},/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bx" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/basketball) +"by" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bz" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bA" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bB" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bC" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bF" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bG" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bH" = (/obj/effect/holodeck_effect/mobspawner/pet,/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bI" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) +"bJ" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"bK" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/medical) +"bL" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bM" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"bN" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bO" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bP" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bQ" = (/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"bR" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) +"bT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bU" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bV" = (/obj/item/weapon/storage/bag/easterbasket{name = "picnic basket"; pixel_y = 6},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bW" = (/obj/item/trash/plate,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bX" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"bY" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"bZ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"ca" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"cb" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"cc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cd" = (/obj/effect/holodeck_effect/mobspawner/monkey,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"ce" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cf" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cg" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ch" = (/obj/item/weapon/shovel/spade{pixel_x = 2; pixel_y = -2},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ci" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cj" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/clothing/head/beekeeper_head,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"ck" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"cl" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"cm" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cn" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"co" = (/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cp" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cr" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cs" = (/obj/structure/window,/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"ct" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cu" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cv" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cw" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/effect/decal/remains/human,/obj/item/clothing/suit/beekeeper_suit,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cx" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/weapon/melee/flyswatter,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cy" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"cz" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"cA" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cB" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cC" = (/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cF" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cG" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"cH" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cI" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cJ" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cK" = (/obj/structure/sink/puddle,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cL" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cM" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cN" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"cO" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cQ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cR" = (/obj/machinery/hydroponics/soil,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cS" = (/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cT" = (/obj/machinery/hydroponics/soil,/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cU" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"cW" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"cX" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cY" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cZ" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"da" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"db" = (/obj/item/weapon/shovel/spade,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"dc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dd" = (/obj/structure/flora/ausbushes/pointybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"de" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) +"df" = (/turf/open/floor/holofloor{dir = 8; icon_state = "white_warn_corner"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) +"dg" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"dh" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"di" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) +"dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"dk" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dl" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dm" = (/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dn" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"do" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dp" = (/obj/structure/holohoop{dir = 1; layer = 4.1},/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dr" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) +"ds" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"dt" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"du" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"dv" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dw" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dx" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dy" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dz" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/spacechess) +"dA" = (/obj/item/weapon/banner/blue,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dB" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dC" = (/obj/structure/table/wood/fancy,/obj/item/clothing/head/crown/fancy{pixel_y = 6},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dD" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/knight/red,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dE" = (/obj/item/weapon/banner/red,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dF" = (/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dG" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dH" = (/obj/structure/closet{density = 0; opened = 1},/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/powdered_wig,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dI" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/nun,/obj/item/clothing/head/nun_hood,/obj/item/clothing/suit/holidaypriest,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/book/bible,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dL" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dM" = (/obj/machinery/conveyor/holodeck{dir = 5; icon_state = "conveyor0"; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dN" = (/obj/machinery/conveyor/holodeck{dir = 8; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dO" = (/obj/machinery/conveyor/holodeck{dir = 6; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/firingrange) +"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/firingrange) +"dS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/firingrange) +"dT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dV" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_viva"; name = "Black Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dW" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_mime"; name = "Black Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dX" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_clown"; name = "Black King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dY" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_ian"; name = "Black Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dZ" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ea" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eb" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo1"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"ec" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ed" = (/obj/machinery/button/massdriver{id = "trektorpedo1"; layer = 3.9; name = "photon torpedo button"; pixel_x = -16; pixel_y = -5},/obj/machinery/button/massdriver{id = "trektorpedo2"; layer = 3.9; name = "photon torpedo button"; pixel_x = 16; pixel_y = -5},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ee" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ef" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo2"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"eg" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"eh" = (/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"ei" = (/obj/structure/chair,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"ej" = (/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"ek" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"el" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"em" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"en" = (/obj/machinery/conveyor/holodeck{dir = 1; id = "holocoaster"; layer = 2.5},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eo" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/firingrange) +"ep" = (/obj/structure/target_stake,/obj/machinery/magnetic_module,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/firingrange) +"eq" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/firingrange) +"er" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"es" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"et" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eu" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ev" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ew" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ex" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ey" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ez" = (/obj/structure/table/glass,/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eA" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eB" = (/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"eC" = (/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/obj/structure/table/wood,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eD" = (/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eE" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"eF" = (/obj/item/weapon/shovel,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eG" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/firingrange) +"eH" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/firingrange) +"eI" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/firingrange) +"eJ" = (/obj/item/weapon/weldingtool,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"eK" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"eL" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"eM" = (/turf/open/floor/holofloor{tag = "icon-stairs-old (WEST)"; icon_state = "stairs-old"; dir = 8},/area/holodeck/rec_center/thunderdome1218) +"eN" = (/obj/structure/table/wood,/obj/item/weapon/melee/chainofcommand{name = "chain whip"},/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eO" = (/obj/structure/table/wood,/obj/item/weapon/scythe,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eP" = (/obj/structure/table/wood,/obj/item/weapon/tailclub,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eQ" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"eT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eU" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eV" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eX" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eY" = (/obj/machinery/computer/station_alert,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"fa" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"fb" = (/obj/machinery/modular_computer/console/preset/civilian,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fc" = (/obj/machinery/computer/atmos_alert,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fd" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"fe" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"ff" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/obj/structure/chair/office{dir = 1; name = "coaster car"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fg" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fh" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fi" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fj" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fk" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fl" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fm" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fn" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen/blue,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fo" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fp" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/folder,/obj/item/weapon/pen/red,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fq" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fr" = (/obj/structure/closet/crate/miningcar{can_buckle = 1; desc = "Great for mining!"; name = "minecart"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fs" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"ft" = (/obj/item/weapon/paper/range,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fu" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"fv" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_viva"; name = "White Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fw" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_mime"; name = "White Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fx" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_clown"; name = "White King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fy" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_ian"; name = "White Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fz" = (/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fA" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/kobayashi) +"fB" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"fC" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/spacechess) +"fD" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"fE" = (/obj/structure/rack,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/command,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fF" = (/turf/open/floor/holofloor{tag = "icon-neutral"; icon_state = "neutral"; dir = 2},/area/holodeck/rec_center/kobayashi) +"fG" = (/obj/structure/rack,/obj/item/clothing/under/trek/engsec,/obj/item/clothing/under/trek/engsec,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fH" = (/obj/machinery/conveyor/holodeck{dir = 9; icon_state = "conveyor0"; id = "holocoaster"; tag = "icon-conveyor0 (NORTHWEST)"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fI" = (/obj/machinery/conveyor/holodeck{dir = 4; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fJ" = (/obj/machinery/conveyor/holodeck{dir = 10; id = "holocoaster"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fK" = (/obj/item/target,/obj/item/target/clown,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fL" = (/obj/item/target,/obj/item/target/syndicate,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fN" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) +"fO" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) +"fP" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) +"fQ" = (/turf/open/floor/plasteel,/area/tdome/arena_source) +"fR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fS" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fT" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) +"fU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) +"fV" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) +"fW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fX" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fY" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fZ" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"ga" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gb" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gc" = (/turf/closed/indestructible/riveted,/area/start) +"gd" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) +"ge" = (/turf/closed/indestructible/riveted,/area/ctf) +"gf" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/area/ctf) +"gg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/ctf) +"gh" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ctf) +"gi" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/area/ctf) +"gj" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/ctf) +"gk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/area/ctf) +"gl" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/area/ctf) +"gm" = (/turf/open/floor/plasteel/black,/area/ctf) +"gn" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ctf) +"go" = (/turf/open/floor/plasteel/blue,/area/ctf) +"gp" = (/turf/open/floor/plasteel/darkblue,/area/ctf) +"gq" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) +"gr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gt" = (/turf/open/floor/plasteel/bluespace,/area/ctf) +"gu" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)"; dir = 8},/area/ctf) +"gv" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"gw" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/area/ctf) +"gx" = (/turf/open/floor/plasteel/red,/area/ctf) +"gy" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) +"gz" = (/turf/closed/indestructible/splashscreen,/area/start) +"gA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/area/ctf) +"gB" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) +"gC" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/area/ctf) +"gD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/area/ctf) +"gE" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) +"gF" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/area/ctf) +"gG" = (/obj/structure/window/reinforced/fulltile{obj_integrity = 5000; max_integrity = 5000; name = "hardened window"},/turf/open/floor/plating,/area/ctf) +"gH" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) +"gI" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"gJ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gK" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gL" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gM" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"gN" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) +"gO" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"gP" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gQ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/ctf) +"gR" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ctf) +"gS" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) +"gT" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) +"gV" = (/turf/open/floor/plating,/area/ctf) +"gW" = (/turf/open/floor/plating/airless/warnplate{dir = 4; luminosity = 2},/area/ctf) +"gX" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gY" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/area/ctf) +"gZ" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) +"ha" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) +"hb" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hc" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"hd" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"he" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hf" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1},/turf/open/floor/plating,/area/ctf) +"hg" = (/obj/structure/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) +"hh" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hi" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hj" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"hk" = (/turf/open/floor/plasteel/darkred,/area/ctf) +"hl" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) +"hm" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"hn" = (/turf/open/floor/plasteel/circuit,/area/ctf) +"ho" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"hp" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hq" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"hr" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"ht" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) +"hu" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hv" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hw" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hx" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hy" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hz" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hA" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"hB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"hC" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"hD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"hE" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"hF" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hG" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hH" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hI" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hJ" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hK" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) +"hL" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hM" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hN" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) +"hO" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) +"hP" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) +"hQ" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hR" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hS" = (/turf/closed/wall/mineral/titanium/overspace,/area/centcom/evac) +"hT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hW" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"hX" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"hY" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"ia" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"ib" = (/turf/closed/wall/mineral/titanium,/area/centcom/evac) +"ic" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"id" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"ie" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) +"if" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"ig" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"ih" = (/turf/open/floor/plating,/area/centcom/evac) +"ii" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ij" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ik" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"il" = (/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"im" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"in" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"io" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ip" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"iq" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"ir" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"is" = (/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"it" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iu" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"ix" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) +"iy" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/area/ctf) +"iz" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"iA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iD" = (/obj/structure/table/reinforced,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iE" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iF" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iG" = (/obj/machinery/computer/secure_data,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iH" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iI" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iJ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iK" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/ctf) +"iL" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/area/ctf) +"iM" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"iN" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iO" = (/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iP" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iQ" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"iR" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"iS" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"iT" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"iU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iV" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iW" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"iX" = (/obj/structure/bed,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"iZ" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"ja" = (/obj/docking_port/stationary{dir = 4; dwidth = 2; height = 7; id = "pod1_away"; name = "recovery ship"; width = 5},/turf/open/space,/area/space) +"jb" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jc" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jd" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"je" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"jf" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jg" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jh" = (/obj/structure/filingcabinet,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ji" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jj" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jk" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jl" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jm" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jn" = (/obj/machinery/computer/shuttle,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jo" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jp" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jq" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) +"jr" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"js" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/escape) +"jt" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) +"ju" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/centcom/ferry) +"jv" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jw" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jx" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/obj/docking_port/mobile/emergency/backup{dwidth = 3},/turf/open/floor/plating,/area/shuttle/escape) +"jy" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jz" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jA" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jB" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) +"jC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jE" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jF" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jG" = (/obj/machinery/status_display{density = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jH" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jI" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jJ" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) +"jK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jL" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jM" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jN" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jO" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jP" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jQ" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jR" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jT" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jV" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jW" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jX" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jZ" = (/turf/closed/indestructible/riveted,/area/centcom/prison) +"ka" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) +"kb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) +"kc" = (/turf/open/floor/wood,/area/centcom/ferry) +"kd" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) +"ke" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kh" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"ki" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) +"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) +"kk" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) +"kl" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) +"km" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"kn" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) +"ko" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) +"kp" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"kq" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) +"kr" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) +"ks" = (/turf/open/floor/carpet,/area/centcom/ferry) +"kt" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"ku" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"kv" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) +"kw" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) +"kx" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/ferry) +"ky" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) +"kz" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"kA" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) +"kB" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) +"kC" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) +"kD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"kE" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kF" = (/turf/closed/indestructible/riveted,/area/centcom/evac) +"kG" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; width = 5},/turf/open/space,/area/space) +"kH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"kI" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kJ" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) +"kK" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) +"kL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) +"kM" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) +"kN" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) +"kO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) +"kP" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) +"kQ" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) +"kR" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) +"kS" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) +"kT" = (/turf/open/floor/plasteel/black,/area/centcom/evac) +"kU" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/ferry) +"kV" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) +"kW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) +"kX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) +"kY" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) +"kZ" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) +"la" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"lb" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) +"lc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) +"ld" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"le" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) +"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lh" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) +"li" = (/turf/closed/indestructible/riveted,/area/centcom/control) +"lj" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) +"lk" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) +"ll" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) +"lm" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) +"ln" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac) +"lo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac) +"lp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac) +"lq" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"lr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/evac) +"ls" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) +"lt" = (/turf/open/floor/plasteel,/area/centcom/control) +"lu" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) +"lv" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lw" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lx" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"ly" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lz" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) +"lA" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) +"lB" = (/turf/open/floor/plasteel,/area/centcom/evac) +"lC" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) +"lD" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) +"lE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) +"lF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) +"lG" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) +"lH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) +"lI" = (/turf/open/floor/grass,/area/centcom/control) +"lJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) +"lK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) +"lL" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"lM" = (/turf/open/floor/plasteel/black,/area/centcom/control) +"lN" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) +"lO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lP" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lQ" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) +"lR" = (/turf/open/space/transit,/area/space) +"lS" = (/turf/closed/indestructible/riveted,/area/centcom/supply) +"lT" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) +"lU" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) +"lV" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) +"lW" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) +"lX" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) +"lY" = (/obj/docking_port/stationary{dir = 4; dwidth = 25; height = 50; id = "emergency_away"; name = "Centcom Emergency Shuttle Dock"; width = 50},/turf/open/space,/area/space) +"lZ" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) +"ma" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) +"mb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"mc" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"md" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) +"me" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mf" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) +"mg" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) +"mh" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) +"mi" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) +"mj" = (/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mk" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"ml" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mm" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mn" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/supply) +"mp" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mq" = (/turf/open/floor/plasteel,/area/centcom/supply) +"mr" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) +"ms" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) +"mt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mu" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) +"mv" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mw" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"mx" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) +"my" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) +"mz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mA" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) +"mB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) +"mC" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mD" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mE" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) +"mF" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/centcom/control) +"mG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) +"mH" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/open/space,/area/space) +"mI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mJ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) +"mK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/supply) +"mL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"mM" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) +"mN" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) +"mO" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/supply) +"mP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) +"mQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) +"mR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mT" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) +"mU" = (/turf/open/floor/plating/asteroid/snow,/area/space) +"mV" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) +"mW" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) +"mX" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) +"mY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) +"mZ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"na" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) +"nb" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) +"nc" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) +"nd" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) +"ne" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) +"nf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) +"ng" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) +"nh" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) +"ni" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) +"nj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nk" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"nm" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nn" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"no" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"np" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"nq" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) +"nr" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"ns" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nt" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nu" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nv" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) +"nx" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ny" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nz" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"nA" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/evac) +"nE" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"nF" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) +"nG" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) +"nH" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) +"nI" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) +"nJ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nK" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nL" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nM" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nN" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nO" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nP" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nQ" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nR" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) +"nS" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nT" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nU" = (/turf/open/floor/engine/cult,/area/wizard_station) +"nV" = (/obj/machinery/computer/shuttle,/turf/open/floor/engine/cult,/area/wizard_station) +"nW" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nX" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nY" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oa" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ob" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"oc" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"od" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"oe" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) +"of" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"og" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oh" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oi" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) +"oj" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ok" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) +"ol" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) +"om" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) +"on" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) +"oo" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"op" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"oq" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) +"or" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) +"os" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"ot" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) +"ou" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) +"ov" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) +"ow" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) +"ox" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) +"oy" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) +"oB" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"oC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) +"oD" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oE" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/assault_pod) +"oF" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"oG" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oH" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) +"oI" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) +"oJ" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) +"oK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) +"oL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Cockpit"},/turf/open/floor/engine/cult,/area/wizard_station) +"oM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"oN" = (/turf/open/floor/plating,/area/syndicate_mothership) +"oO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) +"oP" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) +"oQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oR" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oS" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oT" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) +"oU" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) +"oV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) +"oW" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"oX" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) +"oY" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/wood,/area/wizard_station) +"oZ" = (/obj/structure/table/wood/fancy,/obj/item/device/radio/intercom{desc = "Talk smack through this."; syndie = 1},/turf/open/floor/wood,/area/wizard_station) +"pa" = (/turf/open/floor/carpet,/area/wizard_station) +"pb" = (/obj/structure/chair/wood/wings,/turf/open/floor/carpet,/area/wizard_station) +"pc" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) +"pd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) +"pe" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) +"pg" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"ph" = (/turf/open/floor/wood,/area/wizard_station) +"pi" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/wood,/area/wizard_station) +"pj" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/carpet,/area/wizard_station) +"pk" = (/obj/structure/table/wood/poker,/obj/item/toy/figure/wizard,/turf/open/floor/carpet,/area/wizard_station) +"pl" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/carpet,/area/wizard_station) +"pm" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/open/floor/plating/asteroid/snow; width = 18},/turf/open/floor/plating/asteroid/snow,/area/space) +"pn" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"po" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"pp" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) +"pq" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) +"pr" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"ps" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) +"pt" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pu" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"pw" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Game Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"px" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/carpet,/area/wizard_station) +"py" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"pz" = (/turf/open/floor/wood,/area/syndicate_mothership) +"pA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) +"pB" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) +"pC" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"pD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) +"pE" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pF" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/wood,/area/wizard_station) +"pG" = (/obj/structure/table/wood/fancy,/obj/item/device/camera/spooky,/turf/open/floor/carpet,/area/wizard_station) +"pH" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/wizard_station) +"pI" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) +"pJ" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) +"pK" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) +"pL" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pM" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pN" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pO" = (/obj/item/weapon/statuebust{pixel_y = 12},/obj/structure/table/wood/fancy,/turf/open/floor/wood,/area/wizard_station) +"pP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) +"pQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) +"pR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/pill_bottle/dice{icon_state = "magicdicebag"},/turf/open/floor/carpet,/area/wizard_station) +"pS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/wizard_station) +"pT" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pU" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) +"pV" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) +"pW" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) +"pX" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pY" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"pZ" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) +"qa" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3; name = "steel rain"; port_angle = 90; preferred_direction = 4},/turf/open/floor/plating,/area/shuttle/assault_pod) +"qb" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) +"qc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Study"},/turf/open/floor/engine/cult,/area/wizard_station) +"qd" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"qe" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) +"qf" = (/turf/closed/indestructible/riveted,/area/tdome/arena) +"qg" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) +"qh" = (/turf/open/floor/plasteel,/area/tdome/arena) +"qi" = (/obj/structure/chair/wood/wings,/turf/open/floor/engine/cult,/area/wizard_station) +"qj" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/engine/cult,/area/wizard_station) +"qk" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/open/floor/engine/cult,/area/wizard_station) +"ql" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/engine/cult,/area/wizard_station) +"qm" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) +"qn" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/grass,/area/wizard_station) +"qo" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/open/floor/grass,/area/wizard_station) +"qp" = (/obj/effect/decal/remains/xeno/larva,/turf/open/floor/grass,/area/wizard_station) +"qq" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) +"qs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"qt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qu" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"qv" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qw" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) +"qx" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) +"qy" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) +"qz" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qA" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qB" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) +"qC" = (/obj/structure/destructible/cult/tome,/turf/open/floor/engine/cult,/area/wizard_station) +"qD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/open/floor/engine/cult,/area/wizard_station) +"qE" = (/turf/open/floor/grass,/area/wizard_station) +"qF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/turf/open/floor/grass,/area/wizard_station) +"qG" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qH" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qJ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) +"qL" = (/obj/structure/bookcase/random/reference,/turf/open/floor/engine/cult,/area/wizard_station) +"qM" = (/obj/structure/destructible/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/open/floor/engine/cult,/area/wizard_station) +"qN" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/open/floor/engine/cult,/area/wizard_station) +"qO" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/open/floor/grass,/area/wizard_station) +"qP" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qQ" = (/turf/open/floor/bluegrid,/area/tdome/arena) +"qR" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qS" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qT" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) +"qU" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/engine/cult,/area/wizard_station) +"qV" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qW" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/grass,/area/wizard_station) +"qX" = (/obj/effect/decal/remains/xeno,/turf/open/floor/grass,/area/wizard_station) +"qY" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qZ" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) +"ra" = (/mob/living/simple_animal/bot/medbot/mysterious{desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; faction = list("neutral","silicon","creature"); name = "Nobody's Perfect"},/turf/open/floor/engine/cult,/area/wizard_station) +"rb" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/turf/open/floor/grass,/area/wizard_station) +"rc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Deck"},/turf/open/floor/engine/cult,/area/wizard_station) +"rd" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"re" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"rf" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rg" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) +"rh" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) +"ri" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) +"rj" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rk" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rl" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rm" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rn" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ro" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rp" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Storage"},/turf/open/floor/engine/cult,/area/wizard_station) +"rq" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) +"rr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Bathroom"},/turf/open/floor/engine/cult,/area/wizard_station) +"rs" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) +"rt" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ru" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rv" = (/obj/item/clothing/suit/wizrobe/black,/obj/item/clothing/head/wizard/black,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rw" = (/turf/open/floor/plasteel/bot,/area/wizard_station) +"rx" = (/obj/item/cardboard_cutout,/turf/open/floor/plasteel/bot,/area/wizard_station) +"ry" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) +"rz" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/wizard_station) +"rA" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/white,/area/wizard_station) +"rB" = (/turf/open/floor/plasteel/white,/area/wizard_station) +"rC" = (/obj/structure/mirror/magic{pixel_y = 28},/obj/structure/sink{pixel_y = 20},/turf/open/floor/plasteel/white,/area/wizard_station) +"rD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) +"rE" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rF" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rG" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rH" = (/obj/item/weapon/cautery/alien,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rI" = (/obj/item/weapon/coin/antagtoken,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) +"rK" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/white,/area/wizard_station) +"rL" = (/obj/structure/closet/cardboard,/obj/item/weapon/banhammer,/turf/open/floor/plasteel/warning,/area/wizard_station) +"rM" = (/turf/open/floor/plasteel/warning,/area/wizard_station) +"rN" = (/obj/vehicle/scooter/skateboard{tag = "icon-skateboard (EAST)"; icon_state = "skateboard"; dir = 4},/turf/open/floor/plasteel/warning,/area/wizard_station) +"rO" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/open/floor/carpet,/area/wizard_station) +"rP" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) +"rQ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/plasteel/white,/area/wizard_station) +"rR" = (/obj/structure/toilet{tag = "icon-toilet00 (NORTH)"; icon_state = "toilet00"; dir = 1},/turf/open/floor/plasteel/white,/area/wizard_station) +"rS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/skub{pixel_y = 16},/turf/open/floor/plasteel/white,/area/wizard_station) +"rT" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Engine Room"},/obj/structure/barricade/wooden,/turf/open/floor/engine/cult,/area/wizard_station) +"rU" = (/turf/closed/indestructible/riveted,/area/centcom/holding) +"rV" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) +"rW" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines."; max_charges = 0; name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) +"rX" = (/obj/structure/table/wood,/obj/item/weapon/bikehorn/golden{pixel_x = -8; pixel_y = 8},/turf/open/floor/engine/cult,/area/wizard_station) +"rY" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"rZ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sa" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sd" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"se" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sf" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sg" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sh" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"si" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sj" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sk" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sm" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sn" = (/obj/structure/destructible/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) +"so" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sq" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"ss" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"st" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"su" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sv" = (/obj/structure/window/reinforced{resistance_flags = 3; color = "#008000"; dir = 1},/turf/open/floor/plating/lava,/area/wizard_station) +"sw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sx" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sy" = (/obj/structure/shuttle/engine/heater{resistance_flags = 3},/turf/open/floor/plating/lava,/area/wizard_station) +"sz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/ballistic/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sA" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sB" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/wizard_station) +"sC" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sD" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sE" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sF" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sG" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sH" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) +"sI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) +"sJ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) +"sK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/centcom/holding) +"sL" = (/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{desc = "I bet you think you're pretty clever... well you are."; name = "easter egg"},/turf/open/space,/area/space) +"sM" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) +"sN" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) +"sO" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) +"sP" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) +"sQ" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) +"sR" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) +"sS" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) +"sT" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) +"sU" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sV" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) +"sW" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sX" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) +"sY" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) +"sZ" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ta" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tb" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tc" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) +"td" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"te" = (/turf/open/floor/plating/abductor,/area/abductor_ship) +"tf" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tg" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) +"th" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ti" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) +"tj" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tk" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tl" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tm" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tn" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) +"to" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) +"tp" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tq" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tr" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) +"ts" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tt" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) +"tu" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) +"tv" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) +"tw" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tx" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"ty" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tz" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) +"tA" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) +"tB" = (/turf/closed/indestructible/abductor,/area/abductor_ship) +"tC" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) +"tD" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) +"tE" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) +"tF" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) +"tG" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tH" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tI" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tJ" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tK" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tL" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tM" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tN" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tO" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tP" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tQ" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tR" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tS" = (/turf/closed/indestructible/riveted,/area/awaymission/errorroom) +"tT" = (/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tU" = (/obj/structure/speaking_tile,/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tV" = (/obj/item/rupee,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tW" = (/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tX" = (/obj/effect/landmark/error,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tY" = (/obj/structure/signpost/salvation{icon = 'icons/obj/structures.dmi'; icon_state = "ladder10"; invisibility = 100},/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tZ" = (/obj/structure/lattice,/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacab +aaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakalagamanaoaoapagaqaqaqaqaqagarararararagasasasasasagatauauauavaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaxayayafagahaiajazaAagaBaoaCaCaoagaqaDaqaDaqagarararararagasaEasaEasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaIafagahaiajazaJagaoaKaLaMaNagaqaqaqaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaOafagahaiajakakagaoaoaPaPaoagaqaqaqaqaqagarararararagasasaEasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaQafafafagahaiajazaJagaRaSaoaoaSagaqaqaDaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaTafaUaxagahaiajazaJagaRaVaWaXaVagaqaqaDaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaIafafafagahaiajakakagaRbabbbbbbagaqaqaqaqaqagarararararagasasaEasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajazaJagaRbcbbbbbdagaqaqaqaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafayayaIafagahaiajazaAagaRbcbbbbbdagaqaDaqaDaqagarararararagasaEasaEasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakbeagaRbfbgbgbhagaqaqaqaqaqagarararararagasasasasasagbibjbjbjbkaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbnbobnbpbnagbqbrbsbtbuagbvbvbwbxbxagbybybybybyagbzbAbAbAbBagbCbDbDbDbEaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbpbFbGbHbnagbIbJbJbJbKagbLbLbMbNbNagbybObybPbyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFbUbVbWbFagbXbYbZcacbagbLccccccbNagbycdbycdbyagbQbQbQbQbQagbRcececebTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfbncgchcfagbJbJciciciagbLbMbMbMbNagbybybybybyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcjbmbmagbFbnbnbnbnagckclcmbJcnagcocpcpcpcqagbycrbybybyagcscscscscsagctcucucucvaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcwcxbmagbnbGbnbobFagcyczcAbJcBagcCcDcDcDcEagbybybycFbyagcGcGcGcGcGagcHcIcIcIcJaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfcKbUcLbnagbJbJbJbJbJagcMbMcNbMcOagbybybybybyagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFcRcScTcUagcVcWcXbJbJagcMcYcYcYcOagcZdadbcZcZagbQbQbQbQbQagcPdcdcdccQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbocRcTcRddagdedfdgdhclagcMcMbMcOcOagdididididiagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbncfbnbpbnagdjdkdldmdnagdododpdqdqagdrdrdrdrdragdsdtdtdtduagdvdwdwdwdxaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabacacacacacabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagdzdzdzdzdzagdAdBdCdDdEagdFdGdGdGdFagdHdIdJdKdLagdMdNdNdNdOagdPdQdRdSdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagdVdWdXdYdVagdZdZeadZdZagebecedeeefagegeheiejekagelemememenagdPeoepeqdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageresereserageteueueuevagewexeyexezageAeBeCeDeEageleFememenagdPeGeHeIdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageKeLeKeLeKageMeNeOePeMagexexexexexageQeQeQeQeQagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageLeKeLeKeLageUeUeUeUeUageVeWexeXeYageZfaeQeZfaagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageKeLeKeLeKageUeUeUeUeUagfbeWexeXfcagfdfeeQfdfeagfffgememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageLeKeLeKeLageUeUeUeUeUagexfhfhfhexageZfaeQeZfaagffemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfifjfifjfiagfkfkflfkfkagfmfnfofpfqagfdfeeQfdfeagffememfrenagdPfsftfudTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfvfwfxfyfvagdZdZdZdZdZagfzfAfAfAfzageZfaeQeZfaagffemememenagdPfBfBfBdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagfCfCfCfCfCagfDfDfDfDfDagfEfFfFfFfGageDeBeQeDeBagfHfIfIfIfJagdPfKfLfMdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOfOfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfOfOfOfOfOfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfYfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfXfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfZfZfZfZfZfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfZfZfZfZfZfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOgagagagagafOabababababababababababababababfOgbgbgbgbgbfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgdgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gzgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegmgmgmgegegegegmgmgmgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegHgHgHgegegegegHgHgHgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegIgJgKgKgLgJgKgKgLgJgKgKgLgJgKgKgLgJgKgMgegegNgegegegNgegegegNgegegegegNgegegegegNgegegegNgegegegNgegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgPgpgQgmgRgpgQgmgRgpgQgmgRgpgQgmgRgqgQgOgegegSgegegegSgegegegSgegegegegSgegegegegSgegegegSgegegegSgegegegegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngOgTgngpgmgmgngpgmgmgngpgmgmgngpgmgmgqgpgOgUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgXgpgYgmgZgpgYgmgZgpgYgmgZgpgYgmgZgqgYgOgegehagegGgehagegGgehagegegGgehagegGgegehagegGgehagegGgehagegegGgegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgehbhcgHgHhdhcgHgHhdhcgHgHhdhcgHgHhdhcgHhegegehfgegGgehfgegGgehfgegegGgehfgegGgegehfgegGgehfgegGgehfgegegGgegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegKgegegegegegqgqgqgegegegegehhhihihihjgegegGgegGgegGgegGgegGgegegGgegGgegGgegegGgegGgegGgegGgegGgegegGgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgthmhnhnhnhogtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgehphqhqhqhrgegGgGgGgehshshsgegGgGgGgegmgegegegmgegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhuhvhvhvhwhxhxhxhxhxhxhxhxhxhxhxhxhxhyhzhzhzhAgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgphFhGhFgpgpgegpgmgqgmgpgpgphFhHhFgpgpgpgmgqgmgpgpgmgmgGgogpgohnhngqhnhngogpgogehBgpgqgpgngegqhnhChChnhChEhChChEgvgeguhkgvhkhDgegxhkgxhEhEgvhEhEgxhkgxgGgmgmhkhkgmgvgmhkhkhkhFhIhFhkhkhkgmgvgmhkgehkhkhFhJhFhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhLhMhMhMhNhOhOhOhOhOhOhOhOhOhOhOhOhOhPhQhQhQhRgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahShThUhVhSaahWaaaaaahXaahShThUhVhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgegmgegegegmgegGgGgGgehshshsgegGgGgGgehYhZhZhZiagegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicibibidibieibidibibicicicibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtifhEhEhEiggtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihiiijikiliminioilikijiiihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegGgegegGgegGgegGgegGgegGgegegGgegegegGgegegGgegGgegGgegGgegGgegeipiqiqiqirgegegegegegvgvgvgegegegegegHgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihibisisilisisisilisisibihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegGgegegNgegGgegNgegGgegNgegegGgegNgegGgegegNgegGgegNgegGgegNgegeitgKiuivgKgKiuivgKgKiuivgKgKiuivgKgKiuiwgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSihihidisilililililililisidihihhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegGgegegSgegGgegSgegGgegSgegegGgegSgegGgegegSgegGgegSgegGgegSgegegTixgviygmixhkiygmixhkiygmixhkiygmixhkizgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibiAiBiCiDiliEisiliFibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgThkgvgmgmhkgugmgmhkgugmgmhkgugmgmhkgugOgTgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiGiHiIiJilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegegegehagegegehagegegehagegegegehagegegegehagegegehagegegehagegegTiKgviLgmiKhkiLgmiKhkiLgmiKhkiLgmiKhkiMgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiNiOiOiDiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegehfgegegehfgegegehfgegegegehfgegegegehfgegegehfgegegehfgegeiQgHiRiSgHgHiRiSgHgHiRiSgHgHiRiSgHgHiRiTgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiUiOiOiViliFiPililidiWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegKgKgKgegegegegKgKgKgegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibibibibibilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegmgmgmgegegegegmgmgmgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngmgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXililiZilililililidjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibilisisisisibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiljbjcjdikibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibibibjeibibibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibjfiFiljgjhibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjdisjiisjfibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjljmjnjojpibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSiYiYiYiYiYhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjujvjwjxjrjrjsjsjyjzjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjqjqjqjjjrjrjsjsjrjAjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjBjqjqjqjCjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjDjEjFjtjtjtjGjHjtjqaaaajjjrjrjrjrjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjtjIjtjIjtjtjtjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjJjJjJjJjKjtjtjqaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjqjqjqjtjLjJjMjNjJjtjtjOjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjPjQjRjSjTjTjqjtjtjJjJjJjJjKjtjUjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjXjtjXjtjtjtjYjqjqjqjqjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjtjtjtjtjtjtkakbkckckcjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqkekekfkgkhkhjqkikjjtjtjtjtjtjtkakkkcklkcjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqkmknknkojqjqkmknknkojqjqjqkpjqjqkqkrksjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaktjtjtkakukvkwksjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakxkyjtjtkakzkAkBkCjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkykEjtjtkajqjqjqjqjqjZjZjZjZjZjZjZjZjZaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakGkHjvkIjtjtkJjqkKkckLjqjZkdjZkdjZkdjZkdjZaakFkMkNkNkOkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkPkIjtjtjtkQkckckRjqjZjZjZjZjZjZjZjZjZaakSkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakUkPjtjtkVjqkckckWjqjZkdjZkdjZkdjZkdjZaakFkTkXkYkZkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalajtjtkajqkclblcjqjZjZjZjZjZjZjZjZjZaakFldlelflgkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqlhjqjqjqjqjqjqaaaaaaaaaaaaaaaaaaaakFkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljlkljlllmllljlkljliaaaaaakFkFkFkFkFkFkFkFlnlolplqlrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljljljlsltlsljljljliaaaaaakFlulvlvlvlwlxlylzlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilElilEliltlilElilElilililikFlFlBlBlBlBlBlGlHlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilIlllJltltltltltlKlLlMlMlNkFlFlBlBlBlBlOlPlQlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSlSlSlIlTlJltltltlUlilElililMlVkFlFlBlBlBlBlWlWlWlXlBlBlClDlYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSmambmcmbmdlSlIlslJltltltmelElIlimfmgmhkFmilBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmkmjmjmjmlmmmjmjmjmjmjmlmjmjmjmjmjmnmlmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmqmqmqmqlSlElimrltltltmslilElilEmtlEkFmulBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmkmjmjmjmjmjmjmjmjmjmjmjmlmjmjmjmjmjmjmjmlmjmvmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmpmqmqmqmqmxmyltltltltltltltlKmzlMlMlMmAmBlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmCmjmjmjmjmjmkmjmjmmmjmjmlmjmjmlmjmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamomDmqmqmqmqlSlElimEltltltlUlimFlilililikFmGlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmlmjmjmkmjmjmlmmmjmjmlmjmmlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmwmpmqmqmqmqlSlIlllJltltltmIlllIliaaaaaakFmJlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmkmjmjmjmjmjmjmjmmmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKmpmqmqmqmqlSlIlTlJltltltmIlTlIliaaaaaakFmLlBlBlBlBmMmMmMmNlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmmmjmjmjmlmjmjmCmmmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamOmpmqmqmqmqlSlIlsmPmEltlUmQlslIliaaaaaakFmLlBlBlBlBmRmSmTlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmCmjmjmkmjmkmjmlmjmllZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamVmpmqmqmqmqlSmWmWmXmYmZmXmYmWmWmWaaaaaakFmLlBlBlBlBlBnanblAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjncncndnencncmjmmmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnfngnhmqmqlSninjnknlnmnnnonpnqmWaaaaaakFnrnsnsnsntnunvnwlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjncncnxnynynxncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSnzlSlSnAnmnBnlnmnnnBnmnCmWaaaaaakFkFkFkFkFkFkFkFnDlolpnElrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRnFnGnHnInFlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmCmjmjmjncnJnKnKnKnKnLnMnNncnOnPnQncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSnSnmnBnlnmnnnBnmnTmWaaaaaaaaaaaaaaaaaaaaaakFlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFnUnVnUnFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmkncnWnKnXnXnYnKnKnKnZoaoaobncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSocnmnBnlnmnnnBnmodmWaaaaaaaaaaaaaaaaaaaaaakFlBoemSmRkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnUnUnUnUnUnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmUmUmUmUmUmUmUmjmjmjmjmjmjncnKnXofognXnKohoincoaojncncokokokolololololokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSomononoonmopoqoqormWaaaaaaaaaaaaaaaaaaaaaakFlBosnaotkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFounUnUnUovnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmUmUmUmUmUowoxoxoxoxoxnencnKnXoyoznXnKohoAncncncncncokoBoCoDoEoFoEoGoHokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSmXoImYmWnmmWmXoImYmWaaaaaaaaaaaaaaaaaaaaaaoJlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFnFoKoLoKnFnFnFnFlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUoMoNoNoNoNoNoNoOnKnKnKnKnKnKohoAncncncncncokoPoDoEoQoRoSoEoGoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWoUoUoUoVnmoVoUoUoUmWaaaaaaaaaaaaaaaaaaaaaakFoWntntoXkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFoYoZnFnUnUnUnFpapbnFnFlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUpcpdndoxoxoxnencpenXnXnXnKnKohpfndoxoxoxoxoxoxoEoQoRpgoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmWmWmWmWmWmWmWmZmWmWmWmWmWmWmWmWaaaaaaaaaaaaaaaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFphpiphnFnUnUnUnFpjpkplnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUpmmUmUmjmjmjncpnpopppopqnKnKnKpdoNoNoNoNoNpdproRoSpsoQoRproTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFoZphphphpvnUnUnUpwpapxpapbnFnFlRlRlRlRlRlRlRaaaaaaaalZpymjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmkncpzpApzpzpBnKnKnKndoxoxoxoxoxoxoEoQoRpCoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDptptptpEptptptptptptptpEptptptpDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFoYpFphphphnFnUnUnUnFpGpapjpHplnFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmCmjncncoipIpJpKncpLncncncncncncokoPpMoEoQoRoSoEpNoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFphphphphpOnFpPnUpQnFpRpSpapxpanFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjncncncncncncpTpTpUpVpWpXncokpYpZpMoEqaoEpNqbokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmXoIoIoIoIoIoIoIoIoIoIoIoIoImYmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFqcnFnFnFnFnFnFqdnFnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmCmjncpTpTpTpTpTpTncokokokqeqeqeqeqeokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfqfqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfqfqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqinUnUqinFqjqknUnUnUqlqmnFqnqoqpqqnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmkmjmjmmqrpTpTpTpTpTqsncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqBqCnUnUqCqBnUnUnUnUnUnUqDqBqqqEqFqEnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmCmlmkmCncqGqGqGqGqGqHncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqKqLnUnUnUqKnUnUnUqMnUnUqNqKqOqoqqqonFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmlmjncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqPqvqvqwqxqhqhqhqhqhqQqRqQqhqhqhqhqhqyqwqzqzqSqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqTqCnUnUqCqTnUnUnUqUnUnUnUqTqVqWqEqXnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmlmjmCmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqQqYqQqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqZnUnUqZnFranUnUnUnUnUnUnFqqqoqqrbnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFrcnFnFnFnFnFoKrcoKnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqBnUnUnUnUnUnUnUnUnUnUnUnUnUnUnUqBlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmjmUmUmUmUmUmjmjmjmvrdmvmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfrerererereqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfrerererereqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqTnUpanUpanUpanUpanUpanUpanUpanUqTlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfrfrfrfrfrfqfrgrhrhrhrhrhrhrhrhrhrhrhrhrhriqfrjrjrjrjrjqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFnUnUnUnUnUnUnUnUnUnUnUnUnUnFnFlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfrkrlrlrlrlrlrmrnrorlrlrlrlrlrkqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFnFrpnFnFnFrqnFnFnFrrnFnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrkrkrkrtrkrurururururkrtrkrkrkrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrvrwrxnFryparznFrArBrCnFlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrDrsrsrsrsrErFrGrsrsrsrsrDrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrHrwrInFparJpanFrKrBrBnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrsrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrLrMrNnFrOparPnFrQrRrSnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFrTnFnFnFoKnFnFnFnFnFnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnUnFnUrVrWrVrXnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZsasbsbrZscsdsesfsgshsishshshsjrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRoKnUrTnUnUnUnUnUoKlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZrZrZrZrZsksgsgsgslshshshsmshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFsnnUnUnUsnnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsorZsprYsqsrsssgsgsgsgshshstshsusirUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFsvsvsvsvsvnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUswsgslslslslslsgsgsgsgshshshsxshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFsysysynFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUszsgsgsgsgsgsgsgsgsgsgsAshshshshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRsBsBsBlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsCsgsgsgsgsgsgsgsgslsgsAsDsDsDsEsDrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsFsgsgsgsgsgsgsgslsGslsAsHsHsHsHsHrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUsIsJsJsKrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTsUsVsWsXsYaasSsTsZtatbsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctdtetetetftgaatcthtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtktltmtntoaatitjtptltqtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTtGtHtIsXsYaasSsTtJtKtLsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctMtetetetftgaatctNtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtOtltPtntoaatitjtQtltRtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtUtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtWtWtWtWtWtWtWtWtWtWtWtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtWtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtXtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtYtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtTtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +"} diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm index b5fa974079b..9b57ffbb870 100644 --- a/_maps/map_files/generic/z5.dmm +++ b/_maps/map_files/generic/z5.dmm @@ -1091,7 +1091,7 @@ /turf/open/floor/plasteel/floorgrime, /area/mine/laborcamp) "dp" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair{ dir = 8 }, diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index aa4719f3ec0..9afc23482c6 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -120,7 +120,7 @@ /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/mob_spawn/human/corpse, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/machinery/light/small{ dir = 8 }, diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 5a031643733..1af9093d956 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -66,6 +66,9 @@ var/datum/subsystem/shuttle/SSshuttle #endif /datum/subsystem/shuttle/proc/setup_transit_zone() + if(transit_markers.len == 0) + WARNING("No /obj/effect/landmark/transit placed on the map!") + return // transit zone var/turf/A = get_turf(transit_markers[1]) var/turf/B = get_turf(transit_markers[2]) @@ -77,6 +80,9 @@ var/datum/subsystem/shuttle/SSshuttle #ifdef HIGHLIGHT_DYNAMIC_TRANSIT /datum/subsystem/shuttle/proc/color_space() + if(transit_markers.len == 0) + WARNING("No /obj/effect/landmark/transit placed on the map!") + return var/turf/A = get_turf(transit_markers[1]) var/turf/B = get_turf(transit_markers[2]) for(var/i in block(A, B)) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 132cfb26944..bbfb866caeb 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -58,7 +58,7 @@ var/datum/subsystem/ticker/ticker /datum/subsystem/ticker/New() NEW_SS_GLOBAL(ticker) - login_music = pickweight(list('sound/ambience/title2.ogg' = 23, 'sound/ambience/title1.ogg' =23, 'sound/ambience/title3.ogg' =23, 'sound/ambience/title4.ogg' =23, 'sound/ambience/clown.ogg' = 8)) // choose title music! + login_music = pickweight(list('sound/ambience/title2.ogg' = 15, 'sound/ambience/title1.ogg' =15, 'sound/ambience/title3.ogg' =14, 'sound/ambience/title4.ogg' =14, 'sound/misc/i_did_not_grief_them.ogg' =14, 'sound/ambience/clown.ogg' = 9)) // choose title music! if(SSevent.holidays && SSevent.holidays[APRIL_FOOLS]) login_music = 'sound/ambience/clown.ogg' diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index c64d0db642d..4624ac07733 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -117,7 +117,7 @@ var/global/max_secret_rooms = 6 if("speakeasy") theme = "speakeasy" floortypes = list(/turf/open/floor/plasteel,/turf/open/floor/wood) - treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/projectile/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel/flat=1, + treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/ballistic/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel/flat=1, /obj/machinery/reagentgrinder=2, /obj/machinery/computer/security/wooden_tv=4, /obj/machinery/vending/coffee=3) fluffitems = list(/obj/structure/table/wood=2,/obj/structure/reagent_dispensers/beerkeg=1,/obj/item/stack/spacecash/c500=4, /obj/item/weapon/reagent_containers/food/drinks/shaker=1,/obj/item/weapon/reagent_containers/food/drinks/bottle/wine=3, diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 4fd41868b09..6be82f5375a 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -225,6 +225,9 @@ if(overmind) overmind.blob_reagent_datum.extinguish_reaction(src) +/obj/structure/blob/hulk_damage() + return 15 + /obj/structure/blob/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/device/analyzer)) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm index 8596e729ce2..3ba031ab064 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -34,7 +34,7 @@ for(var/obj/O in src) if(O.density && !O.CanPass(user, src, 5)) user << "Something is in the way, preventing you from proselytizing [src] into a clockwork wall." - return FALSE + return TRUE return list("operation_time" = 100, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) //Metal conversion @@ -109,6 +109,8 @@ new_dir = FALSE prosel_time = 30 prosel_cost = REPLICANT_STANDARD + for(var/obj/structure/grille/G in get_turf(src)) + addtimer(proselytizer, "proselytize", 0, FALSE, G, user) return list("operation_time" = prosel_time, "new_obj_type" = windowtype, "alloy_cost" = prosel_cost, "spawn_dir" = dir, "dir_in_new" = new_dir) /obj/structure/window/reinforced/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm index 522551e1eba..aa08c8e857b 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm @@ -109,6 +109,8 @@ var/list/proselytize_values = target.proselytize_vals(user, src) //relevant values for proselytizing stuff, given as an associated list if(!islist(proselytize_values)) if(proselytize_values != TRUE) //if we get true, fail, but don't send a message for whatever reason + if(!isturf(target)) //otherwise, if we didn't get TRUE and the original target wasn't a turf, try to proselytize the turf + return proselytize(get_turf(target), user) user << "[target] cannot be proselytized!" return FALSE if(can_use_alloy(RATVAR_ALLOY_CHECK)) diff --git a/code/game/gamemodes/clock_cult/clock_structure.dm b/code/game/gamemodes/clock_cult/clock_structure.dm index d678fb800bc..ecc721196a9 100644 --- a/code/game/gamemodes/clock_cult/clock_structure.dm +++ b/code/game/gamemodes/clock_cult/clock_structure.dm @@ -51,6 +51,9 @@ if(can_see_clockwork) user << "[servant_message][heavily_damaged ? "!":"."]" +/obj/structure/destructible/clockwork/hulk_damage() + return 20 + //for the ark and Ratvar /obj/structure/destructible/clockwork/massive diff --git a/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm index ab35bf49635..f668c6c606f 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm @@ -16,9 +16,13 @@ /obj/item/clockwork/component/vanguard_cogwheel = 1) var/stored_alloy = 0 var/max_alloy = REPLICANT_ALLOY_POWER * 10 - var/mob_cost = 200 - var/structure_cost = 250 - var/cyborg_cost = 300 + var/heal_attempts = 4 + var/static/list/mending_motor_typecache = typecacheof(list( + /obj/structure/destructible/clockwork, + /obj/machinery/door/airlock/clockwork, + /obj/machinery/door/window/clockwork, + /obj/structure/window/reinforced/clockwork, + /obj/structure/table/reinforced/brass)) /obj/structure/destructible/clockwork/powered/mending_motor/prefilled stored_alloy = REPLICANT_ALLOY_POWER //starts with 1 replicant alloy's worth of power @@ -44,46 +48,51 @@ if(is_servant_of_ratvar(user) || isobserver(user)) user << "It contains [stored_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER]/[max_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER] units of liquified alloy, \ which is equivalent to [stored_alloy]W/[max_alloy]W of power." - user << "It requires [mob_cost]W to heal clockwork mobs, [structure_cost]W for clockwork structures, and [cyborg_cost]W for cyborgs." + user << "It requires at least [MIN_CLOCKCULT_POWER]W to attempt to repair clockwork mobs, structures, or converted silicons." /obj/structure/destructible/clockwork/powered/mending_motor/process() - if(..() < mob_cost) + . = ..() + if(. < MIN_CLOCKCULT_POWER) visible_message("[src] emits an airy chuckling sound and falls dark!") toggle() return - for(var/atom/movable/M in range(5, src)) + for(var/atom/movable/M in range(7, src)) if(isclockmob(M) || istype(M, /mob/living/simple_animal/drone/cogscarab)) - var/mob/living/simple_animal/hostile/clockwork/W = M - var/fatigued = FALSE - if(istype(M, /mob/living/simple_animal/hostile/clockwork/marauder)) - var/mob/living/simple_animal/hostile/clockwork/marauder/E = M - if(E.fatigue) - fatigued = TRUE - if((!fatigued && W.health == W.maxHealth) || W.stat) + var/mob/living/simple_animal/hostile/clockwork/marauder/E = M + var/is_marauder = istype(E) + if(E.health == E.maxHealth || E.stat == DEAD || (is_marauder && !E.fatigue)) continue - if(!try_use_power(mob_cost)) - break - W.adjustHealth(-20) - else if(istype(M, /obj/structure/destructible/clockwork)) - var/obj/structure/destructible/clockwork/C = M + for(var/i in 1 to heal_attempts) + if(E.health < E.maxHealth || (is_marauder && E.fatigue)) + if(try_use_power(MIN_CLOCKCULT_POWER)) + E.adjustHealth(-8) + else + break + else if(is_type_in_typecache(M, mending_motor_typecache)) + var/obj/structure/C = M if(C.obj_integrity == C.max_integrity) continue - if(!try_use_power(structure_cost)) - break - C.obj_integrity = min(C.obj_integrity + 20, C.max_integrity) + for(var/i in 1 to heal_attempts) + if(C.obj_integrity < C.max_integrity) + if(try_use_power(MIN_CLOCKCULT_POWER)) + C.obj_integrity = min(C.obj_integrity + 8, C.max_integrity) + else + break else if(issilicon(M)) var/mob/living/silicon/S = M if(S.health == S.maxHealth || S.stat == DEAD || !is_servant_of_ratvar(S)) continue - if(!try_use_power(cyborg_cost)) - break - S.adjustBruteLoss(-20) - S.adjustFireLoss(-10) - return 1 + for(var/i in 1 to heal_attempts) + if(S.health < S.maxHealth) + if(try_use_power(MIN_CLOCKCULT_POWER)) + S.adjustBruteLoss(-5) + S.adjustFireLoss(-3) + else + break /obj/structure/destructible/clockwork/powered/mending_motor/attack_hand(mob/living/user) if(user.canUseTopic(src, BE_CLOSE)) - if(total_accessable_power() < mob_cost) + if(total_accessable_power() < MIN_CLOCKCULT_POWER) user << "[src] needs more power or replicant alloy to function!" return 0 toggle(0, user) diff --git a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm index da8f6f58273..11540c9a946 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm @@ -11,7 +11,7 @@ break_message = "The warden's eye gives a glare of utter hate before falling dark!" debris = list(/obj/item/clockwork/component/belligerent_eye/blind_eye = 1) resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - var/damage_per_tick = 2.5 + var/damage_per_tick = 2.7 var/sight_range = 3 var/atom/movable/target var/list/idle_messages = list(" sulkily glares around.", " lazily drifts from side to side.", " looks around for something to burn.", " slowly turns in circles.") @@ -28,6 +28,9 @@ ..() user << "[target ? "It's fixated on [target]!" : "Its gaze is wandering aimlessly."]" +/obj/structure/destructible/clockwork/ocular_warden/hulk_damage() + return 25 + /obj/structure/destructible/clockwork/ocular_warden/process() var/list/validtargets = acquire_nearby_targets() if(ratvar_awakens && (damage_per_tick == initial(damage_per_tick) || sight_range == initial(sight_range))) //Massive buff if Ratvar has returned @@ -69,14 +72,15 @@ . = list() for(var/mob/living/L in viewers(sight_range, src)) //Doesn't attack the blind var/obj/item/weapon/storage/book/bible/B = L.bible_check() - if(!is_servant_of_ratvar(L) && !L.stat && L.mind && !(L.disabilities & BLIND) && !L.null_rod_check() && !B) - . += L - else if(B) + if(B) if(!(B.resistance_flags & ON_FIRE)) L << "Your [B.name] bursts into flames!" for(var/obj/item/weapon/storage/book/bible/BI in L.GetAllContents()) if(!(BI.resistance_flags & ON_FIRE)) BI.fire_act() + else if(!is_servant_of_ratvar(L) && !L.stat && L.mind && !L.restrained() && !(L.buckled && (L.lying || istype(L.buckled, /obj/structure/destructible/clockwork/guvax_binding))) && \ + !(L.disabilities & BLIND) && !L.null_rod_check()) + . += L for(var/N in mechas_list) var/obj/mecha/M = N if(get_dist(M, src) <= sight_range && M.occupant && !is_servant_of_ratvar(M.occupant) && (M in view(sight_range, src))) diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index 4b54ad3e62c..375075ce85e 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -198,7 +198,7 @@ pointcost = 1 if("pistol") if(gang.points >= 25) - item_type = /obj/item/weapon/gun/projectile/automatic/pistol + item_type = /obj/item/weapon/gun/ballistic/automatic/pistol pointcost = 25 if("10mmammo") if(gang.points >= 10) @@ -206,7 +206,7 @@ pointcost = 10 if("uzi") if(gang.points >= 60) - item_type = /obj/item/weapon/gun/projectile/automatic/mini_uzi + item_type = /obj/item/weapon/gun/ballistic/automatic/mini_uzi pointcost = 60 if("9mmammo") if(gang.points >= 40) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index c07253e0ac8..726c6344564 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -297,7 +297,7 @@ ears = /obj/item/device/radio/headset/syndicate/alt l_pocket = /obj/item/weapon/pinpointer/syndicate id = /obj/item/weapon/card/id/syndicate - belt = /obj/item/weapon/gun/projectile/automatic/pistol + belt = /obj/item/weapon/gun/ballistic/automatic/pistol backpack_contents = list(/obj/item/weapon/storage/box/syndie=1) var/tc = 25 @@ -332,10 +332,10 @@ suit = /obj/item/clothing/suit/space/hardsuit/syndi r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen/engi belt = /obj/item/weapon/storage/belt/military - r_hand = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + r_hand = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog backpack_contents = list(/obj/item/weapon/storage/box/syndie=1,\ /obj/item/weapon/tank/jetpack/oxygen/harness=1,\ - /obj/item/weapon/gun/projectile/automatic/pistol=1) + /obj/item/weapon/gun/ballistic/automatic/pistol=1) /datum/outfit/syndicate/full/post_equip(mob/living/carbon/human/H) ..() diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 25473cce9bb..87ae5497041 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -19,7 +19,7 @@ /datum/objective_item/steal/hoslaser name = "the head of security's personal laser gun" - targetitem = /obj/item/weapon/gun/energy/gun/hos + targetitem = /obj/item/weapon/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list("Head Of Security") @@ -155,7 +155,7 @@ /datum/objective_item/special/aegun name = "an advanced energy gun" - targetitem = /obj/item/weapon/gun/energy/gun/nuclear + targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear difficulty = 10 /datum/objective_item/special/ddrill diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 8e34e987413..31cc15284b6 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -208,11 +208,11 @@ else if((occupant) && (occupant.loc == src)) if((occupant.stat == DEAD) || (occupant.suiciding) || occupant.hellbound) //Autoeject corpses and suiciding dudes. - locked = FALSE - go_out() connected_message("Clone Rejected: Deceased.") SPEAK("The cloning of [occupant.real_name] has been \ aborted due to unrecoverable tissue failure.") + locked = FALSE + go_out() else if(occupant.cloneloss > (100 - heal_level)) occupant.Paralyse(4) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index d23a522cb42..77d2c81bdfa 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -12,7 +12,7 @@ /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, - /obj/item/weapon/gun/projectile/shotgun/toy/crossbow = 2, + /obj/item/weapon/gun/ballistic/shotgun/toy/crossbow = 2, /obj/item/weapon/storage/box/fakesyndiesuit = 2, /obj/item/weapon/storage/crayons = 2, /obj/item/toy/spinningtoy = 2, @@ -1040,7 +1040,7 @@ desc = "The Premier security forces for all spaceports found along the Orion Trail." faction = list("orion") loot = list(/obj/effect/mob_spawn/human/corpse/orionsecurity, - /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, + /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, /obj/item/weapon/shield/energy) /obj/effect/mob_spawn/human/corpse/orionsecurity diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index a0dfbc790e8..eb7da71d29b 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -32,7 +32,7 @@ var/locked = 1 //if the turret's behaviour control access is locked var/controllock = 0 //if the turret responds to control panels - var/installation = /obj/item/weapon/gun/energy/gun/turret //the type of weapon installed + var/installation = /obj/item/weapon/gun/energy/e_gun/turret //the type of weapon installed var/gun_charge = 0 //the charge of the gun inserted var/projectile = null //holder for bullettype var/eprojectile = null //holder for the shot when emagged @@ -138,21 +138,21 @@ if(/obj/item/weapon/gun/energy/lasercannon) active_state = "Laser" - if(/obj/item/weapon/gun/energy/gun/advtaser) + if(/obj/item/weapon/gun/energy/e_gun/advtaser) eprojectile = /obj/item/projectile/beam eshot_sound = 'sound/weapons/Laser.ogg' - if(/obj/item/weapon/gun/energy/gun) + if(/obj/item/weapon/gun/energy/e_gun) eprojectile = /obj/item/projectile/beam //If it has, going to kill mode eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 - if(/obj/item/weapon/gun/energy/gun/nuclear) + if(/obj/item/weapon/gun/energy/e_gun/nuclear) eprojectile = /obj/item/projectile/beam //If it has, going to kill mode eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 - if(/obj/item/weapon/gun/energy/gun/turret) + if(/obj/item/weapon/gun/energy/e_gun/turret) eprojectile = /obj/item/projectile/beam //If it has, going to copypaste mode eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 @@ -276,9 +276,9 @@ if(prob(70)) user << "You remove the turret and salvage some components." if(installation) - var/obj/item/weapon/gun/energy/Gun = new installation(loc) - Gun.power_supply.charge = gun_charge - Gun.update_icon() + var/obj/item/weapon/gun/energy/EG = new installation(loc) + EG.power_supply.charge = gun_charge + EG.update_icon() lasercolor = null if(prob(50)) new /obj/item/stack/sheet/metal(loc, rand(1,4)) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 5ac7b22e2e2..27561e43da4 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -182,12 +182,12 @@ if(PTURRET_GUN_EQUIPPED) build_step = PTURRET_INTERNAL_ARMOUR_ON - var/obj/item/weapon/gun/energy/Gun = new installation(loc) - Gun.power_supply.charge = gun_charge - Gun.update_icon() + var/obj/item/weapon/gun/energy/EG = new installation(loc) + EG.power_supply.charge = gun_charge + EG.update_icon() installation = null gun_charge = 0 - user << "You remove [Gun] from the turret frame." + user << "You remove [EG] from the turret frame." if(PTURRET_SENSORS_ON) user << "You remove the prox sensor from the turret frame." diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 2067cce19f8..4042ea46f26 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -51,8 +51,8 @@ return 1 if (istype(G, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/gun = G - if(!gun.can_charge) + var/obj/item/weapon/gun/energy/E = G + if(!E.can_charge) user << "Your gun has no external power connector." return 1 @@ -112,6 +112,7 @@ var/obj/item/weapon/gun/energy/E = charging if(E.power_supply.charge < E.power_supply.maxcharge) E.power_supply.give(E.power_supply.chargerate * recharge_coeff) + E.recharge_newshot() use_power(250 * recharge_coeff) using_power = 1 diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 1af51021b48..2503c643f41 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -762,10 +762,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "Liberation Station: Your one-stop shop for all things second ammendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!" product_ads = "Float like an astronaut, sting like a bullet!;Express your second ammendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?" vend_reply = "Remember the name: Liberation Station!" - products = list(/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo = 2, - /obj/item/weapon/gun/projectile/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/projectile/automatic/proto/unrestricted = 2, - /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 2,/obj/item/weapon/gun/projectile/automatic/gyropistol = 1, - /obj/item/weapon/gun/projectile/shotgun = 2,/obj/item/weapon/gun/projectile/automatic/ar = 2) + products = list(/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo = 2, + /obj/item/weapon/gun/ballistic/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/ballistic/automatic/proto/unrestricted = 2, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 2,/obj/item/weapon/gun/ballistic/automatic/gyropistol = 1, + /obj/item/weapon/gun/ballistic/shotgun = 2,/obj/item/weapon/gun/ballistic/automatic/ar = 2) premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,/obj/item/ammo_box/magazine/m50 = 4,/obj/item/ammo_box/magazine/m45 = 2,/obj/item/ammo_box/magazine/m75 = 2) contraband = list(/obj/item/clothing/under/patriotsuit = 1,/obj/item/weapon/bedsheet/patriot = 3) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) @@ -1036,7 +1036,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/head/beanie/purple=1, /obj/item/clothing/head/beanie/yellow=1, /obj/item/clothing/head/beanie/orange=1, /obj/item/clothing/head/beanie/cyan=1, /obj/item/clothing/head/beanie/christmas=1, /obj/item/clothing/head/beanie/striped=1, /obj/item/clothing/head/beanie/stripedred=1, /obj/item/clothing/head/beanie/stripedblue=1, /obj/item/clothing/head/beanie/stripedgreen=1, /obj/item/clothing/suit/jacket/letterman_red=1) - contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=2,/obj/item/clothing/suit/jacket/letterman_syndie=1,/obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1) + contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=2,/obj/item/clothing/suit/jacket/letterman_syndie=1,/obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1, /obj/item/clothing/under/geisha=1) premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1,/obj/item/clothing/neck/necklace/dope=3,/obj/item/clothing/suit/jacket/letterman_nanotrasen=1) refill_canister = /obj/item/weapon/vending_refill/clothing diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 4a8ee45ce79..af457c7f188 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -88,16 +88,14 @@ return 1 +/obj/mecha/hulk_damage() + return 15 /obj/mecha/attack_hulk(mob/living/carbon/human/user) - if(user.a_intent == "harm") + . = ..() + if(.) log_message("Attack by hulk. Attacker - [user].",1) - user.changeNext_move(CLICK_CD_MELEE) add_logs(user, src, "punched", "hulk powers") - user.visible_message("[user] hits [name]. The metal creaks and bends.", null, null, COMBAT_MESSAGE_RANGE) - user.do_attack_animation(src, ATTACK_EFFECT_SMASH) - take_damage(15, BRUTE, "melee", 0, get_dir(src, user)) - return 1 /obj/mecha/blob_act(obj/structure/blob/B) take_damage(30, BRUTE, "melee", 0, get_dir(src, B)) diff --git a/code/modules/countdown/countdown.dm b/code/game/objects/effects/countdown.dm similarity index 97% rename from code/modules/countdown/countdown.dm rename to code/game/objects/effects/countdown.dm index 6f7a73355fa..219c9de6461 100644 --- a/code/modules/countdown/countdown.dm +++ b/code/game/objects/effects/countdown.dm @@ -56,6 +56,9 @@ STOP_PROCESSING(SSfastprocess, src) . = ..() +/obj/effect/countdown/ex_act(severity, target) //immune to explosions + return + /obj/effect/countdown/syndicatebomb name = "syndicate bomb countdown" diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index e4bd858f716..0bc28ec7983 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -23,16 +23,16 @@ lootdoubles = 0 loot = list( - /obj/item/weapon/gun/projectile/automatic/pistol = 8, - /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5, - /obj/item/weapon/gun/projectile/revolver/mateba, - /obj/item/weapon/gun/projectile/automatic/pistol/deagle + /obj/item/weapon/gun/ballistic/automatic/pistol = 8, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, + /obj/item/weapon/gun/ballistic/revolver/mateba, + /obj/item/weapon/gun/ballistic/automatic/pistol/deagle ) /obj/effect/spawner/lootdrop/gambling name = "gambling valuables spawner" loot = list( - /obj/item/weapon/gun/projectile/revolver/russian = 5, + /obj/item/weapon/gun/ballistic/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/toy/cards/deck/syndicate = 2 ) @@ -121,7 +121,7 @@ /obj/item/weapon/crowbar = 1, /obj/item/weapon/crowbar/red = 1, /obj/item/weapon/extinguisher = 11, - //obj/item/weapon/gun/projectile/revolver/russian = 1, //disabled until lootdrop is a proper world proc. + //obj/item/weapon/gun/ballistic/revolver/russian = 1, //disabled until lootdrop is a proper world proc. /obj/item/weapon/hand_labeler = 1, /obj/item/weapon/paper/crumpled = 1, /obj/item/weapon/pen = 1, diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 52b0994af16..6817b591bd0 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -454,7 +454,7 @@ contents = list() new /obj/item/ammo_box/magazine/smgm45(src) new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/weapon/gun/projectile/automatic/c20r(src) + new /obj/item/weapon/gun/ballistic/automatic/c20r(src) new /obj/item/weapon/suppressor/specialoffer(src) return @@ -465,7 +465,7 @@ ..() contents = list() new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(src) new /obj/item/ammo_box/magazine/m12g/buckshot(src) new /obj/item/clothing/glasses/thermal/syndi(src) return @@ -478,7 +478,7 @@ contents = list() new /obj/item/clothing/shoes/magboots/syndie(src) new /obj/item/weapon/storage/firstaid/tactical(src) - new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src) + new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) new /obj/item/ammo_box/foambox/riot(src) return @@ -490,7 +490,7 @@ contents = list() new /obj/item/clothing/shoes/magboots/syndie(src) new /obj/item/weapon/storage/firstaid/tactical(src) - new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src) + new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) new /obj/item/ammo_box/foambox/riot(src) return @@ -503,7 +503,7 @@ new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src) new /obj/item/weapon/storage/box/syndie_kit/chemical(src) new /obj/item/weapon/gun/syringe/syndicate(src) - new /obj/item/weapon/gun/projectile/automatic/c20r/toy(src) + new /obj/item/weapon/gun/ballistic/automatic/c20r/toy(src) new /obj/item/weapon/storage/box/syringes(src) new /obj/item/ammo_box/foambox/riot(src) new /obj/item/weapon/grenade/chem_grenade/bioterrorfoam(src) @@ -530,7 +530,7 @@ new /obj/item/clothing/under/syndicate/soviet(src) new /obj/item/weapon/watertank/operator(src) new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) - new /obj/item/weapon/gun/projectile/automatic/pistol/APS(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol/APS(src) new /obj/item/ammo_box/magazine/pistolm9mm(src) new /obj/item/ammo_box/magazine/pistolm9mm(src) new /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka(src) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 361ebd7f360..8d50d0cb814 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -375,8 +375,8 @@ storage_slots = 3 max_w_class = 3 can_hold = list( - /obj/item/weapon/gun/projectile/automatic/pistol, - /obj/item/weapon/gun/projectile/revolver, + /obj/item/weapon/gun/ballistic/automatic/pistol, + /obj/item/weapon/gun/ballistic/revolver, /obj/item/ammo_box, ) alternate_worn_layer = UNDER_SUIT_LAYER diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index c031886f09f..422e536092e 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -49,7 +49,7 @@ /obj/item/weapon/storage/briefcase/sniperbundle/New() ..() - new /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate(src) + new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate(src) new /obj/item/clothing/neck/tie/red(src) new /obj/item/clothing/under/syndicate/sniper(src) new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 81228a70e0e..0417028a608 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -28,7 +28,7 @@ return if("bond") // 29 tc - new /obj/item/weapon/gun/projectile/automatic/pistol(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol(src) new /obj/item/weapon/suppressor(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/ammo_box/magazine/m10mm(src) @@ -48,7 +48,7 @@ return if("guns") // 28 tc now - new /obj/item/weapon/gun/projectile/revolver(src) + new /obj/item/weapon/gun/ballistic/revolver(src) new /obj/item/ammo_box/a357(src) new /obj/item/ammo_box/a357(src) new /obj/item/weapon/card/emag(src) @@ -113,7 +113,7 @@ return if("sniper") //This shit is unique so can't really balance it around tc, also no silencer because getting killed without ANY indicator on what killed you sucks - new /obj/item/weapon/gun/projectile/automatic/sniper_rifle(src) // 12 tc + new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(src) // 12 tc new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src) new /obj/item/clothing/glasses/thermal/syndi(src) new /obj/item/clothing/gloves/color/latex/nitrile(src) @@ -123,7 +123,7 @@ if("metaops") // 30 tc new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc - new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted(src) // 8 tc + new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted(src) // 8 tc new /obj/item/weapon/implanter/explosive(src) // 2 tc new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 726fd15e245..2dfa8ca446b 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -66,6 +66,8 @@ visible_message("[src] is hit by \a [P]!", null, null, COMBAT_MESSAGE_RANGE) take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180)) +/obj/proc/hulk_damage() + return 150 //the damage hulks do on punches to this object, is affected by melee armor /obj/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) if(user.a_intent == "harm") @@ -76,7 +78,7 @@ user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) else playsound(src, 'sound/effects/bang.ogg', 50, 1) - take_damage(150, BRUTE, "melee", 0, get_dir(src, user)) + take_damage(hulk_damage(), BRUTE, "melee", 0, get_dir(src, user)) return 1 return 0 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm index 0864e8a875f..5ce6d85262c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm @@ -13,11 +13,11 @@ if(prob(50)) new /obj/item/ammo_box/magazine/m50(src) new /obj/item/ammo_box/magazine/m50(src) - new /obj/item/weapon/gun/projectile/automatic/pistol/deagle(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol/deagle(src) else new /obj/item/ammo_box/a357(src) new /obj/item/ammo_box/a357(src) - new /obj/item/weapon/gun/projectile/revolver/mateba(src) + new /obj/item/weapon/gun/ballistic/revolver/mateba(src) /obj/structure/closet/secure_closet/ertSec name = "security closet" 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 c956f0b3852..d2143b13ba0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -27,7 +27,7 @@ new /obj/item/clothing/gloves/color/captain(src) new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) new /obj/item/weapon/storage/belt/sabre(src) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/e_gun(src) new /obj/item/weapon/door_remote/captain(src) /obj/structure/closet/secure_closet/hop @@ -49,7 +49,7 @@ new /obj/item/device/assembly/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/e_gun(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/weapon/door_remote/civillian(src) @@ -78,7 +78,7 @@ new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/shield/riot/tele(src) new /obj/item/weapon/storage/belt/security/full(src) - new /obj/item/weapon/gun/energy/gun/hos(src) + new /obj/item/weapon/gun/energy/e_gun/hos(src) new /obj/item/device/flashlight/seclite(src) new /obj/item/weapon/pinpointer(src) @@ -182,7 +182,7 @@ new /obj/item/ammo_box/c38(src) new /obj/item/ammo_box/c38(src) new /obj/item/weapon/storage/belt/holster(src) - new /obj/item/weapon/gun/projectile/revolver/detective(src) + new /obj/item/weapon/gun/ballistic/revolver/detective(src) /obj/structure/closet/secure_closet/injection name = "lethal injections" @@ -244,7 +244,7 @@ for(var/i in 1 to 3) new /obj/item/weapon/storage/box/rubbershot(src) for(var/i in 1 to 3) - new /obj/item/weapon/gun/projectile/shotgun/riot(src) + new /obj/item/weapon/gun/ballistic/shotgun/riot(src) /obj/structure/closet/secure_closet/armory3 name = "armory energy gun locker" @@ -256,7 +256,7 @@ new /obj/item/weapon/storage/box/firingpins(src) new /obj/item/weapon/gun/energy/ionrifle(src) for(var/i in 1 to 3) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/e_gun(src) for(var/i in 1 to 3) new /obj/item/weapon/gun/energy/laser(src) @@ -267,7 +267,7 @@ /obj/structure/closet/secure_closet/tac/New() ..() - new /obj/item/weapon/gun/projectile/automatic/wt550(src) + new /obj/item/weapon/gun/ballistic/automatic/wt550(src) new /obj/item/clothing/head/helmet/alt(src) new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/clothing/suit/armor/bulletproof(src) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index c477d911ab3..f29d08fe739 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -34,6 +34,9 @@ /obj/structure/grille/attack_paw(mob/user) attack_hand(user) +/obj/structure/grille/hulk_damage() + return 60 + /obj/structure/grille/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) if(user.a_intent == "harm") if(!shock(user, 70)) diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index 4ceb1be8a50..c2511923ef3 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -98,11 +98,11 @@ name = "shotgun locker" desc = "A locker that holds shotguns." case_type = "shotgun" - gun_category = /obj/item/weapon/gun/projectile/shotgun + gun_category = /obj/item/weapon/gun/ballistic/shotgun /obj/structure/guncase/ecase name = "energy gun locker" desc = "A locker that holds energy guns." icon_state = "ecase" case_type = "egun" - gun_category = /obj/item/weapon/gun/energy/gun + gun_category = /obj/item/weapon/gun/energy/e_gun diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index c9adc35d2aa..273baa44056 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -1,8 +1,9 @@ -/obj/structure/plasticflaps //HOW DO YOU CALL THOSE THINGS ANYWAY +/obj/structure/plasticflaps name = "plastic flaps" desc = "Definitely can't get past those. No way." - icon = 'icons/obj/stationobjs.dmi' //Change this. + icon = 'icons/obj/stationobjs.dmi' icon_state = "plasticflaps" + armor = list(melee = 100, bullet = 80, laser = 80, energy = 100, bomb = 50, bio = 100, rad = 100, fire = 50, acid = 50) density = 0 anchored = 1 layer = ABOVE_MOB_LAYER diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 5faf8f9497d..8bbe319750f 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -330,19 +330,19 @@ CTF.ctf_gear = initial(ctf_gear) CTF.respawn_cooldown = DEFAULT_RESPAWN -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf desc = "This looks like it could really hurt in melee." force = 75 -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf/dropped() +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf/dropped() . = ..() addtimer(src, "floor_vanish", 1) -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf/proc/floor_vanish() +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf/proc/floor_vanish() if(isturf(loc)) qdel(src) -/obj/item/weapon/gun/projectile/automatic/laser/ctf +/obj/item/weapon/gun/ballistic/automatic/laser/ctf mag_type = /obj/item/ammo_box/magazine/recharge/ctf desc = "This looks like it could really hurt in melee." force = 50 @@ -368,7 +368,7 @@ // RED TEAM GUNS -/obj/item/weapon/gun/projectile/automatic/laser/ctf/red +/obj/item/weapon/gun/ballistic/automatic/laser/ctf/red mag_type = /obj/item/ammo_box/magazine/recharge/ctf/red /obj/item/ammo_box/magazine/recharge/ctf/red @@ -382,7 +382,7 @@ // BLUE TEAM GUNS -/obj/item/weapon/gun/projectile/automatic/laser/ctf/blue +/obj/item/weapon/gun/ballistic/automatic/laser/ctf/blue mag_type = /obj/item/ammo_box/magazine/recharge/ctf/blue /obj/item/ammo_box/magazine/recharge/ctf/blue @@ -402,10 +402,10 @@ shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat id = /obj/item/weapon/card/id/syndicate - belt = /obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf + belt = /obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf l_pocket = /obj/item/ammo_box/magazine/recharge/ctf r_pocket = /obj/item/ammo_box/magazine/recharge/ctf - r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf + r_hand = /obj/item/weapon/gun/ballistic/automatic/laser/ctf /datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE) if(visualsOnly) @@ -432,7 +432,7 @@ /datum/outfit/ctf/red ears = /obj/item/device/radio/headset/syndicate/alt suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red - r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf/red + r_hand = /obj/item/weapon/gun/ballistic/automatic/laser/ctf/red l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red r_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red @@ -443,7 +443,7 @@ /datum/outfit/ctf/blue ears = /obj/item/device/radio/headset/headset_cent/commander suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue - r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf/blue + r_hand = /obj/item/weapon/gun/ballistic/automatic/laser/ctf/blue l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue r_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 08815bda3fd..7266b4a0c6e 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -213,7 +213,7 @@ new /obj/item/weapon/coin/gold(M) if(14) //Free Gun - new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(src)) + new /obj/item/weapon/gun/ballistic/revolver/mateba(get_turf(src)) if(15) //Random One-use spellbook new /obj/item/weapon/spellbook/oneuse/random(get_turf(src)) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 6314d18de4f..f88f05e7e79 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -130,7 +130,7 @@ obj/item/weapon/paper/crumpled/snowdin/shovel /obj/item/organ/brain/alien = 17, /obj/item/weapon/twohanded/dualsaber = 15, /obj/item/organ/heart/demon = 7, - /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted = 16, + /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted = 16, /obj/item/weapon/gun/magic/wand/resurrection/inert = 15, /obj/item/weapon/gun/magic/wand/resurrection = 10, /obj/item/device/radio/uplink/old = 2, @@ -189,7 +189,7 @@ obj/effect/mob_spawn/human/syndicatesoldier/coldres uniform = /obj/item/clothing/under/syndicate/coldres shoes = /obj/item/clothing/shoes/combat/coldres radio = /obj/item/device/radio/headset/syndicate/alt - pocket1 = /obj/item/weapon/gun/projectile/automatic/pistol + pocket1 = /obj/item/weapon/gun/ballistic/automatic/pistol pocket2 = /obj/item/weapon/card/id/syndicate has_id = 0 diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index e89761e92bf..5fb3e59683b 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -44,18 +44,18 @@ obj/item/weapon/gun/energy/laser/retro/sc_retro clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face //Syndicate sub-machine guns. -/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r +/obj/item/weapon/gun/ballistic/automatic/c20r/sc_c20r -/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r/New() +/obj/item/weapon/gun/ballistic/automatic/c20r/sc_c20r/New() ..() for(var/ammo in magazine.stored_ammo) if(prob(95)) //95% chance magazine.stored_ammo -= ammo //Barman's shotgun -/obj/item/weapon/gun/projectile/shotgun/sc_pump +/obj/item/weapon/gun/ballistic/shotgun/sc_pump -/obj/item/weapon/gun/projectile/shotgun/sc_pump/New() +/obj/item/weapon/gun/ballistic/shotgun/sc_pump/New() ..() for(var/ammo in magazine.stored_ammo) if(prob(95)) //95% chance diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 33f25238efc..73baec09fca 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -19,7 +19,7 @@ /datum/export/weapon/taser cost = 250 unit_name = "advanced taser" - export_types = list(/obj/item/weapon/gun/energy/gun/advtaser) + export_types = list(/obj/item/weapon/gun/energy/e_gun/advtaser) /datum/export/weapon/laser cost = 250 @@ -34,18 +34,18 @@ /datum/export/weapon/energy_gun cost = 900 unit_name = "energy gun" - export_types = list(/obj/item/weapon/gun/energy/gun) + export_types = list(/obj/item/weapon/gun/energy/e_gun) /datum/export/weapon/wt550 cost = 1400 unit_name = "WT-550 automatic rifle" - export_types = list(/obj/item/weapon/gun/projectile/automatic/wt550) + export_types = list(/obj/item/weapon/gun/ballistic/automatic/wt550) /datum/export/weapon/shotgun cost = 350 unit_name = "combat shotgun" - export_types = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat) + export_types = list(/obj/item/weapon/gun/ballistic/shotgun/automatic/combat) /datum/export/weapon/flashbang diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index f6e09e0d177..d643ff43c16 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -245,9 +245,9 @@ datum/supply_pack /datum/supply_pack/security/taser name = "Taser Crate" cost = 1500 - contains = list(/obj/item/weapon/gun/energy/gun/advtaser, - /obj/item/weapon/gun/energy/gun/advtaser, - /obj/item/weapon/gun/energy/gun/advtaser) + contains = list(/obj/item/weapon/gun/energy/e_gun/advtaser, + /obj/item/weapon/gun/energy/e_gun/advtaser, + /obj/item/weapon/gun/energy/e_gun/advtaser) crate_name = "taser crate" /datum/supply_pack/security/disabler @@ -339,9 +339,9 @@ datum/supply_pack /datum/supply_pack/security/armory/ballistic name = "Combat Shotguns Crate" cost = 2000 - contains = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat, - /obj/item/weapon/gun/projectile/shotgun/automatic/combat, - /obj/item/weapon/gun/projectile/shotgun/automatic/combat, + contains = list(/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/storage/belt/bandolier) @@ -350,8 +350,8 @@ datum/supply_pack /datum/supply_pack/security/armory/energy name = "Energy Guns Crate" cost = 2500 - contains = list(/obj/item/weapon/gun/energy/gun, - /obj/item/weapon/gun/energy/gun) + contains = list(/obj/item/weapon/gun/energy/e_gun, + /obj/item/weapon/gun/energy/e_gun) crate_name = "energy gun crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -373,8 +373,8 @@ datum/supply_pack /datum/supply_pack/security/armory/wt550 name = "WT-550 Auto Rifle Crate" cost = 3500 - contains = list(/obj/item/weapon/gun/projectile/automatic/wt550, - /obj/item/weapon/gun/projectile/automatic/wt550) + contains = list(/obj/item/weapon/gun/ballistic/automatic/wt550, + /obj/item/weapon/gun/ballistic/automatic/wt550) crate_name = "auto rifle crate" /datum/supply_pack/security/armory/wt550ammo @@ -1565,7 +1565,7 @@ datum/supply_pack /obj/item/toy/carpplushie, /obj/item/weapon/coin/antagtoken, /obj/item/stack/tile/fakespace/loaded, - /obj/item/weapon/gun/projectile/shotgun/toy/crossbow, + /obj/item/weapon/gun/ballistic/shotgun/toy/crossbow, /obj/item/toy/redbutton) crate_name = "toy crate" @@ -1611,22 +1611,22 @@ datum/supply_pack /datum/supply_pack/misc/foamforce name = "Foam Force Crate" cost = 1000 - contains = list(/obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy) + contains = list(/obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy) crate_name = "foam force crate" /datum/supply_pack/misc/foamforce/bonus name = "Foam Force Pistols Crate" contraband = TRUE cost = 4000 - contains = list(/obj/item/weapon/gun/projectile/automatic/toy/pistol, - /obj/item/weapon/gun/projectile/automatic/toy/pistol, + contains = list(/obj/item/weapon/gun/ballistic/automatic/toy/pistol, + /obj/item/weapon/gun/ballistic/automatic/toy/pistol, /obj/item/ammo_box/magazine/toy/pistol, /obj/item/ammo_box/magazine/toy/pistol) crate_name = "foam force crate" diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index e3a9f4f7dee..3e82a2e02b0 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -32,7 +32,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1) + /obj/item/weapon/gun/energy/e_gun=1) l_pocket = /obj/item/weapon/switchblade /datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -65,9 +65,9 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/melee/baton/loaded=1,\ - /obj/item/weapon/gun/energy/gun/advtaser=1) + /obj/item/weapon/gun/energy/e_gun/advtaser=1) /datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -101,7 +101,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/reagent_containers/hypospray/combat=1,\ /obj/item/weapon/gun/medbeam=1) @@ -138,7 +138,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/rcd/loaded=1) /datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -169,7 +169,7 @@ gloves = /obj/item/clothing/gloves/color/black ears = /obj/item/device/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/sunglasses - belt = /obj/item/weapon/gun/energy/gun + belt = /obj/item/weapon/gun/energy/e_gun l_pocket = /obj/item/weapon/pen back = /obj/item/weapon/storage/backpack/satchel r_pocket = /obj/item/device/pda/heads diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 09dac1c292a..b807656a22e 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -31,7 +31,7 @@ suit = /obj/item/clothing/suit/det_suit glasses = /obj/item/clothing/glasses/thermal/monocle head = /obj/item/clothing/head/det_hat - r_hand = /obj/item/weapon/gun/projectile + r_hand = /obj/item/weapon/gun/ballistic l_hand = null r_pocket = /obj/item/ammo_box/c10mm @@ -166,7 +166,7 @@ for(var/i = 3 to 0 step -1) sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1) sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1) - sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1) + sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/ballistic/revolver/mateba,1) sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1) sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1) @@ -192,7 +192,7 @@ glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba head = /obj/item/clothing/head/centhat - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba r_pocket = /obj/item/weapon/lighter l_pocket = /obj/item/ammo_box/a357 back = /obj/item/weapon/storage/backpack/satchel/leather @@ -280,7 +280,7 @@ glasses = /obj/item/clothing/glasses/thermal/eyepatch suit = /obj/item/clothing/suit/pirate/captain back = /obj/item/weapon/storage/backpack/satchel/leather - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba id = /obj/item/weapon/card/id @@ -305,7 +305,7 @@ gloves = /obj/item/clothing/gloves/color/black ears = /obj/item/device/radio/headset glasses = /obj/item/clothing/glasses/sunglasses - r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun + r_hand = /obj/item/weapon/gun/ballistic/automatic/tommygun id = /obj/item/weapon/card/id /datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -338,7 +338,7 @@ l_pocket = /obj/item/weapon/melee/energy/sword/saber r_pocket = /obj/item/weapon/shield/energy suit_store = /obj/item/weapon/tank/internals/emergency_oxygen - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin id = /obj/item/weapon/card/id ears = /obj/item/device/radio/headset/headset_cent/alt diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index fb4a63f3786..d107f6aee20 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -121,10 +121,15 @@ teleport_now.UpdateButtonIcon() var/list/nonsafe_slots = list(slot_belt, slot_back) + var/list/exposed = list() for(var/slot in nonsafe_slots) var/obj/item/slot_item = user.get_item_by_slot(slot) - if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item)) - user << "Your [slot_item.name] got left behind." + exposed += slot_item + exposed += user.held_items + for(var/exposed_item in exposed) + var/obj/item/exposed_I = exposed_item + if(exposed_I && !(exposed_I.type in chronosafe_items) && user.unEquip(exposed_I)) + user << "Your [exposed_I.name] got left behind." user.ExtinguishMob() diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 2acc7cc9ccb..9a7ea4db617 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -477,7 +477,7 @@ name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security @@ -514,7 +514,7 @@ desc = "A bulky, heavy-duty piece of exclusive Nanotrasen hardsuit armor. YOU are in charge!" icon_state = "caparmor" item_state = "capspacesuit" - allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) resistance_flags = FIRE_PROOF | ACID_PROOF helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index afea89290f2..e1c21872f17 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -258,7 +258,7 @@ Contains: item_state = "space_suit_syndicate" slowdown = 0 //Space carp magic, never stop believing armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo - allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here + allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 13220235c0f..9fff4051720 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,5 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT @@ -143,7 +143,7 @@ name = "armor" desc = "An armored vest with a detective's badge on it." icon_state = "detective-armor" - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) resistance_flags = FLAMMABLE dog_fashion = null diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 057752822f3..0cf15c7a6e4 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -26,7 +26,7 @@ name = "head of security's cloak" desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored." icon_state = "hoscloak" - allowed = list(/obj/item/weapon/gun/energy/gun/hos) + allowed = list(/obj/item/weapon/gun/energy/e_gun/hos) armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 60) /obj/item/clothing/suit/cloak/qm diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index ec4b145f18b..ae184e0dd94 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -81,7 +81,7 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 43ccf1c59ae..d7753e751c5 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -134,7 +134,7 @@ item_state = "owl_wings" togglename = "wings" body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) actions_types = list(/datum/action/item_action/toggle_wings) /obj/item/clothing/suit/toggle/owlwings/griffinwings @@ -231,7 +231,7 @@ body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/ballistic/automatic/speargun) hooded = 1 hoodtype = /obj/item/clothing/head/carp_hood @@ -363,7 +363,7 @@ item_state = "hostrench" resistance_flags = 0 max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) /obj/item/clothing/suit/jacket/leather/overcoat name = "leather overcoat" @@ -393,7 +393,7 @@ desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" item_state = "militaryjacket" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" @@ -457,7 +457,7 @@ name = "captain's winter coat" icon_state = "coatcaptain" armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/winterhood/captain /obj/item/clothing/head/winterhood/captain @@ -467,7 +467,7 @@ name = "security winter coat" icon_state = "coatsecurity" armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/winterhood/security /obj/item/clothing/head/winterhood/security diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index cdb12152c65..816731ca08c 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -540,6 +540,13 @@ item_color = "jester" can_adjust = 0 +/obj/item/clothing/under/geisha + name = "geisha suit" + desc = "Cute space ninja senpai not included." + icon_state = "geisha" + item_color = "geisha" + can_adjust = 0 + /obj/item/clothing/under/plasmaman name = "Plasma-man Jumpsuit" desc = "A specially designed suit that allows Plasma based life forms to exist in an oxygenated environment." diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 0de21d6d3f0..84f94fcba65 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -101,7 +101,7 @@ /obj/item/bodypart/r_leg/robot = 1, /obj/item/stack/sheet/metal = 5, /obj/item/stack/cable_coil = 5, - /obj/item/weapon/gun/energy/gun/advtaser = 1, + /obj/item/weapon/gun/energy/e_gun/advtaser = 1, /obj/item/weapon/stock_parts/cell = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) @@ -245,7 +245,7 @@ /datum/crafting_recipe/ishotgun name = "Improvised Shotgun" - result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised + result = /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised reqs = list(/obj/item/weaponcrafting/reciever = 1, /obj/item/pipe = 1, /obj/item/weaponcrafting/stock = 1, diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cdcb8983ef1..bdce37094ca 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -464,7 +464,7 @@ Gunshots/explosions/opening doors/less rare audio (done) target << I QDEL_IN(O, 300) -var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_box/a357,\ +var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/ballistic, /obj/item/ammo_box/a357,\ /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 653aac2f9b3..8fdf1197a81 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -93,13 +93,13 @@ X.icon_state = old_icon_state1 for(var/obj/O in T) - var/obj/O2 = DuplicateObject(O , perfect_copy=TRUE, newloc = X, nerf=nerf_weapons, holoitem=TRUE) + var/obj/O2 = DuplicateObject(O , perfectcopy=TRUE, newloc = X, nerf=nerf_weapons, holoitem=TRUE) if(!O2) continue copiedobjs += O2.GetAllContents() for(var/mob/M in T) if(istype(M, /mob/camera)) continue // If we need to check for more mobs, I'll add a variable - var/mob/SM = DuplicateObject(M , perfect_copy=TRUE, newloc = X, holoitem=TRUE) + var/mob/SM = DuplicateObject(M , perfectcopy=TRUE, newloc = X, holoitem=TRUE) copiedobjs += SM.GetAllContents() var/global/list/forbidden_vars = list("type","stat","loc","locs","vars", "parent", "parent_type","verbs","ckey","key","x","y","z","contents", "luminosity") diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 69abe11b224..66110cd77f2 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -216,9 +216,4 @@ name = "paper - Starfleet Academy Diploma" info = {"

Starfleet Academy


Official Diploma


"} -/obj/item/weapon/gun/energy/gun/mini/practice_phaser - name = "practice phaser" - desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." - ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) - icon_state = "decloner" diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 508880f5c6e..9bedb5a97a8 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -92,7 +92,7 @@ desc = "It smells like burning." icon_state = "gatfruit" origin_tech = "combat=6" - trash = /obj/item/weapon/gun/projectile/revolver + trash = /obj/item/weapon/gun/ballistic/revolver bitesize_mod = 2 //Cherry Bombs diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 05a892a58a5..4d39b864a54 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -43,7 +43,7 @@ Head of Security gloves = /obj/item/clothing/gloves/color/black/hos head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses - suit_store = /obj/item/weapon/gun/energy/gun + suit_store = /obj/item/weapon/gun/energy/e_gun r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) @@ -101,7 +101,7 @@ Warden glasses = /obj/item/clothing/glasses/hud/security/sunglasses r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs - suit_store = /obj/item/weapon/gun/energy/gun/advtaser + suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security @@ -207,7 +207,7 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") shoes = /obj/item/clothing/shoes/jackboots l_pocket = /obj/item/weapon/restraints/handcuffs r_pocket = /obj/item/device/assembly/flash/handheld - suit_store = /obj/item/weapon/gun/energy/gun/advtaser + suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 2897d6849e3..9d0b804cd38 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -142,7 +142,7 @@ new /obj/item/weapon/hand_tele(src) if(97) new /obj/item/clothing/mask/balaclava - new /obj/item/weapon/gun/projectile/automatic/pistol(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol(src) new /obj/item/ammo_box/magazine/m10mm(src) if(98) new /obj/item/weapon/katana/cursed(src) diff --git a/code/modules/mob/interactive.dm b/code/modules/mob/interactive.dm index 88460087f17..3f72bef2d97 100644 --- a/code/modules/mob/interactive.dm +++ b/code/modules/mob/interactive.dm @@ -1547,8 +1547,8 @@ if(istype(main_hand,/obj/item/weapon/gun)) var/obj/item/weapon/gun/G = main_hand if(G.can_trigger_gun(src)) - if(istype(main_hand,/obj/item/weapon/gun/projectile)) - var/obj/item/weapon/gun/projectile/P = main_hand + if(istype(main_hand,/obj/item/weapon/gun/ballistic)) + var/obj/item/weapon/gun/ballistic/P = main_hand if(!P.chambered) P.chamber_round() P.update_icon() diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 2de60cf9fa1..236eb9ce1eb 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -65,7 +65,8 @@ */ /datum/species/lizard/ashwalker name = "Ash Walker" - id = "lizard" + id = "ashlizard" + limbs_id = "lizard" specflags = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS,DIGITIGRADE) /* PODPEOPLE @@ -669,6 +670,8 @@ /datum/species/zombie/infectious name = "Infectious Zombie" + id = "memezombies" + limbs_id = "zombie" no_equip = list(slot_wear_mask, slot_head) armor = 20 // 120 damage to KO a zombie, which kills it speedmod = 2 @@ -705,7 +708,8 @@ // Your skin falls off /datum/species/krokodil_addict name = "Human" - id = "zombie" + id = "goofzombies" + limbs_id = "zombie" //They look like zombies sexes = 0 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie mutant_organs = list(/obj/item/organ/tongue/zombie) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a8669a4f25f..3cf308b180d 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -94,10 +94,14 @@ F.times_used = 0 F.crit_fail = 0 F.update_icon() - if(istype(I, /obj/item/weapon/melee/baton)) + else if(istype(I, /obj/item/weapon/melee/baton)) var/obj/item/weapon/melee/baton/B = I if(B.bcell) B.bcell.charge = B.bcell.maxcharge + else if(istype(I, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/EG = I + if(!EG.chambered) + EG.recharge_newshot() //try to reload a new shot. R.toner = R.tonermax @@ -222,7 +226,7 @@ /obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/gun/advtaser/cyborg) in get_usable_modules() + var/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg) in get_usable_modules() if(T) if(T.power_supply.charge < T.power_supply.maxcharge) var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select] @@ -334,7 +338,7 @@ ..() modules += new /obj/item/weapon/melee/energy/sword/cyborg(src) modules += new /obj/item/weapon/gun/energy/printer(src) - modules += new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg(src) + modules += new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg(src) modules += new /obj/item/weapon/card/emag(src) modules += new /obj/item/weapon/crowbar/cyborg(src) modules += new /obj/item/weapon/pinpointer/syndicate/cyborg(src) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 4e12d7c2fab..e929a7040e2 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -158,7 +158,7 @@ return newname = "redtag ED-209 assembly" if("") - if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser)) + if(!istype(W, /obj/item/weapon/gun/energy/e_gun/advtaser)) return newname = "taser ED-209 assembly" else diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 7d38d0c7792..2ae182b7c06 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -363,7 +363,7 @@ Auto Patrol[]"}, new /obj/item/device/assembly/prox_sensor(Tsec) if(!lasercolor) - var/obj/item/weapon/gun/energy/gun/advtaser/G = new /obj/item/weapon/gun/energy/gun/advtaser(Tsec) + var/obj/item/weapon/gun/energy/e_gun/advtaser/G = new /obj/item/weapon/gun/energy/e_gun/advtaser(Tsec) G.power_supply.charge = 0 G.update_icon() else if(lasercolor == "b") diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 2f9edf13a14..76e12b72840 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -331,7 +331,7 @@ if(casingtype) var/obj/item/ammo_casing/casing = new casingtype(startloc) playsound(src, projectilesound, 100, 1) - casing.fire(targeted_atom, src, zone_override = ran_zone()) + casing.fire_casing(targeted_atom, src, null, null, null, zone_override = ran_zone()) else if(projectiletype) var/obj/item/projectile/P = new projectiletype(startloc) playsound(src, projectilesound, 100, 1) 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 c9a7c9d61bf..1409234b840 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -481,7 +481,7 @@ Difficulty: Very Hard NewTerrainTables = /obj/structure/table/wood NewFlora = list(/obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/fernybush, /obj/structure/flora/ausbushes/leafybush, /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/sunnybush, /obj/structure/flora/tree/palm, /mob/living/carbon/monkey, - /obj/item/weapon/gun/projectile/bow, /obj/item/weapon/storage/backpack/quiver/full) + /obj/item/weapon/gun/ballistic/bow, /obj/item/weapon/storage/backpack/quiver/full) florachance = 20 if("ayy lmao") //Beneficial, turns stuff into alien alloy which is useful to cargo and research. Also repairs atmos. NewTerrainFloors = /turf/open/floor/plating/abductor diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index e2d3afd545a..e2e3e90c384 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -210,7 +210,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy/ranged var/obj/item/weapon/gun/TrueGun = null var/obj/item/weapon/gun/magic/Zapstick - var/obj/item/weapon/gun/projectile/Pewgun + var/obj/item/weapon/gun/ballistic/Pewgun var/obj/item/weapon/gun/energy/Zapgun /mob/living/simple_animal/hostile/mimic/copy/ranged/CopyObject(obj/O, mob/living/creator, destroy_original = 0) @@ -231,7 +231,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca Zapstick = G var/obj/item/ammo_casing/magic/M = Zapstick.ammo_type projectiletype = initial(M.projectile_type) - if(istype(G, /obj/item/weapon/gun/projectile)) + if(istype(G, /obj/item/weapon/gun/ballistic)) Pewgun = G var/obj/item/ammo_box/magazine/M = Pewgun.mag_type casingtype = initial(M.ammo_type) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index 326359bcc15..e935422f151 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -44,7 +44,7 @@ minimum_distance = 5 casingtype = /obj/item/ammo_casing/c45 projectilesound = 'sound/weapons/Gunshot.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol/m1911, + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) @@ -54,5 +54,5 @@ rapid = 1 casingtype = /obj/item/ammo_casing/c46x30mm projectilesound = 'sound/weapons/Gunshot_smg.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/wt550, + loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 088dbf2b0ef..524c7317e95 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -32,7 +32,7 @@ icon_state = "russianranged" icon_living = "russianranged" loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, - /obj/item/weapon/gun/projectile/revolver/nagant) + /obj/item/weapon/gun/ballistic/revolver/nagant) ranged = 1 retreat_distance = 5 minimum_distance = 5 @@ -42,7 +42,7 @@ /mob/living/simple_animal/hostile/russian/ranged/mosin loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, - /obj/item/weapon/gun/projectile/shotgun/boltaction) + /obj/item/weapon/gun/ballistic/shotgun/boltaction) casingtype = /obj/item/ammo_casing/a762 /mob/living/simple_animal/hostile/russian/ranged/trooper @@ -52,7 +52,7 @@ health = 150 casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/trooper, - /obj/item/weapon/gun/projectile/shotgun/lethal) + /obj/item/weapon/gun/ballistic/shotgun/lethal) /mob/living/simple_animal/hostile/russian/ranged/officer name = "Russian Officer" @@ -63,7 +63,7 @@ rapid = 1 casingtype = /obj/item/ammo_casing/c9mm loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/officer, - /obj/item/weapon/gun/projectile/automatic/pistol/APS) + /obj/item/weapon/gun/ballistic/automatic/pistol/APS) /mob/living/simple_animal/hostile/russian/ranged/officer/Aggro() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 2f17fa57523..2d9b3d189ff 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -40,7 +40,7 @@ icon_living = "stickmanranged" casingtype = /obj/item/ammo_casing/c45nostamina projectilesound = 'sound/misc/bang.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol/stickman) + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/stickman) /mob/living/simple_animal/hostile/stickman/dog diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index b6f99faf0cb..f61ea5be1d0 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -128,7 +128,7 @@ projectilesound = 'sound/weapons/Gunshot.ogg' casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper, - /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, + /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, /obj/item/weapon/shield/energy) ///////////////Misc//////////// diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 570ceb1e4a6..962bd465dd2 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -339,12 +339,13 @@ joined_player_list += character.ckey if(config.allow_latejoin_antagonists && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais. - switch(SSshuttle.emergency.mode) - if(SHUTTLE_RECALL, SHUTTLE_IDLE) - ticker.mode.make_antag_chance(humanc) - if(SHUTTLE_CALL) - if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) + if(SSshuttle.emergency) + switch(SSshuttle.emergency.mode) + if(SHUTTLE_RECALL, SHUTTLE_IDLE) ticker.mode.make_antag_chance(humanc) + if(SHUTTLE_CALL) + if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) + ticker.mode.make_antag_chance(humanc) qdel(src) /mob/new_player/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank) @@ -380,12 +381,13 @@ var/dat = "
Round Duration: [round(hours)]h [round(mins)]m
" - switch(SSshuttle.emergency.mode) - if(SHUTTLE_ESCAPE) - dat += "
The station has been evacuated.

" - if(SHUTTLE_CALL) - if(!SSshuttle.canRecall()) - dat += "
The station is currently undergoing evacuation procedures.

" + if(SSshuttle.emergency) + switch(SSshuttle.emergency.mode) + if(SHUTTLE_ESCAPE) + dat += "
The station has been evacuated.

" + if(SHUTTLE_CALL) + if(!SSshuttle.canRecall()) + dat += "
The station is currently undergoing evacuation procedures.

" var/available_job_count = 0 for(var/datum/job/job in SSjob.occupations) diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm index c7a1f0f143d..b21119d52b4 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stealth.dm @@ -18,9 +18,9 @@ Contents: U << "You don't have enough power to enable Stealth!" return s_active=!s_active - animate(U, alpha = 0,time = 15) + animate(U, alpha = 50,time = 15) U.visible_message("[U.name] vanishes into thin air!", \ - "You are now invisible to normal detection.") + "You are now mostly invisible to normal detection.") return diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 675f404282b..03d3033c30a 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -33,7 +33,8 @@ icon_state = "[initial(icon_state)][BB ? "-live" : ""]" desc = "[initial(desc)][BB ? "" : " This one is spent"]" -/obj/item/ammo_casing/proc/newshot() //For energy weapons, shotgun shells and wands (!). +//proc to magically refill a casing with a new projectile +/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!). if(!BB) BB = new projectile_type(src) @@ -57,119 +58,3 @@ user << "You fail to collect anything!" else return ..() - -//Boxes of ammo -/obj/item/ammo_box - name = "ammo box (null_reference_exception)" - desc = "A box of ammo." - icon_state = "357" - icon = 'icons/obj/ammo.dmi' - flags = CONDUCT - slot_flags = SLOT_BELT - item_state = "syringe_kit" - materials = list(MAT_METAL=30000) - throwforce = 2 - w_class = 1 - throw_speed = 3 - throw_range = 7 - var/list/stored_ammo = list() - var/ammo_type = /obj/item/ammo_casing - var/max_ammo = 7 - var/multiple_sprites = 0 - var/caliber - var/multiload = 1 - -/obj/item/ammo_box/New() - ..() - for(var/i = 1, i <= max_ammo, i++) - stored_ammo += new ammo_type(src) - update_icon() - -/obj/item/ammo_box/proc/get_round(keep = 0) - if (!stored_ammo.len) - return null - else - var/b = stored_ammo[stored_ammo.len] - stored_ammo -= b - if (keep) - stored_ammo.Insert(1,b) - return b - -/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0) - // Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type. - if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) - return 0 - - if (stored_ammo.len < max_ammo) - stored_ammo += R - R.loc = src - return 1 - - //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo - else if(replace_spent) - for(var/obj/item/ammo_casing/AC in stored_ammo) - if(!AC.BB)//found a spent ammo - stored_ammo -= AC - AC.loc = get_turf(src.loc) - - stored_ammo += R - R.loc = src - return 1 - - return 0 - -/obj/item/ammo_box/proc/can_load(mob/user) - return 1 - -/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = 0, replace_spent = 0) - 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) - var/did_load = give_round(AC, replace_spent) - if(did_load) - AM.stored_ammo -= AC - num_loaded++ - if(!did_load || !multiload) - break - if(istype(A, /obj/item/ammo_casing)) - var/obj/item/ammo_casing/AC = A - if(give_round(AC, replace_spent)) - user.drop_item() - AC.loc = src - num_loaded++ - - if(num_loaded) - if(!silent) - user << "You load [num_loaded] shell\s into \the [src]!" - A.update_icon() - update_icon() - - return num_loaded - -/obj/item/ammo_box/attack_self(mob/user) - var/obj/item/ammo_casing/A = get_round() - if(A) - user.put_in_hands(A) - user << "You remove a round from \the [src]!" - update_icon() - -/obj/item/ammo_box/update_icon() - switch(multiple_sprites) - if(1) - icon_state = "[initial(icon_state)]-[stored_ammo.len]" - if(2) - icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" - desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" - -//Behavior for magazines -/obj/item/ammo_box/magazine/proc/ammo_count() - return stored_ammo.len - -/obj/item/ammo_box/magazine/proc/empty_magazine() - var/turf_mag = get_turf(src) - for(var/obj/item/ammo in stored_ammo) - ammo.forceMove(turf_mag) - stored_ammo -= ammo \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index f09407cef92..36f4122ac2c 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -304,108 +304,3 @@ reagents.add_reagent("mutetoxin", 6) //;HELP OPS IN MAINT reagents.add_reagent("coniine", 6) reagents.add_reagent("sodium_thiopental", 6) - -// Caseless Ammunition - -/obj/item/ammo_casing/caseless - desc = "A caseless bullet casing." - firing_effect_type = null - - -/obj/item/ammo_casing/caseless/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet) - if (..()) - loc = null - return 1 - else - return 0 - -/obj/item/ammo_casing/caseless/update_icon() - ..() - icon_state = "[initial(icon_state)]" - -/obj/item/ammo_casing/caseless/a75 - desc = "A .75 bullet casing." - caliber = "75" - icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/bullet/gyro - -/obj/item/ammo_casing/caseless/magspear - name = "magnetic spear" - desc = "A reusable spear that is typically loaded into kinetic spearguns." - projectile_type = /obj/item/projectile/bullet/reusable/magspear - caliber = "speargun" - icon_state = "magspear" - throwforce = 15 //still deadly when thrown - throw_speed = 3 - - -/obj/item/ammo_casing/caseless/laser - name = "laser casing" - desc = "You shouldn't be seeing this." - caliber = "laser" - icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/beam - fire_sound = 'sound/weapons/Laser.ogg' - firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy - -/obj/item/ammo_casing/caseless/laser/gatling - projectile_type = /obj/item/projectile/beam/weak - variance = 0.8 - click_cooldown_override = 1 - - -/obj/item/ammo_casing/caseless/foam_dart - name = "foam dart" - desc = "Its nerf or nothing! Ages 8 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart - caliber = "foam_force" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foamdart" - var/modified = 0 - -/obj/item/ammo_casing/caseless/foam_dart/update_icon() - ..() - if (modified) - icon_state = "foamdart_empty" - desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." - if(BB) - BB.icon_state = "foamdart_empty" - else - icon_state = initial(icon_state) - desc = "Its nerf or nothing! Ages 8 and up." - if(BB) - BB.icon_state = initial(BB.icon_state) - - -/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB - if (istype(A, /obj/item/weapon/screwdriver) && !modified) - modified = 1 - FD.damage_type = BRUTE - user << "You pop the safety cap off of [src]." - update_icon() - else if ((istype(A, /obj/item/weapon/pen)) && modified && !FD.pen) - if(!user.unEquip(A)) - return - A.loc = FD - FD.pen = A - FD.damage = 5 - FD.nodamage = 0 - user << "You insert [A] into [src]." - else - return ..() - -/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB - if(FD.pen) - FD.damage = initial(FD.damage) - FD.nodamage = initial(FD.nodamage) - user.put_in_hands(FD.pen) - user << "You remove [FD.pen] from [src]." - FD.pen = null - -/obj/item/ammo_casing/caseless/foam_dart/riot - name = "riot foam dart" - desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot - icon_state = "foamdart_riot" diff --git a/code/modules/projectiles/ammunition/caseless.dm b/code/modules/projectiles/ammunition/caseless.dm new file mode 100644 index 00000000000..f1a392e37c1 --- /dev/null +++ b/code/modules/projectiles/ammunition/caseless.dm @@ -0,0 +1,120 @@ + +// Caseless Ammunition + +/obj/item/ammo_casing/caseless + desc = "A caseless bullet casing." + firing_effect_type = null + +/obj/item/ammo_casing/caseless/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread) + if (..()) //successfully firing + loc = null + return 1 + else + return 0 + +/obj/item/ammo_casing/caseless/update_icon() + ..() + icon_state = "[initial(icon_state)]" + +/obj/item/ammo_casing/caseless/a75 + desc = "A .75 bullet casing." + caliber = "75" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/bullet/gyro + +/obj/item/ammo_casing/caseless/magspear + name = "magnetic spear" + desc = "A reusable spear that is typically loaded into kinetic spearguns." + projectile_type = /obj/item/projectile/bullet/reusable/magspear + caliber = "speargun" + icon_state = "magspear" + throwforce = 15 //still deadly when thrown + throw_speed = 3 + + +/obj/item/ammo_casing/caseless/laser + name = "laser casing" + desc = "You shouldn't be seeing this." + caliber = "laser" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/beam + fire_sound = 'sound/weapons/Laser.ogg' + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy + +/obj/item/ammo_casing/caseless/laser/gatling + projectile_type = /obj/item/projectile/beam/weak + variance = 0.8 + click_cooldown_override = 1 + + +/obj/item/ammo_casing/caseless/foam_dart + name = "foam dart" + desc = "Its nerf or nothing! Ages 8 and up." + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart + caliber = "foam_force" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foamdart" + var/modified = 0 + +/obj/item/ammo_casing/caseless/foam_dart/update_icon() + ..() + if (modified) + icon_state = "foamdart_empty" + desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." + if(BB) + BB.icon_state = "foamdart_empty" + else + icon_state = initial(icon_state) + desc = "Its nerf or nothing! Ages 8 and up." + if(BB) + BB.icon_state = initial(BB.icon_state) + + +/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params) + var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + if (istype(A, /obj/item/weapon/screwdriver) && !modified) + modified = 1 + FD.modified = 1 + FD.damage_type = BRUTE + user << "You pop the safety cap off of [src]." + update_icon() + else if (istype(A, /obj/item/weapon/pen)) + if(modified) + if(!FD.pen) + if(!user.unEquip(A)) + return + A.forceMove(FD) + FD.pen = A + FD.damage = 5 + FD.nodamage = 0 + user << "You insert [A] into [src]." + else + user << "There's already something in [src]." + else + user << "The safety cap prevents you from inserting [A] into [src]." + else + return ..() + +/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user) + var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + if(FD.pen) + FD.damage = initial(FD.damage) + FD.nodamage = initial(FD.nodamage) + user.put_in_hands(FD.pen) + user << "You remove [FD.pen] from [src]." + FD.pen = null + +/obj/item/ammo_casing/caseless/foam_dart/riot + name = "riot foam dart" + desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot + icon_state = "foamdart_riot" + +/obj/item/ammo_casing/caseless/arrow + name = "arrow" + desc = "Stab, stab, stab." + icon_state = "arrow" + force = 10 + sharpness = IS_SHARP + projectile_type = /obj/item/projectile/bullet/reusable/arrow + caliber = "arrow" diff --git a/code/modules/projectiles/ammunition/special.dm b/code/modules/projectiles/ammunition/special.dm index 181333af1a1..15e826a01a4 100644 --- a/code/modules/projectiles/ammunition/special.dm +++ b/code/modules/projectiles/ammunition/special.dm @@ -41,9 +41,28 @@ /obj/item/ammo_casing/syringegun name = "syringe gun spring" desc = "A high-power spring that throws syringes." - projectile_type = null + projectile_type = /obj/item/projectile/bullet/dart/syringe firing_effect_type = null +/obj/item/ammo_casing/syringegun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") + if(!BB) + return + if(istype(loc, /obj/item/weapon/gun/syringe)) + var/obj/item/weapon/gun/syringe/SG = loc + if(!SG.syringes.len) + return + + var/obj/item/weapon/reagent_containers/syringe/S = SG.syringes[1] + + S.reagents.trans_to(BB, S.reagents.total_volume) + BB.name = S.name + var/obj/item/projectile/bullet/dart/D = BB + D.piercing = S.proj_piercing + SG.syringes.Remove(S) + qdel(S) + ..() + + /obj/item/ammo_casing/energy/c3dbullet projectile_type = /obj/item/projectile/bullet/midbullet3 select_name = "spraydown" diff --git a/code/modules/projectiles/box_magazine.dm b/code/modules/projectiles/box_magazine.dm new file mode 100644 index 00000000000..ca690902d2b --- /dev/null +++ b/code/modules/projectiles/box_magazine.dm @@ -0,0 +1,117 @@ +//Boxes of ammo +/obj/item/ammo_box + name = "ammo box (null_reference_exception)" + desc = "A box of ammo." + icon_state = "357" + icon = 'icons/obj/ammo.dmi' + flags = CONDUCT + slot_flags = SLOT_BELT + item_state = "syringe_kit" + materials = list(MAT_METAL=30000) + throwforce = 2 + w_class = 1 + throw_speed = 3 + throw_range = 7 + var/list/stored_ammo = list() + var/ammo_type = /obj/item/ammo_casing + var/max_ammo = 7 + var/multiple_sprites = 0 + var/caliber + var/multiload = 1 + var/start_empty = 0 + +/obj/item/ammo_box/New() + ..() + if(!start_empty) + for(var/i = 1, i <= max_ammo, i++) + stored_ammo += new ammo_type(src) + update_icon() + +/obj/item/ammo_box/proc/get_round(keep = 0) + if (!stored_ammo.len) + return null + else + var/b = stored_ammo[stored_ammo.len] + stored_ammo -= b + if (keep) + stored_ammo.Insert(1,b) + return b + +/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0) + // Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type. + if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) + return 0 + + if (stored_ammo.len < max_ammo) + stored_ammo += R + R.forceMove(src) + return 1 + + //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo + else if(replace_spent) + for(var/obj/item/ammo_casing/AC in stored_ammo) + if(!AC.BB)//found a spent ammo + stored_ammo -= AC + AC.forceMove(get_turf(src.loc)) + + stored_ammo += R + R.forceMove(src) + return 1 + + return 0 + +/obj/item/ammo_box/proc/can_load(mob/user) + return 1 + +/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = 0, replace_spent = 0) + 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) + var/did_load = give_round(AC, replace_spent) + if(did_load) + AM.stored_ammo -= AC + num_loaded++ + if(!did_load || !multiload) + break + if(istype(A, /obj/item/ammo_casing)) + var/obj/item/ammo_casing/AC = A + if(give_round(AC, replace_spent)) + user.drop_item() + AC.forceMove(src) + num_loaded++ + + if(num_loaded) + if(!silent) + user << "You load [num_loaded] shell\s into \the [src]!" + A.update_icon() + update_icon() + + return num_loaded + +/obj/item/ammo_box/attack_self(mob/user) + var/obj/item/ammo_casing/A = get_round() + if(A) + user.put_in_hands(A) + user << "You remove a round from \the [src]!" + update_icon() + +/obj/item/ammo_box/update_icon() + switch(multiple_sprites) + if(1) + icon_state = "[initial(icon_state)]-[stored_ammo.len]" + if(2) + icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" + desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" + +//Behavior for magazines +/obj/item/ammo_box/magazine/proc/ammo_count() + return stored_ammo.len + +/obj/item/ammo_box/magazine/proc/empty_magazine() + var/turf_mag = get_turf(src) + for(var/obj/item/ammo in stored_ammo) + ammo.forceMove(turf_mag) + stored_ammo -= ammo \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm similarity index 92% rename from code/modules/projectiles/ammunition/boxes.dm rename to code/modules/projectiles/boxes_magazines/ammo_boxes.dm index ba7b85f1fbd..50769b926e2 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -1,69 +1,69 @@ -/obj/item/ammo_box/a357 - name = "speed loader (.357)" - desc = "Designed to quickly reload revolvers." - icon_state = "357" - ammo_type = /obj/item/ammo_casing/a357 - max_ammo = 7 - multiple_sprites = 1 - -/obj/item/ammo_box/c38 - name = "speed loader (.38)" - desc = "Designed to quickly reload revolvers." - icon_state = "38" - ammo_type = /obj/item/ammo_casing/c38 - max_ammo = 6 - multiple_sprites = 1 - -/obj/item/ammo_box/c9mm - name = "ammo box (9mm)" - icon_state = "9mmbox" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c9mm - max_ammo = 30 - -/obj/item/ammo_box/c10mm - name = "ammo box (10mm)" - icon_state = "10mmbox" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c10mm - max_ammo = 20 - -/obj/item/ammo_box/c45 - name = "ammo box (.45)" - icon_state = "45box" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c45 - max_ammo = 20 - -/obj/item/ammo_box/a40mm - name = "ammo box (40mm grenades)" - icon_state = "40mm" - ammo_type = /obj/item/ammo_casing/a40mm - max_ammo = 4 - multiple_sprites = 1 - -/obj/item/ammo_box/a762 - name = "stripper clip (7.62mm)" - desc = "A stripper clip." - icon_state = "762" - ammo_type = /obj/item/ammo_casing/a762 - max_ammo = 5 - multiple_sprites = 1 - -/obj/item/ammo_box/n762 - name = "ammo box (7.62x38mmR)" - icon_state = "10mmbox" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/n762 - max_ammo = 14 - -/obj/item/ammo_box/foambox - name = "ammo box (Foam Darts)" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foambox" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - max_ammo = 40 - -/obj/item/ammo_box/foambox/riot - icon_state = "foambox_riot" +/obj/item/ammo_box/a357 + name = "speed loader (.357)" + desc = "Designed to quickly reload revolvers." + icon_state = "357" + ammo_type = /obj/item/ammo_casing/a357 + max_ammo = 7 + multiple_sprites = 1 + +/obj/item/ammo_box/c38 + name = "speed loader (.38)" + desc = "Designed to quickly reload revolvers." + icon_state = "38" + ammo_type = /obj/item/ammo_casing/c38 + max_ammo = 6 + multiple_sprites = 1 + +/obj/item/ammo_box/c9mm + name = "ammo box (9mm)" + icon_state = "9mmbox" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c9mm + max_ammo = 30 + +/obj/item/ammo_box/c10mm + name = "ammo box (10mm)" + icon_state = "10mmbox" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c10mm + max_ammo = 20 + +/obj/item/ammo_box/c45 + name = "ammo box (.45)" + icon_state = "45box" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c45 + max_ammo = 20 + +/obj/item/ammo_box/a40mm + name = "ammo box (40mm grenades)" + icon_state = "40mm" + ammo_type = /obj/item/ammo_casing/a40mm + max_ammo = 4 + multiple_sprites = 1 + +/obj/item/ammo_box/a762 + name = "stripper clip (7.62mm)" + desc = "A stripper clip." + icon_state = "762" + ammo_type = /obj/item/ammo_casing/a762 + max_ammo = 5 + multiple_sprites = 1 + +/obj/item/ammo_box/n762 + name = "ammo box (7.62x38mmR)" + icon_state = "10mmbox" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/n762 + max_ammo = 14 + +/obj/item/ammo_box/foambox + name = "ammo box (Foam Darts)" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foambox" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + max_ammo = 40 + +/obj/item/ammo_box/foambox/riot + icon_state = "foambox_riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/boxes_magazines/external_mag.dm similarity index 63% rename from code/modules/projectiles/ammunition/magazines.dm rename to code/modules/projectiles/boxes_magazines/external_mag.dm index 8d4def459a4..fb0bd91d7b2 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/boxes_magazines/external_mag.dm @@ -1,502 +1,326 @@ -////////////////INTERNAL MAGAZINES////////////////////// - -/obj/item/ammo_box/magazine/internal - desc = "Oh god, this shouldn't be here" - -//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in -/obj/item/ammo_box/magazine/internal/give_round(obj/item/ammo_casing/R) - return ..(R,1) - - - -// Revolver internal mags -/obj/item/ammo_box/magazine/internal/cylinder - name = "revolver cylinder" - ammo_type = /obj/item/ammo_casing/a357 - caliber = "357" - max_ammo = 7 - -/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in stored_ammo) - if(bullet && (bullet.BB || countempties)) - boolets++ - - return boolets - -/obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = 0) - rotate() - - var/b = stored_ammo[1] - if(!keep) - stored_ammo[1] = null - - return b - -/obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() - var/b = stored_ammo[1] - stored_ammo.Cut(1,2) - stored_ammo.Insert(0, b) - -/obj/item/ammo_box/magazine/internal/cylinder/proc/spin() - for(var/i in 1 to rand(0, max_ammo*2)) - rotate() - - -/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0) - if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) - return 0 - - for(var/i in 1 to stored_ammo.len) - var/obj/item/ammo_casing/bullet = stored_ammo[i] - if(!bullet || !bullet.BB) // found a spent ammo - stored_ammo[i] = R - R.loc = src - - if(bullet) - bullet.loc = get_turf(src.loc) - return 1 - - return 0 - -/obj/item/ammo_box/magazine/internal/cylinder/rev38 - name = "detective revolver cylinder" - ammo_type = /obj/item/ammo_casing/c38 - caliber = "38" - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/cylinder/grenademulti - name = "grenade launcher internal magazine" - ammo_type = /obj/item/ammo_casing/a40mm - caliber = "40mm" - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/cylinder/rev762 - name = "nagant revolver cylinder" - ammo_type = /obj/item/ammo_casing/n762 - caliber = "n762" - max_ammo = 7 - -// Shotgun internal mags -/obj/item/ammo_box/magazine/internal/shot - name = "shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/beanbag - caliber = "shotgun" - max_ammo = 4 - multiload = 0 - -/obj/item/ammo_box/magazine/internal/shot/ammo_count(countempties = 1) - if (!countempties) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in stored_ammo) - if(bullet.BB) - boolets++ - return boolets - else - return ..() - - -/obj/item/ammo_box/magazine/internal/shot/tube - name = "dual feed shotgun internal tube" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 4 - -/obj/item/ammo_box/magazine/internal/shot/lethal - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - -/obj/item/ammo_box/magazine/internal/shot/com - name = "combat shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/shot/dual - name = "double-barrel shotgun internal magazine" - max_ammo = 2 - -/obj/item/ammo_box/magazine/internal/shot/improvised - name = "improvised shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/improvised - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/shot/riot - name = "riot shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 6 - - - - -/obj/item/ammo_box/magazine/internal/grenadelauncher - name = "grenade launcher internal magazine" - ammo_type = /obj/item/ammo_casing/a40mm - caliber = "40mm" - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/speargun - name = "speargun internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/magspear - caliber = "speargun" - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/rus357 - name = "russian revolver cylinder" - ammo_type = /obj/item/ammo_casing/a357 - caliber = "357" - max_ammo = 6 - multiload = 0 - -/obj/item/ammo_box/magazine/internal/rus357/New() - stored_ammo += new ammo_type(src) - -/obj/item/ammo_box/magazine/internal/boltaction - name = "bolt action rifle internal magazine" - desc = "Oh god, this shouldn't be here" - ammo_type = /obj/item/ammo_casing/a762 - caliber = "a762" - max_ammo = 5 - multiload = 1 - -/obj/item/ammo_box/magazine/internal/boltaction/enchanted - max_ammo =1 - ammo_type = /obj/item/ammo_casing/a762/enchanted - - -/obj/item/ammo_box/magazine/internal/shot/toy - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - caliber = "foam_force" - max_ammo = 4 - -/obj/item/ammo_box/magazine/internal/shot/toy/crossbow - max_ammo = 5 - -/obj/item/ammo_box/magazine/internal/minigun - name = "gatling gun fusion core" - ammo_type = /obj/item/ammo_casing/caseless/laser/gatling - caliber = "gatling" - max_ammo = 5000 - - - -///////////EXTERNAL MAGAZINES//////////////// - -/obj/item/ammo_box/magazine/m10mm - name = "pistol magazine (10mm)" - desc = "A gun magazine." - icon_state = "9x19p" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c10mm - caliber = "10mm" - max_ammo = 8 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/m45 - name = "handgun magazine (.45)" - icon_state = "45-8" - ammo_type = /obj/item/ammo_casing/c45 - caliber = ".45" - max_ammo = 8 - -/obj/item/ammo_box/magazine/m45/update_icon() - ..() - icon_state = "45-[ammo_count() ? "8" : "0"]" - -/obj/item/ammo_box/magazine/wt550m9 - name = "wt550 magazine (4.6x30mm)" - icon_state = "46x30mmt-20" - ammo_type = /obj/item/ammo_casing/c46x30mm - caliber = "4.6x30mm" - max_ammo = 20 - -/obj/item/ammo_box/magazine/wt550m9/update_icon() - ..() - icon_state = "46x30mmt-[round(ammo_count(),4)]" - -/obj/item/ammo_box/magazine/wt550m9/wtap - name = "wt550 magazine (Armour Piercing 4.6x30mm)" - ammo_type = /obj/item/ammo_casing/c46x30mmap - -/obj/item/ammo_box/magazine/wt550m9/wttx - name = "wt550 magazine (Toxin Tipped 4.6x30mm)" - ammo_type = /obj/item/ammo_casing/c46x30mmtox - -/obj/item/ammo_box/magazine/wt550m9/wtic - name = "wt550 magazine (Incindiary 4.6x30mm)" - ammo_type = /obj/item/ammo_casing/c46x30mminc - -/obj/item/ammo_box/magazine/uzim9mm - name = "uzi magazine (9mm)" - icon_state = "uzi9mm-32" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 32 - -/obj/item/ammo_box/magazine/uzim9mm/update_icon() - ..() - icon_state = "uzi9mm-[round(ammo_count(),4)]" - -/obj/item/ammo_box/magazine/smgm9mm - name = "SMG magazine (9mm)" - icon_state = "smg9mm-42" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 21 - -/obj/item/ammo_box/magazine/smgm9mm/update_icon() - ..() - icon_state = "smg9mm-[ammo_count() ? "42" : "0"]" - -/obj/item/ammo_box/magazine/smgm9mm/ap - name = "SMG magazine (Armour Piercing 9mm)" - ammo_type = /obj/item/ammo_casing/c9mmap - -/obj/item/ammo_box/magazine/smgm9mm/toxin - name = "SMG magazine (Toxin Tipped 9mm)" - ammo_type = /obj/item/ammo_casing/c9mmtox - -/obj/item/ammo_box/magazine/smgm9mm/fire - name = "SMG Magazine (Incindiary 9mm)" - ammo_type = /obj/item/ammo_casing/c9mminc - -/obj/item/ammo_box/magazine/pistolm9mm - name = "pistol magazine (9mm)" - icon_state = "9x19p-8" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 15 - -/obj/item/ammo_box/magazine/pistolm9mm/update_icon() - ..() - icon_state = "9x19p-[ammo_count() ? "8" : "0"]" - -/obj/item/ammo_box/magazine/smgm45 - name = "SMG magazine (.45)" - icon_state = "c20r45-24" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c45nostamina - caliber = ".45" - max_ammo = 24 - -/obj/item/ammo_box/magazine/smgm45/update_icon() - ..() - icon_state = "c20r45-[round(ammo_count(),2)]" - -obj/item/ammo_box/magazine/tommygunm45 - name = "drum magazine (.45)" - icon_state = "drum45" - ammo_type = /obj/item/ammo_casing/c45 - caliber = ".45" - max_ammo = 50 - -/obj/item/ammo_box/magazine/m50 - name = "handgun magazine (.50ae)" - icon_state = "50ae" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/a50 - caliber = ".50" - max_ammo = 7 - multiple_sprites = 1 - -/obj/item/ammo_box/magazine/m75 - name = "specialized magazine (.75)" - icon_state = "75" - ammo_type = /obj/item/ammo_casing/caseless/a75 - caliber = "75" - multiple_sprites = 2 - max_ammo = 8 - -/obj/item/ammo_box/magazine/m556 - name = "toploader magazine (5.56mm)" - icon_state = "5.56m" - origin_tech = "combat=5;syndicate=1" - ammo_type = /obj/item/ammo_casing/a556 - caliber = "a556" - max_ammo = 30 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/m12g - name = "shotgun magazine (12g taser slugs)" - desc = "A drum magazine." - icon_state = "m12gs" - ammo_type = /obj/item/ammo_casing/shotgun/stunslug - origin_tech = "combat=3;syndicate=1" - caliber = "shotgun" - max_ammo = 8 - -/obj/item/ammo_box/magazine/m12g/update_icon() - ..() - icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]" - -/obj/item/ammo_box/magazine/m12g/buckshot - name = "shotgun magazine (12g buckshot slugs)" - icon_state = "m12gb" - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - -/obj/item/ammo_box/magazine/m12g/slug - name = "shotgun magazine (12g slugs)" - icon_state = "m12gb" - ammo_type = /obj/item/ammo_casing/shotgun - -/obj/item/ammo_box/magazine/m12g/dragon - name = "shotgun magazine (12g dragon's breath)" - icon_state = "m12gf" - ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath - -/obj/item/ammo_box/magazine/m12g/bioterror - name = "shotgun magazine (12g bioterror)" - icon_state = "m12gt" - ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror - -/obj/item/ammo_box/magazine/m12g/breach - name = "shotgun magazine (12g breacher slugs)" - icon_state = "m12gbc" - ammo_type = /obj/item/ammo_casing/shotgun/breaching - - -//// SNIPER MAGAZINES - -/obj/item/ammo_box/magazine/sniper_rounds - name = "sniper rounds (.50)" - icon_state = ".50mag" - origin_tech = "combat=6;syndicate=2" - ammo_type = /obj/item/ammo_casing/point50 - max_ammo = 6 - caliber = ".50" - -/obj/item/ammo_box/magazine/sniper_rounds/update_icon() - if(ammo_count()) - icon_state = "[initial(icon_state)]-ammo" - else - icon_state = "[initial(icon_state)]" - -/obj/item/ammo_box/magazine/sniper_rounds/soporific - name = "sniper rounds (Zzzzz)" - desc = "Soporific sniper rounds, designed for happy days and dead quiet nights..." - icon_state = "soporific" - origin_tech = "combat=6;syndicate=3" - ammo_type = /obj/item/ammo_casing/soporific - max_ammo = 3 - caliber = ".50" - -/obj/item/ammo_box/magazine/sniper_rounds/haemorrhage - name = "sniper rounds (Bleed)" - desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain" - icon_state = "haemorrhage" - ammo_type = /obj/item/ammo_casing/haemorrhage - max_ammo = 5 - caliber = ".50" - -/obj/item/ammo_box/magazine/sniper_rounds/penetrator - name = "sniper rounds (penetrator)" - desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it." - ammo_type = /obj/item/ammo_casing/penetrator - origin_tech = "combat=6;syndicate=3" - max_ammo = 5 - - -//// SAW MAGAZINES - -/obj/item/ammo_box/magazine/mm556x45 - name = "box magazine (5.56x45mm)" - icon_state = "a762-50" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/mm556x45 - caliber = "mm55645" - max_ammo = 50 - -/obj/item/ammo_box/magazine/mm556x45/bleeding - name = "box magazine (Bleeding 5.56x45mm)" - origin_tech = "combat=3" - ammo_type = /obj/item/ammo_casing/mm556x45/bleeding - -/obj/item/ammo_box/magazine/mm556x45/hollow - name = "box magazine (Hollow-Point 5.56x45mm)" - origin_tech = "combat=3" - ammo_type = /obj/item/ammo_casing/mm556x45/hollow - -/obj/item/ammo_box/magazine/mm556x45/ap - name = "box magazine (Armor Penetrating 5.56x45mm)" - origin_tech = "combat=4" - ammo_type = /obj/item/ammo_casing/mm556x45/ap - -/obj/item/ammo_box/magazine/mm556x45/incen - name = "box magazine (Incendiary 5.56x45mm)" - origin_tech = "combat=4" - ammo_type = /obj/item/ammo_casing/mm556x45/incen - -/obj/item/ammo_box/magazine/mm556x45/update_icon() - ..() - icon_state = "a762-[round(ammo_count(),10)]" - - - - -////TOY GUN MAGAZINES - -/obj/item/ammo_box/magazine/toy - name = "foam force META magazine" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - caliber = "foam_force" - -/obj/item/ammo_box/magazine/toy/smg - name = "foam force SMG magazine" - icon_state = "smg9mm-42" - max_ammo = 20 - -/obj/item/ammo_box/magazine/toy/smg/update_icon() - ..() - if(ammo_count()) - icon_state = "smg9mm-42" - else - icon_state = "smg9mm-0" - -/obj/item/ammo_box/magazine/toy/smg/riot - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - -/obj/item/ammo_box/magazine/toy/pistol - name = "foam force pistol magazine" - icon_state = "9x19p" - max_ammo = 8 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/toy/pistol/riot - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - -/obj/item/ammo_box/magazine/toy/smgm45 - name = "donksoft SMG magazine" - caliber = "foam_force" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - max_ammo = 20 - -/obj/item/ammo_box/magazine/toy/smgm45/update_icon() - ..() - icon_state = "c20r45-[round(ammo_count(),2)]" - -/obj/item/ammo_box/magazine/toy/m762 - name = "donksoft box magazine" - caliber = "foam_force" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - max_ammo = 50 - -/obj/item/ammo_box/magazine/toy/m762/update_icon() - ..() - icon_state = "a762-[round(ammo_count(),10)]" - - - - -//// RECHARGEABLE MAGAZINES - -/obj/item/ammo_box/magazine/recharge - name = "power pack" - desc = "A rechargeable, detachable battery that serves as a magazine for laser rifles." - icon_state = "oldrifle-20" - ammo_type = /obj/item/ammo_casing/caseless/laser - caliber = "laser" - max_ammo = 20 - -/obj/item/ammo_box/magazine/recharge/update_icon() - desc = "[initial(desc)] It has [stored_ammo.len] shot\s left." - icon_state = "oldrifle-[round(ammo_count(),4)]" - -/obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets" + + + +///////////EXTERNAL MAGAZINES//////////////// + +/obj/item/ammo_box/magazine/m10mm + name = "pistol magazine (10mm)" + desc = "A gun magazine." + icon_state = "9x19p" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c10mm + caliber = "10mm" + max_ammo = 8 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/m45 + name = "handgun magazine (.45)" + icon_state = "45-8" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 8 + +/obj/item/ammo_box/magazine/m45/update_icon() + ..() + icon_state = "45-[ammo_count() ? "8" : "0"]" + +/obj/item/ammo_box/magazine/wt550m9 + name = "wt550 magazine (4.6x30mm)" + icon_state = "46x30mmt-20" + ammo_type = /obj/item/ammo_casing/c46x30mm + caliber = "4.6x30mm" + max_ammo = 20 + +/obj/item/ammo_box/magazine/wt550m9/update_icon() + ..() + icon_state = "46x30mmt-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/wt550m9/wtap + name = "wt550 magazine (Armour Piercing 4.6x30mm)" + ammo_type = /obj/item/ammo_casing/c46x30mmap + +/obj/item/ammo_box/magazine/wt550m9/wttx + name = "wt550 magazine (Toxin Tipped 4.6x30mm)" + ammo_type = /obj/item/ammo_casing/c46x30mmtox + +/obj/item/ammo_box/magazine/wt550m9/wtic + name = "wt550 magazine (Incindiary 4.6x30mm)" + ammo_type = /obj/item/ammo_casing/c46x30mminc + +/obj/item/ammo_box/magazine/uzim9mm + name = "uzi magazine (9mm)" + icon_state = "uzi9mm-32" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 32 + +/obj/item/ammo_box/magazine/uzim9mm/update_icon() + ..() + icon_state = "uzi9mm-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/smgm9mm + name = "SMG magazine (9mm)" + icon_state = "smg9mm-42" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 21 + +/obj/item/ammo_box/magazine/smgm9mm/update_icon() + ..() + icon_state = "smg9mm-[ammo_count() ? "42" : "0"]" + +/obj/item/ammo_box/magazine/smgm9mm/ap + name = "SMG magazine (Armour Piercing 9mm)" + ammo_type = /obj/item/ammo_casing/c9mmap + +/obj/item/ammo_box/magazine/smgm9mm/toxin + name = "SMG magazine (Toxin Tipped 9mm)" + ammo_type = /obj/item/ammo_casing/c9mmtox + +/obj/item/ammo_box/magazine/smgm9mm/fire + name = "SMG Magazine (Incindiary 9mm)" + ammo_type = /obj/item/ammo_casing/c9mminc + +/obj/item/ammo_box/magazine/pistolm9mm + name = "pistol magazine (9mm)" + icon_state = "9x19p-8" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 15 + +/obj/item/ammo_box/magazine/pistolm9mm/update_icon() + ..() + icon_state = "9x19p-[ammo_count() ? "8" : "0"]" + +/obj/item/ammo_box/magazine/smgm45 + name = "SMG magazine (.45)" + icon_state = "c20r45-24" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c45nostamina + caliber = ".45" + max_ammo = 24 + +/obj/item/ammo_box/magazine/smgm45/update_icon() + ..() + icon_state = "c20r45-[round(ammo_count(),2)]" + +obj/item/ammo_box/magazine/tommygunm45 + name = "drum magazine (.45)" + icon_state = "drum45" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 50 + +/obj/item/ammo_box/magazine/m50 + name = "handgun magazine (.50ae)" + icon_state = "50ae" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/a50 + caliber = ".50" + max_ammo = 7 + multiple_sprites = 1 + +/obj/item/ammo_box/magazine/m75 + name = "specialized magazine (.75)" + icon_state = "75" + ammo_type = /obj/item/ammo_casing/caseless/a75 + caliber = "75" + multiple_sprites = 2 + max_ammo = 8 + +/obj/item/ammo_box/magazine/m556 + name = "toploader magazine (5.56mm)" + icon_state = "5.56m" + origin_tech = "combat=5;syndicate=1" + ammo_type = /obj/item/ammo_casing/a556 + caliber = "a556" + max_ammo = 30 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/m12g + name = "shotgun magazine (12g taser slugs)" + desc = "A drum magazine." + icon_state = "m12gs" + ammo_type = /obj/item/ammo_casing/shotgun/stunslug + origin_tech = "combat=3;syndicate=1" + caliber = "shotgun" + max_ammo = 8 + +/obj/item/ammo_box/magazine/m12g/update_icon() + ..() + icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]" + +/obj/item/ammo_box/magazine/m12g/buckshot + name = "shotgun magazine (12g buckshot slugs)" + icon_state = "m12gb" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/ammo_box/magazine/m12g/slug + name = "shotgun magazine (12g slugs)" + icon_state = "m12gb" + ammo_type = /obj/item/ammo_casing/shotgun + +/obj/item/ammo_box/magazine/m12g/dragon + name = "shotgun magazine (12g dragon's breath)" + icon_state = "m12gf" + ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath + +/obj/item/ammo_box/magazine/m12g/bioterror + name = "shotgun magazine (12g bioterror)" + icon_state = "m12gt" + ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror + +/obj/item/ammo_box/magazine/m12g/breach + name = "shotgun magazine (12g breacher slugs)" + icon_state = "m12gbc" + ammo_type = /obj/item/ammo_casing/shotgun/breaching + + +//// SNIPER MAGAZINES + +/obj/item/ammo_box/magazine/sniper_rounds + name = "sniper rounds (.50)" + icon_state = ".50mag" + origin_tech = "combat=6;syndicate=2" + ammo_type = /obj/item/ammo_casing/point50 + max_ammo = 6 + caliber = ".50" + +/obj/item/ammo_box/magazine/sniper_rounds/update_icon() + if(ammo_count()) + icon_state = "[initial(icon_state)]-ammo" + else + icon_state = "[initial(icon_state)]" + +/obj/item/ammo_box/magazine/sniper_rounds/soporific + name = "sniper rounds (Zzzzz)" + desc = "Soporific sniper rounds, designed for happy days and dead quiet nights..." + icon_state = "soporific" + origin_tech = "combat=6;syndicate=3" + ammo_type = /obj/item/ammo_casing/soporific + max_ammo = 3 + caliber = ".50" + +/obj/item/ammo_box/magazine/sniper_rounds/haemorrhage + name = "sniper rounds (Bleed)" + desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain" + icon_state = "haemorrhage" + ammo_type = /obj/item/ammo_casing/haemorrhage + max_ammo = 5 + caliber = ".50" + +/obj/item/ammo_box/magazine/sniper_rounds/penetrator + name = "sniper rounds (penetrator)" + desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it." + ammo_type = /obj/item/ammo_casing/penetrator + origin_tech = "combat=6;syndicate=3" + max_ammo = 5 + + +//// SAW MAGAZINES + +/obj/item/ammo_box/magazine/mm556x45 + name = "box magazine (5.56x45mm)" + icon_state = "a762-50" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/mm556x45 + caliber = "mm55645" + max_ammo = 50 + +/obj/item/ammo_box/magazine/mm556x45/bleeding + name = "box magazine (Bleeding 5.56x45mm)" + origin_tech = "combat=3" + ammo_type = /obj/item/ammo_casing/mm556x45/bleeding + +/obj/item/ammo_box/magazine/mm556x45/hollow + name = "box magazine (Hollow-Point 5.56x45mm)" + origin_tech = "combat=3" + ammo_type = /obj/item/ammo_casing/mm556x45/hollow + +/obj/item/ammo_box/magazine/mm556x45/ap + name = "box magazine (Armor Penetrating 5.56x45mm)" + origin_tech = "combat=4" + ammo_type = /obj/item/ammo_casing/mm556x45/ap + +/obj/item/ammo_box/magazine/mm556x45/incen + name = "box magazine (Incendiary 5.56x45mm)" + origin_tech = "combat=4" + ammo_type = /obj/item/ammo_casing/mm556x45/incen + +/obj/item/ammo_box/magazine/mm556x45/update_icon() + ..() + icon_state = "a762-[round(ammo_count(),10)]" + + + + +////TOY GUN MAGAZINES + +/obj/item/ammo_box/magazine/toy + name = "foam force META magazine" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + caliber = "foam_force" + +/obj/item/ammo_box/magazine/toy/smg + name = "foam force SMG magazine" + icon_state = "smg9mm-42" + max_ammo = 20 + +/obj/item/ammo_box/magazine/toy/smg/update_icon() + ..() + if(ammo_count()) + icon_state = "smg9mm-42" + else + icon_state = "smg9mm-0" + +/obj/item/ammo_box/magazine/toy/smg/riot + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + +/obj/item/ammo_box/magazine/toy/pistol + name = "foam force pistol magazine" + icon_state = "9x19p" + max_ammo = 8 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/toy/pistol/riot + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + +/obj/item/ammo_box/magazine/toy/smgm45 + name = "donksoft SMG magazine" + caliber = "foam_force" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + max_ammo = 20 + +/obj/item/ammo_box/magazine/toy/smgm45/update_icon() + ..() + icon_state = "c20r45-[round(ammo_count(),2)]" + +/obj/item/ammo_box/magazine/toy/m762 + name = "donksoft box magazine" + caliber = "foam_force" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + max_ammo = 50 + +/obj/item/ammo_box/magazine/toy/m762/update_icon() + ..() + icon_state = "a762-[round(ammo_count(),10)]" + + + + +//// RECHARGEABLE MAGAZINES + +/obj/item/ammo_box/magazine/recharge + name = "power pack" + desc = "A rechargeable, detachable battery that serves as a magazine for laser rifles." + icon_state = "oldrifle-20" + ammo_type = /obj/item/ammo_casing/caseless/laser + caliber = "laser" + max_ammo = 20 + +/obj/item/ammo_box/magazine/recharge/update_icon() + desc = "[initial(desc)] It has [stored_ammo.len] shot\s left." + icon_state = "oldrifle-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets" return \ No newline at end of file diff --git a/code/modules/projectiles/boxes_magazines/internal_mag.dm b/code/modules/projectiles/boxes_magazines/internal_mag.dm new file mode 100644 index 00000000000..88114cac946 --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/internal_mag.dm @@ -0,0 +1,183 @@ +////////////////INTERNAL MAGAZINES////////////////////// + +/obj/item/ammo_box/magazine/internal + desc = "Oh god, this shouldn't be here" + +//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in +/obj/item/ammo_box/magazine/internal/give_round(obj/item/ammo_casing/R) + return ..(R,1) + + + +// Revolver internal mags +/obj/item/ammo_box/magazine/internal/cylinder + name = "revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" + max_ammo = 7 + +/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in stored_ammo) + if(bullet && (bullet.BB || countempties)) + boolets++ + + return boolets + +/obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = 0) + rotate() + + var/b = stored_ammo[1] + if(!keep) + stored_ammo[1] = null + + return b + +/obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() + var/b = stored_ammo[1] + stored_ammo.Cut(1,2) + stored_ammo.Insert(0, b) + +/obj/item/ammo_box/magazine/internal/cylinder/proc/spin() + for(var/i in 1 to rand(0, max_ammo*2)) + rotate() + + +/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0) + if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) + return 0 + + for(var/i in 1 to stored_ammo.len) + var/obj/item/ammo_casing/bullet = stored_ammo[i] + if(!bullet || !bullet.BB) // found a spent ammo + stored_ammo[i] = R + R.loc = src + + if(bullet) + bullet.loc = get_turf(src.loc) + return 1 + + return 0 + +/obj/item/ammo_box/magazine/internal/cylinder/rev38 + name = "detective revolver cylinder" + ammo_type = /obj/item/ammo_casing/c38 + caliber = "38" + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/cylinder/grenademulti + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/a40mm + caliber = "40mm" + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/cylinder/rev762 + name = "nagant revolver cylinder" + ammo_type = /obj/item/ammo_casing/n762 + caliber = "n762" + max_ammo = 7 + +// Shotgun internal mags +/obj/item/ammo_box/magazine/internal/shot + name = "shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/beanbag + caliber = "shotgun" + max_ammo = 4 + multiload = 0 + +/obj/item/ammo_box/magazine/internal/shot/ammo_count(countempties = 1) + if (!countempties) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in stored_ammo) + if(bullet.BB) + boolets++ + return boolets + else + return ..() + + +/obj/item/ammo_box/magazine/internal/shot/tube + name = "dual feed shotgun internal tube" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 4 + +/obj/item/ammo_box/magazine/internal/shot/lethal + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/ammo_box/magazine/internal/shot/com + name = "combat shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/shot/dual + name = "double-barrel shotgun internal magazine" + max_ammo = 2 + +/obj/item/ammo_box/magazine/internal/shot/improvised + name = "improvised shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/improvised + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/shot/riot + name = "riot shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 6 + + + + +/obj/item/ammo_box/magazine/internal/grenadelauncher + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/a40mm + caliber = "40mm" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/speargun + name = "speargun internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/magspear + caliber = "speargun" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/rus357 + name = "russian revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" + max_ammo = 6 + multiload = 0 + +/obj/item/ammo_box/magazine/internal/rus357/New() + stored_ammo += new ammo_type(src) + +/obj/item/ammo_box/magazine/internal/boltaction + name = "bolt action rifle internal magazine" + desc = "Oh god, this shouldn't be here" + ammo_type = /obj/item/ammo_casing/a762 + caliber = "a762" + max_ammo = 5 + multiload = 1 + +/obj/item/ammo_box/magazine/internal/boltaction/enchanted + max_ammo =1 + ammo_type = /obj/item/ammo_casing/a762/enchanted + + +/obj/item/ammo_box/magazine/internal/shot/toy + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + caliber = "foam_force" + max_ammo = 4 + +/obj/item/ammo_box/magazine/internal/shot/toy/crossbow + max_ammo = 5 + +/obj/item/ammo_box/magazine/internal/minigun + name = "gatling gun fusion core" + ammo_type = /obj/item/ammo_casing/caseless/laser/gatling + caliber = "gatling" + max_ammo = 5000 + + +/obj/item/ammo_box/magazine/internal/bow + name = "bow internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/arrow + caliber = "arrow" + max_ammo = 1 diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index d293520cb89..4c44b27bb62 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -1,4 +1,4 @@ -/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "",spread) +/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread) distro += variance for (var/i = max(1, pellets), i > 0, i--) var/targloc = get_turf(target) @@ -20,7 +20,7 @@ update_icon() return 1 -/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override) if (!BB) return BB.original = target @@ -39,7 +39,6 @@ var/turf/curloc = get_turf(user) if (!istype(targloc) || !istype(curloc) || !BB) return 0 - BB.ammo_casing = src var/firing_dir if(BB.firer) @@ -47,16 +46,13 @@ if(!BB.suppressed && firing_effect_type) PoolOrNew(firing_effect_type, list(get_turf(src), firing_dir)) + var/direct_target if(targloc == curloc) - if(target) //if the target is right on our location we go straight to bullet_act() - target.bullet_act(BB, BB.def_zone) - qdel(BB) - BB = null - return 1 - - BB.preparePixelProjectile(target, targloc, user, params, spread) - if(BB) - BB.fire() + if(target) //if the target is right on our location we'll skip the travelling code in the proj's fire() + direct_target = target + if(!direct_target) + BB.preparePixelProjectile(target, targloc, user, params, spread) + BB.fire(null, direct_target) BB = null return 1 @@ -64,42 +60,3 @@ var/dx = abs(target.x - current.x) var/dy = abs(target.y - current.y) return locate(target.x + round(gaussian(0, distro) * (dy+2)/8, 1), target.y + round(gaussian(0, distro) * (dx+2)/8, 1), target.z) - -/obj/item/projectile/proc/preparePixelProjectile(atom/target, var/turf/targloc, mob/living/user, params, spread) - var/turf/curloc = get_turf(user) - src.loc = get_turf(user) - src.starting = get_turf(user) - src.current = curloc - src.yo = targloc.y - curloc.y - src.xo = targloc.x - curloc.x - - if(params) - var/list/mouse_control = params2list(params) - if(mouse_control["icon-x"]) - src.p_x = text2num(mouse_control["icon-x"]) - if(mouse_control["icon-y"]) - src.p_y = text2num(mouse_control["icon-y"]) - if(mouse_control["screen-loc"]) - //Split screen-loc up into X+Pixel_X and Y+Pixel_Y - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") - - //Split X+Pixel_X up into list(X, Pixel_X) - var/list/screen_loc_X = splittext(screen_loc_params[1],":") - - //Split Y+Pixel_Y up into list(Y, Pixel_Y) - var/list/screen_loc_Y = splittext(screen_loc_params[2],":") - // world << "X: [screen_loc_X[1]] PixelX: [screen_loc_X[2]] / Y: [screen_loc_Y[1]] PixelY: [screen_loc_Y[2]]" - var/x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32 - var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32 - - //Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average. - var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths - - var/ox = round(screenview/2) //"origin" x - var/oy = round(screenview/2) //"origin" y - // world << "Pixel position: [x] [y]" - var/angle = Atan2(y - oy, x - ox) - // world << "Angle: [angle]" - src.Angle = angle - if(spread) - src.Angle += spread \ No newline at end of file diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 75ccabb1c41..d63f339a5df 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -43,7 +43,7 @@ var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns - var/obj/item/device/flashlight/F = null + var/obj/item/device/flashlight/gun_light = null var/can_flashlight = 0 var/list/upgrades = list() @@ -64,7 +64,7 @@ ..() if(pin) pin = new pin(src) - if(F) + if(gun_light) verbs += /obj/item/weapon/gun/proc/toggle_gunlight new /datum/action/item_action/toggle_gunlight(src) build_zooming() @@ -89,7 +89,7 @@ if(unique_reskin && !current_skin) user << "Alt-click it to reskin it." - +//called after the gun has successfully fired its chambered ammo. /obj/item/weapon/gun/proc/process_chamber() return 0 @@ -146,7 +146,7 @@ if(!can_trigger_gun(L)) return - if(!can_shoot()) //Just because you can pull the trigger doesn't mean it can't shoot. + if(!can_shoot()) //Just because you can pull the trigger doesn't mean it can shoot. shoot_with_empty_chamber(user) return @@ -192,7 +192,7 @@ user << "[src]'s trigger is locked. This weapon doesn't have a firing pin installed!" return 0 -obj/item/weapon/gun/proc/newshot() +obj/item/weapon/gun/proc/recharge_newshot() return /obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) @@ -215,13 +215,14 @@ obj/item/weapon/gun/proc/newshot() if(!issilicon(user)) if( i>1 && !(user.is_holding(src))) //for burst firing break - if(chambered) + if(chambered && chambered.BB) var/sprd = 0 if(randomspread) sprd = round((rand() - 0.5) * spread) else //Smart spread sprd = round((i / burst_size - 0.5) * spread) - if(!chambered.fire(target, user, params, ,suppressed, zone_override, sprd)) + + if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) break else @@ -238,7 +239,7 @@ obj/item/weapon/gun/proc/newshot() firing_burst = 0 else if(chambered) - if(!chambered.fire(target, user, params, , suppressed, zone_override, spread)) + if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, spread)) shoot_with_empty_chamber(user) return else @@ -266,16 +267,16 @@ obj/item/weapon/gun/proc/newshot() return /obj/item/weapon/gun/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/flashlight/seclite)) - var/obj/item/device/flashlight/seclite/S = I - if(can_flashlight) - if(!F) + if(can_flashlight) + if(istype(I, /obj/item/device/flashlight/seclite)) + var/obj/item/device/flashlight/seclite/S = I + if(!gun_light) if(!user.unEquip(I)) return user << "You click [S] into place on [src]." if(S.on) SetLuminosity(0) - F = S + gun_light = S I.loc = src update_icon() update_gunlight(user) @@ -284,18 +285,18 @@ obj/item/weapon/gun/proc/newshot() if(loc == user) A.Grant(user) - if(istype(I, /obj/item/weapon/screwdriver)) - if(F && can_flashlight) - for(var/obj/item/device/flashlight/seclite/S in src) - user << "You unscrew the seclite from [src]." - F = null - S.loc = get_turf(user) - update_gunlight(user) - S.update_brightness(user) - update_icon() - verbs -= /obj/item/weapon/gun/proc/toggle_gunlight - for(var/datum/action/item_action/toggle_gunlight/TGL in actions) - qdel(TGL) + if(istype(I, /obj/item/weapon/screwdriver)) + if(gun_light) + for(var/obj/item/device/flashlight/seclite/S in src) + user << "You unscrew the seclite from [src]." + gun_light = null + S.forceMove(get_turf(user)) + update_gunlight(user) + S.update_brightness(user) + update_icon() + verbs -= /obj/item/weapon/gun/proc/toggle_gunlight + for(var/datum/action/item_action/toggle_gunlight/TGL in actions) + qdel(TGL) @@ -304,27 +305,27 @@ obj/item/weapon/gun/proc/newshot() set category = "Object" set desc = "Click to toggle your weapon's attached flashlight." - if(!F) + if(!gun_light) return var/mob/living/carbon/human/user = usr - F.on = !F.on - user << "You toggle the gunlight [F.on ? "on":"off"]." + gun_light.on = !gun_light.on + user << "You toggle the gunlight [gun_light.on ? "on":"off"]." playsound(user, 'sound/weapons/empty.ogg', 100, 1) update_gunlight(user) return /obj/item/weapon/gun/proc/update_gunlight(mob/user = null) - if(F) - if(F.on) + if(gun_light) + if(gun_light.on) if(loc == user) - user.AddLuminosity(F.brightness_on) + user.AddLuminosity(gun_light.brightness_on) else if(isturf(loc)) - SetLuminosity(F.brightness_on) + SetLuminosity(gun_light.brightness_on) else if(loc == user) - user.AddLuminosity(-F.brightness_on) + user.AddLuminosity(-gun_light.brightness_on) else if(isturf(loc)) SetLuminosity(0) update_icon() @@ -340,19 +341,19 @@ obj/item/weapon/gun/proc/newshot() /obj/item/weapon/gun/pickup(mob/user) ..() - if(F) - if(F.on) - user.AddLuminosity(F.brightness_on) + if(gun_light) + if(gun_light.on) + user.AddLuminosity(gun_light.brightness_on) SetLuminosity(0) if(azoom) azoom.Grant(user) /obj/item/weapon/gun/dropped(mob/user) ..() - if(F) - if(F.on) - user.AddLuminosity(-F.brightness_on) - SetLuminosity(F.brightness_on) + if(gun_light) + if(gun_light.on) + user.AddLuminosity(-gun_light.brightness_on) + SetLuminosity(gun_light.brightness_on) zoom(user,FALSE) if(azoom) azoom.Remove(user) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/ballistic.dm similarity index 80% rename from code/modules/projectiles/guns/projectile.dm rename to code/modules/projectiles/guns/ballistic.dm index 1c78936a348..033efaae054 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -1,212 +1,207 @@ -/obj/item/weapon/gun/projectile - desc = "Now comes in flavors like GUN. Uses 10mm ammo, for some reason" - name = "projectile gun" - icon_state = "pistol" - origin_tech = "combat=2;materials=2" - w_class = 3 - var/spawnwithmagazine = 1 - - var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info - var/obj/item/ammo_box/magazine/magazine - -/obj/item/weapon/gun/projectile/New() - ..() - if(!spawnwithmagazine) - update_icon() - return - if (!magazine) - magazine = new mag_type(src) - chamber_round() - update_icon() - -/obj/item/weapon/gun/projectile/update_icon() - ..() - if(current_skin) - icon_state = "[current_skin][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" - else - icon_state = "[initial(icon_state)][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" - - -/obj/item/weapon/gun/projectile/process_chamber(eject_casing = 1, empty_chamber = 1) -// if(in_chamber) -// return 1 - var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(isnull(AC) || !istype(AC)) - chamber_round() - return - if(eject_casing) - AC.loc = get_turf(src) //Eject casing onto ground. - AC.SpinAnimation(10, 1) //next gen special effects - - if(empty_chamber) - chambered = null - chamber_round() - return - -/obj/item/weapon/gun/projectile/proc/chamber_round() - if (chambered || !magazine) - return - else if (magazine.ammo_count()) - chambered = magazine.get_round() - chambered.loc = src - return - -/obj/item/weapon/gun/projectile/can_shoot() - if(!magazine || !magazine.ammo_count(0)) - return 0 - return 1 - -/obj/item/weapon/gun/projectile/attackby(obj/item/A, mob/user, params) - ..() - if (istype(A, /obj/item/ammo_box/magazine)) - var/obj/item/ammo_box/magazine/AM = A - if (!magazine && istype(AM, mag_type)) - user.remove_from_mob(AM) - magazine = AM - magazine.loc = src - user << "You load a new magazine into \the [src]." - chamber_round() - A.update_icon() - update_icon() - return 1 - else if (magazine) - user << "There's already a magazine in \the [src]." - if(istype(A, /obj/item/weapon/suppressor)) - var/obj/item/weapon/suppressor/S = A - if(can_suppress) - if(!suppressed) - if(!user.unEquip(A)) - return - user << "You screw [S] onto [src]." - suppressed = A - S.oldsound = fire_sound - S.initial_w_class = w_class - fire_sound = 'sound/weapons/Gunshot_silenced.ogg' - w_class = 3 //so pistols do not fit in pockets when suppressed - A.loc = src - update_icon() - return - else - user << "[src] already has a suppressor!" - return - else - user << "You can't seem to figure out how to fit [S] on [src]!" - return - return 0 - -/obj/item/weapon/gun/projectile/attack_hand(mob/user) - if(loc == user) - if(suppressed && can_unsuppress) - var/obj/item/weapon/suppressor/S = suppressed - if(!user.is_holding(src)) - ..() - return - user << "You unscrew [suppressed] from [src]." - user.put_in_hands(suppressed) - fire_sound = S.oldsound - w_class = S.initial_w_class - suppressed = 0 - update_icon() - return - ..() - -/obj/item/weapon/gun/projectile/attack_self(mob/living/user) - var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(magazine) - magazine.loc = get_turf(src.loc) - user.put_in_hands(magazine) - magazine.update_icon() - magazine = null - user << "You pull the magazine out of \the [src]." - else if(chambered) - AC.loc = get_turf(src) - AC.SpinAnimation(10, 1) - chambered = null - user << "You unload the round from \the [src]'s chamber." - else - user << "There's no magazine in \the [src]." - update_icon() - return - - -/obj/item/weapon/gun/projectile/examine(mob/user) - ..() - user << "Has [get_ammo()] round\s remaining." - -/obj/item/weapon/gun/projectile/proc/get_ammo(countchambered = 1) - var/boolets = 0 //mature var names for mature people - if (chambered && countchambered) - boolets++ - if (magazine) - boolets += magazine.ammo_count() - return boolets - -/obj/item/weapon/gun/projectile/suicide_act(mob/user) - if (src.chambered && src.chambered.BB && !src.chambered.BB.nodamage) - user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") - sleep(25) - if(user.is_holding(src)) - process_fire(user, user, 0, zone_override = "head") - user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") - return(BRUTELOSS) - else - user.visible_message("[user] panics and starts choking to death!") - return(OXYLOSS) - else - user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) - return (OXYLOSS) - - - -/obj/item/weapon/gun/projectile/proc/sawoff(mob/user) - if(sawn_state == SAWN_OFF) - user << "\The [src] is already shortened!" - return - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") - - //if there's any live ammo inside the gun, makes it go off - if(blow_up(user)) - user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") - return - - if(do_after(user, 30, target = src)) - if(sawn_state == SAWN_OFF) - return - user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") - name = "sawn-off [src.name]" - desc = sawn_desc - w_class = 3 - item_state = "gun" - slot_flags &= ~SLOT_BACK //you can't sling it on your back - slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - sawn_state = SAWN_OFF - update_icon() - return 1 - -// Sawing guns related proc -/obj/item/weapon/gun/projectile/proc/blow_up(mob/user) - . = 0 - for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) - if(AC.BB) - process_fire(user, user,0) - . = 1 - - -/obj/item/weapon/suppressor - name = "suppressor" - desc = "A universal syndicate small-arms suppressor for maximum espionage." - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "suppressor" - w_class = 2 - var/oldsound = null - var/initial_w_class = null - - -/obj/item/weapon/suppressor/specialoffer - name = "cheap suppressor" - desc = "A foreign knock-off suppressor, it feels flimsy, cheap, and brittle. Still fits all weapons." - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "suppressor" - +/obj/item/weapon/gun/ballistic + desc = "Now comes in flavors like GUN. Uses 10mm ammo, for some reason" + name = "projectile gun" + icon_state = "pistol" + origin_tech = "combat=2;materials=2" + w_class = 3 + var/spawnwithmagazine = 1 + var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info + var/obj/item/ammo_box/magazine/magazine + var/casing_ejector = 1 //whether the gun ejects the chambered casing + +/obj/item/weapon/gun/ballistic/New() + ..() + if(!spawnwithmagazine) + update_icon() + return + if (!magazine) + magazine = new mag_type(src) + chamber_round() + update_icon() + +/obj/item/weapon/gun/ballistic/update_icon() + ..() + if(current_skin) + icon_state = "[current_skin][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" + else + icon_state = "[initial(icon_state)][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" + + +/obj/item/weapon/gun/ballistic/process_chamber(empty_chamber = 1) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(istype(AC)) //there's a chambered round + if(casing_ejector) + AC.forceMove(get_turf(src)) //Eject casing onto ground. + AC.SpinAnimation(10, 1) //next gen special effects + chambered = null + else if(empty_chamber) + chambered = null + chamber_round() + + +/obj/item/weapon/gun/ballistic/proc/chamber_round() + if (chambered || !magazine) + return + else if (magazine.ammo_count()) + chambered = magazine.get_round() + chambered.forceMove(src) + +/obj/item/weapon/gun/ballistic/can_shoot() + if(!magazine || !magazine.ammo_count(0)) + return 0 + return 1 + +/obj/item/weapon/gun/ballistic/attackby(obj/item/A, mob/user, params) + ..() + if (istype(A, /obj/item/ammo_box/magazine)) + var/obj/item/ammo_box/magazine/AM = A + if (!magazine && istype(AM, mag_type)) + user.remove_from_mob(AM) + magazine = AM + magazine.forceMove(src) + user << "You load a new magazine into \the [src]." + chamber_round() + A.update_icon() + update_icon() + return 1 + else if (magazine) + user << "There's already a magazine in \the [src]." + if(istype(A, /obj/item/weapon/suppressor)) + var/obj/item/weapon/suppressor/S = A + if(can_suppress) + if(!suppressed) + if(!user.unEquip(A)) + return + user << "You screw [S] onto [src]." + suppressed = A + S.oldsound = fire_sound + S.initial_w_class = w_class + fire_sound = 'sound/weapons/Gunshot_silenced.ogg' + w_class = 3 //so pistols do not fit in pockets when suppressed + A.loc = src + update_icon() + return + else + user << "[src] already has a suppressor!" + return + else + user << "You can't seem to figure out how to fit [S] on [src]!" + return + return 0 + +/obj/item/weapon/gun/ballistic/attack_hand(mob/user) + if(loc == user) + if(suppressed && can_unsuppress) + var/obj/item/weapon/suppressor/S = suppressed + if(!user.is_holding(src)) + ..() + return + user << "You unscrew [suppressed] from [src]." + user.put_in_hands(suppressed) + fire_sound = S.oldsound + w_class = S.initial_w_class + suppressed = 0 + update_icon() + return + ..() + +/obj/item/weapon/gun/ballistic/attack_self(mob/living/user) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(magazine) + magazine.loc = get_turf(src.loc) + user.put_in_hands(magazine) + magazine.update_icon() + magazine = null + user << "You pull the magazine out of \the [src]." + else if(chambered) + AC.loc = get_turf(src) + AC.SpinAnimation(10, 1) + chambered = null + user << "You unload the round from \the [src]'s chamber." + else + user << "There's no magazine in \the [src]." + update_icon() + return + + +/obj/item/weapon/gun/ballistic/examine(mob/user) + ..() + user << "Has [get_ammo()] round\s remaining." + +/obj/item/weapon/gun/ballistic/proc/get_ammo(countchambered = 1) + var/boolets = 0 //mature var names for mature people + if (chambered && countchambered) + boolets++ + if (magazine) + boolets += magazine.ammo_count() + return boolets + +/obj/item/weapon/gun/ballistic/suicide_act(mob/user) + if (chambered && chambered.BB && !chambered.BB.nodamage) + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") + sleep(25) + if(user.is_holding(src)) + process_fire(user, user, 0, zone_override = "head") + user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") + return(BRUTELOSS) + else + user.visible_message("[user] panics and starts choking to death!") + return(OXYLOSS) + else + user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) + return (OXYLOSS) + + + +/obj/item/weapon/gun/ballistic/proc/sawoff(mob/user) + if(sawn_state == SAWN_OFF) + user << "\The [src] is already shortened!" + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") + + //if there's any live ammo inside the gun, makes it go off + if(blow_up(user)) + user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") + return + + if(do_after(user, 30, target = src)) + if(sawn_state == SAWN_OFF) + return + user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") + name = "sawn-off [src.name]" + desc = sawn_desc + w_class = 3 + item_state = "gun" + slot_flags &= ~SLOT_BACK //you can't sling it on your back + slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + sawn_state = SAWN_OFF + update_icon() + return 1 + +// Sawing guns related proc +/obj/item/weapon/gun/ballistic/proc/blow_up(mob/user) + . = 0 + for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) + if(AC.BB) + process_fire(user, user,0) + . = 1 + + +/obj/item/weapon/suppressor + name = "suppressor" + desc = "A universal syndicate small-arms suppressor for maximum espionage." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "suppressor" + w_class = 2 + var/oldsound = null + var/initial_w_class = null + + +/obj/item/weapon/suppressor/specialoffer + name = "cheap suppressor" + desc = "A foreign knock-off suppressor, it feels flimsy, cheap, and brittle. Still fits all weapons." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "suppressor" + diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm similarity index 71% rename from code/modules/projectiles/guns/projectile/automatic.dm rename to code/modules/projectiles/guns/ballistic/automatic.dm index eae57f11fca..1d871e9372d 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -1,410 +1,407 @@ -/obj/item/weapon/gun/projectile/automatic - origin_tech = "combat=4;materials=2" - w_class = 3 - var/alarmed = 0 - var/select = 1 - can_suppress = 1 - burst_size = 3 - fire_delay = 2 - actions_types = list(/datum/action/item_action/toggle_firemode) - -/obj/item/weapon/gun/projectile/automatic/proto - name = "\improper NanoTrasen Saber SMG" - desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." - icon_state = "saber" - mag_type = /obj/item/ammo_box/magazine/smgm9mm - pin = null - -/obj/item/weapon/gun/projectile/automatic/proto/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/update_icon() - ..() - cut_overlays() - if(!select) - add_overlay("[initial(icon_state)]semi") - if(select == 1) - add_overlay("[initial(icon_state)]burst") - icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - -/obj/item/weapon/gun/projectile/automatic/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - if(istype(A, /obj/item/ammo_box/magazine)) - var/obj/item/ammo_box/magazine/AM = A - if(istype(AM, mag_type)) - if(magazine) - user << "You perform a tactical reload on \the [src], replacing the magazine." - magazine.dropped() - magazine.forceMove(get_turf(src.loc)) - magazine.update_icon() - magazine = null - else - user << "You insert the magazine into \the [src]." - user.remove_from_mob(AM) - magazine = AM - magazine.loc = src - chamber_round() - A.update_icon() - update_icon() - return 1 - -/obj/item/weapon/gun/projectile/automatic/ui_action_click() - burst_select() - -/obj/item/weapon/gun/projectile/automatic/proc/burst_select() - var/mob/living/carbon/human/user = usr - select = !select - if(!select) - burst_size = 1 - fire_delay = 0 - user << "You switch to semi-automatic." - else - burst_size = initial(burst_size) - fire_delay = initial(fire_delay) - user << "You switch to [burst_size]-rnd burst." - - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_icon() - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - -/obj/item/weapon/gun/projectile/automatic/can_shoot() - return get_ammo() - -/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm() - if(!chambered && !get_ammo() && !alarmed) - playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) - update_icon() - alarmed = 1 - return - -/obj/item/weapon/gun/projectile/automatic/c20r - name = "\improper C-20r SMG" - desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." - icon_state = "c20r" - item_state = "c20r" - origin_tech = "combat=5;materials=2;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/smgm45 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - fire_delay = 2 - burst_size = 2 - pin = /obj/item/device/firing_pin/implant/pindicate - -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/c20r/New() - ..() - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/c20r/afterattack() - ..() - empty_alarm() - return - -/obj/item/weapon/gun/projectile/automatic/c20r/update_icon() - ..() - icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - -/obj/item/weapon/gun/projectile/automatic/wt550 - name = "security auto rifle" - desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Automatic Rifle." - icon_state = "wt550" - item_state = "arg" - mag_type = /obj/item/ammo_box/magazine/wt550m9 - fire_delay = 2 - can_suppress = 0 - burst_size = 0 - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/wt550/update_icon() - ..() - icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" - -/obj/item/weapon/gun/projectile/automatic/mini_uzi - name = "\improper 'Type U3' Uzi" - desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." - icon_state = "mini-uzi" - origin_tech = "combat=4;materials=2;syndicate=4" - mag_type = /obj/item/ammo_box/magazine/uzim9mm - burst_size = 2 - -/obj/item/weapon/gun/projectile/automatic/m90 - name = "\improper M-90gl Carbine" - desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." - icon_state = "m90" - item_state = "m90" - origin_tech = "combat=5;materials=2;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/m556 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - can_suppress = 0 - var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel - burst_size = 3 - fire_delay = 2 - pin = /obj/item/device/firing_pin/implant/pindicate - -/obj/item/weapon/gun/projectile/automatic/m90/New() - ..() - underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(src) - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/m90/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/m90/unrestricted/New() - ..() - underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted(src) - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/m90/afterattack(atom/target, mob/living/user, flag, params) - if(select == 2) - underbarrel.afterattack(target, user, flag, params) - else - ..() - return -/obj/item/weapon/gun/projectile/automatic/m90/attackby(obj/item/A, mob/user, params) - if(istype(A, /obj/item/ammo_casing)) - if(istype(A, underbarrel.magazine.ammo_type)) - underbarrel.attack_self() - underbarrel.attackby(A, user, params) - else - ..() -/obj/item/weapon/gun/projectile/automatic/m90/update_icon() - ..() - cut_overlays() - switch(select) - if(0) - add_overlay("[initial(icon_state)]semi") - if(1) - add_overlay("[initial(icon_state)]burst") - if(2) - add_overlay("[initial(icon_state)]gren") - icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" - return -/obj/item/weapon/gun/projectile/automatic/m90/burst_select() - var/mob/living/carbon/human/user = usr - switch(select) - if(0) - select = 1 - burst_size = initial(burst_size) - fire_delay = initial(fire_delay) - user << "You switch to [burst_size]-rnd burst." - if(1) - select = 2 - user << "You switch to grenades." - if(2) - select = 0 - burst_size = 1 - fire_delay = 0 - user << "You switch to semi-auto." - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/tommygun - name = "\improper Thompson SMG" - desc = "Based on the classic 'Chicago Typewriter'." - icon_state = "tommygun" - item_state = "shotgun" - w_class = 5 - slot_flags = 0 - origin_tech = "combat=5;materials=1;syndicate=3" - mag_type = /obj/item/ammo_box/magazine/tommygunm45 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - can_suppress = 0 - burst_size = 4 - fire_delay = 1 - -/obj/item/weapon/gun/projectile/automatic/ar - name = "\improper NT-ARG 'Boarder'" - desc = "A robust assault rile used by Nanotrasen fighting forces." - icon_state = "arg" - item_state = "arg" - slot_flags = 0 - origin_tech = "combat=6;engineering=4" - mag_type = /obj/item/ammo_box/magazine/m556 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - can_suppress = 0 - burst_size = 3 - fire_delay = 1 - - - -// Bulldog shotgun // - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog - name = "\improper 'Bulldog' Shotgun" - desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." - icon_state = "bulldog" - item_state = "bulldog" - w_class = 3 - origin_tech = "combat=6;materials=4;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/m12g - fire_sound = 'sound/weapons/Gunshot.ogg' - can_suppress = 0 - burst_size = 1 - fire_delay = 0 - pin = /obj/item/device/firing_pin/implant/pindicate - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() - ..() - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() - if(magazine) - src.overlays = 0 - add_overlay("[magazine.icon_state]") - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() - src.overlays = 0 - update_magazine() - icon_state = "bulldog[chambered ? "" : "-e"]" - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() - ..() - empty_alarm() - return - - - -// L6 SAW // - -/obj/item/weapon/gun/projectile/automatic/l6_saw - name = "\improper L6 SAW" - desc = "A heavily modified 5.56x45mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." - icon_state = "l6closed100" - item_state = "l6closedmag" - w_class = 5 - slot_flags = 0 - origin_tech = "combat=6;engineering=3;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/mm556x45 - weapon_weight = WEAPON_MEDIUM - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - var/cover_open = 0 - can_suppress = 0 - burst_size = 3 - fire_delay = 1 - pin = /obj/item/device/firing_pin/implant/pindicate - -/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted - pin = /obj/item/device/firing_pin - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user) - cover_open = !cover_open - user << "You [cover_open ? "open" : "close"] [src]'s cover." - update_icon() - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon() - icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"][suppressed ? "-suppressed" : ""]" - item_state = "l6[cover_open ? "openmag" : "closedmag"]" - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays - if(cover_open) - user << "[src]'s cover is open! Close it before firing!" - else - ..() - update_icon() - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user) - if(loc != user) - ..() - return //let them pick it up - if(!cover_open || (cover_open && !magazine)) - ..() - else if(cover_open && magazine) - //drop the mag - magazine.update_icon() - magazine.loc = get_turf(src.loc) - user.put_in_hands(magazine) - magazine = null - update_icon() - user << "You remove the magazine from [src]." - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - if(!cover_open) - user << "[src]'s cover is closed! You can't insert a new mag." - return - ..() - - - -// SNIPER // - -/obj/item/weapon/gun/projectile/automatic/sniper_rifle - name = "sniper rifle" - desc = "A long ranged weapon that does significant damage. No, you can't quickscope." - icon_state = "sniper" - item_state = "sniper" - recoil = 2 - weapon_weight = WEAPON_MEDIUM - mag_type = /obj/item/ammo_box/magazine/sniper_rounds - fire_delay = 40 - burst_size = 1 - origin_tech = "combat=7" - can_unsuppress = 1 - can_suppress = 1 - w_class = 3 - zoomable = TRUE - zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. - slot_flags = SLOT_BACK - actions_types = list() - - -/obj/item/weapon/gun/projectile/automatic/sniper_rifle/update_icon() - if(magazine) - icon_state = "sniper-mag" - else - icon_state = "sniper" - - -/obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate - name = "syndicate sniper rifle" - desc = "An illegally modified .50 cal sniper rifle with supression compatibility. Quickscoping still doesn't work." - pin = /obj/item/device/firing_pin/implant/pindicate - origin_tech = "combat=7;syndicate=6" - - - - -// Laser rifle (rechargeable magazine) // - -/obj/item/weapon/gun/projectile/automatic/laser - name = "laser rifle" - desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargable ammunition has given Nanotrasen a decisive edge over many a foe." - icon_state = "oldrifle" - item_state = "arg" - mag_type = /obj/item/ammo_box/magazine/recharge - fire_delay = 2 - can_suppress = 0 - burst_size = 0 - actions_types = list() - fire_sound = 'sound/weapons/Laser.ogg' - -/obj/item/weapon/gun/projectile/automatic/laser/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() //we changed the default value of the first argument - - -/obj/item/weapon/gun/projectile/automatic/laser/update_icon() - ..() - icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" - return +/obj/item/weapon/gun/ballistic/automatic + origin_tech = "combat=4;materials=2" + w_class = 3 + var/alarmed = 0 + var/select = 1 + can_suppress = 1 + burst_size = 3 + fire_delay = 2 + actions_types = list(/datum/action/item_action/toggle_firemode) + +/obj/item/weapon/gun/ballistic/automatic/proto + name = "\improper NanoTrasen Saber SMG" + desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." + icon_state = "saber" + mag_type = /obj/item/ammo_box/magazine/smgm9mm + pin = null + +/obj/item/weapon/gun/ballistic/automatic/proto/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/update_icon() + ..() + cut_overlays() + if(!select) + add_overlay("[initial(icon_state)]semi") + if(select == 1) + add_overlay("[initial(icon_state)]burst") + icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + +/obj/item/weapon/gun/ballistic/automatic/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + if(istype(A, /obj/item/ammo_box/magazine)) + var/obj/item/ammo_box/magazine/AM = A + if(istype(AM, mag_type)) + if(magazine) + user << "You perform a tactical reload on \the [src], replacing the magazine." + magazine.dropped() + magazine.forceMove(get_turf(src.loc)) + magazine.update_icon() + magazine = null + else + user << "You insert the magazine into \the [src]." + user.remove_from_mob(AM) + magazine = AM + magazine.loc = src + chamber_round() + A.update_icon() + update_icon() + return 1 + +/obj/item/weapon/gun/ballistic/automatic/ui_action_click() + burst_select() + +/obj/item/weapon/gun/ballistic/automatic/proc/burst_select() + var/mob/living/carbon/human/user = usr + select = !select + if(!select) + burst_size = 1 + fire_delay = 0 + user << "You switch to semi-automatic." + else + burst_size = initial(burst_size) + fire_delay = initial(fire_delay) + user << "You switch to [burst_size]-rnd burst." + + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/weapon/gun/ballistic/automatic/can_shoot() + return get_ammo() + +/obj/item/weapon/gun/ballistic/automatic/proc/empty_alarm() + if(!chambered && !get_ammo() && !alarmed) + playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) + update_icon() + alarmed = 1 + return + +/obj/item/weapon/gun/ballistic/automatic/c20r + name = "\improper C-20r SMG" + desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + icon_state = "c20r" + item_state = "c20r" + origin_tech = "combat=5;materials=2;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/smgm45 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_delay = 2 + burst_size = 2 + pin = /obj/item/device/firing_pin/implant/pindicate + +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/c20r/New() + ..() + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/c20r/afterattack() + ..() + empty_alarm() + return + +/obj/item/weapon/gun/ballistic/automatic/c20r/update_icon() + ..() + icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + +/obj/item/weapon/gun/ballistic/automatic/wt550 + name = "security auto rifle" + desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Automatic Rifle." + icon_state = "wt550" + item_state = "arg" + mag_type = /obj/item/ammo_box/magazine/wt550m9 + fire_delay = 2 + can_suppress = 0 + burst_size = 0 + actions_types = list() + +/obj/item/weapon/gun/ballistic/automatic/wt550/update_icon() + ..() + icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" + +/obj/item/weapon/gun/ballistic/automatic/mini_uzi + name = "\improper 'Type U3' Uzi" + desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." + icon_state = "mini-uzi" + origin_tech = "combat=4;materials=2;syndicate=4" + mag_type = /obj/item/ammo_box/magazine/uzim9mm + burst_size = 2 + +/obj/item/weapon/gun/ballistic/automatic/m90 + name = "\improper M-90gl Carbine" + desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." + icon_state = "m90" + item_state = "m90" + origin_tech = "combat=5;materials=2;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m556 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + can_suppress = 0 + var/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/underbarrel + burst_size = 3 + fire_delay = 2 + pin = /obj/item/device/firing_pin/implant/pindicate + +/obj/item/weapon/gun/ballistic/automatic/m90/New() + ..() + underbarrel = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher(src) + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/m90/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/m90/unrestricted/New() + ..() + underbarrel = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted(src) + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/m90/afterattack(atom/target, mob/living/user, flag, params) + if(select == 2) + underbarrel.afterattack(target, user, flag, params) + else + ..() + return +/obj/item/weapon/gun/ballistic/automatic/m90/attackby(obj/item/A, mob/user, params) + if(istype(A, /obj/item/ammo_casing)) + if(istype(A, underbarrel.magazine.ammo_type)) + underbarrel.attack_self() + underbarrel.attackby(A, user, params) + else + ..() +/obj/item/weapon/gun/ballistic/automatic/m90/update_icon() + ..() + cut_overlays() + switch(select) + if(0) + add_overlay("[initial(icon_state)]semi") + if(1) + add_overlay("[initial(icon_state)]burst") + if(2) + add_overlay("[initial(icon_state)]gren") + icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" + return +/obj/item/weapon/gun/ballistic/automatic/m90/burst_select() + var/mob/living/carbon/human/user = usr + switch(select) + if(0) + select = 1 + burst_size = initial(burst_size) + fire_delay = initial(fire_delay) + user << "You switch to [burst_size]-rnd burst." + if(1) + select = 2 + user << "You switch to grenades." + if(2) + select = 0 + burst_size = 1 + fire_delay = 0 + user << "You switch to semi-auto." + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/tommygun + name = "\improper Thompson SMG" + desc = "Based on the classic 'Chicago Typewriter'." + icon_state = "tommygun" + item_state = "shotgun" + w_class = 5 + slot_flags = 0 + origin_tech = "combat=5;materials=1;syndicate=3" + mag_type = /obj/item/ammo_box/magazine/tommygunm45 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + can_suppress = 0 + burst_size = 4 + fire_delay = 1 + +/obj/item/weapon/gun/ballistic/automatic/ar + name = "\improper NT-ARG 'Boarder'" + desc = "A robust assault rile used by Nanotrasen fighting forces." + icon_state = "arg" + item_state = "arg" + slot_flags = 0 + origin_tech = "combat=6;engineering=4" + mag_type = /obj/item/ammo_box/magazine/m556 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + can_suppress = 0 + burst_size = 3 + fire_delay = 1 + + + +// Bulldog shotgun // + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog + name = "\improper 'Bulldog' Shotgun" + desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." + icon_state = "bulldog" + item_state = "bulldog" + w_class = 3 + origin_tech = "combat=6;materials=4;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m12g + fire_sound = 'sound/weapons/Gunshot.ogg' + can_suppress = 0 + burst_size = 1 + fire_delay = 0 + pin = /obj/item/device/firing_pin/implant/pindicate + actions_types = list() + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/New() + ..() + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/proc/update_magazine() + if(magazine) + src.overlays = 0 + add_overlay("[magazine.icon_state]") + return + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/update_icon() + src.overlays = 0 + update_magazine() + icon_state = "bulldog[chambered ? "" : "-e"]" + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/afterattack() + ..() + empty_alarm() + return + + + +// L6 SAW // + +/obj/item/weapon/gun/ballistic/automatic/l6_saw + name = "\improper L6 SAW" + desc = "A heavily modified 5.56x45mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." + icon_state = "l6closed100" + item_state = "l6closedmag" + w_class = 5 + slot_flags = 0 + origin_tech = "combat=6;engineering=3;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/mm556x45 + weapon_weight = WEAPON_MEDIUM + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + var/cover_open = 0 + can_suppress = 0 + burst_size = 3 + fire_delay = 1 + pin = /obj/item/device/firing_pin/implant/pindicate + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/unrestricted + pin = /obj/item/device/firing_pin + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attack_self(mob/user) + cover_open = !cover_open + user << "You [cover_open ? "open" : "close"] [src]'s cover." + update_icon() + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/update_icon() + icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"][suppressed ? "-suppressed" : ""]" + item_state = "l6[cover_open ? "openmag" : "closedmag"]" + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays + if(cover_open) + user << "[src]'s cover is open! Close it before firing!" + else + ..() + update_icon() + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attack_hand(mob/user) + if(loc != user) + ..() + return //let them pick it up + if(!cover_open || (cover_open && !magazine)) + ..() + else if(cover_open && magazine) + //drop the mag + magazine.update_icon() + magazine.loc = get_turf(src.loc) + user.put_in_hands(magazine) + magazine = null + update_icon() + user << "You remove the magazine from [src]." + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + if(!cover_open) + user << "[src]'s cover is closed! You can't insert a new mag." + return + ..() + + + +// SNIPER // + +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle + name = "sniper rifle" + desc = "A long ranged weapon that does significant damage. No, you can't quickscope." + icon_state = "sniper" + item_state = "sniper" + recoil = 2 + weapon_weight = WEAPON_MEDIUM + mag_type = /obj/item/ammo_box/magazine/sniper_rounds + fire_delay = 40 + burst_size = 1 + origin_tech = "combat=7" + can_unsuppress = 1 + can_suppress = 1 + w_class = 3 + zoomable = TRUE + zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. + slot_flags = SLOT_BACK + actions_types = list() + + +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/update_icon() + if(magazine) + icon_state = "sniper-mag" + else + icon_state = "sniper" + + +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate + name = "syndicate sniper rifle" + desc = "An illegally modified .50 cal sniper rifle with supression compatibility. Quickscoping still doesn't work." + pin = /obj/item/device/firing_pin/implant/pindicate + origin_tech = "combat=7;syndicate=6" + + + + +// Laser rifle (rechargeable magazine) // + +/obj/item/weapon/gun/ballistic/automatic/laser + name = "laser rifle" + desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargable ammunition has given Nanotrasen a decisive edge over many a foe." + icon_state = "oldrifle" + item_state = "arg" + mag_type = /obj/item/ammo_box/magazine/recharge + fire_delay = 2 + can_suppress = 0 + burst_size = 0 + actions_types = list() + fire_sound = 'sound/weapons/Laser.ogg' + casing_ejector = 0 + +/obj/item/weapon/gun/ballistic/automatic/laser/update_icon() + ..() + icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" + return diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm similarity index 82% rename from code/modules/projectiles/guns/projectile/bow.dm rename to code/modules/projectiles/guns/ballistic/bow.dm index fbe5f28cb11..27e83e01c87 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/projectile/bow +/obj/item/weapon/gun/ballistic/bow name = "bow" desc = "A sturdy bow made out of wood and reinforced with iron." icon_state = "bow_unloaded" @@ -15,7 +15,7 @@ var/ready_to_fire = 0 var/slowdown_when_ready = 2 -/obj/item/weapon/gun/projectile/bow/update_icon() +/obj/item/weapon/gun/ballistic/bow/update_icon() if(ready_to_fire) icon_state = icon_state_firing item_state = item_state_firing @@ -29,13 +29,13 @@ item_state = initial(item_state) slowdown = initial(slowdown) -/obj/item/weapon/gun/projectile/bow/dropped(mob/user) +/obj/item/weapon/gun/ballistic/bow/dropped(mob/user) if(magazine && magazine.ammo_count()) magazine.empty_magazine() ready_to_fire = FALSE update_icon() -/obj/item/weapon/gun/projectile/bow/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/bow/attack_self(mob/living/user) if(!ready_to_fire && magazine.ammo_count()) ready_to_fire = TRUE playsound(user, draw_sound, 100, 1) @@ -44,22 +44,22 @@ ready_to_fire = FALSE update_icon() -/obj/item/weapon/gun/projectile/bow/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/bow/attackby(obj/item/A, mob/user, params) var/num_loaded = magazine.attackby(A, user, params, 1) if(num_loaded) user << "You ready \the [A] into \the [src]." update_icon() chamber_round() -/obj/item/weapon/gun/projectile/bow/can_shoot() +/obj/item/weapon/gun/ballistic/bow/can_shoot() . = ..() if(!ready_to_fire) return FALSE -/obj/item/weapon/gun/projectile/bow/shoot_with_empty_chamber(mob/living/user as mob|obj) +/obj/item/weapon/gun/ballistic/bow/shoot_with_empty_chamber(mob/living/user as mob|obj) return -/obj/item/weapon/gun/projectile/bow/process_chamber(eject_casing = 0, empty_chamber = 1) +/obj/item/weapon/gun/ballistic/bow/process_chamber(eject_casing = 0, empty_chamber = 1) . = ..() ready_to_fire = FALSE update_icon() diff --git a/code/modules/projectiles/guns/projectile/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm similarity index 83% rename from code/modules/projectiles/guns/projectile/laser_gatling.dm rename to code/modules/projectiles/guns/ballistic/laser_gatling.dm index 43de02219f3..c01373e9156 100644 --- a/code/modules/projectiles/guns/projectile/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -9,7 +9,7 @@ item_state = "backpack" slot_flags = SLOT_BACK w_class = 5 - var/obj/item/weapon/gun/projectile/minigun/gun = null + var/obj/item/weapon/gun/ballistic/minigun/gun = null var/armed = 0 //whether the gun is attached, 0 is attached, 1 is the gun is wielded. var/overheat = 0 var/overheat_max = 40 @@ -91,7 +91,7 @@ user.update_inv_back() -/obj/item/weapon/gun/projectile/minigun +/obj/item/weapon/gun/ballistic/minigun name = "laser gatling gun" desc = "An advanced laser cannon with an incredible rate of fire. Requires a bulky backpack power source to use." icon = 'icons/obj/guns/minigun.dmi' @@ -109,18 +109,19 @@ weapon_weight = WEAPON_HEAVY fire_sound = 'sound/weapons/Laser.ogg' mag_type = /obj/item/ammo_box/magazine/internal/minigun + casing_ejector = 0 var/obj/item/weapon/minigunpack/ammo_pack -/obj/item/weapon/gun/projectile/minigun/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/minigun/attack_self(mob/living/user) return -/obj/item/weapon/gun/projectile/minigun/dropped(mob/user) +/obj/item/weapon/gun/ballistic/minigun/dropped(mob/user) if(ammo_pack) ammo_pack.attach_gun(user) else qdel(src) -/obj/item/weapon/gun/projectile/minigun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) +/obj/item/weapon/gun/ballistic/minigun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) if(ammo_pack) if(ammo_pack.overheat < ammo_pack.overheat_max) ammo_pack.overheat += burst_size @@ -128,12 +129,12 @@ else user << "The gun's heat sensor locked the trigger to prevent lens damage." -/obj/item/weapon/gun/projectile/minigun/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/weapon/gun/ballistic/minigun/afterattack(atom/target, mob/living/user, flag, params) if(!ammo_pack || ammo_pack.loc != user) user << "You need the backpack power source to fire the gun!" ..() -/obj/item/weapon/gun/projectile/minigun/New() +/obj/item/weapon/gun/ballistic/minigun/New() if(!ammo_pack) if(istype(loc,/obj/item/weapon/minigunpack)) //We should spawn inside a ammo pack so let's use that one. ammo_pack = loc @@ -141,9 +142,7 @@ else qdel(src)//No pack, no gun -/obj/item/weapon/gun/projectile/minigun/dropped(mob/living/user) +/obj/item/weapon/gun/ballistic/minigun/dropped(mob/living/user) ammo_pack.attach_gun(user) -/obj/item/weapon/gun/projectile/minigun/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm similarity index 63% rename from code/modules/projectiles/guns/projectile/launchers.dm rename to code/modules/projectiles/guns/ballistic/launchers.dm index 42ed81805ed..9e2f66ee423 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -1,7 +1,7 @@ //KEEP IN MIND: These are different from gun/grenadelauncher. These are designed to shoot premade rocket and grenade projectiles, not flashbangs or chemistry casings etc. //Put handheld rocket launchers here if someone ever decides to make something so hilarious ~Paprika -/obj/item/weapon/gun/projectile/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes desc = "A break-operated grenade launcher." name = "grenade launcher" icon_state = "dshotgun-sawn" @@ -11,15 +11,15 @@ w_class = 3 pin = /obj/item/device/firing_pin/implant/pindicate -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) chamber_round() -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg desc = "A 6-shot grenade launcher." name = "multi grenade launcher" icon = 'icons/mecha/mecha_equipment.dmi' @@ -27,10 +27,10 @@ mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg/attack_self() +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg/attack_self() return -/obj/item/weapon/gun/projectile/automatic/gyropistol +/obj/item/weapon/gun/ballistic/automatic/gyropistol name = "gyrojet pistol" desc = "A prototype pistol designed to fire self propelled rockets." icon_state = "gyropistol" @@ -40,15 +40,13 @@ burst_size = 1 fire_delay = 0 actions_types = list() + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/gyropistol/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/gyropistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/gyropistol/update_icon() ..() icon_state = "[initial(icon_state)][magazine ? "loaded" : ""]" -/obj/item/weapon/gun/projectile/automatic/speargun +/obj/item/weapon/gun/ballistic/automatic/speargun name = "kinetic speargun" desc = "A weapon favored by carp hunters. Fires specialized spears using kinetic energy." icon_state = "speargun" @@ -63,17 +61,15 @@ fire_delay = 0 select = 0 actions_types = list() + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/speargun/update_icon() +/obj/item/weapon/gun/ballistic/automatic/speargun/update_icon() return -/obj/item/weapon/gun/projectile/automatic/speargun/attack_self() +/obj/item/weapon/gun/ballistic/automatic/speargun/attack_self() return -/obj/item/weapon/gun/projectile/automatic/speargun/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/speargun/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/automatic/speargun/attackby(obj/item/A, mob/user, params) var/num_loaded = magazine.attackby(A, user, params, 1) if(num_loaded) user << "You load [num_loaded] spear\s into \the [src]." diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm similarity index 74% rename from code/modules/projectiles/guns/projectile/pistol.dm rename to code/modules/projectiles/guns/ballistic/pistol.dm index 2d04fe2ef5d..9e1066e6f59 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -1,76 +1,76 @@ -/obj/item/weapon/gun/projectile/automatic/pistol - name = "stechkin pistol" - desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." - icon_state = "pistol" - w_class = 2 - origin_tech = "combat=3;materials=2;syndicate=4" - mag_type = /obj/item/ammo_box/magazine/m10mm - can_suppress = 1 - burst_size = 1 - fire_delay = 0 - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/pistol/update_icon() - ..() - icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - return - -/obj/item/weapon/gun/projectile/automatic/pistol/m1911 - name = "\improper M1911" - desc = "A classic .45 handgun with a small magazine capacity." - icon_state = "m1911" - w_class = 3 - mag_type = /obj/item/ammo_box/magazine/m45 - can_suppress = 0 - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle - name = "desert eagle" - desc = "A robust .50 AE handgun." - icon_state = "deagle" - force = 14 - mag_type = /obj/item/ammo_box/magazine/m50 - can_suppress = 0 - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon() - ..() - icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold - desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." - icon_state = "deagleg" - item_state = "deagleg" - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo - desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo." - icon_state = "deaglecamo" - item_state = "deagleg" - -/obj/item/weapon/gun/projectile/automatic/pistol/APS - name = "stechkin APS pistol" - desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo." - icon_state = "aps" - w_class = 3 - origin_tech = "combat=3;materials=2;syndicate=3" - mag_type = /obj/item/ammo_box/magazine/pistolm9mm - can_suppress = 0 - burst_size = 3 - fire_delay = 2 - actions_types = list(/datum/action/item_action/toggle_firemode) - -/obj/item/weapon/gun/projectile/automatic/pistol/stickman - name = "flat gun" - desc = "A 2 dimensional gun.. what?" - icon_state = "flatgun" - origin_tech = "combat=3;materials=2;abductor=3" - -/obj/item/weapon/gun/projectile/automatic/pistol/stickman/pickup(mob/living/user) - user << "As you try to pick up [src], it slips out of your grip.." - if(prob(50)) - user << "..and vanishes from your vision! Where the hell did it go?" - user.unEquip(src) - qdel(src) - user.update_icons() - else - user << "..and falls into view. Whew, that was a close one." - user.unEquip(src) - +/obj/item/weapon/gun/ballistic/automatic/pistol + name = "stechkin pistol" + desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." + icon_state = "pistol" + w_class = 2 + origin_tech = "combat=3;materials=2;syndicate=4" + mag_type = /obj/item/ammo_box/magazine/m10mm + can_suppress = 1 + burst_size = 1 + fire_delay = 0 + actions_types = list() + +/obj/item/weapon/gun/ballistic/automatic/pistol/update_icon() + ..() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + return + +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911 + name = "\improper M1911" + desc = "A classic .45 handgun with a small magazine capacity." + icon_state = "m1911" + w_class = 3 + mag_type = /obj/item/ammo_box/magazine/m45 + can_suppress = 0 + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle + name = "desert eagle" + desc = "A robust .50 AE handgun." + icon_state = "deagle" + force = 14 + mag_type = /obj/item/ammo_box/magazine/m50 + can_suppress = 0 + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/update_icon() + ..() + icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold + desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." + icon_state = "deagleg" + item_state = "deagleg" + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo + desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo." + icon_state = "deaglecamo" + item_state = "deagleg" + +/obj/item/weapon/gun/ballistic/automatic/pistol/APS + name = "stechkin APS pistol" + desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo." + icon_state = "aps" + w_class = 3 + origin_tech = "combat=3;materials=2;syndicate=3" + mag_type = /obj/item/ammo_box/magazine/pistolm9mm + can_suppress = 0 + burst_size = 3 + fire_delay = 2 + actions_types = list(/datum/action/item_action/toggle_firemode) + +/obj/item/weapon/gun/ballistic/automatic/pistol/stickman + name = "flat gun" + desc = "A 2 dimensional gun.. what?" + icon_state = "flatgun" + origin_tech = "combat=3;materials=2;abductor=3" + +/obj/item/weapon/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user) + user << "As you try to pick up [src], it slips out of your grip.." + if(prob(50)) + user << "..and vanishes from your vision! Where the hell did it go?" + user.unEquip(src) + qdel(src) + user.update_icons() + else + user << "..and falls into view. Whew, that was a close one." + user.unEquip(src) + diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm similarity index 77% rename from code/modules/projectiles/guns/projectile/revolver.dm rename to code/modules/projectiles/guns/ballistic/revolver.dm index fdd8b765f67..0882277de8f 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -1,373 +1,370 @@ -/obj/item/weapon/gun/projectile/revolver - name = "\improper .357 revolver" - desc = "A suspicious revolver. Uses .357 ammo." //usually used by syndicates - icon_state = "revolver" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder - origin_tech = "combat=3;materials=2" - -/obj/item/weapon/gun/projectile/revolver/New() - ..() - if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - verbs -= /obj/item/weapon/gun/projectile/revolver/verb/spin - -/obj/item/weapon/gun/projectile/revolver/chamber_round(var/spin = 1) - if(spin) - chambered = magazine.get_round(1) - else - chambered = magazine.stored_ammo[1] - return - -/obj/item/weapon/gun/projectile/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) - ..() - chamber_round(1) - -/obj/item/weapon/gun/projectile/revolver/process_chamber() - return ..(0, 1) - -/obj/item/weapon/gun/projectile/revolver/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - user << "You load [num_loaded] shell\s into \the [src]." - A.update_icon() - update_icon() - chamber_round(0) - - if(unique_rename) - if(istype(A, /obj/item/weapon/pen)) - rename_weapon(user) - -/obj/item/weapon/gun/projectile/revolver/attack_self(mob/living/user) - var/num_unloaded = 0 - chambered = null - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round(0) - if(CB) - CB.loc = get_turf(src.loc) - CB.SpinAnimation(10, 1) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You unload [num_unloaded] shell\s from [src]." - else - user << "[src] is empty!" - -/obj/item/weapon/gun/projectile/revolver/verb/spin() - set name = "Spin Chamber" - set category = "Object" - set desc = "Click to spin your revolver's chamber." - - var/mob/M = usr - - if(M.stat || !in_range(M,src)) - return - - if(istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - var/obj/item/ammo_box/magazine/internal/cylinder/C = magazine - C.spin() - chamber_round(0) - usr.visible_message("[usr] spins [src]'s chamber.", "You spin [src]'s chamber.") - else - verbs -= /obj/item/weapon/gun/projectile/revolver/verb/spin - - -/obj/item/weapon/gun/projectile/revolver/can_shoot() - return get_ammo(0,0) - -/obj/item/weapon/gun/projectile/revolver/get_ammo(countchambered = 0, countempties = 1) - var/boolets = 0 //mature var names for mature people - if (chambered && countchambered) - boolets++ - if (magazine) - boolets += magazine.ammo_count(countempties) - return boolets - -/obj/item/weapon/gun/projectile/revolver/examine(mob/user) - ..() - user << "[get_ammo(0,0)] of those are live rounds." - -/obj/item/weapon/gun/projectile/revolver/detective - name = "\improper .38 Mars Special" - desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." - icon_state = "detective" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 - unique_rename = 1 - unique_reskin = 1 - -/obj/item/weapon/gun/projectile/revolver/detective/New() - ..() - options["Default"] = "detective" - options["Leopard Spots"] = "detective_leopard" - options["Black Panther"] = "detective_panther" - options["Gold Trim"] = "detective_gold" - options["The Peacemaker"] = "detective_peacemaker" - options["Cancel"] = null - -/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") - if(magazine.caliber != initial(magazine.caliber)) - if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 - playsound(user, fire_sound, 50, 1) - user << "[src] blows up in your face!" - user.take_bodypart_damage(0,20) - user.unEquip(src) - return 0 - ..() - -/obj/item/weapon/gun/projectile/revolver/detective/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/weapon/screwdriver)) - if(magazine.caliber == "38") - user << "You begin to reinforce the barrel of [src]..." - if(magazine.ammo_count()) - afterattack(user, user) //you know the drill - user.visible_message("[src] goes off!", "[src] goes off in your face!") - return - if(do_after(user, 30/A.toolspeed, target = src)) - if(magazine.ammo_count()) - user << "You can't modify it!" - return - magazine.caliber = "357" - desc = "The barrel and chamber assembly seems to have been modified." - user << "You reinforce the barrel of [src]. Now it will fire .357 rounds." - else - user << "You begin to revert the modifications to [src]..." - if(magazine.ammo_count()) - afterattack(user, user) //and again - user.visible_message("[src] goes off!", "[src] goes off in your face!") - return - if(do_after(user, 30/A.toolspeed, target = src)) - if(magazine.ammo_count()) - user << "You can't modify it!" - return - magazine.caliber = "38" - desc = initial(desc) - user << "You remove the modifications on [src]. Now it will fire .38 rounds." - - -/obj/item/weapon/gun/projectile/revolver/mateba - name = "\improper Unica 6 auto-revolver" - desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." - icon_state = "mateba" - -/obj/item/weapon/gun/projectile/revolver/golden - name = "\improper Golden revolver" - desc = "This ain't no game, ain't never been no show, And I'll gladly gun down the oldest lady you know. Uses .357 ammo." - icon_state = "goldrevolver" - fire_sound = 'sound/weapons/resonator_blast.ogg' - recoil = 8 - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/revolver/nagant - name = "nagant revolver" - desc = "An old model of revolver that originated in Russia. Able to be suppressed. Uses 7.62x38mmR ammo." - icon_state = "nagant" - origin_tech = "combat=3" - can_suppress = 1 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 - - -// A gun to play Russian Roulette! -// You can spin the chamber to randomize the position of the bullet. - -/obj/item/weapon/gun/projectile/revolver/russian - name = "\improper russian revolver" - desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism requiring you to spin the chamber before each trigger pull." - origin_tech = "combat=2;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/rus357 - var/spun = 0 - -/obj/item/weapon/gun/projectile/revolver/russian/New() - ..() - Spin() - update_icon() - -/obj/item/weapon/gun/projectile/revolver/russian/proc/Spin() - chambered = null - var/random = rand(1, magazine.max_ammo) - if(random <= get_ammo(0,0)) - chamber_round() - spun = 1 - -/obj/item/weapon/gun/projectile/revolver/russian/attackby(obj/item/A, mob/user, params) - var/num_loaded = ..() - if(num_loaded) - user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") - else - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - if(get_ammo() > 0) - Spin() - update_icon() - A.update_icon() - return - -/obj/item/weapon/gun/projectile/revolver/russian/attack_self(mob/user) - if(!spun && can_shoot()) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - Spin() - else - var/num_unloaded = 0 - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round() - chambered = null - CB.loc = get_turf(src.loc) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You unload [num_unloaded] shell\s from [src]." - else - user << "[src] is empty." - -/obj/item/weapon/gun/projectile/revolver/russian/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) - if(flag) - if(!(target in user.contents) && ismob(target)) - if(user.a_intent == "harm") // Flogging action - return - - if(isliving(user)) - if(!can_trigger_gun(user)) - return - if(target != user) - if(ismob(target)) - user << "A mechanism prevents you from shooting anyone but yourself!" - return - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(!spun) - user << "You need to spin the revolver's chamber first!" - return - - spun = 0 - - if(chambered) - var/obj/item/ammo_casing/AC = chambered - if(AC.fire(user, user)) - playsound(user, fire_sound, 50, 1) - var/zone = check_zone(user.zone_selected) - var/obj/item/bodypart/affecting = H.get_bodypart(zone) - if(zone == "head" || zone == "eyes" || zone == "mouth") - shoot_self(user, affecting) - else - user.visible_message("[user.name] cowardly fires [src] at \his [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") - return - - user.visible_message("*click*") - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - -/obj/item/weapon/gun/projectile/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") - user.apply_damage(300, BRUTE, affecting) - user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!") - -/obj/item/weapon/gun/projectile/revolver/russian/soul - name = "cursed russian revolver" - desc = "To play with this revolver requires wagering your very soul." - -/obj/item/weapon/gun/projectile/revolver/russian/soul/shoot_self(mob/living/user) - ..() - var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src)) - if(!SS.transfer_soul("FORCE", user)) //Something went wrong - qdel(SS) - return - user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!") - - - -///////////////////////////// -// DOUBLE BARRELED SHOTGUN // -///////////////////////////// - -/obj/item/weapon/gun/projectile/revolver/doublebarrel - name = "double-barreled shotgun" - desc = "A true classic." - icon_state = "dshotgun" - item_state = "shotgun" - w_class = 4 - force = 10 - flags = CONDUCT - slot_flags = SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/shot/dual - sawn_desc = "Omar's coming!" - unique_rename = 1 - unique_reskin = 1 - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/New() - ..() - options["Default"] = "dshotgun" - options["Dark Red Finish"] = "dshotgun-d" - options["Ash"] = "dshotgun-f" - options["Faded Grey"] = "dshotgun-g" - options["Maple"] = "dshotgun-l" - options["Rosewood"] = "dshotgun-p" - options["Cancel"] = null - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) - chamber_round() - if(istype(A, /obj/item/weapon/melee/energy)) - var/obj/item/weapon/melee/energy/W = A - if(W.active) - sawoff(user) - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) - sawoff(user) - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user) - var/num_unloaded = 0 - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round(0) - chambered = null - CB.loc = get_turf(src.loc) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You break open \the [src] and unload [num_unloaded] shell\s." - else - user << "[src] is empty!" - - - - -// IMPROVISED SHOTGUN // - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised - name = "improvised shotgun" - desc = "Essentially a tube that aims shotgun shells." - icon_state = "ishotgun" - item_state = "shotgun" - w_class = 4 - force = 10 - slot_flags = null - mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised - sawn_desc = "I'm just here for the gasoline." - unique_rename = 0 - unique_reskin = 0 - var/slung = 0 - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/stack/cable_coil) && !sawn_state) - var/obj/item/stack/cable_coil/C = A - if(C.use(10)) - slot_flags = SLOT_BACK - user << "You tie the lengths of cable to the shotgun, making a sling." - slung = 1 - update_icon() - else - user << "You need at least ten lengths of cable if you want to make a sling!" - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/update_icon() - ..() - if(slung) - icon_state += "sling" - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/sawoff(mob/user) - . = ..() - if(. && slung) //sawing off the gun removes the sling - new /obj/item/stack/cable_coil(get_turf(src), 10) - slung = 0 - update_icon() +/obj/item/weapon/gun/ballistic/revolver + name = "\improper .357 revolver" + desc = "A suspicious revolver. Uses .357 ammo." //usually used by syndicates + icon_state = "revolver" + mag_type = /obj/item/ammo_box/magazine/internal/cylinder + origin_tech = "combat=3;materials=2" + casing_ejector = 0 + +/obj/item/weapon/gun/ballistic/revolver/New() + ..() + if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) + verbs -= /obj/item/weapon/gun/ballistic/revolver/verb/spin + +/obj/item/weapon/gun/ballistic/revolver/chamber_round(spin = 1) + if(spin) + chambered = magazine.get_round(1) + else + chambered = magazine.stored_ammo[1] + +/obj/item/weapon/gun/ballistic/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) + ..() + chamber_round(1) + +/obj/item/weapon/gun/ballistic/revolver/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + var/num_loaded = magazine.attackby(A, user, params, 1) + if(num_loaded) + user << "You load [num_loaded] shell\s into \the [src]." + A.update_icon() + update_icon() + chamber_round(0) + + if(unique_rename) + if(istype(A, /obj/item/weapon/pen)) + rename_weapon(user) + +/obj/item/weapon/gun/ballistic/revolver/attack_self(mob/living/user) + var/num_unloaded = 0 + chambered = null + while (get_ammo() > 0) + var/obj/item/ammo_casing/CB + CB = magazine.get_round(0) + if(CB) + CB.loc = get_turf(src.loc) + CB.SpinAnimation(10, 1) + CB.update_icon() + num_unloaded++ + if (num_unloaded) + user << "You unload [num_unloaded] shell\s from [src]." + else + user << "[src] is empty!" + +/obj/item/weapon/gun/ballistic/revolver/verb/spin() + set name = "Spin Chamber" + set category = "Object" + set desc = "Click to spin your revolver's chamber." + + var/mob/M = usr + + if(M.stat || !in_range(M,src)) + return + + if(istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) + var/obj/item/ammo_box/magazine/internal/cylinder/C = magazine + C.spin() + chamber_round(0) + usr.visible_message("[usr] spins [src]'s chamber.", "You spin [src]'s chamber.") + else + verbs -= /obj/item/weapon/gun/ballistic/revolver/verb/spin + + +/obj/item/weapon/gun/ballistic/revolver/can_shoot() + return get_ammo(0,0) + +/obj/item/weapon/gun/ballistic/revolver/get_ammo(countchambered = 0, countempties = 1) + var/boolets = 0 //mature var names for mature people + if (chambered && countchambered) + boolets++ + if (magazine) + boolets += magazine.ammo_count(countempties) + return boolets + +/obj/item/weapon/gun/ballistic/revolver/examine(mob/user) + ..() + user << "[get_ammo(0,0)] of those are live rounds." + +/obj/item/weapon/gun/ballistic/revolver/detective + name = "\improper .38 Mars Special" + desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." + icon_state = "detective" + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 + unique_rename = 1 + unique_reskin = 1 + +/obj/item/weapon/gun/ballistic/revolver/detective/New() + ..() + options["Default"] = "detective" + options["Leopard Spots"] = "detective_leopard" + options["Black Panther"] = "detective_panther" + options["Gold Trim"] = "detective_gold" + options["The Peacemaker"] = "detective_peacemaker" + options["Cancel"] = null + +/obj/item/weapon/gun/ballistic/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") + if(magazine.caliber != initial(magazine.caliber)) + if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 + playsound(user, fire_sound, 50, 1) + user << "[src] blows up in your face!" + user.take_bodypart_damage(0,20) + user.unEquip(src) + return 0 + ..() + +/obj/item/weapon/gun/ballistic/revolver/detective/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/weapon/screwdriver)) + if(magazine.caliber == "38") + user << "You begin to reinforce the barrel of [src]..." + if(magazine.ammo_count()) + afterattack(user, user) //you know the drill + user.visible_message("[src] goes off!", "[src] goes off in your face!") + return + if(do_after(user, 30/A.toolspeed, target = src)) + if(magazine.ammo_count()) + user << "You can't modify it!" + return + magazine.caliber = "357" + desc = "The barrel and chamber assembly seems to have been modified." + user << "You reinforce the barrel of [src]. Now it will fire .357 rounds." + else + user << "You begin to revert the modifications to [src]..." + if(magazine.ammo_count()) + afterattack(user, user) //and again + user.visible_message("[src] goes off!", "[src] goes off in your face!") + return + if(do_after(user, 30/A.toolspeed, target = src)) + if(magazine.ammo_count()) + user << "You can't modify it!" + return + magazine.caliber = "38" + desc = initial(desc) + user << "You remove the modifications on [src]. Now it will fire .38 rounds." + + +/obj/item/weapon/gun/ballistic/revolver/mateba + name = "\improper Unica 6 auto-revolver" + desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." + icon_state = "mateba" + +/obj/item/weapon/gun/ballistic/revolver/golden + name = "\improper Golden revolver" + desc = "This ain't no game, ain't never been no show, And I'll gladly gun down the oldest lady you know. Uses .357 ammo." + icon_state = "goldrevolver" + fire_sound = 'sound/weapons/resonator_blast.ogg' + recoil = 8 + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/revolver/nagant + name = "nagant revolver" + desc = "An old model of revolver that originated in Russia. Able to be suppressed. Uses 7.62x38mmR ammo." + icon_state = "nagant" + origin_tech = "combat=3" + can_suppress = 1 + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 + + +// A gun to play Russian Roulette! +// You can spin the chamber to randomize the position of the bullet. + +/obj/item/weapon/gun/ballistic/revolver/russian + name = "\improper russian revolver" + desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism requiring you to spin the chamber before each trigger pull." + origin_tech = "combat=2;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/rus357 + var/spun = 0 + +/obj/item/weapon/gun/ballistic/revolver/russian/New() + ..() + Spin() + update_icon() + +/obj/item/weapon/gun/ballistic/revolver/russian/proc/Spin() + chambered = null + var/random = rand(1, magazine.max_ammo) + if(random <= get_ammo(0,0)) + chamber_round() + spun = 1 + +/obj/item/weapon/gun/ballistic/revolver/russian/attackby(obj/item/A, mob/user, params) + var/num_loaded = ..() + if(num_loaded) + user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") + else + user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") + if(get_ammo() > 0) + Spin() + update_icon() + A.update_icon() + return + +/obj/item/weapon/gun/ballistic/revolver/russian/attack_self(mob/user) + if(!spun && can_shoot()) + user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") + Spin() + else + var/num_unloaded = 0 + while (get_ammo() > 0) + var/obj/item/ammo_casing/CB + CB = magazine.get_round() + chambered = null + CB.loc = get_turf(src.loc) + CB.update_icon() + num_unloaded++ + if (num_unloaded) + user << "You unload [num_unloaded] shell\s from [src]." + else + user << "[src] is empty." + +/obj/item/weapon/gun/ballistic/revolver/russian/afterattack(atom/target, mob/living/user, flag, params) + if(flag) + if(!(target in user.contents) && ismob(target)) + if(user.a_intent == "harm") // Flogging action + return + + if(isliving(user)) + if(!can_trigger_gun(user)) + return + if(target != user) + if(ismob(target)) + user << "A mechanism prevents you from shooting anyone but yourself!" + return + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(!spun) + user << "You need to spin the revolver's chamber first!" + return + + spun = 0 + + if(chambered) + var/obj/item/ammo_casing/AC = chambered + if(AC.fire_casing(user, user)) + playsound(user, fire_sound, 50, 1) + var/zone = check_zone(user.zone_selected) + var/obj/item/bodypart/affecting = H.get_bodypart(zone) + if(zone == "head" || zone == "eyes" || zone == "mouth") + shoot_self(user, affecting) + else + user.visible_message("[user.name] cowardly fires [src] at \his [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") + return + + user.visible_message("*click*") + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + +/obj/item/weapon/gun/ballistic/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") + user.apply_damage(300, BRUTE, affecting) + user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!") + +/obj/item/weapon/gun/ballistic/revolver/russian/soul + name = "cursed russian revolver" + desc = "To play with this revolver requires wagering your very soul." + +/obj/item/weapon/gun/ballistic/revolver/russian/soul/shoot_self(mob/living/user) + ..() + var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src)) + if(!SS.transfer_soul("FORCE", user)) //Something went wrong + qdel(SS) + return + user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!") + + + +///////////////////////////// +// DOUBLE BARRELED SHOTGUN // +///////////////////////////// + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel + name = "double-barreled shotgun" + desc = "A true classic." + icon_state = "dshotgun" + item_state = "shotgun" + w_class = 4 + force = 10 + flags = CONDUCT + slot_flags = SLOT_BACK + mag_type = /obj/item/ammo_box/magazine/internal/shot/dual + sawn_desc = "Omar's coming!" + unique_rename = 1 + unique_reskin = 1 + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/New() + ..() + options["Default"] = "dshotgun" + options["Dark Red Finish"] = "dshotgun-d" + options["Ash"] = "dshotgun-f" + options["Faded Grey"] = "dshotgun-g" + options["Maple"] = "dshotgun-l" + options["Rosewood"] = "dshotgun-p" + options["Cancel"] = null + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) + chamber_round() + if(istype(A, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/W = A + if(W.active) + sawoff(user) + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) + sawoff(user) + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/attack_self(mob/living/user) + var/num_unloaded = 0 + while (get_ammo() > 0) + var/obj/item/ammo_casing/CB + CB = magazine.get_round(0) + chambered = null + CB.loc = get_turf(src.loc) + CB.update_icon() + num_unloaded++ + if (num_unloaded) + user << "You break open \the [src] and unload [num_unloaded] shell\s." + else + user << "[src] is empty!" + + + + +// IMPROVISED SHOTGUN // + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised + name = "improvised shotgun" + desc = "Essentially a tube that aims shotgun shells." + icon_state = "ishotgun" + item_state = "shotgun" + w_class = 4 + force = 10 + slot_flags = null + mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised + sawn_desc = "I'm just here for the gasoline." + unique_rename = 0 + unique_reskin = 0 + var/slung = 0 + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/stack/cable_coil) && !sawn_state) + var/obj/item/stack/cable_coil/C = A + if(C.use(10)) + slot_flags = SLOT_BACK + user << "You tie the lengths of cable to the shotgun, making a sling." + slung = 1 + update_icon() + else + user << "You need at least ten lengths of cable if you want to make a sling!" + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/update_icon() + ..() + if(slung) + icon_state += "sling" + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/sawoff(mob/user) + . = ..() + if(. && slung) //sawing off the gun removes the sling + new /obj/item/stack/cable_coil(get_turf(src), 10) + slung = 0 + update_icon() diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm similarity index 65% rename from code/modules/projectiles/guns/projectile/shotgun.dm rename to code/modules/projectiles/guns/ballistic/shotgun.dm index cd3834253ef..15eaf9a0764 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -1,212 +1,213 @@ -/obj/item/weapon/gun/projectile/shotgun - name = "shotgun" - desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." - icon_state = "shotgun" - item_state = "shotgun" - w_class = 4 - force = 10 - flags = CONDUCT - slot_flags = SLOT_BACK - origin_tech = "combat=4;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/shot - var/recentpump = 0 // to prevent spammage - -/obj/item/weapon/gun/projectile/shotgun/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - user << "You load [num_loaded] shell\s into \the [src]!" - A.update_icon() - update_icon() - -/obj/item/weapon/gun/projectile/shotgun/process_chamber() - return ..(0, 0) - -/obj/item/weapon/gun/projectile/shotgun/chamber_round() - return - -/obj/item/weapon/gun/projectile/shotgun/can_shoot() - if(!chambered) - return 0 - return (chambered.BB ? 1 : 0) - -/obj/item/weapon/gun/projectile/shotgun/attack_self(mob/living/user) - if(recentpump) - return - pump(user) - recentpump = 1 - spawn(10) - recentpump = 0 - return - -/obj/item/weapon/gun/projectile/shotgun/blow_up(mob/user) - . = 0 - if(chambered && chambered.BB) - process_fire(user, user,0) - . = 1 - -/obj/item/weapon/gun/projectile/shotgun/proc/pump(mob/M) - playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) - pump_unload(M) - pump_reload(M) - update_icon() //I.E. fix the desc - return 1 - -/obj/item/weapon/gun/projectile/shotgun/proc/pump_unload(mob/M) - if(chambered)//We have a shell in the chamber - chambered.loc = get_turf(src)//Eject casing - chambered.SpinAnimation(5, 1) - chambered = null - -/obj/item/weapon/gun/projectile/shotgun/proc/pump_reload(mob/M) - if(!magazine.ammo_count()) - return 0 - var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. - chambered = AC - - -/obj/item/weapon/gun/projectile/shotgun/examine(mob/user) - ..() - if (chambered) - user << "A [chambered.BB ? "live" : "spent"] one is in the chamber." - -/obj/item/weapon/gun/projectile/shotgun/lethal - mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal - -// RIOT SHOTGUN // - -/obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory - name = "riot shotgun" - desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." - icon_state = "riotshotgun" - mag_type = /obj/item/ammo_box/magazine/internal/shot/riot - sawn_desc = "Come with me if you want to live." - -/obj/item/weapon/gun/projectile/shotgun/riot/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) - sawoff(user) - if(istype(A, /obj/item/weapon/melee/energy)) - var/obj/item/weapon/melee/energy/W = A - if(W.active) - sawoff(user) - -/////////////////////// -// BOLT ACTION RIFLE // -/////////////////////// - -/obj/item/weapon/gun/projectile/shotgun/boltaction - name = "\improper Mosin Nagant" - desc = "This piece of junk looks like something that could have been used 700 years ago. It feels slightly moist." - icon_state = "moistnugget" - item_state = "moistnugget" - slot_flags = 0 //no SLOT_BACK sprite, alas - mag_type = /obj/item/ammo_box/magazine/internal/boltaction - var/bolt_open = 0 - -/obj/item/weapon/gun/projectile/shotgun/boltaction/pump(mob/M) - playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) - if(bolt_open) - pump_reload(M) - else - pump_unload(M) - bolt_open = !bolt_open - update_icon() //I.E. fix the desc - return 1 - -/obj/item/weapon/gun/projectile/shotgun/boltaction/attackby(obj/item/A, mob/user, params) - if(!bolt_open) - user << "The bolt is closed!" - return - . = ..() - -/obj/item/weapon/gun/projectile/shotgun/boltaction/examine(mob/user) - ..() - user << "The bolt is [bolt_open ? "open" : "closed"]." - - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted - name = "enchanted bolt action rifle" - desc = "Careful not to lose your head." - var/guns_left = 30 - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/New() - ..() - bolt_open = 1 - pump() - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/dropped() - ..() - guns_left = 0 - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) - ..() - if(guns_left) - var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new - GUN.guns_left = src.guns_left - 1 - user.drop_item() - user.swap_hand() - user.put_in_hands(GUN) - else - user.drop_item() - src.throw_at_fast(pick(oview(7,get_turf(user))),1,1) - user.visible_message("[user] tosses aside the spent rifle!") - -// Automatic Shotguns// - -/obj/item/weapon/gun/projectile/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) - ..() - src.pump(user) - -/obj/item/weapon/gun/projectile/shotgun/automatic/combat - name = "combat shotgun" - desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." - icon_state = "cshotgun" - origin_tech = "combat=6" - mag_type = /obj/item/ammo_box/magazine/internal/shot/com - w_class = 5 - -//Dual Feed Shotgun - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube - name = "cycler shotgun" - desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." - icon_state = "cycler" - origin_tech = "combat=4;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/shot/tube - w_class = 5 - var/toggled = 0 - var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/New() - ..() - if (!alternate_magazine) - alternate_magazine = new mag_type(src) - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/attack_self(mob/living/user) - if(!chambered && magazine.contents.len) - pump() - else - toggle_tube(user) - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) - var/current_mag = magazine - var/alt_mag = alternate_magazine - magazine = alt_mag - alternate_magazine = current_mag - toggled = !toggled - if(toggled) - user << "You switch to tube B." - else - user << "You switch to tube A." - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/AltClick(mob/living/user) - if(user.incapacitated() || !Adjacent(user) || !istype(user)) - return - pump() - - -// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm +/obj/item/weapon/gun/ballistic/shotgun + name = "shotgun" + desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." + icon_state = "shotgun" + item_state = "shotgun" + w_class = 4 + force = 10 + flags = CONDUCT + slot_flags = SLOT_BACK + origin_tech = "combat=4;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/shot + casing_ejector = 0 + var/recentpump = 0 // to prevent spammage + +/obj/item/weapon/gun/ballistic/shotgun/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + var/num_loaded = magazine.attackby(A, user, params, 1) + if(num_loaded) + user << "You load [num_loaded] shell\s into \the [src]!" + A.update_icon() + update_icon() + +/obj/item/weapon/gun/ballistic/shotgun/process_chamber(empty_chamber = 0) + return ..() //changed argument value + +/obj/item/weapon/gun/ballistic/shotgun/chamber_round() + return + +/obj/item/weapon/gun/ballistic/shotgun/can_shoot() + if(!chambered) + return 0 + return (chambered.BB ? 1 : 0) + +/obj/item/weapon/gun/ballistic/shotgun/attack_self(mob/living/user) + if(recentpump) + return + pump(user) + recentpump = 1 + spawn(10) + recentpump = 0 + return + +/obj/item/weapon/gun/ballistic/shotgun/blow_up(mob/user) + . = 0 + if(chambered && chambered.BB) + process_fire(user, user,0) + . = 1 + +/obj/item/weapon/gun/ballistic/shotgun/proc/pump(mob/M) + playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) + pump_unload(M) + pump_reload(M) + update_icon() //I.E. fix the desc + return 1 + +/obj/item/weapon/gun/ballistic/shotgun/proc/pump_unload(mob/M) + if(chambered)//We have a shell in the chamber + chambered.loc = get_turf(src)//Eject casing + chambered.SpinAnimation(5, 1) + chambered = null + +/obj/item/weapon/gun/ballistic/shotgun/proc/pump_reload(mob/M) + if(!magazine.ammo_count()) + return 0 + var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. + chambered = AC + + +/obj/item/weapon/gun/ballistic/shotgun/examine(mob/user) + ..() + if (chambered) + user << "A [chambered.BB ? "live" : "spent"] one is in the chamber." + +/obj/item/weapon/gun/ballistic/shotgun/lethal + mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal + +// RIOT SHOTGUN // + +/obj/item/weapon/gun/ballistic/shotgun/riot //for spawn in the armory + name = "riot shotgun" + desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." + icon_state = "riotshotgun" + mag_type = /obj/item/ammo_box/magazine/internal/shot/riot + sawn_desc = "Come with me if you want to live." + +/obj/item/weapon/gun/ballistic/shotgun/riot/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) + sawoff(user) + if(istype(A, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/W = A + if(W.active) + sawoff(user) + +/////////////////////// +// BOLT ACTION RIFLE // +/////////////////////// + +/obj/item/weapon/gun/ballistic/shotgun/boltaction + name = "\improper Mosin Nagant" + desc = "This piece of junk looks like something that could have been used 700 years ago. It feels slightly moist." + icon_state = "moistnugget" + item_state = "moistnugget" + slot_flags = 0 //no SLOT_BACK sprite, alas + mag_type = /obj/item/ammo_box/magazine/internal/boltaction + var/bolt_open = 0 + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/pump(mob/M) + playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) + if(bolt_open) + pump_reload(M) + else + pump_unload(M) + bolt_open = !bolt_open + update_icon() //I.E. fix the desc + return 1 + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/attackby(obj/item/A, mob/user, params) + if(!bolt_open) + user << "The bolt is closed!" + return + . = ..() + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/examine(mob/user) + ..() + user << "The bolt is [bolt_open ? "open" : "closed"]." + + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted + name = "enchanted bolt action rifle" + desc = "Careful not to lose your head." + var/guns_left = 30 + mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/New() + ..() + bolt_open = 1 + pump() + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/dropped() + ..() + guns_left = 0 + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) + ..() + if(guns_left) + var/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/GUN = new + GUN.guns_left = src.guns_left - 1 + user.drop_item() + user.swap_hand() + user.put_in_hands(GUN) + else + user.drop_item() + src.throw_at_fast(pick(oview(7,get_turf(user))),1,1) + user.visible_message("[user] tosses aside the spent rifle!") + +// Automatic Shotguns// + +/obj/item/weapon/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) + ..() + src.pump(user) + +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat + name = "combat shotgun" + desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." + icon_state = "cshotgun" + origin_tech = "combat=6" + mag_type = /obj/item/ammo_box/magazine/internal/shot/com + w_class = 5 + +//Dual Feed Shotgun + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube + name = "cycler shotgun" + desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." + icon_state = "cycler" + origin_tech = "combat=4;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/shot/tube + w_class = 5 + var/toggled = 0 + var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/New() + ..() + if (!alternate_magazine) + alternate_magazine = new mag_type(src) + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/attack_self(mob/living/user) + if(!chambered && magazine.contents.len) + pump() + else + toggle_tube(user) + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) + var/current_mag = magazine + var/alt_mag = alternate_magazine + magazine = alt_mag + alternate_magazine = current_mag + toggled = !toggled + if(toggled) + user << "You switch to tube B." + else + user << "You switch to tube A." + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user) + if(user.incapacitated() || !Adjacent(user) || !istype(user)) + return + pump() + + +// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm similarity index 62% rename from code/modules/projectiles/guns/projectile/toy.dm rename to code/modules/projectiles/guns/ballistic/toy.dm index 417f13ea9b5..71a10a245d3 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/projectile/automatic/toy +/obj/item/weapon/gun/ballistic/automatic/toy name = "foam force SMG" desc = "A prototype three-round burst toy submachine gun. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' @@ -12,14 +12,12 @@ can_suppress = 0 clumsy_check = 0 needs_permit = 0 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/toy/pistol +/obj/item/weapon/gun/ballistic/automatic/toy/pistol name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." icon_state = "pistol" @@ -31,24 +29,24 @@ fire_delay = 0 actions_types = list() -/obj/item/weapon/gun/projectile/automatic/toy/pistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/update_icon() ..() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot mag_type = /obj/item/ammo_box/magazine/toy/pistol/riot -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/New() +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot/New() magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src) ..() -/obj/item/weapon/gun/projectile/automatic/toy/pistol/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/shotgun/toy +/obj/item/weapon/gun/ballistic/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' @@ -58,16 +56,17 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/toy clumsy_check = 0 needs_permit = 0 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/shotgun/toy/process_chamber() +/obj/item/weapon/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0) ..() if(chambered && !chambered.BB) qdel(chambered) -/obj/item/weapon/gun/projectile/shotgun/toy/unrestricted +/obj/item/weapon/gun/ballistic/shotgun/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/shotgun/toy/crossbow +/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow name = "foam force crossbow" desc = "A weapon favored by many overactive children. Ages 8 and up." icon = 'icons/obj/toy.dmi' @@ -78,31 +77,26 @@ slot_flags = SLOT_BELT w_class = 2 -/obj/item/weapon/gun/projectile/automatic/c20r/toy +/obj/item/weapon/gun/ballistic/automatic/c20r/toy name = "donksoft SMG" desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/smgm45 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/c20r/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - - -/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy +/obj/item/weapon/gun/ballistic/automatic/l6_saw/toy name = "donksoft LMG" desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/m762 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/l6_saw/toy/unrestricted pin = /obj/item/device/firing_pin \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 8e6edf2608a..b5d19b27743 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -16,9 +16,12 @@ var/selfcharge = 0 var/charge_tick = 0 var/charge_delay = 4 + var/use_cyborg_cell = 0 //whether the gun's cell drains the cyborg user's cell to recharge /obj/item/weapon/gun/energy/emp_act(severity) power_supply.use(round(power_supply.charge / severity)) + chambered = null //we empty the chamber + recharge_newshot() //and try to charge a new shot update_icon() @@ -30,11 +33,10 @@ power_supply = new(src) power_supply.give(power_supply.maxcharge) update_ammo_types() + recharge_newshot(1) if(selfcharge) START_PROCESSING(SSobj, src) update_icon() - return - /obj/item/weapon/gun/energy/proc/update_ammo_types() var/obj/item/ammo_casing/energy/shot @@ -62,6 +64,8 @@ if(!power_supply) return power_supply.give(100) + if(!chambered) //if empty chamber we try to charge a new shot + recharge_newshot(1) update_icon() /obj/item/weapon/gun/energy/attack_self(mob/living/user as mob) @@ -69,29 +73,33 @@ select_fire(user) update_icon() -/obj/item/weapon/gun/energy/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) - newshot() //prepare a new shot - ..() - /obj/item/weapon/gun/energy/can_shoot() var/obj/item/ammo_casing/energy/shot = ammo_type[select] return power_supply.charge >= shot.e_cost -/obj/item/weapon/gun/energy/newshot() +/obj/item/weapon/gun/energy/recharge_newshot(no_cyborg_drain) if (!ammo_type || !power_supply) return - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - if(power_supply.charge >= shot.e_cost) //if there's enough power in the power_supply cell... - chambered = shot //...prepare a new shot based on the current ammo type selected - chambered.newshot() - return + if(use_cyborg_cell && !no_cyborg_drain) + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + if(R.cell) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot + if(R.cell.use(shot.e_cost)) //Take power from the borg... + power_supply.give(shot.e_cost) //... to recharge the shot + if(!chambered) + var/obj/item/ammo_casing/energy/AC = ammo_type[select] + if(power_supply.charge >= AC.e_cost) //if there's enough power in the power_supply cell... + chambered = AC //...prepare a new shot based on the current ammo type selected + if(!chambered.BB) + chambered.newshot() /obj/item/weapon/gun/energy/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... var/obj/item/ammo_casing/energy/shot = chambered power_supply.use(shot.e_cost)//... drain the power_supply cell chambered = null //either way, released the prepared shot - return + recharge_newshot() //try to charge a new shot /obj/item/weapon/gun/energy/proc/select_fire(mob/living/user) select++ @@ -102,6 +110,8 @@ fire_delay = shot.delay if (shot.select_name) user << "[src] is now set to [shot.select_name]." + chambered = null + recharge_newshot(1) update_icon() return @@ -126,9 +136,9 @@ add_overlay(image(icon = icon, icon_state = iconState, pixel_x = ammo_x_offset * (i -1))) else add_overlay(image(icon = icon, icon_state = "[icon_state]_charge[ratio]")) - if(F && can_flashlight) + if(gun_light && can_flashlight) var/iconF = "flight" - if(F.on) + if(gun_light.on) iconF = "flight_on" add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) if(itemState) @@ -157,14 +167,6 @@ playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) return (OXYLOSS) -/obj/item/weapon/gun/energy/proc/robocharge() - if(iscyborg(src.loc)) - var/mob/living/silicon/robot/R = src.loc - if(R && R.cell) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot - if(R.cell.use(shot.e_cost)) //Take power from the borg... - power_supply.give(shot.e_cost) //... to recharge the shot - /obj/item/weapon/gun/energy/on_varedit(modified_var) if(modified_var == "selfcharge") if(selfcharge) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/energy_gun.dm similarity index 75% rename from code/modules/projectiles/guns/energy/nuclear.dm rename to code/modules/projectiles/guns/energy/energy_gun.dm index e50f313dedc..0eae9ee65e4 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -1,125 +1,131 @@ -/obj/item/weapon/gun/energy/gun - name = "energy gun" - desc = "A basic hybrid energy gun with two settings: disable and kill." - icon_state = "energy" - item_state = null //so the human update icon uses the icon_state instead. - ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) - origin_tech = "combat=4;magnets=3" - modifystate = 2 - can_flashlight = 1 - ammo_x_offset = 3 - flight_x_offset = 15 - flight_y_offset = 10 - -/obj/item/weapon/gun/energy/gun/mini - name = "miniature energy gun" - desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." - icon_state = "mini" - item_state = "gun" - w_class = 2 - cell_type = /obj/item/weapon/stock_parts/cell{charge = 600; maxcharge = 600} - ammo_x_offset = 2 - charge_sections = 3 - can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update - -/obj/item/weapon/gun/energy/gun/mini/New() - F = new /obj/item/device/flashlight/seclite(src) - ..() - -/obj/item/weapon/gun/energy/gun/mini/update_icon() - ..() - if(F && F.on) - add_overlay("mini-light") - -/obj/item/weapon/gun/energy/gun/hos - name = "\improper X-01 MultiPhase Energy Gun" - desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." - icon_state = "hoslaser" - origin_tech = null - force = 10 - ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) - ammo_x_offset = 4 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/item/weapon/gun/energy/gun/dragnet - name = "\improper DRAGnet" - desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." - icon_state = "dragnet" - origin_tech = "combat=4;magnets=3;bluespace=4" - ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap) - can_flashlight = 0 - ammo_x_offset = 1 - -/obj/item/weapon/gun/energy/gun/dragnet/snare - name = "Energy Snare Launcher" - desc = "Fires an energy snare that slows the target down" - ammo_type = list(/obj/item/ammo_casing/energy/trap) - -/obj/item/weapon/gun/energy/gun/turret - name = "hybrid turret gun" - desc = "A heavy hybrid energy cannon with two settings: Stun and kill." - icon_state = "turretlaser" - item_state = "turretlaser" - slot_flags = null - w_class = 5 - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) - weapon_weight = WEAPON_MEDIUM - can_flashlight = 0 - trigger_guard = TRIGGER_GUARD_NONE - ammo_x_offset = 2 - -/obj/item/weapon/gun/energy/gun/nuclear - name = "advanced energy gun" - desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." - icon_state = "nucgun" - item_state = "nucgun" - origin_tech = "combat=4;magnets=4;powerstorage=4" - charge_delay = 5 - pin = null - can_charge = 0 - ammo_x_offset = 1 - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) - selfcharge = 1 - var/fail_tick = 0 - var/fail_chance = 0 - -/obj/item/weapon/gun/energy/gun/nuclear/process() - if(fail_tick > 0) - fail_tick-- - ..() - -/obj/item/weapon/gun/energy/gun/nuclear/shoot_live_shot() - failcheck() - update_icon() - ..() - -/obj/item/weapon/gun/energy/gun/nuclear/proc/failcheck() - if(prob(fail_chance) && isliving(loc)) - var/mob/living/M = loc - switch(fail_tick) - if(0 to 200) - fail_tick += (2*(fail_chance)) - M.rad_act(40) - M << "Your [name] feels warmer." - if(201 to INFINITY) - SSobj.processing.Remove(src) - M.rad_act(80) - crit_fail = 1 - M << "Your [name]'s reactor overloads!" - -/obj/item/weapon/gun/energy/gun/nuclear/emp_act(severity) - ..() - fail_chance = min(fail_chance + round(15/severity), 100) - -/obj/item/weapon/gun/energy/gun/nuclear/update_icon() - ..() - if(crit_fail) - add_overlay("[icon_state]_fail_3") - else - switch(fail_tick) - if(0) - add_overlay("[icon_state]_fail_0") - if(1 to 150) - add_overlay("[icon_state]_fail_1") - if(151 to INFINITY) - add_overlay("[icon_state]_fail_2") +/obj/item/weapon/gun/energy/e_gun + name = "energy gun" + desc = "A basic hybrid energy gun with two settings: disable and kill." + icon_state = "energy" + item_state = null //so the human update icon uses the icon_state instead. + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) + origin_tech = "combat=4;magnets=3" + modifystate = 1 + can_flashlight = 1 + ammo_x_offset = 3 + flight_x_offset = 15 + flight_y_offset = 10 + +/obj/item/weapon/gun/energy/e_gun/mini + name = "miniature energy gun" + desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." + icon_state = "mini" + item_state = "gun" + w_class = 2 + cell_type = /obj/item/weapon/stock_parts/cell{charge = 600; maxcharge = 600} + ammo_x_offset = 2 + charge_sections = 3 + can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update + +/obj/item/weapon/gun/energy/e_gun/mini/New() + gun_light = new /obj/item/device/flashlight/seclite(src) + ..() + +/obj/item/weapon/gun/energy/e_gun/mini/update_icon() + ..() + if(gun_light && gun_light.on) + add_overlay("mini-light") + +/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser + name = "practice phaser" + desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) + icon_state = "decloner" + +/obj/item/weapon/gun/energy/e_gun/hos + name = "\improper X-01 MultiPhase Energy Gun" + desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." + icon_state = "hoslaser" + origin_tech = null + force = 10 + ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) + ammo_x_offset = 4 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/weapon/gun/energy/e_gun/dragnet + name = "\improper DRAGnet" + desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." + icon_state = "dragnet" + origin_tech = "combat=4;magnets=3;bluespace=4" + ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap) + can_flashlight = 0 + ammo_x_offset = 1 + +/obj/item/weapon/gun/energy/e_gun/dragnet/snare + name = "Energy Snare Launcher" + desc = "Fires an energy snare that slows the target down" + ammo_type = list(/obj/item/ammo_casing/energy/trap) + +/obj/item/weapon/gun/energy/e_gun/turret + name = "hybrid turret gun" + desc = "A heavy hybrid energy cannon with two settings: Stun and kill." + icon_state = "turretlaser" + item_state = "turretlaser" + slot_flags = null + w_class = 5 + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + weapon_weight = WEAPON_MEDIUM + can_flashlight = 0 + trigger_guard = TRIGGER_GUARD_NONE + ammo_x_offset = 2 + +/obj/item/weapon/gun/energy/e_gun/nuclear + name = "advanced energy gun" + desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." + icon_state = "nucgun" + item_state = "nucgun" + origin_tech = "combat=4;magnets=4;powerstorage=4" + charge_delay = 5 + pin = null + can_charge = 0 + ammo_x_offset = 1 + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) + selfcharge = 1 + var/fail_tick = 0 + var/fail_chance = 0 + +/obj/item/weapon/gun/energy/e_gun/nuclear/process() + if(fail_tick > 0) + fail_tick-- + ..() + +/obj/item/weapon/gun/energy/e_gun/nuclear/shoot_live_shot() + failcheck() + update_icon() + ..() + +/obj/item/weapon/gun/energy/e_gun/nuclear/proc/failcheck() + if(prob(fail_chance) && isliving(loc)) + var/mob/living/M = loc + switch(fail_tick) + if(0 to 200) + fail_tick += (2*(fail_chance)) + M.rad_act(40) + M << "Your [name] feels warmer." + if(201 to INFINITY) + SSobj.processing.Remove(src) + M.rad_act(80) + crit_fail = 1 + M << "Your [name]'s reactor overloads!" + +/obj/item/weapon/gun/energy/e_gun/nuclear/emp_act(severity) + ..() + fail_chance = min(fail_chance + round(15/severity), 100) + +/obj/item/weapon/gun/energy/e_gun/nuclear/update_icon() + ..() + if(crit_fail) + add_overlay("[icon_state]_fail_3") + else + switch(fail_tick) + if(0) + add_overlay("[icon_state]_fail_0") + if(1 to 150) + add_overlay("[icon_state]_fail_1") + if(151 to INFINITY) + add_overlay("[icon_state]_fail_2") diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 005bf05c30b..36d1bdaddeb 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -116,6 +116,7 @@ /obj/item/weapon/gun/energy/kinetic_accelerator/proc/reload() power_supply.give(500) + recharge_newshot(1) if(!suppressed) playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) else @@ -128,9 +129,9 @@ if(!can_shoot()) add_overlay("kineticgun_empty") - if(F && can_flashlight) + if(gun_light && can_flashlight) var/iconF = "flight" - if(F.on) + if(gun_light.on) iconF = "flight_on" add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 5299da26e05..eabe44fe6a8 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -47,10 +47,7 @@ can_charge = 0 desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" origin_tech = null - -/obj/item/weapon/gun/energy/laser/cyborg/newshot() - ..() - robocharge() + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/laser/cyborg/emp_act() return diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 4d42d08c3ae..eb8ca9a63c5 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -122,7 +122,6 @@ desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff." icon_state = "plasmacutter" item_state = "plasmacutter" - modifystate = -1 origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" ammo_type = list(/obj/item/ammo_casing/energy/plasma) flags = CONDUCT | OPENCONTAINER @@ -142,10 +141,12 @@ var/obj/item/stack/sheet/S = A S.use(1) power_supply.give(1000) + recharge_newshot(1) user << "You insert [A] in [src], recharging it." else if(istype(A, /obj/item/weapon/ore/plasma)) qdel(A) power_supply.give(500) + recharge_newshot(1) user << "You insert [A] in [src], recharging it." else ..() @@ -214,6 +215,7 @@ cell_type = "/obj/item/weapon/stock_parts/cell/secborg" ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) can_charge = 0 + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/printer/update_icon() return @@ -221,10 +223,6 @@ /obj/item/weapon/gun/energy/printer/emp_act() return -/obj/item/weapon/gun/energy/printer/newshot() - ..() - robocharge() - /obj/item/weapon/gun/energy/temperature name = "temperature gun" icon_state = "freezegun" diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index e80ea7e574f..90eb413a9e8 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -18,7 +18,7 @@ pin = null shaded_charge = 1 -/obj/item/weapon/gun/energy/gun/advtaser +/obj/item/weapon/gun/energy/e_gun/advtaser name = "hybrid taser" desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." icon_state = "advtaser" @@ -26,15 +26,12 @@ origin_tech = "combat=4" ammo_x_offset = 2 -/obj/item/weapon/gun/energy/gun/advtaser/cyborg +/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg name = "cyborg taser" desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." can_flashlight = 0 can_charge = 0 - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg/newshot() - ..() - robocharge() + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/disabler name = "disabler" @@ -48,7 +45,5 @@ name = "cyborg disabler" desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating." can_charge = 0 + use_cyborg_cell = 1 -/obj/item/weapon/gun/energy/disabler/cyborg/newshot() - ..() - robocharge() diff --git a/code/modules/projectiles/guns/grenade_launcher.dm b/code/modules/projectiles/guns/grenade_launcher.dm index bbf934019b2..f18db415d1a 100644 --- a/code/modules/projectiles/guns/grenade_launcher.dm +++ b/code/modules/projectiles/guns/grenade_launcher.dm @@ -36,7 +36,7 @@ if(grenades.len) fire_grenade(target,user) else - usr << "The grenade launcher is empty." + user << "The grenade launcher is empty." /obj/item/weapon/gun/grenadelauncher/proc/fire_grenade(atom/target, mob/user) user.visible_message("[user] fired a grenade!", \ diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 0f85660da60..aae34edbd4f 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -23,7 +23,6 @@ righthand_file = 'icons/mob/inhands/items_righthand.dmi' /obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag) - newshot() if(no_den_usage) var/area/A = get_area(user) if(istype(A, /area/wizard_station)) @@ -36,15 +35,14 @@ /obj/item/weapon/gun/magic/can_shoot() return charges -/obj/item/weapon/gun/magic/newshot() - if (charges && chambered) +/obj/item/weapon/gun/magic/recharge_newshot() + if (charges && chambered && !chambered.BB) chambered.newshot() - return /obj/item/weapon/gun/magic/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... charges--//... drain a charge - return + recharge_newshot() /obj/item/weapon/gun/magic/New() ..() @@ -66,6 +64,8 @@ return 0 charge_tick = 0 charges++ + if(charges == 1) + recharge_newshot() return 1 /obj/item/weapon/gun/magic/update_icon() @@ -73,9 +73,14 @@ /obj/item/weapon/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj) user << "The [name] whizzles quietly." - return /obj/item/weapon/gun/magic/suicide_act(mob/user) user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, fire_sound, 50, 1, -1) - return (FIRELOSS) \ No newline at end of file + return (FIRELOSS) + +/obj/item/weapon/gun/magic/on_varedit(varname) + . = ..() + switch (varname) + if ("charges") + recharge_newshot() \ No newline at end of file diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index c5b050ff94e..9d4a8753b9c 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/energy/gun/advtaser/mounted +/obj/item/weapon/gun/energy/e_gun/advtaser/mounted name = "mounted taser" desc = "An arm mounted dual-mode weapon that fires electrodes and disabler shots." icon = 'icons/obj/items_cyborg.dmi' @@ -9,7 +9,7 @@ can_flashlight = 0 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses neural signals instead -/obj/item/weapon/gun/energy/gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... +/obj/item/weapon/gun/energy/e_gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... ..() src.loc = null//send it to nullspace to get retrieved by the implant later on. gotta cover those edge cases. diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm index 470cf2fd537..a26c1818a88 100644 --- a/code/modules/projectiles/guns/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -18,30 +18,17 @@ ..() chambered = new /obj/item/ammo_casing/syringegun(src) -/obj/item/weapon/gun/syringe/newshot() - if(!syringes.len) return +/obj/item/weapon/gun/syringe/recharge_newshot() + if(!syringes.len) + return + chambered.newshot() - var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] - - if(!S) return - - chambered.BB = new S.projectile_type (src) - - S.reagents.trans_to(chambered.BB, S.reagents.total_volume) - chambered.BB.name = S.name - syringes.Remove(S) - - qdel(S) - return +/obj/item/weapon/gun/syringe/can_shoot() + return syringes.len /obj/item/weapon/gun/syringe/process_chamber() - return - -/obj/item/weapon/gun/syringe/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) - if(target == loc) - return - newshot() - ..() + if(chambered && !chambered.BB) //we just fired + recharge_newshot() /obj/item/weapon/gun/syringe/examine(mob/user) ..() @@ -69,7 +56,8 @@ return user << "You load [A] into \the [src]." syringes.Add(A) - A.loc = src + A.forceMove(src) + recharge_newshot() return 1 else usr << "[src] cannot hold more syringes!" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 02e936f2594..f88aaeb3cbb 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,7 +13,6 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/def_zone = "" //Aiming at var/mob/firer = null//Who shot it - var/obj/item/ammo_casing/ammo_casing = null var/suppressed = 0 //Attack message var/yo = null var/xo = null @@ -164,7 +163,11 @@ /obj/item/projectile/Process_Spacemove(var/movement_dir = 0) return 1 //Bullets don't drift in space -/obj/item/projectile/proc/fire(var/setAngle) +/obj/item/projectile/proc/fire(setAngle, atom/direct_target) + if(direct_target) + direct_target.bullet_act(src, def_zone) + qdel(src) + return if(setAngle) Angle = setAngle if(!legacy) //new projectiles @@ -244,19 +247,53 @@ sleep(config.run_speed * 0.9) +/obj/item/projectile/proc/preparePixelProjectile(atom/target, var/turf/targloc, mob/living/user, params, spread) + var/turf/curloc = get_turf(user) + src.loc = get_turf(user) + src.starting = get_turf(user) + src.current = curloc + src.yo = targloc.y - curloc.y + src.xo = targloc.x - curloc.x + + if(params) + var/list/mouse_control = params2list(params) + if(mouse_control["icon-x"]) + src.p_x = text2num(mouse_control["icon-x"]) + if(mouse_control["icon-y"]) + src.p_y = text2num(mouse_control["icon-y"]) + if(mouse_control["screen-loc"]) + //Split screen-loc up into X+Pixel_X and Y+Pixel_Y + var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + + //Split X+Pixel_X up into list(X, Pixel_X) + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + + //Split Y+Pixel_Y up into list(Y, Pixel_Y) + var/list/screen_loc_Y = splittext(screen_loc_params[2],":") + // world << "X: [screen_loc_X[1]] PixelX: [screen_loc_X[2]] / Y: [screen_loc_Y[1]] PixelY: [screen_loc_Y[2]]" + var/x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32 + var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32 + + //Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average. + var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths + + var/ox = round(screenview/2) //"origin" x + var/oy = round(screenview/2) //"origin" y + // world << "Pixel position: [x] [y]" + var/angle = Atan2(y - oy, x - ox) + // world << "Angle: [angle]" + src.Angle = angle + if(spread) + src.Angle += spread + + /obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. ..() if(isliving(AM) && AM.density && !checkpass(PASSMOB)) Bump(AM, 1) /obj/item/projectile/Destroy() - ammo_casing = null return ..() -/obj/item/projectile/proc/dumbfire(var/dir) - current = get_ranged_target_turf(src, dir, world.maxx) - fire() - - /obj/item/projectile/experience_pressure_difference() return \ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 77c145d63f8..c3751481a44 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -203,13 +203,8 @@ //This one is for future syringe guns update /obj/item/projectile/bullet/dart/syringe name = "syringe" - icon = 'icons/obj/chemical.dmi' icon_state = "syringeproj" -//Piercing Syringe -/obj/item/projectile/bullet/dart/syringe/piercing - piercing = 1 - /obj/item/projectile/bullet/neurotoxin name = "neurotoxin spit" icon_state = "neurotoxin" diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index 3fbc6888f3b..abb4af2296c 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -36,6 +36,7 @@ icon_state = "foamdart_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart range = 10 + var/modified = 0 var/obj/item/weapon/pen/pen = null /obj/item/projectile/bullet/reusable/foam_dart/handle_drop() @@ -43,17 +44,17 @@ return var/turf/T = get_turf(src) dropped = 1 - var/obj/item/ammo_casing/caseless/foam_dart/newdart = new ammo_type(T) - var/obj/item/ammo_casing/caseless/foam_dart/old_dart = ammo_casing - newdart.modified = old_dart.modified + var/obj/item/ammo_casing/caseless/foam_dart/newcasing = new ammo_type(T) + newcasing.modified = modified + var/obj/item/projectile/bullet/reusable/foam_dart/newdart = newcasing.BB + newdart.modified = modified + newdart.damage = damage + newdart.nodamage = nodamage + newdart.damage_type = damage_type if(pen) - var/obj/item/projectile/bullet/reusable/foam_dart/newdart_FD = newdart.BB - newdart_FD.pen = pen - pen.loc = newdart_FD + newdart.pen = pen + pen.forceMove(newdart) pen = null - newdart.BB.damage = damage - newdart.BB.nodamage = nodamage - newdart.BB.damage_type = damage_type newdart.update_icon() @@ -66,3 +67,11 @@ icon_state = "foamdart_riot_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot stamina = 25 + +/obj/item/projectile/bullet/reusable/arrow + name = "arrow" + icon_state = "arrow" + ammo_type = /obj/item/ammo_casing/caseless/arrow + range = 10 + damage = 25 + damage_type = BRUTE \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 04f2572c588..8e358e90f37 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -12,7 +12,7 @@ volume = 15 var/mode = SYRINGE_DRAW var/busy = 0 // needed for delayed drawing of blood - var/projectile_type = /obj/item/projectile/bullet/dart/syringe + var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun materials = list(MAT_METAL=10, MAT_GLASS=20) /obj/item/weapon/reagent_containers/syringe/New() @@ -245,5 +245,5 @@ name = "piercing syringe" desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." volume = 10 - projectile_type = /obj/item/projectile/bullet/dart/syringe/piercing + proj_piercing = 1 origin_tech = "combat=3;materials=4;engineering=5" diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 1b47da6a274..9afb51fb273 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -39,7 +39,7 @@ req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000) - build_path = /obj/item/weapon/gun/energy/gun/nuclear + build_path = /obj/item/weapon/gun/energy/e_gun/nuclear category = list("Weapons") /datum/design/tele_shield diff --git a/code/modules/spells/spell_types/infinite_guns.dm b/code/modules/spells/spell_types/infinite_guns.dm index d2cc1b32de3..255ce839406 100644 --- a/code/modules/spells/spell_types/infinite_guns.dm +++ b/code/modules/spells/spell_types/infinite_guns.dm @@ -18,6 +18,6 @@ C.drop_item() C.swap_hand() C.drop_item() - var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new + var/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/GUN = new C.put_in_hands(GUN) C.swap_hand(C.get_held_index_of_item(GUN)) diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 39a8b7768cd..07d1823f445 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -39,62 +39,62 @@ var/obj/item/weapon/gun/G switch (randomizeguns) if("taser") - G = new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/advtaser(get_turf(H)) if("egun") - G = new /obj/item/weapon/gun/energy/gun(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun(get_turf(H)) if("laser") G = new /obj/item/weapon/gun/energy/laser(get_turf(H)) if("revolver") - G = new /obj/item/weapon/gun/projectile/revolver(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver(get_turf(H)) if("detective") - G = new /obj/item/weapon/gun/projectile/revolver/detective(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/detective(get_turf(H)) if("deagle") - G = new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo(get_turf(H)) if("gyrojet") - G = new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/gyropistol(get_turf(H)) if("pulse") G = new /obj/item/weapon/gun/energy/pulse(get_turf(H)) if("suppressed") - G = new /obj/item/weapon/gun/projectile/automatic/pistol(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/pistol(get_turf(H)) new /obj/item/weapon/suppressor(get_turf(H)) if("doublebarrel") - G = new /obj/item/weapon/gun/projectile/revolver/doublebarrel(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/doublebarrel(get_turf(H)) if("shotgun") - G = new /obj/item/weapon/gun/projectile/shotgun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun(get_turf(H)) if("combatshotgun") - G = new /obj/item/weapon/gun/projectile/shotgun/automatic/combat(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun/automatic/combat(get_turf(H)) if("arg") - G = new /obj/item/weapon/gun/projectile/automatic/ar(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/ar(get_turf(H)) if("mateba") - G = new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/mateba(get_turf(H)) if("boltaction") - G = new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun/boltaction(get_turf(H)) if("speargun") - G = new /obj/item/weapon/gun/projectile/automatic/speargun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/speargun(get_turf(H)) if("uzi") - G = new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/mini_uzi(get_turf(H)) if("cannon") G = new /obj/item/weapon/gun/energy/lasercannon(get_turf(H)) if("crossbow") G = new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large(get_turf(H)) if("nuclear") - G = new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/nuclear(get_turf(H)) if("sabr") - G = new /obj/item/weapon/gun/projectile/automatic/proto(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/proto(get_turf(H)) if("bulldog") - G = new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(get_turf(H)) if("c20r") - G = new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/c20r(get_turf(H)) if("saw") - G = new /obj/item/weapon/gun/projectile/automatic/l6_saw(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/l6_saw(get_turf(H)) if("car") - G = new /obj/item/weapon/gun/projectile/automatic/m90(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/m90(get_turf(H)) if("alienpistol") G = new /obj/item/weapon/gun/energy/alien(get_turf(H)) if("dragnet") - G = new /obj/item/weapon/gun/energy/gun/dragnet(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/dragnet(get_turf(H)) if("turret") - G = new /obj/item/weapon/gun/energy/gun/turret(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/turret(get_turf(H)) if("pulsecarbine") G = new /obj/item/weapon/gun/energy/pulse/carbine(get_turf(H)) if("decloner") @@ -108,15 +108,15 @@ if("wormhole") G = new /obj/item/weapon/gun/energy/wormhole_projector(get_turf(H)) if("wt550") - G = new /obj/item/weapon/gun/projectile/automatic/wt550(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/wt550(get_turf(H)) if("bulldog") - G = new /obj/item/weapon/gun/projectile/automatic/shotgun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/shotgun(get_turf(H)) if("grenadelauncher") - G = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher(get_turf(H)) if("goldenrevolver") - G = new /obj/item/weapon/gun/projectile/revolver/golden(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/golden(get_turf(H)) if("sniper") - G = new /obj/item/weapon/gun/projectile/automatic/sniper_rifle(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(get_turf(H)) if("medibeam") G = new /obj/item/weapon/gun/medbeam(get_turf(H)) if("scatterbeam") diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index dbf2c527159..8030a79c94d 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -167,7 +167,7 @@ desc = "A variant of the arm cannon implant that fires electrodes and disabler shots. The cannon emerges from the subject's arm and remains inside when not in use." icon_state = "arm_taser" origin_tech = "materials=5;combat=5;biotech=4;powerstorage=4" - holder = /obj/item/weapon/gun/energy/gun/advtaser/mounted + holder = /obj/item/weapon/gun/energy/e_gun/advtaser/mounted /obj/item/organ/cyberimp/arm/gun/taser/l zone = "l_arm" diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 9dba577e214..3fe309add59 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -140,13 +140,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Stechkin Pistol" desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ with suppressors." - item = /obj/item/weapon/gun/projectile/automatic/pistol + item = /obj/item/weapon/gun/ballistic/automatic/pistol cost = 7 /datum/uplink_item/dangerous/revolver name = "Syndicate Revolver" desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/weapon/gun/projectile/revolver + item = /obj/item/weapon/gun/ballistic/revolver cost = 13 surplus = 50 @@ -154,7 +154,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Bulldog Shotgun" desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatiable with all 12g rounds. Designed for close \ quarter anti-personel engagements." - item = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + item = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog cost = 8 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -163,20 +163,20 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "C-20r Submachine Gun" desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ 20-round magazine and is compatible with suppressors." - item = /obj/item/weapon/gun/projectile/automatic/c20r + item = /obj/item/weapon/gun/ballistic/automatic/c20r cost = 10 surplus = 40 include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/smg/unrestricted - item = /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted + item = /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted include_modes = list(/datum/game_mode/gang) /datum/uplink_item/dangerous/machinegun name = "L6 Squad Automatic Weapon" desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ This deadly weapon has a massive 50-round magazine of devastating 5.56x45mm ammunition." - item = /obj/item/weapon/gun/projectile/automatic/l6_saw + item = /obj/item/weapon/gun/ballistic/automatic/l6_saw cost = 18 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -192,7 +192,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" desc = "Ranged fury, Syndicate style. guaranteed to cause shock and awe or your TC back!" - item = /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate + item = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate cost = 16 surplus = 25 include_modes = list(/datum/game_mode/nuclear) @@ -200,7 +200,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/bolt_action name = "Surplus Rifle" desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/weapon/gun/projectile/shotgun/boltaction + item = /obj/item/weapon/gun/ballistic/shotgun/boltaction cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -267,7 +267,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade rounds with a 20-round magazine." - item = /obj/item/weapon/gun/projectile/automatic/c20r/toy + item = /obj/item/weapon/gun/ballistic/automatic/c20r/toy cost = 5 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -276,7 +276,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Toy Machine Gun" desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/weapon/gun/projectile/automatic/l6_saw/toy + item = /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy cost = 10 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -555,7 +555,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Toy Gun with Riot Darts" desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ darts effective at incapacitating a target." - item = /obj/item/weapon/gun/projectile/automatic/toy/pistol/riot + item = /obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot cost = 3 surplus = 10 exclude_modes = list(/datum/game_mode/gang) diff --git a/html/changelog.html b/html/changelog.html index 105a42341a1..57710c8063a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,32 @@ -->
+

02 November 2016

+

Iamgoofball updated:

+
    +
  • Added a new lobby menu sound.
  • +
+

Joan updated:

+
    +
  • Brass windows and windoors no longer drop full sheets of brass when destroyed.
  • +
  • Instead, they'll drop gear bits, which can be proselytized for a small amount of liquified alloy; 80% of the materials used to construct the window.
  • +
  • Mending Motors have an increased range and heal for more.
  • +
  • Mending Motors will no longer waste massive amounts of power on slightly damaged objects; instead, they will heal a small amount, use a small amount of power, and stop if the object is fully healed.
  • +
  • Mending Motors can now heal all clockwork objects, including pinion airlocks, brass windows, and anything else you can think of.
  • +
  • Ocular Wardens will no longer attack targets that are handcuffed, buckled to something AND lying, or in the process of being converted by Guvax.
  • +
  • Also, they do very slightly more damage.
  • +
  • Hulks no longer one-shot most clockwork structures and will no longer four-shot the Gateway to the Celestial Derelict.
  • +
  • Hulks are no longer a blob counter.
  • +
+

XDTM updated:

+
    +
  • Ninjas are now slightly visible when stealthing.
  • +
+

phil235 updated:

+
    +
  • Spray cleaner and soap can now wash off paint color.
  • +
+

31 October 2016

Joan updated:

    @@ -1036,42 +1062,6 @@
  • Putting packagewrap or hand labeler in a backpack is now done by clicking and dragging.
  • You can now wrap backpacks and other storage items with packagewrap.
- -

31 August 2016

-

Iamgoofball updated:

-
    -
  • Adds a new experimental gas to the game. Check it out!
  • -
-

Joan updated:

-
    -
  • Vanguard now has a tooltip showing the amount of stuns you've absorbed and will be affected by.
  • -
-

MMMiracles updated:

-
    -
  • Xenomorphs can now actually damage barricades.
  • -
-

Shadowlight213 updated:

-
    -
  • Fixed runtime preventing access locked programs from being downloaded
  • -
-

XDTM updated:

-
    -
  • Metal slimes now spawn a few sheets of glass when injected with water.
  • -
-

xxalpha updated:

-
    -
  • Opening and closing of donut boxes, etc. is now done with clicking the object with itself.
  • -
-

yackemflam updated:

-
    -
  • The standard rounds now blow off limbs. Happy hunting!
  • -
- -

30 August 2016

-

oranges updated:

-
    -
  • The ed209 can now only fire as fast as the portaturrets
  • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index f26dfa1d095..643ac2da921 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -7709,3 +7709,26 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Xhuis: - rscadd: Disposal units, outlets, etc. are now fireproof. - rscadd: Changelings can now use biodegrade to escape silk cocoons. +2016-11-02: + Iamgoofball: + - rscadd: Added a new lobby menu sound. + Joan: + - rscdel: Brass windows and windoors no longer drop full sheets of brass when destroyed. + - rscadd: Instead, they'll drop gear bits, which can be proselytized for a small + amount of liquified alloy; 80% of the materials used to construct the window. + - tweak: Mending Motors have an increased range and heal for more. + - experiment: Mending Motors will no longer waste massive amounts of power on slightly + damaged objects; instead, they will heal a small amount, use a small amount + of power, and stop if the object is fully healed. + - wip: Mending Motors can now heal all clockwork objects, including pinion airlocks, + brass windows, and anything else you can think of. + - rscadd: Ocular Wardens will no longer attack targets that are handcuffed, buckled + to something AND lying, or in the process of being converted by Guvax. + - tweak: Also, they do very slightly more damage. + - rscdel: Hulks no longer one-shot most clockwork structures and will no longer + four-shot the Gateway to the Celestial Derelict. + - bugfix: Hulks are no longer a blob counter. + XDTM: + - tweak: Ninjas are now slightly visible when stealthing. + phil235: + - rscadd: Spray cleaner and soap can now wash off paint color. diff --git a/html/changelogs/AutoChangeLog-pr-21060.yml b/html/changelogs/AutoChangeLog-pr-21060.yml deleted file mode 100644 index 416c26af3b5..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21060.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "phil235" -delete-after: True -changes: - - rscadd: "Spray cleaner and soap can now wash off paint color." diff --git a/html/changelogs/AutoChangeLog-pr-21310.yml b/html/changelogs/AutoChangeLog-pr-21310.yml deleted file mode 100644 index fe7e97577ce..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21310.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - rscdel: "Brass windows and windoors no longer drop full sheets of brass when destroyed." - - rscadd: "Instead, they'll drop gear bits, which can be proselytized for a small amount of liquified alloy; 80% of the materials used to construct the window." diff --git a/html/changelogs/AutoChangeLog-pr-21314.yml b/html/changelogs/AutoChangeLog-pr-21314.yml new file mode 100644 index 00000000000..70b99f2663f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21314.yml @@ -0,0 +1,5 @@ +author: "Joan" +delete-after: True +changes: + - rscadd: "Proselytizing a window will automatically proselytize any grilles under it. This is free, so don't worry about wasting alloy. +rcsadd: Trying to proselytize something that can't be proselytized will try to proselytize the turf under it, instead." diff --git a/html/changelogs/AutoChangeLog-pr-21319.yml b/html/changelogs/AutoChangeLog-pr-21319.yml new file mode 100644 index 00000000000..3a9f1ef6aa4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21319.yml @@ -0,0 +1,4 @@ +author: "Cobby" +delete-after: True +changes: + - rscadd: "Adds a geisha outfit to the clothesmate on hacking. QT space ninja BF not included" diff --git a/icons/emoji.dmi b/icons/emoji.dmi index e9b162e813b..df89c12c948 100644 Binary files a/icons/emoji.dmi and b/icons/emoji.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 66eabb18684..ef5fc9bc941 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 626b4a8d6cd..5850b22d475 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 160a62a1c22..6174de472ce 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 10a33bf2c58..fa4507214f2 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/libmysql.dll b/libmysql.dll index 86453b952eb..90ff953a620 100644 Binary files a/libmysql.dll and b/libmysql.dll differ diff --git a/sound/misc/i_did_not_grief_them.ogg b/sound/misc/i_did_not_grief_them.ogg new file mode 100644 index 00000000000..1fbcfa722d3 Binary files /dev/null and b/sound/misc/i_did_not_grief_them.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 69fe09b3c10..787508193e4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -598,6 +598,7 @@ #include "code\game\objects\effects\anomalies.dm" #include "code\game\objects\effects\bump_teleporter.dm" #include "code\game\objects\effects\contraband.dm" +#include "code\game\objects\effects\countdown.dm" #include "code\game\objects\effects\effects.dm" #include "code\game\objects\effects\forcefields.dm" #include "code\game\objects\effects\glowshroom.dm" @@ -1117,7 +1118,6 @@ #include "code\modules\clothing\under\jobs\engineering.dm" #include "code\modules\clothing\under\jobs\medsci.dm" #include "code\modules\clothing\under\jobs\security.dm" -#include "code\modules\countdown\countdown.dm" #include "code\modules\crafting\craft.dm" #include "code\modules\crafting\guncrafting.dm" #include "code\modules\crafting\recipes.dm" @@ -1723,38 +1723,41 @@ #include "code\modules\procedural_mapping\mapGenerators\shuttle.dm" #include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" #include "code\modules\projectiles\ammunition.dm" +#include "code\modules\projectiles\box_magazine.dm" #include "code\modules\projectiles\firing.dm" #include "code\modules\projectiles\gun.dm" #include "code\modules\projectiles\pins.dm" #include "code\modules\projectiles\projectile.dm" #include "code\modules\projectiles\ammunition\ammo_casings.dm" -#include "code\modules\projectiles\ammunition\boxes.dm" +#include "code\modules\projectiles\ammunition\caseless.dm" #include "code\modules\projectiles\ammunition\energy.dm" -#include "code\modules\projectiles\ammunition\magazines.dm" #include "code\modules\projectiles\ammunition\special.dm" +#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "code\modules\projectiles\boxes_magazines\external_mag.dm" +#include "code\modules\projectiles\boxes_magazines\internal_mag.dm" +#include "code\modules\projectiles\guns\ballistic.dm" #include "code\modules\projectiles\guns\energy.dm" #include "code\modules\projectiles\guns\grenade_launcher.dm" #include "code\modules\projectiles\guns\magic.dm" #include "code\modules\projectiles\guns\medbeam.dm" #include "code\modules\projectiles\guns\mounted.dm" -#include "code\modules\projectiles\guns\projectile.dm" #include "code\modules\projectiles\guns\syringe_gun.dm" +#include "code\modules\projectiles\guns\ballistic\automatic.dm" +#include "code\modules\projectiles\guns\ballistic\bow.dm" +#include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" +#include "code\modules\projectiles\guns\ballistic\launchers.dm" +#include "code\modules\projectiles\guns\ballistic\pistol.dm" +#include "code\modules\projectiles\guns\ballistic\revolver.dm" +#include "code\modules\projectiles\guns\ballistic\shotgun.dm" +#include "code\modules\projectiles\guns\ballistic\toy.dm" +#include "code\modules\projectiles\guns\energy\energy_gun.dm" #include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" #include "code\modules\projectiles\guns\energy\laser.dm" -#include "code\modules\projectiles\guns\energy\nuclear.dm" #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\staff.dm" #include "code\modules\projectiles\guns\magic\wand.dm" -#include "code\modules\projectiles\guns\projectile\automatic.dm" -#include "code\modules\projectiles\guns\projectile\bow.dm" -#include "code\modules\projectiles\guns\projectile\laser_gatling.dm" -#include "code\modules\projectiles\guns\projectile\launchers.dm" -#include "code\modules\projectiles\guns\projectile\pistol.dm" -#include "code\modules\projectiles\guns\projectile\revolver.dm" -#include "code\modules\projectiles\guns\projectile\shotgun.dm" -#include "code\modules\projectiles\guns\projectile\toy.dm" #include "code\modules\projectiles\projectile\beams.dm" #include "code\modules\projectiles\projectile\bullets.dm" #include "code\modules\projectiles\projectile\energy.dm"