From e540550cff53942910f354625adcb904dcca3b8c Mon Sep 17 00:00:00 2001 From: mwerezak Date: Mon, 23 Feb 2015 17:56:54 -0500 Subject: [PATCH 01/23] Adds an underslung grenade launcher to the Z8. --- .../guns/launcher/grenade_launcher.dm | 67 +++++++++++++----- .../projectiles/guns/projectile/automatic.dm | 64 ++++++++++++----- icons/obj/gun.dmi | Bin 49737 -> 49729 bytes 3 files changed, 97 insertions(+), 34 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm index 38facb34b8..906e428e8d 100644 --- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/launcher/grenade name = "grenade launcher" - desc = "A bulky pump-action grenade launcher. Holds up to 5 grenades in a revolving magazine." + desc = "A bulky pump-action grenade launcher. Holds up to 6 grenades in a revolving magazine." icon_state = "riotgun" item_state = "riotgun" w_class = 4 @@ -14,7 +14,7 @@ var/obj/item/weapon/grenade/chambered var/list/grenades = new/list() - var/max_grenades = 4 //holds this + one in the chamber + var/max_grenades = 5 //holds this + one in the chamber matter = list("metal" = 2000) //revolves the magazine, allowing players to choose between multiple grenade types @@ -42,30 +42,36 @@ if(chambered) user << "\A [chambered] is chambered." +/obj/item/weapon/gun/launcher/grenade/proc/load(obj/item/weapon/grenade/G, mob/user) + if(grenades.len >= max_grenades) + user << "[src] is full." + return + user.remove_from_mob(G) + G.loc = src + grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump + user.visible_message("[user] inserts \a [G] into [src].", "You insert \a [G] into [src].") + +/obj/item/weapon/gun/launcher/grenade/proc/unload(mob/user) + if(grenades.len) + var/obj/item/weapon/grenade/G = grenades[grenades.len] + grenades.len-- + user.put_in_hands(G) + user.visible_message("[user] removes \a [G] from [src].", "You remove \a [G] from [src].") + else + user << "[src] is empty." + /obj/item/weapon/gun/launcher/grenade/attack_self(mob/user) pump(user) /obj/item/weapon/gun/launcher/grenade/attackby(obj/item/I, mob/user) if((istype(I, /obj/item/weapon/grenade))) - if(grenades.len >= max_grenades) - user << "[src] is full." - return - user.remove_from_mob(I) - I.loc = src - grenades.Insert(1, I) //add to the head of the list, so that it is loaded on the next pump - user.visible_message("[user] inserts \a [I] into [src].", "You insert \a [I] into [src].") + load(I, user) else ..() /obj/item/weapon/gun/launcher/grenade/attack_hand(mob/user) if(user.get_inactive_hand() == src) - if(grenades.len) - var/obj/item/weapon/grenade/G = grenades[grenades.len] - grenades.len-- - user.put_in_hands(G) - user.visible_message("[user] removes \a [G] from [src].", "You remove \a [G] from [src].") - else - user << "[src] is empty." + unload(user) else ..() @@ -79,3 +85,32 @@ message_admins("[key_name_admin(user)] fired a grenade ([chambered.name]) from a grenade launcher ([src.name]).") log_game("[key_name_admin(user)] used a grenade ([chambered.name]).") chambered = null + +//Underslung grenade launcher to be used with the Z8 +/obj/item/weapon/gun/launcher/grenade/underslung + name = "underslung grenade launcher" + desc = "Not much more than a tube and a firing mechanism, this grenade launcher is designed to be fitted to a rifle." + w_class = 3 + force = 5 + max_grenades = 0 + +/obj/item/weapon/gun/launcher/grenade/underslung/attack_self() + return + +//load and unload directly into chambered +/obj/item/weapon/gun/launcher/grenade/underslung/load(obj/item/weapon/grenade/G, mob/user) + if(chambered) + user << "[src] is already loaded." + return + user.remove_from_mob(G) + G.loc = src + chambered = G + user.visible_message("[user] load \a [G] into [src].", "You load \a [G] into [src].") + +/obj/item/weapon/gun/launcher/grenade/underslung/unload(mob/user) + if(chambered) + user.put_in_hands(chambered) + user.visible_message("[user] removes \a [chambered] from [src].", "You remove \a [chambered] from [src].") + chambered = null + else + user << "[src] is empty." \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index e331482d97..8776b6c591 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -47,6 +47,23 @@ icon_state = "c20r" return +/obj/item/weapon/gun/projectile/automatic/sts35 + name = "\improper STS-35 automatic rifle" + desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked." + icon_state = "arifle" + item_state = "shotgun" + w_class = 4 + force = 10 + caliber = "a762" + origin_tech = "combat=6;materials=1;syndicate=4" + slot_flags = SLOT_BACK + load_method = MAGAZINE + magazine_type = /obj/item/ammo_magazine/c762 + +/obj/item/weapon/gun/projectile/automatic/sts35/update_icon() + ..() + icon_state = (ammo_magazine)? "arifle-0" : "arifle" + /obj/item/weapon/gun/projectile/automatic/wt550 name = "\improper W-T 550 Saber" desc = "A cheap, mass produced Ward-Takahashi PDW. Uses 9mm rounds." @@ -70,7 +87,7 @@ /obj/item/weapon/gun/projectile/automatic/z8 name = "\improper Z8 Bulldog" - desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds. Makes you feel like a space marine when you hold it." + desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds and has an underslung grenade launcher. Makes you feel like a space marine when you hold it." icon_state = "carbine" item_state = "shotgun" w_class = 4 @@ -82,6 +99,34 @@ slot_flags = SLOT_BACK load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/a556 + var/use_launcher = 0 + var/obj/item/weapon/gun/launcher/grenade/underslung/launcher + +/obj/item/weapon/gun/projectile/automatic/z8/New() + ..() + launcher = new(src) + +/obj/item/weapon/gun/projectile/automatic/z8/attack_self(mob/user) + use_launcher = !use_launcher + user << "You switch to [use_launcher? "\the [launcher]" : "firing normally"]." + +/obj/item/weapon/gun/projectile/automatic/z8/attackby(obj/item/I, mob/user) + if((istype(I, /obj/item/weapon/grenade))) + launcher.load(I, user) + else + ..() + +/obj/item/weapon/gun/projectile/automatic/z8/attack_hand(mob/user) + if(user.get_inactive_hand() == src && use_launcher) + launcher.unload(user) + else + ..() + +/obj/item/weapon/gun/projectile/automatic/z8/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0) + if(use_launcher) + launcher.Fire(target, user, params, pointblank, reflex) + else + ..() /obj/item/weapon/gun/projectile/automatic/z8/update_icon() ..() @@ -91,23 +136,6 @@ icon_state = "carbine" return -/obj/item/weapon/gun/projectile/automatic/sts35 - name = "\improper STS-35 automatic rifle" - desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked." - icon_state = "assltrifle" - item_state = "shotgun" - w_class = 4 - force = 10 - caliber = "a762" - origin_tech = "combat=6;materials=1;syndicate=4" - slot_flags = SLOT_BACK - load_method = MAGAZINE - magazine_type = /obj/item/ammo_magazine/c762 - -/obj/item/weapon/gun/projectile/automatic/sts35/update_icon() - ..() - icon_state = (ammo_magazine)? "assltrifle" : "assltrifle-noclip" - /obj/item/weapon/gun/projectile/automatic/l6_saw name = "\improper L6 SAW" desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index acf1791ceb2e3257d4070bcbe7bac2a6d5f50442..ce8762d6e1e9b6233bb6a1de1fd552f0d47eb2cc 100644 GIT binary patch delta 1310 zcmV+(1>yS1gag5Z1CS&EERiK38C68HG`xGk+jjL(V85T0_n#AX-DtC?wj>C~IHTISJa?a5>O0 z$@IgS=6wdQL{E~;Fk3gt^eex^0d3#$fX455Kfv_%IN$nJsy z6|o`|nV&M?uTZ5@ipD=nwRnx{^rJt}u|bD+{FU$^v=2vT3&? zbM(T}D{Sfzr94()i`KKyUVji+ME`&S>IV|gK9GR&flM!$_q&O=Iv*+0pgi2{U^n}i zchL!A5$Sgy_N4N|&J;WdJ{;ZW9`Qr!nbZSBAga5DZU0{}Tmt{Uezk zUH_m_yYzR;vKQcUJ~n?hO{GyTT@_8ay|DtSE|5Sa2NGBvfkc+v$bTiTrawHbDi z>i^T+I+b4b-H}GC4V!^nST{*{9nKp?{1=lNeXh@IwZOgtM@KPzwrVU_pV@E@)=QrYB(|N_6fE+{t4f*Wze!S>U!!$BRoBa=gVlYe;;6FD}dA0I$Ksz3rt z1riV{kk|yhcPzcJdkl344bginY7atV^d5{k$dm5Lg)(gBgk8hD(a0F#3L|rbD~t>h zt}y6$oE#k9I5{-9adK#Au6f4zp2UyYhw##d=ELA&UD>C`(X9EG%*!3n+5X z3n+4e3@Glj!hd>gaj!H%Cr3|03Mfs`LHAy1g3izPN)s?o^BfpCSXUmaLiY@GwrOW7!Z+tKIqxPj>z*|05`Q-9hBxQ-*lK~mUr0+>&3@5q9#(R=$Y-}jGM%t)$-9}+O8rp)DTRL2k>{kH4I{AU&DKpr1ae3wCYiLF6Y&>VjR^c`)tpNbGe6i+;scN>f@X zhRw!225x-3&Tb#mD0by>cKdxDow0mv6`QyutRmaj*H)2f%-2SdW69S>nNnElhDr9! zq|a3z?bMjQzv`HI;WAPhu~!L3Rg)RQVwb7$VwPD2i&F?6Yi zQu&87Bl-ef%bpb3;o|(H@~`|32ef_10~){M0j=Nhh~`&=qmZ%?FNyakq%4W|D5NZj z_b8-9;yqh-fgscw@RDcCE|i(h zSa885v4r&74|~%3!_E{vNHHAz=N@)%9v;^5@5X+lUQA=w!FC=0ZbPsl|NKuBFwKu_ zdQ9_!M&t9}DaT%b&-vK?-L|zsxqMZ$>&=Z7P<4?6DmjwC>WCz=;Ca9j&d0Z;fov>sASFv2$jcH(lG78HTBS7k>S#1u zCZB>Bry@dZQ{o}EsXQUJ$U0q^N#@9Mrj*Wq^cHL?bxmTg|M<2GS3prNXrLw+G*FTY z8mmY)NJ^a5Z#d4z{C`j;pjk|4WyQV#M8cU_K&Tl7GBBe+YG<^tV>6R<2_-%(lJ3R~ z(Zx*CA)=T`Iz$mONr%W`Cg~t87N1()HTjPQ?;2ZoK!epawr=l1uEV(e*@kzGt+yBk z&4#d%#tb4o;^x*28*8Dx?Tli>EVvQ30&G7$+wb+BAD9~Qn}5uUoXE2w|M&<3QbiI_ zDw2Ruk;EqGy=VE2Jz%IiXo%ipQ3ntjqxWFUQJ#EHF12MBLD)6S8;y(+t}rr3xWdRF z;R=I}$H~Ltjgv=%8z+y3HclQ5Y@B@F>2R?cY**e;saa3?J4AWUrFH~W#LOb+v4|oE zy@(to$X3@22(VcA3g>T7aa@kF0(LHI=C4X$u4R6Wqu`}XG{$TY9nsF`Y zd<8G*{K{C;`4y+Ma0HH1oDv4v5S1|4Nk5Rt7)}X;jrWu=*w|1BgS1iIvW>!eG`P`0 znwZzt?!P$f75|O9_^`|2X;Gu1OADzP3t@UouvSz3gkN#AxPgqr@5I zYokIb9PwdNJ+t{kRzSHP^GWB-z6h1bc Date: Mon, 23 Feb 2015 18:04:36 -0500 Subject: [PATCH 02/23] Misc gun tweaks --- code/modules/projectiles/ammunition/boxes.dm | 2 +- code/modules/projectiles/guns/energy/laser.dm | 1 + code/modules/projectiles/guns/projectile/automatic.dm | 5 ++++- code/modules/projectiles/guns/projectile/shotgun.dm | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index d580e72979..be30717c47 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -109,7 +109,7 @@ initial_ammo = 0 /obj/item/ammo_magazine/a556 - name = "magazine (5.56)" + name = "magazine (5.56mm)" icon_state = "5.56" origin_tech = "combat=2" mag_type = MAGAZINE diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 5046343821..527f8c2020 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -34,6 +34,7 @@ obj/item/weapon/gun/energy/laser/retro force = 5 slot_flags = SLOT_BELT origin_tech = null + charge_cost = 200 //to compensate a bit for self-recharging self_recharge = 1 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 8776b6c591..d497ecf0f2 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -49,7 +49,7 @@ /obj/item/weapon/gun/projectile/automatic/sts35 name = "\improper STS-35 automatic rifle" - desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked." + desc = "A durable, rugged looking automatic weapon of a make popular on the frontier worlds. Uses 7.62mm rounds. It is unmarked." icon_state = "arifle" item_state = "shotgun" w_class = 4 @@ -99,6 +99,9 @@ slot_flags = SLOT_BACK load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/a556 + auto_eject = 1 + auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' + var/use_launcher = 0 var/obj/item/weapon/gun/launcher/grenade/underslung/launcher diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 225ebd4640..f7f4fbdbe0 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -43,7 +43,7 @@ name = "combat shotgun" icon_state = "cshotgun" origin_tech = "combat=5;materials=2" - max_shells = 8 + max_shells = 7 //match the ammo box capacity, also it can hold a round in the chamber anyways, for a total of 8. ammo_type = /obj/item/ammo_casing/shotgun From 4f86f698080258ab9db70bb996c61c554f5619e2 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Mon, 23 Feb 2015 22:27:40 -0500 Subject: [PATCH 03/23] Fixes missing return that made all bullets pass through mobs --- code/modules/projectiles/projectile/bullets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 50d3c04f46..fcdab54beb 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -19,7 +19,7 @@ mob_passthrough_check = 1 else mob_passthrough_check = 0 - ..() + return ..() /obj/item/projectile/bullet/can_embed() //prevent embedding if the projectile is passing through the mob From 917bad5d5b281d903a0fe30421d169ccf3c0c8d0 Mon Sep 17 00:00:00 2001 From: Neerti Date: Tue, 24 Feb 2015 06:15:44 -0500 Subject: [PATCH 04/23] Removes all the fun from buckling. --- code/game/objects/buckling.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index f0f5a53aea..00e3999332 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -70,7 +70,6 @@ /obj/proc/user_unbuckle_mob(mob/user) var/mob/living/M = unbuckle_mob() - world << 3 if(M) if(M != user) M.visible_message(\ From afb7f7eff7754ada48d25634e138202d2eaa292f Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 24 Feb 2015 12:27:03 +0100 Subject: [PATCH 05/23] Fixes #8223. Restores a lost, somewhat important, line. Fixes a duplicate uplink item reference. --- code/game/gamemodes/game_mode.dm | 2 +- code/game/objects/items/devices/uplinks.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index d39a025cbd..3e853436fd 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -36,7 +36,7 @@ new/datum/uplink_item(/obj/item/ammo_magazine/a357, 2, ".357", "RA"), new/datum/uplink_item(/obj/item/ammo_magazine/mc9mm, 2, "9mm", "R9"), new/datum/uplink_item(/obj/item/ammo_magazine/chemdart, 2, "Darts", "AD"), - new/datum/uplink_item(/obj/item/weapon/storage/box/sniperammo, 3, "14.5mm", "RA") + new/datum/uplink_item(/obj/item/weapon/storage/box/sniperammo, 3, "14.5mm", "SA") ), "Highly Visible and Dangerous Weapons" = list( new/datum/uplink_item(/obj/item/weapon/storage/box/emps, 3, "5 EMP Grenades", "EM"), diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 4ee5491c0c..b2ac742a7c 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -13,13 +13,13 @@ A list of items and costs is stored under the datum of every game mode, alongsid var/reference = "" var/description = "" -datum/uplink_item/New(var/itemPath, var/itemCost as num, var/itemName as text, var/itemReference as text, var/itemDescription) +datum/uplink_item/New(var/itemPath, var/itemCost, var/itemName, var/itemReference, var/itemDescription) cost = itemCost path = itemPath name = itemName + reference = itemReference description = itemDescription - datum/uplink_item/proc/description() if(!description) // Fallback description From 2c8c4a2327264792c3dddba6e1691dd2d7b22d2e Mon Sep 17 00:00:00 2001 From: Neerti Date: Tue, 24 Feb 2015 07:42:06 -0500 Subject: [PATCH 06/23] Fixes some misc examine bugs. --- code/modules/examine/examine.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/examine/examine.dm b/code/modules/examine/examine.dm index 4e5539c0c5..392f897c68 100644 --- a/code/modules/examine/examine.dm +++ b/code/modules/examine/examine.dm @@ -11,8 +11,8 @@ var/description_fluff = null //Green text about the atom's fluff, if any exists. var/description_antag = null //Malicious red text, for the antags. -/atom/examine(mob/user) - ..() +/atom/examine(mob/user, var/distance = -1, var/infix = "", var/suffix = "") + . = ..() user.description_holders["info"] = get_description_info() user.description_holders["fluff"] = get_description_fluff() if(user.mind && user.mind.special_role || isobserver(user)) //Runtime prevention, as ghosts don't have minds. From b3b7ed06cd6a10b57978af95b28ebfbc511f369f Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 24 Feb 2015 14:06:23 +0100 Subject: [PATCH 07/23] Fixes #8234 Updates a few missed containers to use proper paths. --- code/defines/obj/weapon.dm | 2 +- code/modules/clothing/under/accessories/storage.dm | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e8a514e64f..72ee42ae79 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -429,7 +429,7 @@ icon_state = "RPED" item_state = "RPED" w_class = 5 - can_hold = list("/obj/item/weapon/stock_parts") + can_hold = list(/obj/item/weapon/stock_parts) storage_slots = 50 use_to_pickup = 1 allow_quick_gather = 1 diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm index 32313e985d..7bc9f88af3 100644 --- a/code/modules/clothing/under/accessories/storage.dm +++ b/code/modules/clothing/under/accessories/storage.dm @@ -76,11 +76,11 @@ /obj/item/clothing/accessory/storage/knifeharness/New() ..() hold.max_combined_w_class = 4 - hold.can_hold = list("/obj/item/weapon/hatchet/unathiknife",\ - "/obj/item/weapon/kitchen/utensil/knife",\ - "/obj/item/weapon/kitchen/utensil/pknife",\ - "/obj/item/weapon/kitchenknife",\ - "/obj/item/weapon/kitchenknife/ritual") + hold.can_hold = list(/obj/item/weapon/hatchet/unathiknife,\ + /obj/item/weapon/kitchen/utensil/knife,\ + /obj/item/weapon/kitchen/utensil/pknife,\ + /obj/item/weapon/kitchenknife,\ + /obj/item/weapon/kitchenknife/ritual) new /obj/item/weapon/hatchet/unathiknife(hold) new /obj/item/weapon/hatchet/unathiknife(hold) \ No newline at end of file From 86243b97fdc693c8a2a312e735015c680ee20f1f Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Tue, 24 Feb 2015 19:15:16 +0000 Subject: [PATCH 08/23] Fixes shuttles. Yes, all of them. --- maps/exodus-1.dmm | 7 +-- maps/exodus-2.dmm | 149 +++++++++++++++++----------------------------- 2 files changed, 56 insertions(+), 100 deletions(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index e4a6020ffe..58c6fcbba5 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -2857,7 +2857,6 @@ "bcW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics/garden) "bcX" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hydroponics/garden) "bcY" = (/obj/structure/flora/ausbushes,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) -"bcZ" = (/obj/structure/lattice,/turf/space,/area/shuttle/escape/station) "bda" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/starboard) "bdb" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "bdc" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Library"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/hallway/primary/starboard) @@ -7428,10 +7427,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaT aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhOaaaaafbhPaYDbhQbhRbhSbhTbhTbhTbhTbhTbhUbhVbhWbhXbhYbhZbgwbbZbbZbbZbiabfabbZaTSaTSaTSaTSbdKbibbicbidaTSbiebifbdPbigbihbiibgDbijbdPbfibikbgFbgGbgGbgGbilaMbbimaSzbctaSIbiobipbiqbirbisbitbiubivbdYbebbiwbixbiybiybiybgYbizbebbedbiAbiBbiCbiDbiEbiFbiGbiHaJibiIbiJbiKbiLbiMbiNbiObiObiPbiQbiRbiSbiSbiSbiTbiSbiSbiSbiSbiSbiUbiVbiVbiVbiWbiObiObiNbiObiObiXbiVbiVbiYbiSbiZbjabjbbiSbjcbiObiObiObiObiObiObiObiObiObiObiObiObiObjdbiTbjebiSbjfbjgbjhbjibjibjjbjkaZNaWRbjlaWTaWTaWUaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhObhOaZSaZTbjmbjnbjobgrbjpbjpbjqbjpbjpbjpbjrbajbajbajbajbaibbZbdDbjsbjtbgybbZbjubjvbjuaTSaTSaTSaTSbjwaTSbjxbdObdPbjybjzbgDbjAbjBbdPbfibfmbjCbgGbgGbgGbjDaMbbjEaSzbctcdNbjGbgObjHbjIbjJbjKbjLbjMbdYbjNbjObjPbiybjQbiybgVbjRbjSbedbjTbjUbjVbjWbjWbjWbjXbjYaJibjZbkabkbbkcbkdbkebbFbkfbkgbkhbkibkjbkkbklbkmbknbknbkobewbewbewbewbewbkpbkqbkrbewbksbktbkubkvbewbkpbkwbkxbkybhFbewbewbkzbewbewbkAbkBbewbkpbewbewbewbewbewbewbewbewbewbhqbewbewbhFbkCbkDbkEbkFbkGbkHbkIbkJaafaaaaafaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhObhObkKbkLbkMbkNbkObgrbkPbkQbkRbkRbkSbkTbkUbkVbkWbkWbkXbkYbbZbbZbbZbeZbkZbbZbajbajbajbajblaaXeaXeblbblcbldbleblfblgblhblibljblkbdPbllbfmblmbgGblnbgGbloblpblqaSzbctaJeblrblsbltblublvblwblxblybdYbebblzblAblCblBblDblAblEbebbedbedblFblGblHblIbiCblJblKaJiblLblMblNaJiblOblOblOblOblOblOaZzaZzblPblQbZNcdMblQblPaZzaZzaZzaZzaZzaZzaZzaZzaZzaZzblTaZzaZzaZzaZzaZzaZzaVIaZzbewbewblVblWbpoblOblOblOblOblOblXblYblYblZblYbewblYblZbmablYbmbblObmcbmcbmcbmdaRZbmeaRZaRZaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhObhObdubdvbjmbjnbmfbgrbmgbjpbmhbmibjpbjpbjpaVAbmjbmkbmkbmlbbZbdDbmmbeZbmnbbZbmobmpbmqbmrbmsbmtbmtbmubmtbmtbmvbdPbmwbmxbfgbmybmzblfbmAbfmbmBbgGbgGbmCbmDbmEblqaSzbmFbmGbmGbmGbmGbmGbmGbmGbmHbmGbdYbebbmIbmJbmKbmLbmKbmMbmNbebbedbedbmObmPbmQbmRbiCbiGbmSaJibcKaRqaRpaJibmTbmUbmVbmWbmXbmYbmZbnabnbbncbndbnebncbnfbngbnhbnibnjbnkbnlbnmbnnbnobnpbnqbnrbnsbntbntbnubYfaVJblOblObZLblObZMbZMblObnzbnAbnBblObZtbZubZtblOblXblYbmbblObZnbZBbZnblObnGbnHbnIbnJbnKbnLbnMaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhOaaabnNbnObnPbeQbnQbgrbnRbjpaZAbnTbnUbnVbjpbnWbnXbnYbnZbmlbbZbbZbbZbbZbbZbbZboabobbocbodboebdPbdPbdPbdPbdPbdPbdPbWqbdPbdPbdPbogbdPbohboibojbgGbgGbgGbokblpblqaSzbolbmGbombonbbEbcEbvGbotbosbotaafbebboubovbowboxboybozboqbebaafbedboBboCboDboEbiCbiGboFaJiboGboHaRpbXHboJboKboLboMboNbYwboPboQboRboRboSboTboUboUboVboWboXboYboZbpabpbbnnbpcbpdbpebpfbpgbphbpfbpibYfaVJbpjbpkbplbpmbpnbyjbppbAsbprbpqbpsbptbpubcmblOaZzbpwbpxblObpybpzbpAbpBbpCbpDbnIbpEbpFbpGbnMaaaaaaaaaaacaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhObhObdubdvbjmbjnbmfbgrbmgbjpbmhbmibjpbjpbjpaVAbmjbmkbmkbmlbbZbdDbmmbeZbmnbbZbmobmpbmqbmrbmsbmtbmtbmubmtbmtbmvbdPbmwbmxbfgbmybmzblfbmAbfmbmBbgGbgGbmCbmDbmEblqaSzbmFbmGbmGbmGbmGbmGbmGbmGbmHbmGbdYbebbmIbmJbmKbmLbmKbmMbmNbebbedbedbmObmPbmQbmRbiCbiGbmSaJibcKaRqaRpaJibmTbmUbmVbmWbmXbmYbmZbnabnbbncbndbnebncbnfbngbnhbnibnjbnkbnlbnmbnnbnobnpbnqbnrbnsbntbntbnubYfaVJblOblObZLblObZMbZMblObnzbnAbnBblObZtbZubZtblOblXblYbmbblObZnbZBbZnblObnGbnHbnIbnJbnKbnLbnMaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhOaaabnNbnObnPbeQbnQbgrbnRbjpaZAbnTbnUbnVbjpbnWbnXbnYbnZbmlbbZbbZbbZbbZbbZbbZboabobbocbodboebdPbdPbdPbdPbdPbdPbdPbWqbdPbdPbdPbogbdPbohboibojbgGbgGbgGbokblpblqaSzbolbmGbombonbbEbcEbvGbotbosbotaafbebboubovbowboxboybozboqbebaafbedboBboCboDboEbiCbiGboFaJiboGboHaRpbXHboJboKboLboMboNbYwboPboQboRboRboSboTboUboUboVboWboXboYboZbpabpbbnnbpcbpdbpebpfbpgbphbpfbpibYfaVJbpjbpkbplbpmbpnbyjbppbAsbprbpqbpsbptbpubcmblOaZzbpwbpxblObpybpzbpAbpBbpCbpDbnIbpEbpFbpGbnMaaaaaaaaaaacaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaabgnbgobgpbgqbdvbpHbpHbpHbpIbpHbpJaZVbpKbpLbgrbpMbpNbpObpPbpQbpRbpSaYSaXeaXeaXebpTbkWbpUbkWbkWbkWbkWbpVbpWbpWbpXbpYbdPbpZbqabqbbqcbqdbqebqfbqgbqhbqibqjbqkbmAbqlbojbgGbgGbqmbfmaMbblqbqnbqoaJubqqbqrbqrbxqborbopbxsbotaafbebbebbebbebboAbebbebbebbebaafbedbqzboCbqAbqBbqCbqDbqEaJibqFaRqaRpaJibqGbqHbqIbqJaJDbqLboPbqNboUboUboUboUboUboUbqObqPbqQboYbqRbqSbqTbnnbqUbqVbqWbpfbpgbphbpfbqXbYfaVJbpjbqYbqZbqZbrabrbbrcbrdbrdbrdbrebrdbrfbAXbrhbribrjbrkbnIbrlbpCbrmbrnbrobcVbnIbrqbpFbrrbnMaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaabrsbrtbrubrvbrwbrxbrxbrybrzbrAbgrcedbrCbpPbrDbjpbjpbjpbajbrEbrFbrGbrHbrGbrGbrGbrHbrGbajbajbdPbdPbdPbrIbdPbrJbrJbrJbrJbrJbrJbqfbrKbrLbrMbrNbrObrPbrQbrRbrSbrTbrUbrVbrWbrXbrYbrZaHBbsbbqvbsabsebscbotbosbotaafbsibsjbskbslbsmbsnbskbsobsiaafbedbspbsqbspbedbedbedbsraJibssaRqaRpbXHboJboKbstbsubsvbqLbswbqNbsxbsybszbsAbsBbsCbqObsDbnibsEbsFbsGbsHbnnbsIbqVbpebpfbpgbphbpfbpibYfaVJbpjbsJbsKbsLbsMbplbsNbsObsPbsQbsRbsSbsTbsUbrhbsVbsWbsXbnIbsYbsZbtabtbbtcbtdbnIbrqbpFbtebnMaaaaaaaaaaaaaafaafaafaafbcZbcZbcZbcZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaabrsbrtbrubrvbrwbrxbrxbrybrzbrAbgrcedbrCbpPbrDbjpbjpbjpbajbrEbrFbrGbrHbrGbrGbrGbrHbrGbajbajbdPbdPbdPbrIbdPbrJbrJbrJbrJbrJbrJbqfbrKbrLbrMbrNbrObrPbrQbrRbrSbrTbrUbrVbrWbrXbrYbrZaHBbsbbqvbsabsebscbotbosbotaafbsibsjbskbslbsmbsnbskbsobsiaafbedbspbsqbspbedbedbedbsraJibssaRqaRpbXHboJboKbstbsubsvbqLbswbqNbsxbsybszbsAbsBbsCbqObsDbnibsEbsFbsGbsHbnnbsIbqVbpebpfbpgbphbpfbpibYfaVJbpjbsJbsKbsLbsMbplbsNbsObsPbsQbsRbsSbsTbsUbrhbsVbsWbsXbnIbsYbsZbtabtbbtcbtdbnIbrqbpFbtebnMaaaaaaaaaaaaaafaafaafaafaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaacaaaaaaaaaaaaaaaaaaaaabrsbtfbtgbthbtibtibtibtjbtibtibgrbtkbtlbtmbpPbjpaaaaaaaaaaafaafbtnbtnbtnbtnbtnbtnbtnaaaaaabtobtpbtqbtrbtsbrJbrJbrJbrJbrJbrJbttbtubtvbtwbtxbtybtzbtAbfmbfmbtBbfmbfmbtCbtDbtEbtFbmGbtHbmGbmGbmGbmGbmGbtIbmGaafbtJbtKbtLbtMbtNbtMbtLbtObtPaafbspbtQbtRbtSbtTbtUbspbtVaJlbtWbbmbtXaJibtYbmUbtZbuabubbucbudbuebufbugbuhbuibujbukbulbumbnibnnbunbuobupbnnbuqburbusbutbuubuubuvbuwbYfaXqbpjbuxbplbplbsMbuybuzbuAbuBbuCbuDbuEbuFbuGbrhbuHbuIbuJbnIbuKbuLbuMbtbbpCbuNbnIbpEbpFbuObnMaaaaaaaaaaaaaafbuPbuQbuRbuQbuRbuQbuSaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuTbeObuUbuUbuVbpHbuWbgnbgobuXbuWbgrbuYbuZbvabvbbjpaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaabvcbvdbrJbvebvfbvfbvfbvfbvfbvgbvhbvfbvibvjbvkbvlbvmbvnbvobfmbvpbgGbvqbvrbvsbvtbvubvvbmGbmGbmGbvxbvybvzbvAbvBbvwaafbnybvIbvHbvJbvKbvMbvNbvObnyaafbspbvPbvQbxnbedbvRbspbvSaJlbvTbcLbvUaJibvVbvWbvXbvYbvZbuccdTcdUbwcbwdbwebwebwfbwgcdWcdVbwjbwkbwlbwmbwkbwkbwkbwkbwnbwkbwkaXKaXKaXKaXKaVJbpjbsJbsKbsLbwobwpbwqbwrbwsbwsbwsbsSbwtbAWbwvbwwbwxbwybnIbwzbwAbwBbwCbpCbwDbnIbwEbwFbnMbnMaaaaaaaaaaaaaafbwGbwHbwIbwJbwJbwKbwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbwMbwNbwObwPbrJbwQbrJbwRbwRbwRbwSbwTbrKbrJbrJbrLbwUbwVbwWbwXbwYbwZbxabgGbgGbxbbxcbvtbvubxdbxebxfbUbbnCbxibxjbxkbxlbvwaafbxmbqtbskbxobxpbxobskbqxbxraafbspbqwbxtbnDbedbxvbspbtVaJlbxwbcLaRpaJibxxbxybxzbxAbxBbxCbxDbxEbxCbxFbxGbxHbxFbwkbxIbxJbwkbwkbxKbxLbxMbxNbxObxPbxQbxRbxSaXKbaybdBaXKaVJbpjbxXbqZbqZbxYbxZbppbyabwsbwsbwsbsSbwtbybbwwbnSbUabTQbwwbyfbygbyhbyibpCbAtbnIbrqbykbnMaaaaaaaaaaaaaaaaafbylbymbwIbwJbwIbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index 027f3a8a73..f60bb21124 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -131,7 +131,7 @@ "cA" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_boxingcourt) "cB" = (/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_boxingcourt) "cC" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_boxingcourt) -"cD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod3/transit) +"cD" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/escape_pod3/transit) "cE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space) "cF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew4,/area/space) "cG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew13,/area/space) @@ -146,7 +146,7 @@ "cP" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt) "cQ" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_thunderdomecourt) "cR" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_thunderdomecourt) -"cS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/escape_pod3/transit) +"cS" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod3/transit) "cT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space) "cU" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/escape_pod5/transit) "cV" = (/obj/structure/window/reinforced/holowindow/disappearing,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt) @@ -167,7 +167,7 @@ "dk" = (/obj/item/weapon/beach_ball/holoball,/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_basketball) "dl" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet10-8"; dir = 4},/area/holodeck/source_meetinghall) "dm" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet13-5"; dir = 4},/area/holodeck/source_theatre) -"dn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/escape_pod3/transit) +"dn" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/escape_pod3/transit) "do" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_emptycourt) "dp" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_emptycourt) "dq" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_emptycourt) @@ -238,15 +238,15 @@ "eD" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/escape_pod3/transit) "eE" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns10,/area/space) "eF" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor{icon_state = "snow"},/area/holodeck/source_snowfield) -"eG" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape/centcom) -"eH" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape/centcom) -"eI" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape/centcom) +"eG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area/space) +"eH" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod3/transit) +"eI" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape/transit) "eJ" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_basketball) "eK" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_basketball) "eL" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/source_basketball) -"eM" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape/centcom) -"eN" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape/centcom) -"eO" = (/turf/space,/area/shuttle/escape/centcom) +"eM" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape/transit) +"eN" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape/transit) +"eO" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape/transit) "eP" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor{dir = 5; icon_state = "vault"},/area/holodeck/source_emptycourt) "eQ" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{dir = 5; icon_state = "vault"},/area/holodeck/source_emptycourt) "eR" = (/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_emptycourt) @@ -1570,8 +1570,8 @@ "Ej" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "Ek" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor{icon_state = "carpet7-3"; dir = 4},/area/holodeck/source_courtroom) "El" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"Em" = (/turf/space/transit/east/shuttlespace_ew6,/area/shuttle/escape_pod5/transit) -"En" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/escape_pod5/transit) +"Em" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape/transit) +"En" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/escape_pod5/transit) "Eo" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/item/weapon/inflatable_duck,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding) "Ep" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding) "Eq" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding) @@ -1901,7 +1901,7 @@ "KC" = (/obj/structure/table/reinforced,/obj/item/weapon/circular_saw,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) "KD" = (/obj/machinery/optable,/obj/item/organ/brain,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) "KE" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{tag = "icon-lava"; name = "plating"; icon_state = "lava"},/area/wizard_station) -"KF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/escape_pod5/transit) +"KF" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/escape_pod5/transit) "KG" = (/turf/unsimulated/floor{tag = "icon-ironsand14"; icon_state = "ironsand14"},/turf/unsimulated/floor{tag = "icon-asteroid7"; name = "plating"; icon_state = "asteroid7"},/area/wizard_station) "KH" = (/obj/structure/flora/ausbushes/grassybush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/wizard_station) "KI" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/wizard_station) @@ -1963,57 +1963,14 @@ "LM" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_basketball) "LN" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor{icon_state = "wood"; dir = 4},/area/holodeck/source_meetinghall) "LO" = (/turf/unsimulated/wall{icon_state = "iron7"},/area/space) -"LP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod5/transit) +"LP" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/escape_pod5/transit) "LQ" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor{icon_state = "wood"; dir = 4},/area/holodeck/source_meetinghall) "LR" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_boxingcourt) -"LS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/vox_station/transit) -"LT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit) -"LU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/vox_station/transit) -"LV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit) -"LW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/vox_station/transit) -"LX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/vox_station/transit) -"LY" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/vox_station/transit) -"LZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/syndicate_station/transit) -"Ma" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/syndicate_station/transit) -"Mb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/vox_station/transit) -"Mc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/vox_station/transit) -"Md" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/vox_station/transit) -"Me" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/syndicate_station/transit) -"Mf" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit) -"Mg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/syndicate_station/transit) -"Mh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/vox_station/transit) -"Mi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/syndicate_station/transit) -"Mj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/vox_station/transit) -"Mk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit) -"Ml" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit) -"Mm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/syndicate_station/transit) -"Mn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/syndicate_station/transit) -"Mo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/syndicate_station/transit) -"Mp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/syndicate_station/transit) -"Mq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/syndicate_station/transit) -"Mr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/syndicate_station/transit) -"Ms" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/syndicate_station/transit) -"Mt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit) -"Mu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit) -"Mv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/syndicate_station/transit) -"Mw" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/syndicate_station/transit) -"Mx" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit) -"My" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/syndicate_station/transit) -"Mz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/syndicate_station/transit) +"LS" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/escape_pod5/transit) +"LT" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/escape_pod5/transit) +"LU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space) +"LV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space) "MA" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area/space) -"MB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/syndicate_station/transit) -"MC" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/syndicate_station/transit) -"MD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/vox_station/transit) -"ME" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/syndicate_station/transit) -"MF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/vox_station/transit) -"MG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/vox_station/transit) -"MH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/syndicate_station/transit) -"MI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit) -"MJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/vox_station/transit) -"MK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/syndicate_station/transit) -"ML" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/syndicate_station/transit) -"MM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/vox_station/transit) -"MN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit) "MO" = (/obj/machinery/vending/cigarette{contraband = newlist(); premium = newlist(); prices = list(/obj/item/weapon/storage/fancy/cigarettes = 15, /obj/item/weapon/storage/box/matches = 1, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 20); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "MP" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "MQ" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) @@ -2091,15 +2048,15 @@ aoaSbbaUaZbabeaVbcaVbfcxfKcccqiZjgbUiLhZaUaVaTaZaRaYaWaXaVbfacbgbhbibjbnbkblaDap abaZaYaXaVbdbbbebfbecqcEbSbSbSbSbSbSbSiLbUaUbcaVaUbaaSaWbeaRaiarasatauavbgbhaybjbnbkblbmapaqarasapaqarasbhbibjbnbkblbmapaqaraHaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbpbpbpbpbpbpbpbpbrbQbQbQbQfEfEbQgebFbEbrbYbZiQiQiQiQiQiQcbosbreVffzopGAkpGAjftfCfvbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePcobJbJbJbJbJcpbB aeaVbaaWbeaTaYbbaRebczbSbSbSbSbSbSbSbSbSjgLDbfbeaXbdaZaSbbaUafbnbkblbmapaqaraHatauavbgbhbibjbnbiavaraqbhauasatauavbgbhbibjbnaBaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbpbpbpbvbpbpbpbCbrcMcLLABjbVbVbQBhbEbFbrbYLzcmcmcmcmcmcmLBLCbreVffEkCDAkCDCUftfCfvbrbwbwbwbHbwbwbHbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePcobJbJbJbJbJcpbB ahbebdaSbbbcbaaYaUcxbSbSbSbSbSbSbSbSbSbSbSiyaRbbaWaTaVaZaYaXanbmapaqarasatauaKbgbhbibjbnbkblbmcFcGcHcIcJcKavbgbhbibjbnbkblbmaEaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbvbpbpbpbpbpbpbpbrbFbEbFcMcLcMcLbEbFbEbrbYLzcmcmcmcmcmcmLBLCbreVLGLFAkAkAkLEftfCfvbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReRLHcobJbJbJbJbJcpbB -agbbaTaZaYbfbdbaaXcEbSbSbSbSbSbSbSbSbSbSbShZaUaYaSbcbeaVbaaWakbibjbnbkblbmapaFarasatauavdhEmcUEnbibjbnbkcYaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbpbpbpbpbpbpbpbpbrbEbFbEbFbEbFbEbFbFbEbrbYCBdmdmdmdmdmdmDJDKbreVffEkCDCDCDCUftfCfvbrbwbHbwbwbwbwbwbwbHbwbrbxbxbxbxbxbxbxbxbxbxbreReQePcobJbJbJbJbJcpbB -acaYbcaVbaaRaTbdaWcqbSbSbSbSbSbSbSbSbSbSbSigaXbaaZbfbbbebdaSaaasatauavbgbhbiazbnbkblbmapdwdxdyKFatauavbgdibhbnbkblbmapaqarasaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobCbpbpbpbvbpbpbpbpbvbrbsbtbsbtbsbsbtbsbtbsbrIZbYbYbYbYbYbYbYbYEObreVeUFjEzEzEzEvEuENeSbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePdodpdpdpdpdpdqbB -aibabfbebdaUbcaTaSczbSbSbSbSbSbSbSbSbSbSbSbUaWbdaVaRaYbbaTaZajbhbibjbnbkblbmaEaqarasataudgdhEmLPaqarasatdzapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMLOdBdBdBdBdBdBdBdBdBdBdCdBdBdBdBdBdBdBdBdBdBdCdBdBdBdBdBdBdBdBdBdBdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdE +agbbaTaZaYbfbdbaaXcEbSbSbSbSbSbSbSbSbSbSbShZaUaYaSbcbeaVbaaWakbibjbnbkblbmapaFarasatauavbgbhbicKcUKFLPEncYaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbpbpbpbpbpbpbpbpbrbEbFbEbFbEbFbEbFbFbEbrbYCBdmdmdmdmdmdmDJDKbreVffEkCDCDCDCUftfCfvbrbwbHbwbwbwbwbwbwbHbwbrbxbxbxbxbxbxbxbxbxbxbreReQePcobJbJbJbJbJcpbB +acaYbcaVbaaRaTbdaWcqbSbSbSbSbSbSbSbSbSbSbSigaXbaaZbfbbbebdaSaaasatauavbgbhbiazbnbkblbmapaqarasddLSLTdgdhdibhbnbkblbmapaqarasaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobCbpbpbpbvbpbpbpbpbvbrbsbtbsbtbsbsbtbsbtbsbrIZbYbYbYbYbYbYbYbYEObreVeUFjEzEzEzEvEuENeSbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePdodpdpdpdpdpdqbB +aibabfbebdaUbcaTaSczbSbSbSbSbSbSbSbSbSbSbSbUaWbdaVaRaYbbaTaZajbhbibjbnbkblbmaEaqarasatauavbgbheGdwdxdyLSdzapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMLOdBdBdBdBdBdBdBdBdBdBdCdBdBdBdBdBdBdBdBdBdBdCdBdBdBdBdBdBdBdBdBdBdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdE afbdaRbbaTaXbfbcaZcTbSbSbSbSbSbSbSbSbSbSbSdYaSaTbeaUbaaYbcaVamaqarasatauavbgaxbibjbnbkblbmapaqdHdddIcGcHcIbhbibjbnbkblbmapaqaGaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMdMdMdMdMdMdMdMbrLILILILILILILILILILQbrcncrcldOevdOdPdQevdQbrdRdSdTdRdUdRdSdTdRdUbrctcscudVdWdWdWdWdWdXbrLRLRcBcBcBcBcBcBcBcBbB anaTaUaYbcaWaRbfdGfsbSbSbSbSbSbSbSbSbSbSbSidiKbcbbaXbdbabfbeadauavbgbhbibjbnaBblbmapaqarasatauarbibjbnbkbgbkblbmapaqarasatauaKaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbXbWbWbWbWbXbWbrdMecdMdMdMdMecdMdMdMbrLILIedefeeedefLILILIbrcncrclegehegeheieheibrdUekejdUdRdUdRekekdRbrctcscueneoeoeoeoeoepbrcBcBcBcBcAcAcAcBcBcBbB akbcaXbabfaSaUaRebbSbSbSbSbSbSbSbSbSbSbSbSbSiebfaYaWaRaTaUaYaobjbnbkblbmapaqaGasatauavbgbhbibjcFcGcHcIcJcKarasatauavbgbhbibjaAaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMdMdMdMdMdMetdMbrLILILNLNLNLNLNLILILIbrcncnLMegeheveveveheibrdRdUdRdSdRdReweldSdRbrctctLLeneoeoeoeoeoepbrcBcBcBLKLJLJLJcBcBcBbB -aabfaWbdaRaZaXaUdcbSbSbSbSbSbSbSbSbSbSbSbSbSjgaRbaaSbcbcaXbaabbkblbmapaqarasaIauavbgbhbieyezeAdnbibjbnbkcYatauavbgbhbibjbnbkaCaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbXbWbWbWbWbXbWbWbWbrdMdMeTdMetdMdMdMdMdMbrdvdvdvdvdvdvdvdvdvdAbrcncrclegeheheheheheibrdSdRdUekdsdSdRdUekdUbrctcscueneoeoeoeoeoepbrcBcAcCdrdZdZercycAcBbB -ajaRaSaTaUaVaWaXcxbSbSbSbSbSbSbSbSbSbSbSbSbShZaUbdaZbfbfaWbdaeavbgbhbibjbnbkaCbmapaqaraseBeCeDcSatauavbgdiblbmapaqarasatauavawaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMeFdMdMdMdMeFdMbreedfdedededededldNcjbrcncrcleJeKeKdkeKeKeLbrdRdTdRdSdTdRdTcXdSfabrctcscucVcWcWcWcWcWdabrcBcAcCeqcNcNfhcycAcBbB -amaUaZbcaXbeaSaWcEbSbSbSbSbSbSbSbSbSbSbSbSbSigaXaTaVaRaRaSaTahbnbkblbmapaqaraHatauavbgbhexeyezcDaqarasatdzasatauavbgbhbibjbnaBaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMdMdMdMdMdMdMdMbreececacacacacackdNcjbrcncrcleXeYeYeYeYeYeZbrdUfafbfbfcdTfafbfbflbrctcscucRcPcPcPcPcPcQbrcBcAcCeqcNcNfhcycAcBbB +aabfaWbdaRaZaXaUdcbSbSbSbSbSbSbSbSbSbSbSbSbSjgaRbaaSbcbcaXbaabbkblbmapaqarasaIauavbgbhbibjbnbkcKexeyezeAcYatauavbgbhbibjbnbkaCaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbXbWbWbWbWbXbWbWbWbrdMdMeTdMetdMdMdMdMdMbrdvdvdvdvdvdvdvdvdvdAbrcncrclegeheheheheheibrdSdRdUekdsdSdRdUekdUbrctcscueneoeoeoeoeoepbrcBcAcCdrdZdZercycAcBbB +ajaRaSaTaUaVaWaXcxbSbSbSbSbSbSbSbSbSbSbSbSbShZaUbdaZbfbfaWbdaeavbgbhbibjbnbkaCbmapaqarasatauavddeBeCeDeHdiblbmapaqarasatauavawaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMeFdMdMdMdMeFdMbreedfdedededededldNcjbrcncrcleJeKeKdkeKeKeLbrdRdTdRdSdTdRdTcXdSfabrctcscucVcWcWcWcWcWdabrcBcAcCeqcNcNfhcycAcBbB +amaUaZbcaXbeaSaWcEbSbSbSbSbSbSbSbSbSbSbSbSbSigaXaTaVaRaRaSaTahbnbkblbmapaqaraHatauavbgbhbibjbneGdncScDeBdzasatauavbgbhbibjbnaBaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMdMdMdMdMdMdMdMbreececacacacacackdNcjbrcncrcleXeYeYeYeYeYeZbrdUfafbfbfcdTfafbfbflbrctcscucRcPcPcPcPcPcQbrcBcAcCeqcNcNfhcycAcBbB adaXaVbfaWbbaZaScqbSbSbSbSbSbSbSbSbSbSbSbSbSbUaWbcbeaUaUaZbcagarasatauavbgbhaybjbnbkblbmapaqardHdddIcGcHcIbibjbnbkblbmapaqaraHaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbXbWbWbWbWbXbWbrdMdMdMdMecdMeTdMdMecbrdNcecacacacacackdNcjbrcncrclfiehehehehehfkbrfaflfmfmfnfbflfmfmfmbrctcscufoeoeoeoeoeofpbrcBcAcCerfDfDcvcycAcBbB alaWbeaRaSaYaVaZczbSbSbSbSbSbSbSbSbSbSbSbSbSdYaSbfbbaXaXaVbfacbibjbnbkblbmapaFarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrfqdMdMdMdMfqdMdMdMdMbrdNcecacacacacackdNcjbrcncneufiehfrfrfrehfkbrflfmfmfmfmfmfmfmfmfmbrctctesfoeoeoeoeoeofpbrcBcBcBeaeaeaemcBcBcBbB aoaSbbaUaZbabeaVcTbSbSbSbSbSbSbSbSbSbSbSbSbSidaZaRaYaWaWbeaRaiatauavbgbhbibjaAbkblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasataJaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbXbWbWbWbWbXbWbWbWbrdMeFdMeTdMdMeFdMeTdMbrdNdKdJdJdJdJdJdLdNcjbrcncrclfiehfiehfkehfkbrfmfmfmfmfmfmfmfmfmfmbrctcscufoeoeoeoeoeofpbrcBcBcBcAcAcAcBcBcBcBbB @@ -2109,41 +2066,41 @@ ahbebdaSbbbcbaaYfFbSbSbSbSbSbSbSbSbSbSbSbSbSipbbaWaTaVaTaUaYeEauavbgbhbibjbnaBbl agbbaTaZaYbfbdbafKbSbSbSbSbSbSbSbSbSbSbSbSbSiyaYaSbcbeaTaUaYaobhbibjbnbkblbmaEaqarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM acaYbcaVbaaRaTbdcObSbSbSbSbSbSbSbSbSbSbSbSbSiPbaaZbfbbbcaXbaabasatauavbgbhbiazaAaBaCaDaEaFaGaHaIaJaKawaxayazaAaBaCaDaEaFaGaHaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aibabfbebdaUbcaTchbSbSbSbSbSbSbSbSbSbSbSbSbSiZbdaVaRaYbfaWbdaeaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -afbdaRbbaTaXbfbcdueOeOeOeOeOeOeOeOeOeOeOeOeOitaTbeaUbaaRaSaTahaRaaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoaRbbaLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -anaTaUaYbcaWaRbfieigigbUeGeOeOeOeOeOeGiLipigiKbcbbaXbdaUaZbcagaUajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZabaUaYaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -akbcaXbabfaSaUaRbeaWbbiedYeGeHeMeIeNhZiPbaaRaVbfaYaWaTaXaVbfacaXamaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaXbaaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +afbdaRbbaTaXbfbcdubSbSbSbSbSbSbSbSbSbSbSbSbSitaTbeaUbaaRaSaTahaRaaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoaRbbaLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +anaTaUaYbcaWaRbfieigigbUeIbSbSbSbSbSeIiLipigiKbcbbaXbdaUaZbcagaUajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZabaUaYaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +akbcaXbabfaSaUaRbeaWbbiedYeIeMeOeNEmhZiPbaaRaVbfaYaWaTaXaVbfacaXamaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaXbaaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aabfaWbdaRaZaXaUbbaSaYbeidbUieiuiPiKigaWbdaUbeaRbaaSbcaWbeaRaiaWadaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaWbdaLfLbeaXbdbebeaXbdbeaXbdbeaXbdbeaXbdbebeaXbdbeaXbdbeaXbdbeaXbdbeaXbdbebeaXaMfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM ajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZbfaSbbaUafaSalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaSaTaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfMfNfNfNfNfNfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM amaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaRaZaYaXanaZaoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaZbcaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfPfQfRfSfTfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM adaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeaUaVbaaWakaVabaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaVbfaLfLbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUfVfVfVfUfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM alaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbaXbebdaSaabeaeaVbaaWbeaTaYbbaRfWcfdbfXfYfZcwdtcgaUbaaWbbbfbeaXbdafbeaRaLfLaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgagagafUfOgbgcfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYaWbbaTaZajbbahbebdaSbbbcglgsMwMxgfggghaWbfaVbafZgmbdaSaYaRbbaWaTanbbaUaLfLaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaSaYbcaVamaYagbbaTaZaYgjgIglMygigqghglgraYaSbcbegwaTaZbaaUaYaSbcakaYaXaLfLaXbcbcbbaXbcbbaXbcbbaXbcbbaXgxgygmgmgxgxgyaXbcbbaXbcbbaXbcbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUgzgAgBgCgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafamabakMAbaacaYbcaVbagggqgIMzgtgugkgIgfbaaZbfbbgKbcaVbdaXbaaZbfaabaaWaLfLaWbfbfaYaWbfaYaWbfaYaWgNaYaWgLgMgwgwgLbfgOaWbfaYaWbfaYaWbfaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUgPgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ahbdaSaYaRbbaWaTbbbdaSaYaRbbaWaTbbaWaTbdaSaYaRbbaWaTanaMaMaMaMbdaibabfbebdgrgugqMBghgjgvgqgibdaVaRaYgQbfbeaTaWbdaVaRajbdaSaLfLaSaRaRbaaSaRbagKgRgSgKLWMbMjLWgTaSaSaRaRgSgKgRgSgKgRgSgKaRbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogohtgXgYgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -agaTaZbaaUaYaSbcaYaTaZbaaUaYaSbcaYaSbcaTaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbaTgfgjguMCgkgggJgugtaTbeaUbagZaRbbbcaSaTbeaUamaTaZaLfLaZaUaUbdhdaUbdMdaUbdhdhaLXMdhahchdaZaUhabdgQMhbdaZaUbdgQaUbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogohtgXgYgEgEgEgEjugEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -acbcaVbdaXbaaZbfbabcaVbdaXbaaZbfbaaZbfbcaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYbcgigggjMEgvgrgsgjghbcbbaXbdhhaUaYbfaZbcbbaXadbcbeaLfLaVaXaXaThkhihjLYaXhjhkhiMDhkhihjhkhkaXhihjhkLUaTaVaXaTgZaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUhmgohnfUgPgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aibfbeaTaWbdaVaRbdbfbeaTaWbdaVaRbdaVaRbfbeaTaWbdaVaRajaMaMaMaMbfakbcaXbabfaSgrggMHMIgfglggaVbfaYaWcggyaXbaaRaVbfaYaWalbfbbaLfLbeaWaWbchrhphqMFaWhqhrhpMGhrhphqhrhraWhphqhrLSbcbeaWbchhaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNhsfUjvfUhugzgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -afaRbbbcaSaTbeaUaTaRbbbcaSaTbeaUaTbeaUaRbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdaRaZgfgrMIMKgrgvgrbeaRaUbefZgOaWbdaUbeaRbaaSaoaRaYaLfLbbaSaSbfhvgUgNMJaSgNhvgUMchvgUgNhvhvaSgUgNhvMjbfbbaSbfgyaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNaMhshwhuaMgzgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxhyhzhAhBhfhfhfaMhghghghxhyhzhAhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -anaUaYbfaZbcbbaXbcaUaYbfaZbcbbaXbcbbaXaUaYbfaZbcbbaXadaMaMaMaMaUajaRaSaTaXMvMqMrMLgrgigsgigsaXaWaYaVfZfZgxhCaYaUbdaZabaUbaaLfLaZaRaYaZgMhdgVMMhdgVgMhdgVgMhdgVgMhdgVgMhdgMhdaRaYaZaRgOaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEhFhFhFhGhHhIhHhHhHhJhHhKhFhFhFhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -akaXbaaRaVbfaYaWbfaXbaaRaVbfaYaWbfaYaWaXbaaRaVbfaYaWalaMaMaMaMaXamaUghgugiMNgkgtgIgigsgjgrgvgigugvaUaTaVaVfXbaaXaTaVaeaXbdaLfLaVaUbaaVgThkhaMbhkhagThkhagThkhagThkhagThkgThkaUbaaVaUgSaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEhLhMhNhOhPhQhRhShThUhPhVhWhXhYhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aaaWbdaUbbaSaYbeaTaUhZiaibicidbaiecdifcwigaUbeaRbaaSaoaMaMaMaMaWadaXgkgjgtMagkghgqgugvgggigsgtgjgkaXbcbeaRcwbdaWbcbeahaWaTaLfLbeaXbdbehchrhiLXhrhihchrhihchrhihchrhihchrhchraXbdbeaXhbbeaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEiiiiijikilimilinilimilioijiiiihEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ajbaaTaXaRbdaUbfaSaXipiqirisitaXiuiviwixiyaXbbaUbdaZabaMaMaMaMaSalaWgvggghMggvgkgugjgJgrgkgqghgggsaWbfbbaUizaTaSbfbbagaSbcaLfLbeaXbdbehchrLULXhrhihchrhihchrhihchrhihchrhchraXbdbeaXhbhhaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAiAiAiBiAiAiAiCiDiAiAiAiCiAiAiAiAiAiAiCiAiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhWiiiFimimimimimimimimimiFiihNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ambdbcaWaUaTaXaRaZaWiyiHiIiJiKaWiLiMiNiOiPaWaYaXaTaVaeaMaMaMaMaZaoaSgJgrgkLVgJgvgjgggsgfgvgugkgrglaSaRaYaXicbcaZaRaYacaZbfaLfLbeaXbdhrhchrLUhchrhihchrhihchrhihchrhihchrhchrhibdbeaXbdhhaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiBiAiAiAiAiAiAiAiAiAiAiAiCiAiAiAiAiAiCiAiAiAiAiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhHhKiRilimiliSiSilimiThGhHiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -adaTbfaSaXbcaWaUaVaSiPiUiVirieaSipiWiXiYiZaSbaaWbcbeahaMaMaMaMaVabaZgsgfgvLTgsgJgggrglgigJgjgvgfgIaZaUbaaWhobfaVaUbaaibeaRaLfLbbaWaThvhjhvLShjhvhphjhvhphjhvhphjhvhphjhvhjhvhpaTbbaWaTgyaWaTbbaWaTaMbbfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAjaiAiAiAiAiAiBiAiAiDiCiAiAiCiAiAiCiDiAiCiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjbinimjcjbjbjdimjehEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -albcaRaZaWbfaSaXbeaZiZisjfiIjgaZiyjhixjiitaZbdaSbfbbagaMaMaMaMbeaeaVglgigJMeglgsgrgfgIgtgsgggJgigqaVaXbdaSdtaRbeaXbdafaMaUaLfLbfbabaaZgNgTMdMcbaaZgNgTMdMcgThdgNbfbagThdMcMbaZbfbaaZgLgSaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiBiAiAiCiDiAiAiCiAiDihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhEjkilimjcjbjbjdimhPhEjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aobfaUaVaSaRaZaWbbaVitipiKiZhZaViPigiuiyiKaVaTaZaRaYacaMaMaMaMbbahbegIgtMaLZgIglgfgigqghglgrgsgtgubeaWaTaZhDgdbbaWaTanbbaXaLfLaRbdbdaVaRbdaVgRhbgZLWLXLYLWhchkgVaRbdbdaVgRhbgZgRhbgZgRbdaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiBiAiAiAiAiAiDiAiCiDiAiCiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjjmjnimimiljojoilimjpjqjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -abaRaXbebcaVaUbaaVaRaXbebcaVaUbaaVaUbaaRaXbebcaVaUbaaiaMaMaMaMaYaggJgqghMggggqgIgigtgugkgIgfglghgjgJaSbcaVbdgmaYaSbcakaYaWaLfLaUaTaTbeaUaTbeaUaTbehahjhrMhhjhrhaaUaTaTbegdaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAjrjrjrjrjrjrjriAiAiAiAiAiAiAiCiAiAjaiDiAiAiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhEhPjsimimimimimimilhEjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aebaaWbbbfbeaXbdbebaaWbbbfbeaXbdbeaXbdbaaWbbbfbeaXbdafaMaMaMaMbaacgsgugkMfgrgugqgtghgjgvgqgigIgkgggsaZbfbeaTgwbaaZbfaabaaSaLfLaXbcbcbbaXbcbbaXbcbbhihqhvLUhqhvhiaXbcbcbbgmbcbbaXbcbbaXbcbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAjtfOdjgWgWgWhefOjxiAiAiAiAjaiAiAiBiAiBiAiCiAiCihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhGhHhHhHjyimilimimjzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ahaSaSaYaRbbaWaTbbaSaSaYaRbbaWaTbbaWaTaSaSaYaRbbaWaTanaMaMaMaMbdaiglgjgvMkgfgjgughgkgggJgugtgqgvgrglaVaRbbbcgKbdaVaRajbdaZaLfLaWbfbfaYaWbfaYaWbfaYhpgNgMLSgNgMhpaWbfbfaYgwbfaYaWbfaYaWbfaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAfOjAjBjCjDjEjFjFfOjGiAiAjrjrjrjrjrjrjrjrjHjIjrihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjJjJjKjLimilimimiljMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -agaZaZbaaUaYaSbcaYaZaZbaaUaYaSbcaYaSbcaZaZbaaUaYaSbcakaMaMaMaMaTafgIgggJMigigggjgkgvgrgsgjghgugJgfgIbeaUaYbfgQaTbeaUamaTbeaLfLaSaRaRbaaSaRbaaSaRbagUgVgTMjgVgTgUaSaRaRbagKaRbaaSaRbaaSaRbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAfOjNjBjBjOjBjBjBfOjGiAjPjQjRjRjSihihihihihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjTjUjUjUjVimjWjXjYjXhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -acaVaVbdaXbaaZbfbaaVaVbdaXbaaZbfbaaZbfaVaVbdaXbaaZbfaaaMaMaMaMbcangqgrgsMmgtgrgggvgigJgkgIgsghgqgrgtbbaXbaaRgZbcbbaXadbcbbaLfLaZaUaUbdaZaUbdaZaUbdaZhahcMdMhhcaZaZaUaUhbgQaUbdaZaUbdaZaUbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAfOjZjBjBjBkajBkbfOjGjajPkckdkdkdkekfihkgkhihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUkkimklkmknkohEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aibebeaTaWbdaVaRbdbebeaTaWbdaVaRbdaVaRbebeaTaWbdaVaRajaMaMaMaMbfakgugfglMlghgfgrgJgtgsgvgqglgkgugfghaYaWbdaUhhbfaYaWalbfaYaLfLaVaXaXaTaVaXaTaVaXaTaVaXaTaVgmhlgZgZgmgmhlaVaXaTaVaXaTaVaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAkpfOfOfOkqfOfOfOkriAiAkskckdkdktkdkdkukvkvkwihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkxjUjUjLimjXkykykzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -afbbbbbcaSaTbeaUaTbbbbbcaSaTbeaUaTbeaUbbbbbcaSaTbeaUamaMaMaMaMaRaagjgigIMogkgigfgsghglgJgugIgvgjgigkbaaSaTaXdcaRbaaSaoaRbaaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAfOkAjBkAfOkBjrjrjrkCkDkdkEkFkGkdihkvkHkHihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUjVimkIkykykJhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -analahajaoacaeabanagakafamaafLfLfLfLfLahajabafaoaaagadaMaMaMaMaUajgggtgqMngvgtgiglgkgIgsgjgqgJgggtgvbdaZbcaWdtaUbdaZabaUbdaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAfOkKjBkLfOjQjRjRjRjSihkdkEkMkGkdihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEkNkNhHkOkPhHhHkNkNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -bebcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWaTaMaMaMaMaXamgrghguMrgJaZgtgIgvLTglaRgugsgrMsgJaTaVbfaShDaXaTbeaeaXaTaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAjtfOfOfOfOfOkKjBkLfOkckQkQkQkQkRkdkdkdkdkdkSkTkUihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhKkVjdimkWkXhGiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -bbaWbdaUbeaRaUbeaRaWbdaUbeaRaWbdaUbeaRaWbdaUbeaRbaaSbcaMaMaMaMaWadgfgkgjMqgsaVghgqgJMegIaUgjglgfMpgsbcbeaRaZfWaWbcbeahaWbcaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAfOkYjBjBjBfOkKjBkLfOkDkQkZjRjSihkdkdkdkdkdihlalalbihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjbiliSillchEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aYaSaTaXbbaUaXbbaUaSaTaXbbaUaSaTaXbbaUaSaTaXbbaUbdaZbfaMaMaMaMaSalgigvggMsglbeaVbcaYdbcgfYMtMuMrMvglbfbbaUaVcgaSbfbbagaSbfaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAfOkYjBkKlefOkKjBkLfOfOlflglhliihihihihihljihlklalbihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhElllmlnlolphEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYaWbbaTaZajbbahbebdaSbbbcbaaYgdLVgfggghgigjgkglfZgmbdaSaYaRbbaWaTanbbaUaLfLaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaSaYbcaVamaYagbbaTaZaYbfbdbagmgigqghglgrgsgtgugvgwaTaZbaaUaYaSbcakaYaXaLfLaXbcbcbbaXbcbbaXbcbbaXbcbbaXgxgygmgmgxgxgyaXbcbbaXbcbbaXbcbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUgzgAgBgCgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafamabakMAbaacaYbcaVbaaRaTbdgwgtgugkgIgfglghgjgJgKbcaVbdaXbaaZbfaabaaWaLfLaWbfbfaYaWbfaYaWbfaYaWbfaYaWgLgMgwgwgLgNgOaWbfaYaWbfaYaWbfaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUgPgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ahbdaSaYaRbbaWaTbbbdaSaYaRbbaWaTbbaWaTbdaSaYaRbbaWaTanaMaMaMaMbdaibabfbebdaUbcaTgKghgjgvgqgigIgkgggsgQbfbeaTaWbdaVaRajbdaSaLfLaSaRaRbaaSaRbagKgRgSgKgRgSgKgRgTgUgUgVgVgSgKgRgSgKgRgSgKaRbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogohtgXgYgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +agaTaZbaaUaYaSbcaYaTaZbaaUaYaSbcaYaSbcaTaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbaTaXbfbcgQgkgggJgugtgqgvgrglgZaRbbbcaSaTbeaUamaTaZaLfLaZaUaUbdaZaUbdgQhahchdhahbgQhahchdhdhahahcgQgdhchdhahcgQaUbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogohtgXgYgEgEgEgEjugEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +acbcaVbdaXbaaZbfbabcaVbdaXbaaZbfbaaZbfbcaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYbcaWaRbfgZgvgrgsgjghgugJgfgIhhaUaYbfaZbcbbaXadbcbeaLfLaVaXaXaTaVaXaTgZhihjhkhihlhkhihjhkhkhihihjhkgmhjhkhihjgZaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUhmgohnfUgPgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aibfbeaTaWbdaVaRbdbfbeaTaWbdaVaRbdaVaRbfbeaTaWbdaVaRajaMaMaMaMbfakbcaXbabfaSaUaRhhhogfglgggkgjgsgicggyaXbaaRaVbfaYaWalbfbbaLfLbeaWaWbcbeaWbchhhphqhrhpgxhrhphqhrhrhphphqhrgwhqhrhphqhhaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNhsfUjvfUhugzgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +afaRbbbcaSaTbeaUaTaRbbbcaSaTbeaUaTbeaUaRbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdaRaZaXaUhodtgrgvgrgvgggrgvfZgOaWbdaUbeaRbaaSaoaRaYaLfLbbaSaSbfbbaSbfgygUgNhvgUgLhvgUgNhvhvgUgUgNhvgKgNhvgUgNgyaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNaMhshwhuaMgzgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxhyhzhAhBhfhfhfaMhghghghxhyhzhAhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +anaUaYbfaZbcbbaXbcaUaYbfaZbcbbaXbcbbaXaUaYbfaZbcbbaXadaMaMaMaMaUajaRaSaTaXicfXhChDgrgigsgigsgfgigsgkfZfZgxhCaYaUbdaZabaUbaaLfLaZaRaYaZaYaZaRgOhdgVgMhdgVgMhdgVgMhdgVgMhdgMhdgVgMhdgVgOaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEhFhFhFhGhHhIhHhHhHhJhHhKhFhFhFhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +akaXbaaRaVbfaYaWbfaXbaaRaVbfaYaWbfaYaWaXbaaRaVbfaYaWalaMaMaMaMaXamaUaZbcaWgygkgtgIgigsgjgrgvgigugvgrgqgkgkfXbaaXaTaVaeaXbdaLfLaVaUbaaVbaaVaUgShkhagThkhagThkhagThkhagThkgThkhagThkhagSaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEhLhMhNhOhPhQhRhShThUhPhVhWhXhYhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aaaWbdaUbbaSaYbeaTaUhZiaibicidbaiecdifcwigaUbeaRbaaSaoaMaMaMaMaWadaXaVbfaSgOgkghgqgugvgggigsgtgjgkgfgugvggcwbdaWbcbeahaWaTaLfLbeaXbdbebdbeaXhbhrhihchrhihchrhihchrhihchrhchrhihchrhihbbeaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEiiiiijikilimilinilimilioijiiiihEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ajbaaTaXaRbdaUbfaSaXipiqirisitaXiuiviwixiyaXbbaUbdaZabaMaMaMaMaSalaWbeaRaZgSgvgkgugjgJgrgkgqghgggsgigjgJgrizaTaSbfbbagaSbcaLfLbeaXbdbebdbegmhbhrhihchrhihchrhihchrhihchrhchrhihchrhihbhhaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAiAiAiBiAiAiAiCiDiAiAiAiCiAiAiAiAiAiAiCiAiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhWiiiFimimimimimimimimimiFiihNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ambdbcaWaUaTaXaRaZaWiyiHiIiJiKaWiLiMiNiOiPaWaYaXaTaVaeaMaMaMaMaZaoaSbbaUaVLUgJgvgjgggsgfgvgugkgrglgtgggsgficbcaZaRaYacaZbfaLfLbeaXbdbebdbegmhchrhihchrhihchrhihchrhihchrhchrhihchrhihchhaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiBiAiAiAiAiAiAiAiAiAiAiAiCiAiAiAiAiAiCiAiAiAiAiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhHhKiRilimiliSiSilimiThGhHiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +adaTbfaSaXbcaWaUaVaSiPiUiVirieaSipiWiXiYiZaSbaaWbcbeahaMaMaMaMaVabaZaYaXbecggsgJgggrglgigJgjgvgfgIghgrglgihobfaVaUbaaibeaRaLfLbbaWaTbbaTbbgwhjhvhphjhvhphjhvhphjhvhphjhvhjhvhphjhvhphjgyaWaTbbaWaTaMbbfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAjaiAiAiAiAiAiBiAiAiDiCiAiAiCiAiAiCiDiAiCiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjbinimjcjbjbjdimjehEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +albcaRaZaWbfaSaXbeaZiZisjfiIjgaZiyjhixjiitaZbdaSbfbbagaMaMaMaMbeaeaVbaaWbbfZglgsgrgfgIgtgsgggJgigqgkgfgIgtdtaRbeaXbdafaMaUaLfLbfbabaaZbfbagQgLgThdgNgTgQgLgThdgNgNgTgThdgLgShdgNgThdgLgSaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiBiAiAiCiDiAiAiCiAiDihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhEjkilimjcjbjbjdimhPhEjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aobfaUaVaSaRaZaWbbaVitipiKiZhZaViPigiuiyiKaVaTaZaRaYacaMaMaMaMbbahbebdaSgOdbgIglgfgigqghglgrgsgtgugvgigqghhDgdbbaWaTanbbaXaLfLaRbdbdaVaRbdaVgRhbgZgRhbgZgRhchkgVgVhchchkgRhbgZgRhbgZgRbdaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAiAiAiAiAiAiAiAiAiBiAiAiAiAiAiDiAiCiDiAiCiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjjmjnimimiljojoilimjpjqjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +abaRaXbebcaVaUbaaVaRaXbebcaVaUbaaVaUbaaRaXbebcaVaUbaaiaMaMaMaMaYagbbaTaZgSgggqgIgigtgugkgIgfglghgjgJgtgugkgIgmaYaSbcakaYaWaLfLaUaTaTbeaUaTbeaUaTbeaUaTbegdhjhrhahahjhjhrgdaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAjrjrjrjrjrjrjriAiAiAiAiAiAiAiCiAiAjaiDiAiAiAihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhEhPjsimimimimimimilhEjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aebaaWbbbfbeaXbdbebaaWbbbfbeaXbdbeaXbdbaaWbbbfbeaXbdafaMaMaMaMbaacaYbcaVhbgrgugqgtghgjgvgqgigIgkgggsghgjgvgqgwbaaZbfaabaaSaLfLaXbcbcbbaXbcbbaXbcbbaXbcbbgmhqhvhihihqhqhvgmbcbbaXbcbbaXbcbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAjtfOdjgWgWgWhefOjxiAiAiAiAjaiAiAiBiAiBiAiCiAiCihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhGhHhHhHjyimilimimjzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ahaSaSaYaRbbaWaTbbaSaSaYaRbbaWaTbbaWaTaSaSaYaRbbaWaTanaMaMaMaMbdaibabfbehlgfgjgughgkgggJgugtgqgvgrglgkgggJgugKbdaVaRajbdaZaLfLaWbfbfaYaWbfaYaWbfaYaWbfaYgwgNgMhphpgNgNgMgwbfaYaWbfaYaWbfaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAfOjAjBjCjDjEjFjFfOjGiAiAjrjrjrjrjrjrjrjrjHjIjrihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjJjJjKjLimilimimiljMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +agaZaZbaaUaYaSbcaYaZaZbaaUaYaSbcaYaSbcaZaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbgxgigggjgkgvgrgsgjghgugJgfgIgvgrgsgjgQaTbeaUamaTbeaLfLaSaRaRbaaSaRbaaSaRbaaSaRbagKgVgTgUgUgVgVgTgKaRbaaSaRbaaSaRbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAfOjNjBjBjOjBjBjBfOjGiAjPjQjRjRjSihihihihihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjTjUjUjUjVimjWjXjYjXhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +acaVaVbdaXbaaZbfbaaVaVbdaXbaaZbfbaaZbfaVaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYgLgtgrgggvgigJgkgIgsghgqgrgtgJgfglgggZbcbbaXadbcbbaLfLaZaUaUbdaZaUbdaZaUbdaZaUbdgQgdhchdhdhahahbgQaUbdaZaUbdaZaUbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAfOjZjBjBjBkajBkbfOjGjajPkckdkdkdkekfihkgkhihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUkkimklkmknkohEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aibebeaTaWbdaVaRbdbebeaTaWbdaVaRbdaVaRbebeaTaWbdaVaRajaMaMaMaMbfakbcaXbagRghgfgrgJgtgsgvgqglgkgugfghgsgigIgrhhbfaYaWalbfaYaLfLaVaXaXaTaVaXaTaVaXaTaVaXaTaVgmhlgZgZgmgmhlaVaXaTaVaXaTaVaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAkpfOfOfOkqfOfOfOkriAiAkskckdkdktkdkdkukvkvkwihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkxjUjUjLimjXkykykzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +afbbbbbcaSaTbeaUaTbbbbbcaSaTbeaUaTbeaUbbbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdfFgkgigfgsghglgJgugIgvgjgigkglgtgqgfdcaRbaaSaoaRbaaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAfOkAjBkAfOkBjrjrjrkCkDkdkEkFkGkdihkvkHkHihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUjVimkIkykykJhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +analahajaoacaeabanagakafamaafLfLfLfLfLahajabafaoaaagadaMaMaMaMaUajaRaSaTfYgvgtgiglgkgIgsgjgqgJgggtgvgIghgugidtaUbdaZabaUbdaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAiAiAiAiAiAfOkKjBkLfOjQjRjRjRjSihkdkEkMkGkdihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEkNkNhHkOkPhHhHkNkNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +bebcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWaTaMaMaMaMaXamaUaZbchCgJghgtgIgvcgglgggugsgrcwgJgqgkgjgthDaXaTbeaeaXaTaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAjtfOfOfOfOfOkKjBkLfOkckQkQkQkQkRkdkdkdkdkdkSkTkUihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhKkVjdimkWkXhGiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +bbaWbdaUbeaRaUbeaRaWbdaUbeaRaWbdaUbeaRaWbdaUbeaRbaaSbcaMaMaMaMaWadaXaVbffXgsgkghgqgJfZgIgrgjglgfizgsgugvggghfWaWbcbeahaWbcaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAfOkYjBjBjBfOkKjBkLfOkDkQkZjRjSihkdkdkdkdkdihlalalbihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjbiliSillchEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aYaSaTaXbbaUaXbbaUaSaTaXbbaUaSaTaXbbaUaSaTaXbbaUbdaZbfaMaMaMaMaSalaWbeaRcwglgvgkgugsdbcgfYldfWhCicglgjgJgrgkcgaSbfbbagaSbfaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAfOkYjBkKlefOkKjBkLfOfOlflglhliihihihihihljihlklalbihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhElllmlnlolphEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM baaZbcaWaYaXaWaYaXaZbcaWaYaXaZbcaWaYaXaZbcaWaYaXaTaVaRaMaMaMaMaZaoaSbbaUizfWhoicdbhDldbcaWaUaTaShofWlddtfYicfZaZaRaYacaZaRaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihlqiAfOkYjBkKlrfOfOlsfOfOltjBjBfOlulvliihlwlxlyihihihihihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiElzlAlAlAlBiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM bdaVbfaSbaaWaSbaaWaVbfaSbaaWaVbfaSbaaWaVbfaSbaaWbcbeaUaMaMaMaMaVaeaVbaaWbeaTaYbbaRbdaUbfaSaXbcaZaYaTaUbaaWbbbfbeaXbdafaVaXaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAfOkYjBjBjBlCjBjBlDjBjBjBjBfOjGiAjPlElFlxlxihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aTbeaRaZbdaSaZbdaSbeaRaZbdaSbeaRaZbdaSbeaRaZbdaSbfbbaXaMaMaMaMbeahakadaiaaaoamajahalagaeafacabanamaoagadacaiaeaaacalanbeaWaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihiAiAfOkYjBjBjBlGjBjBjBlHjBjBjBfOlIiAjPkclwlJlxihaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM From d4870b80ee8f3d0be83073e0883942b3c5393593 Mon Sep 17 00:00:00 2001 From: Raptor1628 Date: Tue, 24 Feb 2015 14:40:02 -0500 Subject: [PATCH 09/23] Assorted Fixes Rebalances the random armory so there are always energy weapons, projectile weapons, and ion weapons. Ammo no longer random. Fixes some oversights with the EMT area and improves flow. Sec Guns fit in belts. Fixes typos and a missing price in the vending machine. --- code/datums/supplypacks.dm | 12 +++ code/game/machinery/vending.dm | 2 +- .../objects/items/weapons/storage/belt.dm | 1 + code/game/objects/random/random.dm | 41 +++------ .../crates_lockers/closets/secure/security.dm | 4 +- code/modules/clothing/suits/armor.dm | 2 +- maps/exodus-1.dmm | 87 +++++++++---------- 7 files changed, 73 insertions(+), 76 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 51e93d37b1..9beb08adc2 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -843,6 +843,18 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee access = access_armory group = "Security" +/datum/supply_packs/randomised/autoammo + name = "Automatic weapon ammunition crate" + num_contained = 6 + contains = list(/obj/item/ammo_magazine/mc9mmt, + /obj/item/ammo_magazine/mc9mmt/rubber, + /obj/item/ammo_magazine/a556) + cost = 20 + containertype = /obj/structure/closet/crate/secure + containername = "Automatic weapon ammunition crate" + access = access_armory + group = "Security" + /* /datum/supply_packs/loyalty name = "Loyalty implant crate" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 3878cf6544..d5b97e2772 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -736,7 +736,7 @@ contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 3) prices = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 1,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 5,/obj/item/weapon/reagent_containers/food/snacks/chips = 1, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 2,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 1, - /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 1) + /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 1, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 2) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 8d76643d8d..f2222beead 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -113,6 +113,7 @@ /obj/item/device/pda, /obj/item/device/radio/headset, /obj/item/weapon/melee, + /obj/item/weapon/gun/projectile/sec, /obj/item/taperoll/police ) diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 57e9351595..773881ab58 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -170,21 +170,26 @@ prob(1);/obj/item/weapon/reagent_containers/syringe/drugs) -/obj/random/armory - name = "Random Armory Weapon" +/obj/random/energy + name = "Random Energy Weapon" desc = "This is a random security weapon." icon = 'icons/obj/gun.dmi' icon_state = "energykill100" item_to_spawn() - return pick(prob(3);/obj/item/weapon/gun/projectile/shotgun/pump,\ - prob(2);/obj/item/weapon/gun/energy/ionrifle,\ - prob(2);/obj/item/weapon/gun/projectile/automatic/wt550,\ - prob(1);/obj/item/weapon/gun/projectile/automatic/z8,\ - prob(2);/obj/item/weapon/gun/energy/laser,\ + return pick(prob(2);/obj/item/weapon/gun/energy/laser,\ prob(1);/obj/item/weapon/gun/energy/gun,\ + prob(2);/obj/item/weapon/gun/energy/stunrevolver) + +/obj/random/projectile + name = "Random Projectile Weapon" + desc = "This is a random security weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "revolver" + item_to_spawn() + return pick(prob(3);/obj/item/weapon/gun/projectile/shotgun/pump,\ + prob(2);/obj/item/weapon/gun/projectile/automatic/wt550,\ prob(3);/obj/item/weapon/gun/projectile/sec,\ prob(2);/obj/item/weapon/gun/projectile/sec/wood,\ - prob(3);/obj/item/weapon/gun/energy/taser,\ prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat) @@ -202,28 +207,10 @@ prob(2);/obj/item/ammo_magazine/c45m/rubber,\ prob(2);/obj/item/ammo_magazine/c45m/flash,\ prob(1);/obj/item/ammo_magazine/mc9mmt,\ - prob(3);/obj/item/ammo_magazine/mc9mmt/rubber,\ - prob(2);/obj/item/ammo_magazine/a556) + prob(3);/obj/item/ammo_magazine/mc9mmt/rubber) -/obj/random/armor - name = "Random Armor" - desc = "This is a random armor vest." - icon = 'icons/obj/clothing/suits.dmi' - icon_state = "kvest" - item_to_spawn() - return pick(prob(4);/obj/item/clothing/suit/storage/vest,\ - prob(3);/obj/item/clothing/suit/storage/vest/officer,\ - prob(3);/obj/item/clothing/suit/storage/vest/warden,\ - prob(3);/obj/item/clothing/suit/storage/vest/hos,\ - prob(2);/obj/item/clothing/suit/storage/vest/pcrc,\ - prob(1);/obj/item/clothing/suit/storage/vest/detective,\ - prob(2);/obj/item/clothing/suit/storage/vest/heavy,\ - prob(2);/obj/item/clothing/suit/storage/vest/heavy/officer,\ - prob(2);/obj/item/clothing/suit/storage/vest/heavy/warden,\ - prob(2);/obj/item/clothing/suit/storage/vest/heavy/hos,\ - prob(2);/obj/item/clothing/suit/storage/vest/heavy/pcrc) /obj/random/plushie name = "random plushie" 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 35c4a7f23e..f32e2b98ed 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -157,10 +157,9 @@ new /obj/item/weapon/storage/belt/security(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton/loaded(src) - new /obj/item/weapon/gun/energy/taser(src) + new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/storage/box/holobadge(src) new /obj/item/clothing/head/beret/sec/warden(src) - new /obj/item/weapon/gun/projectile/shotgun/pump(src) return @@ -190,7 +189,6 @@ new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/grenade/flashbang(src) new /obj/item/weapon/melee/baton/loaded(src) - new /obj/item/weapon/gun/energy/taser(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/taperoll/police(src) new /obj/item/device/hailer(src) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index bfc1b2d5cb..0b0791a918 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -264,7 +264,7 @@ /obj/item/clothing/suit/storage/vest/officer name = "officer armor vest" - desc = "A simple kevlar plate carrier beloning to Nanotrasen. This one has a security holobadge clipped to the chest." + desc = "A simple kevlar plate carrier belonging to Nanotrasen. This one has a security holobadge clipped to the chest." icon_state = "officervest_nobadge" item_state = "officervest_nobadge" icon_badge = "officervest_badge" diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index e4a6020ffe..63f2280cb2 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -74,11 +74,11 @@ "abv" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Fore"},/turf/simulated/floor/plating,/area/maintenance/foresolar) "abw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/foresolar) "abx" = (/obj/effect/decal/cleanable/ash,/obj/structure/closet/emcloset,/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/maintenance/security_port) -"aby" = (/obj/machinery/camera{c_tag = "Armoury - Tactical Equipment "; dir = 2; network = list("SS13")},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) -"abz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) -"abA" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) -"abB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) -"abC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) +"aby" = (/obj/machinery/camera{c_tag = "Armoury - Tactical Equipment "; dir = 2; network = list("SS13")},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/table/rack,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/tactical) +"abz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) +"abA" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) +"abB" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) +"abC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) "abD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/range) "abE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor,/area/security/range) "abF" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/range) @@ -106,7 +106,7 @@ "acb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/foresolar) "acc" = (/obj/machinery/door/airlock/engineering{name = "Fore Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/foresolar) "acd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/security_port) -"ace" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) +"ace" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) "acf" = (/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},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/tactical) "acg" = (/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},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/tactical) "ach" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/main) @@ -129,9 +129,9 @@ "acy" = (/obj/machinery/camera{c_tag = "Fore Solar Control"; dir = 1},/obj/structure/cable,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/foresolar) "acz" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Fore Solar Access"; dir = 8},/turf/simulated/floor/plating{dir = 4; icon_state = "warnplatecorner"},/area/maintenance/security_port) "acA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{name = "Tactical Equipment"; req_access_txt = "3"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) -"acB" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/random/armory,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) -"acC" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced{dir = 8},/obj/random/armory,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) -"acD" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced{dir = 4},/obj/machinery/light{dir = 1},/obj/random/armory,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"acB" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/random/projectile,/obj/random/projectile,/obj/random/projectile,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"acC" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced{dir = 8},/obj/random/energy,/obj/random/energy,/obj/random/energy,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"acD" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/weapon/storage/box/beanbags,/obj/item/weapon/storage/box/beanbags,/obj/item/weapon/storage/box/flashshells,/obj/item/weapon/storage/box/stunshells,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "acE" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "acF" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "acG" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/screwdriver{pixel_y = 15},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/security/main) @@ -167,11 +167,11 @@ "adk" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/security_starboard) "adl" = (/turf/simulated/floor/plating,/area/maintenance/security_starboard) "adm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/security_starboard) -"adn" = (/obj/machinery/light{dir = 8},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/table/rack,/obj/machinery/camera{c_tag = "Armoury - Secure"; dir = 4; network = list("SS13")},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"adn" = (/obj/structure/table/rack,/obj/machinery/door/window/brigdoor{dir = 2; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "ado" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "adp" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) -"adq" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/flashbangs,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) -"adr" = (/obj/structure/table/rack,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/storage/box/stunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/beanbags,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"adq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Armoury - Secure"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"adr" = (/obj/structure/table/rack,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/storage/box/emps{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "ads" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "adt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "adu" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) @@ -185,7 +185,7 @@ "adC" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1; name = "External Construction Airlock"; req_access_txt = "32"},/obj/item/tape/engineering{icon_state = "engineering_door"; layer = 4},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "adD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/security_port) "adE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_port) -"adF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/table/rack,/obj/random/armor,/obj/random/armor,/obj/random/armor,/obj/random/armor,/obj/random/armor,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"adF" = (/obj/structure/table/rack,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/taser,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "adG" = (/obj/machinery/door_control{id = "Armoury"; name = "Armoury Access"; pixel_x = -1; pixel_y = -28; req_access_txt = "3"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "adH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "adI" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/security/main) @@ -200,8 +200,8 @@ "adR" = (/obj/structure/closet/toolcloset,/obj/item/clothing/head/hardhat/dblue,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "adS" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/security_starboard) "adT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/security_port) -"adU" = (/obj/structure/table/rack,/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/random/ammo,/obj/random/ammo,/obj/random/ammo,/obj/random/ammo,/obj/random/ammo,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) -"adV" = (/obj/structure/table/rack,/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/random/ammo,/obj/random/ammo,/obj/random/ammo,/obj/random/ammo,/obj/random/ammo,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"adU" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"adV" = (/obj/structure/table/rack,/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/obj/structure/window/reinforced{dir = 4},/obj/item/clothing/suit/armor/laserproof{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "adW" = (/obj/machinery/flasher/portable,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "adX" = (/obj/machinery/light,/obj/machinery/flasher/portable,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "adY" = (/obj/machinery/door_control{id = "Armoury"; name = "Emergency Access"; pixel_x = -28; pixel_y = 4; req_access_txt = "3"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/floor,/area/security/main) @@ -3823,7 +3823,7 @@ "bvA" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bvB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bvC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) -"bvD" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 1; name = "Emergency Kit"; req_access_txt = "5"},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/sleeper) +"bvD" = (/obj/structure/table/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/armor/bulletproof{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "bvE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bvF" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bvG" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/substation/command) @@ -4545,7 +4545,7 @@ "bJu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central_two) "bJv" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_two) "bJw" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/hallway/primary/central_two) -"bJx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white_1"},/area/medical/medbay) +"bJx" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 1; name = "Emergency Kit"; req_access_txt = "5"},/obj/machinery/door/firedoor,/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag,/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/sleeper) "bJy" = (/obj/item/weapon/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Paramedic"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bJz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bJA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) @@ -4625,11 +4625,11 @@ "bKW" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor,/area/hallway/primary/central_two) "bKX" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/central_two) "bKY" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/central_two) -"bKZ" = (/obj/structure/table,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = -25; req_access_txt = "5"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/camera{c_tag = "EMT Storage"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "EMT Storage Privacy Shutters"; opacity = 0},/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bLa" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bLb" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLc" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "scanhide"; name = "Diagnostics Room Separation Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) -"bLd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) +"bLd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bLe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bLf" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "scanhide"; name = "Diagnostics Room Separation Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bLg" = (/obj/machinery/light{dir = 1},/obj/structure/filingcabinet/chestdrawer{dir = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/crew_quarters/heads/cmo) @@ -4696,11 +4696,11 @@ "bMp" = (/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central_three) "bMq" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_two) "bMr" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central_two) -"bMs" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 1; name = "EMT Storage"; req_access_txt = "5"},/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) -"bMt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) +"bMs" = (/obj/machinery/camera{c_tag = "EMT Storage"; dir = 1; network = list("SS13")},/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = -25; req_access_txt = "5"},/obj/item/weapon/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Paramedic"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bMt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bMu" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/sleeper,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "bMv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; name = "Acute Treatment"; req_access_txt = "5"},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay) -"bMw" = (/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access_txt = "5"},/obj/machinery/camera{c_tag = "Medbay Acute"; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bMw" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bMx" = (/obj/machinery/button/driver{dir = 2; id = "toxinsdriver"; pixel_y = 24},/turf/simulated/floor,/area/rnd/mixing) "bMy" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "CMO's Office"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) "bMz" = (/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) @@ -4780,7 +4780,7 @@ "bNV" = (/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"},/turf/simulated/wall,/area/medical/sleeper) "bNW" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bNX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/bed/roller,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) -"bNY" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) +"bNY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera{c_tag = "Medbay Acute"; network = list("SS13")},/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bNZ" = (/obj/machinery/hologram/holopad,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bOa" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bOb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "CMO's Office"; req_access_txt = "40"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) @@ -4859,8 +4859,8 @@ "bPw" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/engineering) "bPx" = (/turf/simulated/floor/plating,/area/maintenance/engineering) "bPy" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/engineering) -"bPz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bPA" = (/obj/structure/bed,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bPz" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute2"; name = "Acute Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/medbay) +"bPA" = (/obj/machinery/door_control{id = "scanhide"; name = "Diagnostics Room Separation Shutters"; pixel_x = -6; pixel_y = -25; req_access_txt = "5"},/obj/machinery/door_control{id = "acute2"; name = "Acute Treatment Privacy Shutters"; pixel_x = 6; pixel_y = -25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bPB" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = 36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/button/windowtint{id = "isoA_window_tint"; pixel_y = 26},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/patient_a) "bPC" = (/obj/machinery/camera{c_tag = "Medbay Port Corridor"; dir = 8; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 22; pixel_y = -9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bPD" = (/obj/machinery/camera{c_tag = "Medbay CMO Office"; dir = 4; network = list("SS13")},/obj/machinery/light_switch{pixel_x = -22; pixel_y = -9},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = -34; pixel_y = 2},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) @@ -4935,7 +4935,7 @@ "bQU" = (/obj/structure/closet,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) "bQV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bQW" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/engine,/area/rnd/misc_lab) -"bQX" = (/turf/simulated/floor{icon_state = "white_2"},/area/medical/medbay) +"bQX" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/iv_drip,/turf/simulated/floor,/area/medical/sleeper) "bQY" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "n2_in"; use_power = 1},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bQZ" = (/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) "bRa" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) @@ -4950,7 +4950,7 @@ "bRj" = (/turf/simulated/wall,/area/medical/patient_a) "bRk" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/patient_b) "bRl" = (/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/patient_b) -"bRm" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) +"bRm" = (/obj/structure/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bRn" = (/turf/simulated/wall,/area/medical/patient_b) "bRo" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/engine,/area/rnd/misc_lab) "bRp" = (/obj/structure/table,/obj/item/device/assembly/igniter,/turf/simulated/floor/engine,/area/rnd/misc_lab) @@ -5003,7 +5003,7 @@ "bSk" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/engineering) "bSl" = (/obj/structure/table,/obj/item/device/t_scanner,/turf/simulated/floor/plating,/area/maintenance/engineering) "bSm" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bSn" = (/obj/machinery/door_control{id = "scanhide"; name = "Diagnostics Room Separation Shutters"; pixel_x = -6; pixel_y = -25; req_access_txt = "5"},/obj/machinery/iv_drip,/obj/machinery/door_control{id = "acute2"; name = "Acute Treatment Privacy Shutters"; pixel_x = 6; pixel_y = -25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bSn" = (/obj/machinery/iv_drip,/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bSo" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bSp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bSq" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/crew_quarters/heads/cmo) @@ -5427,7 +5427,6 @@ "cas" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) "cat" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = -22},/turf/simulated/floor,/area/medical/sleeper) "cau" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/bed/roller,/turf/simulated/floor,/area/medical/sleeper) -"cav" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) "caw" = (/obj/machinery/power/apc/high{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/turf/simulated/floor,/area/medical/sleeper) "cax" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; name = "Diagnostics Room"; req_access_txt = "5"},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay4) "cay" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) @@ -7366,11 +7365,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaaaaauaauaauaauaauaauaauaauaauaaaaauaauaauaauaaaaaaaaaaamaamaaIaafaaacKraazaavaafcKraazaavaaacKraazaavaafaaaaaaaacaaaaafaafabcabdabdabdabdabeabfaaaaaaabgabhabhabyabhabhabgaaaaafaayabiabjaaXabkaaXabjaaXaayablaaZabmaayabnaboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaaaaauaauaauaauaauaauaauaauaauaaaaauaauaauaauaaaaaaaaaaamaaaaafaaaaafaafapsaafaafaafapsaafaaaaafapsaafaaaaaaaaaaaaaaaabqabrabsabtabuabvabwabxabfaafaaaabgabAabzabCabBaceabgaaaaaaabDabEabFabGabHaaEabFaaEabIabJabKabLappabNabOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaIaafaqMaqbapTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTaqTarBaqbaqbaryabWabXabYabZacaacbaccacdaaTaaTaaTabgabgacfacAacgabgabgachaciacjackaclacmacnacmacoackackackacpacqacracsactaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaafaaLaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaamaaaaafaaaaafaafapjaafaaaaafapjaafaaaaafapjaafaaaaaaaaaaaaaaaabqabracvacwacxacyabdaczaaTaaTacCacBacBacDacEacFaaTaaTacGacHacIacJacKacLacMacNacOacPacQacQacRacSacracsabbabbabbabbabbabbaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaamaaaaafaaaaafaafapjaafaaaaafapjaafaaaaafapjaafaaaaaaaaaaaaaaaabqabracvacwacxacyabdaczaaTaaTacCacBadnacDacEacFaaTaaTacGacHacIacJacKacLacMacNacOacPacQacQacRacSacracsabbabbabbabbabbabbaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaamaamaaIaafaafcKrapgaavaaacKrapgaavaaacKrapgaavaafaaaaaaaaaaaaaafaafacUabdabdabdabdacVaaTacWacXacXacXacXacEacXacYaoZadaacQadbadcaddadeacMadfacQacQacQacQadgadhackadiadjabbadkadladmabbaaLaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaacKrapgaavaafcKrapgaavaaacKrapgaavaaaaaaaaaaafaaaaafaafaaaaaaaaaaaaabfacVaaTadnadoadpadradqadsadtaduaoZadaacQadvadcaddadwadxadyacQadzadzadzaddadAacradBadladCadladladladCaaLaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaIaafcKrapgaavaaacKrapgaavaaacKrapgaavaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaadDadEaaTadFacXacXacXacXacEacXadGaoZadaacQadvadHadIadJadKadLadMadNadNadNadOadPacradQadlabbadRadSadlabbaaLaaLaafaaaaafaaaaaLaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaIaafcKrapgaavaaacKrapgaavaafcKrapgaavaafaafaafaaaaafaafaaaaaaaaaaaaaaaadTadEaaTaaTadVadUadWadXacEadXaaTaaTadYacQadbacQaddadZaeaadyadMadNaebadNaecaedacradQaeeabbabbabbabbabbaaLaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaafaafaaLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaacKrapgaavaafcKrapgaavaaacKrapgaavaaaaaaaaaaafaaaaafaafaaaaaaaaaaaaabfacVaaTadqadoadpadFadradsadtaduaoZadaacQadvadcaddadwadxadyacQadzadzadzaddadAacradBadladCadladladladCaaLaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaIaafcKrapgaavaaacKrapgaavaaacKrapgaavaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaadDadEaaTadUacXacXacXacXacEacXadGaoZadaacQadvadHadIadJadKadLadMadNadNadNadOadPacradQadlabbadRadSadlabbaaLaaLaafaaaaafaaaaaLaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaIaafcKrapgaavaaacKrapgaavaafcKrapgaavaafaafaafaaaaafaafaaaaaaaaaaaaaaaadTadEaaTaaTbvDadVadWadXacEadXaaTaaTadYacQadbacQaddadZaeaadyadMadNaebadNaecaedacradQaeeabbabbabbabbabbaaLaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaafaafaaLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaauaauaauaauaaaaaaaauaauaauaauaauaauaauaaaaaaaauaauaauaauaBsaaaaaaaaaaaaaaaaaqaafcKrarDaavaaacKrarDaavaaacKrarDaavaafaaaaafaafaafaaaaaaaaaaaaaaaaaaadTaegaaTaaTaaTaaTaaTaaTaehaaTaaTaaTaeiaejaekaelaemaenaeoaepaeqaeraesaeraetaeuacradBaevabbaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaIaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaewadEaexaeyaezaaTaeAaeBaeCaeDaeEaeFaeGaeHaeIaeHaddadZaeJaeKaeLaeLaeMaeLaeNaeOaePaeQaeRabbaeSaeSaeSaeSaeSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaIaeTaamaamaamaamaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafabfadEaeUaeVaeWaaTaeAaeAaeXaeYaeZaeFafaafbafcafdaddafeaffafgacQacQafhacQafiafjacrafkaflabbafmafnafoafoafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7438,25 +7437,25 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbyobypbyobyqbyrbwQbrJbrJbrJbysbrJbwTbrKbytbdPbdPbyubgGbrNbwXbyvbywbyxbyybyybyzbyAbyBbyCbyDbvsbyEboobyGbxkbyHbyIbyJbvwaafbxrbxrbyKbtLbyLbskbyMbxrbxraafbyNbyNbyNbyNbyNbyNbyNbyOaJibyPblMblNaJibyQbyRbyRbySbyTbxCbyUbyVbyWbyXbyYbyZbzabwmbzbbzcbzdbzebzfbzgbzgbzhbzibzgbzjbzkbckbaAboObclbdQbcnbzrbzsbztbzubzvbzwbppbzxbpqbpqbzybsSbwtbzzbzAbzBbzCbzDbzAbzEbzFbzGbzHbzIbwwbwwbzJbnMbnMbzKbzLbzLbzLbzMbzNbwGbwJbwIbwJbwJbzObwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaacaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbzRbrJbwQbrJbzSbzSbzSbzSbwTbrKbzTbzUbdPbzVbgGbrNbwXbzWbzXbzYbgGblnbgGbzZbAabAbbAcbAdbyEbpvbAfbxkbxkbxkbAgbvwbAhbAhbAhbxrbAibxpbAibxrbAjbAjbAjbyNbAkbAlbAmbAnbAobApbAqaJibAraRqaRpaJibCdbAucJsbAvbAwbAxbAybAzbAAbABbACbADbAEbAFbAGbAHbAIbAJbAKbAIbqMbAMbANbAObnvblUbsdbnwbsgbsfbaAbPObpjbwubrgbAYbAZbAZbppbBabBbbBcbppbBdbBebBfbBgbBhbBibBjbBkbBlbBlbBmbBnbBobTHbBqbBrbBsbBtbTIbBvbBwbBwbBxbBybBzbuQbuRbBAbuRbuQbBBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBCbwNbBDbBEbrJbwQbrJbrJbrJbrJbrJbwTbrKbzTbBFbdPbBGbgGbBHbBIbgGbBJbgFbgGbgGbBKbvsbvtbAbbAcbAdbyEbvwbBLbBMbBNbBMbBObvwbBPbBQbBRbAhbxrbBSbxrbAjbBTbBUbBVbyNbBWbBXbBYbBZbCabCabCbbCcbAraRqaRpaJicJtbCebCebySbCfbxCbCgbChbxCbCibCjbCjbCkbwkbClbCmbwkbwkbwkbwkbwkbwkbCnbwkbwkbwmbCoaXKaXKaXKaXKbSwbpjbwwbzAbzAbzAbzAbzAbzAbzAbzAbzAbzIbCrbCsbCtbBhbCubCvbCwbCxbCxbCxbCybCzbSubCBbCCbCDbCEbTGbCGbCHbCGbCIbCJbzKbzLbzMbCKbzNbCLaaaaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbCQbgGbrNbwXbgGbqlbCRbgGbgGbCSbxcbvtbAbbCTbxcbCUbvwbCVbrpbCXbCYbxlbvwbCZbDabDbbDcbDdbvFbvEbDgbDhbDibDjbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbvDbDvbDwbDxbDybDzbDAbyWbDBbvLbCjbDDbwmbDEbDFbwmbDGbDHbDIbDJbDKbDLbDMbCpbDNbDObDPbDQbDRbCpbVLbVMbDUbVAbDWbDXbDXbDYbDZbEabEbbEcbEdbEebEfbEabEgbEhbCvbEibEjbEkbwwbwwbwwbwwbwwbxhbwbbEnbzKbzMbCJbEobEpbEqbErbEsbEtbEubEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbCQbgGbrNbwXbgGbqlbCRbgGbgGbCSbxcbvtbAbbCTbxcbCUbvwbCVbrpbCXbCYbxlbvwbCZbDabDbbDcbDdbvFbvEbDgbDhbDibDjbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbJxbDvbDwbDxbDybDzbDAbyWbDBbvLbCjbDDbwmbDEbDFbwmbDGbDHbDIbDJbDKbDLbDMbCpbDNbDObDPbDQbDRbCpbVLbVMbDUbVAbDWbDXbDXbDYbDZbEabEbbEcbEdbEebEfbEabEgbEhbCvbEibEjbEkbwwbwwbwwbwwbwwbxhbwbbEnbzKbzMbCJbEobEpbEqbErbEsbEtbEubEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbEwbExbEwbEybEzbEAbEAbEAbEAbEAbEBbECbEDbzTbEEbdPbEFbEGbEHbEIbEJbtzbEKbELbEMbfmbtCbENbAbbEObEPbyEbvwbEQbERbESbBMbETbvwbEUbEVbEWbAhbEXbvCbEYbAjbFabFbbFcbyNbFdbFebFfbFgbDnbDobFhaJibxwaRqaRpbVjbFjbFkbFlbFmbFnbFobFpbFqbxCbxFbxFbFrbxFbwkbFsbFtbFubFvbFwbFxbDJbFybDLbFzbFAbFBbDObFCbFDbFEbFFbVlbDXbVybVAbFJbDXbDXbFKbFLbFMbFLbFLbFNbFObFPbFQbFRbFSbCvbFTbFUbFVbFWbFXbFYbFZbGabGbbGcbGdaafaafbCJbGebGfbGgbGhbGibGjbGkbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbGlbGmbGnbdPbdPbGobwNbwNbwNbGpbdPbdPbGqbGrbGsbdPbGtbGtbGtbGubGtbGvbGwbGxbGybGzbtCbvtbAbbGAbGBbtCbtGbtGbtGbtGbtGbGCbtGbtGbtGbtGbtGbtGbshbtGbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJiaJiaJibxwaRqaRpbVjbGEbFkbxubGGbxUbGIbGJbGKbGLbGMbGNbCjbGObGPbGQbGRbGSbGTbGUbGVbGWbGXbGYbGZbHabHbbHcbHdbHebHfbCpbUSbUfbwwbwwbwwbwwbwwbHibwwbwwbwwbzAbHjbzAbzAbHkbBhbCubCvbFTbHlbHmbHnbHobHpbHqbGabGbbGcbHraaaaaabCJbHsbHtbCJbBybCJbCJbBybCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHuaafaaaaaaaaaaaabGtbHvbHwbHxbHybGvbHzbHAbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbHGbHHbHIbHJbHKbHLbHMbHLbHNbHObqybHQbHRbAabHSbAabHTbAabzZbHUbHVbHWbHXbHYbHZbxwaRqbDsaJlbDtbALbDtbCAbCAbxCbIbbIcbIdbIebIfbIgbIhbIibIjbIkbwmbIlbImbInbDJbCWbIobIpbIqbIrbFDbIsbItbIubCpbIvbIwbIxbIybUdbIAbIBbICbIDbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbILbIMbINbIObIPbIQbIRbGabGbbISbEnbEnbEnbCJbCJbCJbCJaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHuaafaaaaaaaaaaaabGtbHvbHwbHxbHybGvbHzbHAbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbHGbHHbHIbHJbHKbHLbHMbHLbHNbHObqybHQbHRbAabHSbAabHTbAabzZbHUbHVbHWbHXbHYbHZbxwaRqbDsaJlbDtbALbDtbCAbKZbxCbIbbIcbIdbIebIfbIgbIhbIibIjbIkbwmbIlbImbInbDJbCWbIobIpbIqbIrbFDbIsbItbIubCpbIvbIwbIxbIybUdbIAbIBbICbIDbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbILbIMbINbIObIPbIQbIRbGabGbbISbEnbEnbEnbCJbCJbCJbCJaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbITbIUbIVbIWbIXbIYbIZbJabJbbtCbvtbJcbJdbJebJebJfbJgbJhbJibJjbJgbJfbJebJebJebJkbJlbqsbJnbJobJebJebJebJpbJgbJhbJqbJrbJsbJtbJubJtbJvbJwbvUaJlbDubDebDCbGFbElbDTbDzbEmbFibDVbxFbJDbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbJVbJWbJXbJYbIFbJZbKabKbbKbbzAbKcbKdbKebKfbKgbKhbKibKjbKjbKkbGabGbbKlbEnbKmbKobKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbKzbKAbIVbKAbKBbKCbHBbKDbKEbtCbKFbvtbKGbKHbAabKIbAabzZbHHbKJbAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbKTbKUbKVbKWbKXbcLbKYaRpaRpaRpaJlbFHbGFbGFbFlbHPbGHbJxbJmbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbLpbLqbLrbLsbLtbCpbLubLvbIxbLwbFGbLybLzbLAbLBbLCbIFbLDbLEbKbbKbbzAbRsbLFbCvbwwbLGbLHbLIbLJbLKbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbLWbLXbLYbLVbLZbMabMbbGtbMcbMdbMebMfbMgbMhbMibMjbMjbMkbtCbtCbtCbMlbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbMpbtCaJlaJlaJlaJlbMqaJlaKSaMpbMraJlbJCbJybJybGFbKZbxCbDzbLabxCbMybMzbMAbMBbwkbMCbMDbMEbMFbMGbMHbMIbMJbMKbMLbItbJObFDbFDbMMbJObCpbMNbMObMObMObMObMObMObMObMObMObMObMPbMQbMRbMRbzAbMSbMTbMUbwwbMVbMVbMVbMWbMXbMYbMVbMVbMVbMVbMVbMZbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbNdbLRbLRbNebKtbKtbLTbLTbNfbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbNhbNgbKxbNibNjbNkbNlbNmbNnbKAbNobNpbGvbNqbNrbNsbNtbGvbNubNvbNwbNxaaaaaaaaaaaabNybNzbNAbNBbNDbNCbNEbNFbNGbNHbNIbNFbNJbNKbNLbNMbNNbNObNPbNQbNRbNSbNTbNUbNUbNUbNUbDtbDtbLdbMtbMsbDtbxCbNZbOabObbMzbOcbOdbOebOfbOgbOhbOibOjbOkbOlbOmbOnbMKbOobFDbFDbOpbJObJObOobCpbMNbMObOqbOrbOsbOtbOubOvbOwbOxbMObOybOzbOAbOAbzAbOBbOCbCvbzIbODbOEbOFbOGbOHbOIbOJbOKbOLbOMbMVbEnbONbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbOQbORbKAbOSbOTbOUbKAbKAbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbPaaaabPbbPcbPcbPdbPebPfbPgbPhbPfbPibNFbPjbPkbPlbNFbPmbPnbPobPpbPqbPrbPsbPtbPtbNSbPubPvbPwbPxbPybDtbMubLbbPzbGFbMwbMvbDzbPCbxCbPDbPEbPFbPGbwkbPHbPIbwkbPJbPKbPLbPMbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbPSbMObPTbLEbPUbPUbzAbBhbPVbPWbPXbPYbPYbPYbPYbPZbQabQabQbbQcbQdbMVbQebQfbQgbOObQhbMxbQjbQkaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQGbQFbQHbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbNVbNXbGFbQVbGFbPAbNYbQXbLebRCbQZaZvbRbbRcbRGbDEbIkbSpbPJbPLbPLbPMbRfbMKbRgbRhbPBbRjbRkbRlbQibRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRebRDbREbRFbRdbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebSfbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtbRibLbbQVbSmbSnbRmbSobJAbJBbSqbSrbSsbStbJzbFsbSvbIEbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabQabRabMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbKzbKAbIVbKAbKBbKCbHBbKDbKEbtCbKFbvtbKGbKHbAabKIbAabzZbHHbKJbAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbKTbKUbKVbKWbKXbcLbKYaRpaRpaRpaJlbFHbGFbGFbFlbHPbGHbLdbJmbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbLpbLqbLrbLsbLtbCpbLubLvbIxbLwbFGbLybLzbLAbLBbLCbIFbLDbLEbKbbKbbzAbRsbLFbCvbwwbLGbLHbLIbLJbLKbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbLWbLXbLYbLVbLZbMabMbbGtbMcbMdbMebMfbMgbMhbMibMjbMjbMkbtCbtCbtCbMlbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbMpbtCaJlaJlaJlaJlbMqaJlaKSaMpbMraJlbJCbJybMsbGFbMtbxCbDzbLabxCbMybMzbMAbMBbwkbMCbMDbMEbMFbMGbMHbMIbMJbMKbMLbItbJObFDbFDbMMbJObCpbMNbMObMObMObMObMObMObMObMObMObMObMPbMQbMRbMRbzAbMSbMTbMUbwwbMVbMVbMVbMWbMXbMYbMVbMVbMVbMVbMVbMZbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbNdbLRbLRbNebKtbKtbLTbLTbNfbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbNhbNgbKxbNibNjbNkbNlbNmbNnbKAbNobNpbGvbNqbNrbNsbNtbGvbNubNvbNwbNxaaaaaaaaaaaabNybNzbNAbNBbNDbNCbNEbNFbNGbNHbNIbNFbNJbNKbNLbNMbNNbNObNPbNQbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbMwbMwbxCbNZbOabObbMzbOcbOdbOebOfbOgbOhbOibOjbOkbOlbOmbOnbMKbOobFDbFDbOpbJObJObOobCpbMNbMObOqbOrbOsbOtbOubOvbOwbOxbMObOybOzbOAbOAbzAbOBbOCbCvbzIbODbOEbOFbOGbOHbOIbOJbOKbOLbOMbMVbEnbONbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbOQbORbKAbOSbOTbOUbKAbKAbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbPaaaabPbbPcbPcbPdbPebPfbPgbPhbPfbPibNFbPjbPkbPlbNFbPmbPnbPobPpbPqbPrbPsbPtbPtbNSbPubPvbPwbPxbPybDtbMubLbbNYbGFbGFbMvbDzbPCbxCbPDbPEbPFbPGbwkbPHbPIbwkbPJbPKbPLbPMbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbPSbMObPTbLEbPUbPUbzAbBhbPVbPWbPXbPYbPYbPYbPYbPZbQabQabQbbQcbQdbMVbQebQfbQgbOObQhbMxbQjbQkaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQGbQFbQHbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbNVbNXbGFbQVbGFbGFbPzbDzbLebRCbQZaZvbRbbRcbRGbDEbIkbSpbPJbPLbPLbPMbRfbMKbRgbRhbPBbRjbRkbRlbQibRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRebRDbREbRFbRdbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebSfbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtbRibLbbQVbSmbPAbPzbSobJAbJBbSqbSrbSsbStbJzbFsbSvbIEbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabQabRabMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbTgaafaaaaaabGtbThbTibTjbGtaaabNxbTkbTlbTmbTnbTnbTnbTobQyaaabQzbTpbTqbTrbTsbPfbTtbTvbTubTwbNFbTxbTybTzbTAbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbTObLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbTTbTUbTVbRjbTWbTXbTYbRnbPObMObTZbQWbPQbLxbLnbNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbMVbMVbMVbUkbMVbSUbSTbVFbMVbUnbUobUnbOObUpbUqbUrbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbUCbNFbUDbTMbTNbNFbTPbTPbTPbTPbTPbTPbTPbTPbUHbUIbUJbUKbUKbUMbNUbDtbUNbUebUFbUQbURbwabUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibUGbVkbUObRjbUPbVmbUPbRnbPObMObVnbWcbVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbnxbVzblSbVBbUlbVBbVCbUmbVDbMVbVGbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybVVbVWbVXbVZbVYbPfbNFbWabWbbNIbNFbTPbWdbWfbWebWhbWgbWibTPcaqcaqcaqcaqcaqbTFbWjbWkbWlbWmbWnbWobWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbWMbxVbMObxWbzmbzlbWSbWTbWUbWSbWSbWVbWWbWXbWYbWZbCxbCxbSLbCxbFTaafbnxbXabXbbXcbXdbXebXfbXgbXhbMVbXibVHbXjbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbXnbXobXpbRSbXqbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUDbUEbXtbNFbTPbXubXwbXvbXvbXwbXxbTPbXzbXybXybXAcaqbXBbDtbDtbXCbXDbXEbXFbXGblRbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbznbzpbzobAPbzqbARbAQbATbASbAVbAUbYfbYgbIwbYhbVobCqbWObWNbWPbYmbYnbYobYpbYqbYrbYsbYtbYrbYubYvbILaafbnxbXabrBbVBbVEbVBbYebYzbYAbMVbXjbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxbYHbNxbYIbYJbYKbYIbYIbYLbYMbYNbYObYPbYQbYybYSbYRbYUbYTbYVbXwbYXbYWbYZbYYbZbbZabZdbZcbZfbZecaqbZhbNSbZibZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqbZrbTJbTJbZsbZgbZTbVibZvbWQbZxbZybZzbZybZAbZUbZCbZUbZAbWRbYfbMNbIwbZEbXWbXVbZVbZIbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbYxbMVbMVbMVbMVbMVbZObZPbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaambZSaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZWbZXbZXbZXcaabZXbZXcahcagbYIbZYbZZbYIcaicabcaccadcaecafcakcajcamcalcaocancapbXwbYXcaJcbibYYcbjbTPcaqcaqcaqcaqcaqcarbNSbDtcascatcaucavcawcaxcaycazbTJcaAcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQcbkbZycaKcaLbZAcaMcaNcaObZAbXXbYfbPObIwbXYbYabXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwcaWbwwbwwcaXcaYbZHccqcbbccscaZcbacbccbdcbecbfcbgcbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBsaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcblcbncbmcbpcbocbycbqcbAcbzbYIcbrcbsbYIbYIcbtcbucbvcbwcbxcbCcbBbYSbYRbYUcbDcbEbXwbXwcbKcbQbXwccAbTPcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbJccBbTJcbLcbMcbNcbOcaEcbPccCcbRcaIbZxbWQbZxbZycbScbTbZAcbUcbVcbWbZAbYjbYfbYbbYdbYcbYiccDcdebYcchBbYkbYlcktbZDbZwbZFcktccrbZGcdQcdFcfccfacficfecgxcctccucctcctcctcctcctccvccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccEccEcbmccPccFcbyccQccSccRbYIccGccHccIccJccKccLccMccNccOccUccTccWccVccYccXcdaccZcdBcdbcelcekcencemcdccddaJEcdfcaqbTFcbIcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdscdtcaEcducdvcdwcaIbZxbWQbZxbZycdxcdybZAcdzcdAceobZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbyFbBucdLcdOcdPcgDcdRcdOcdSbBpbyecgEcdScdScdScdSbAebyebydcdScdSbXjcdXcdYcdZceacebcecbxTbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccefcegcegcehbKtbKtbLTbLTceibLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaambZSaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZWbZXbZXbZXcaabZXbZXcahcagbYIbZYbZZbYIcaicabcaccadcaecafcakcajcamcalcaocancapbXwbYXcaJcbibYYcbjbTPcaqcaqcaqcaqcaqcarbNSbDtcascatcaubQXcawcaxcaycazbTJcaAcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQcbkbZycaKcaLbZAcaMcaNcaObZAbXXbYfbPObIwbXYbYabXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwcaWbwwbwwcaXcaYbZHccqcbbccscaZcbacbccbdcbecbfcbgcbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBsaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcblcbncbmcbpcbocbycbqcbAcbzbYIcbrcbsbYIbYIcbtcbucbvcbwcbxcbCcbBbYSbYRbYUcbDcbEbXwbXwcbKcbQbXwccAbTPcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbJccBbTJcbLcbMcbNcbOcaEcbPccCcbRcaIbZxbWQbRmbZycbScbTbZAcbUcbVcbWbZAbYjbYfbYbbYdbYcbYiccDcdebYcchBbYkbYlcktbZDbZwbZFcktccrbZGcdQcdFcfccfacficfecgxcctccucctcctcctcctcctccvccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccEccEcbmccPccFcbyccQccSccRbYIccGccHccIccJccKccLccMccNccOccUccTccWccVccYccXcdaccZcdBcdbcelcekcencemcdccddaJEcdfcaqbTFcbIcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdscdtcaEcducdvcdwcaIbZxbWQbSnbZycdxcdybZAcdzcdAceobZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbyFbBucdLcdOcdPcgDcdRcdOcdSbBpbyecgEcdScdScdScdSbAebyebydcdScdSbXjcdXcdYcdZceacebcecbxTbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccefcegcegcehbKtbKtbLTbLTceibLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejceqcepbYIbYIbYIbYIbYIbYJcescercercerceucetbYSbYRbYUcevbYVcewceycexceTceSceUbTPcezaJFceeaJFcaqbTFcbIceDceEceEceEceFceGbTJceHceIbTJcbLcbNceJcbOcaEceKceLceMcaIbZxbWQceNbZyceOcePbZAbZAbZAbZAbZAccbceRbYfcaQbYcccdcccbYcbYcchBccecjfcdLceZcfbcfbcgFcdOcfdcgHcffcdOcfgcfhcfhchFchEceWcfkcflcfmcfncfocfpcdScfqcfrcfsbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftceXcfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejcfwcfxcfycfzcfAcejcfjceYcfBcfucfDcfCcfEcfEcfGcfFcfFcfHcfIcbBbYSbYRbYUcfJcapcfKcfMcfLcfOcfNcfPbTPaJFaJFcaqceBcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYcfZcgacfYcgbcgccgdcgecaEcgfceLcggcaIcghccfcgjbZycgkcglbZycgmbLvbVicgnccgcchbYfccjcciccicckcclcclcclcclccmcdLchLcgycgycgzcgActschPchNchSchRcgGcgGchUchTcgIcgIcgJcgKcgLchVcgMcdScgNcgOcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcfQcfQcfQcfQcfQcfQcfQcfQcfQcfQcfQcfQcfQaaaaaacgScgTcgTcgTcgUcgVcejcfUcfRcgocgicgrcgpcgucgtcgCcgBcgWcgRcgYcgXchacgZchcchbbTPbTPbTPbTPbTPbTPbTPbTPbEZbGDcaqbDfcaqbTFcbIcbIctpctqctrcbIcbIchrchschtcfYcaEcaEcaEcaEcaEcaIchuchvcaIchwccnchwbZychychzbZychAchBbVichCbVichDbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchIchJchJchKchWchMchXchOchYchQckLckLcipckLcjlcjhckLckLckLcjpcjqcdSchZciachdcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 404c8886da38e1cfc40856410c35270622e56fb5 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 19:37:49 -0500 Subject: [PATCH 10/23] Fixes #8230 --- code/modules/clothing/under/accessories/holster.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index 3b9104b80e..d87925534a 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -19,6 +19,7 @@ user.drop_from_inventory(holstered) holstered.loc = src holstered.add_fingerprint(user) + w_class = max(w_class, holstered.w_class) user.visible_message("[user] holsters \the [holstered].", "You holster \the [holstered].") /obj/item/clothing/accessory/holster/proc/unholster(mob/user as mob) @@ -41,6 +42,7 @@ user.put_in_hands(holstered) holstered.add_fingerprint(user) holstered = null + w_class = initial(w_class) /obj/item/clothing/accessory/holster/attack_hand(mob/user as mob) if (has_suit) //if we are part of a suit From 51240556636f5c85878ea70b90719e640b548080 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 19:42:24 -0500 Subject: [PATCH 11/23] Fixes #8243 Didn't want to have to generate even more lists so this is what you get. --- code/modules/mob/living/carbon/human/examine.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index bb468eaa6c..277f88c809 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -64,7 +64,7 @@ if(istype(w_uniform,/obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform if(U.accessories.len) - tie_msg += " with [lowertext(english_list(U.accessories))]" + tie_msg += ". Attached to it is [lowertext(english_list(U.accessories))]" if(w_uniform.blood_DNA) msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != "#030303") ? "blood" : "oil"]-stained [w_uniform.name][tie_msg]!\n" From 944be58804408f6ffd99fdcf2bd24e7cfcd6c3a3 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 20:17:35 -0500 Subject: [PATCH 12/23] Adjusts sniper rifle damage Lowers wall pierce chance back to original value to compensate, and increase the cost of ammo by 1 TC. --- code/game/gamemodes/game_mode.dm | 2 +- code/modules/projectiles/projectile/bullets.dm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3e853436fd..0ce94aabac 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -36,7 +36,7 @@ new/datum/uplink_item(/obj/item/ammo_magazine/a357, 2, ".357", "RA"), new/datum/uplink_item(/obj/item/ammo_magazine/mc9mm, 2, "9mm", "R9"), new/datum/uplink_item(/obj/item/ammo_magazine/chemdart, 2, "Darts", "AD"), - new/datum/uplink_item(/obj/item/weapon/storage/box/sniperammo, 3, "14.5mm", "SA") + new/datum/uplink_item(/obj/item/weapon/storage/box/sniperammo, 4, "14.5mm", "SA") ), "Highly Visible and Dangerous Weapons" = list( new/datum/uplink_item(/obj/item/weapon/storage/box/emps, 3, "5 EMP Grenades", "EM"), diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 1fc0bdcb7f..627785343f 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -43,10 +43,10 @@ var/chance = 0 if(istype(A, /turf/simulated/wall)) var/turf/simulated/wall/W = A - chance = round(damage/W.damage_cap*250) + chance = round(damage/W.damage_cap*180) else if(istype(A, /obj/machinery/door)) var/obj/machinery/door/D = A - chance = round(damage/D.maxhealth*150) + chance = round(damage/D.maxhealth*180) else if(istype(A, /obj/structure/girder) || istype(A, /obj/structure/cultgirder)) chance = 100 else if(istype(A, /obj/machinery) || istype(A, /obj/structure)) @@ -141,7 +141,7 @@ penetrating = 1 /obj/item/projectile/bullet/rifle/a145 - damage = 60 + damage = 80 stun = 3 weaken = 3 penetrating = 5 From 3e71802a520f913a30523544e77e1d7ab52e8b89 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 21:23:19 -0500 Subject: [PATCH 13/23] Replaces colt signal pistol with a Mk58 version. Makes more sense for the HoP, and ensures the colt remains more of a detective signature item. --- .../crates_lockers/closets/secure/security.dm | 2 +- code/modules/projectiles/guns/projectile/pistol.dm | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) 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 35c4a7f23e..ab0a42d290 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -54,7 +54,7 @@ new /obj/item/weapon/storage/box/ids(src) new /obj/item/weapon/storage/box/ids( src ) new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/weapon/gun/projectile/colt/flash(src) + new /obj/item/weapon/gun/projectile/sec/flash(src) new /obj/item/device/flash(src) return diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index b2eb804aec..f2155fa669 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -7,11 +7,6 @@ origin_tech = "combat=2;materials=2" load_method = MAGAZINE -/obj/item/weapon/gun/projectile/colt/flash - name = "\improper Colt M1911 signal pistol" - desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 signal flash rounds." - magazine_type = /obj/item/ammo_magazine/c45m/flash - /obj/item/weapon/gun/projectile/colt/detective desc = "A cheap Martian knock-off of a Colt M1911. Uses less-than-lethal .45 rounds." magazine_type = /obj/item/ammo_magazine/c45m/rubber @@ -35,14 +30,18 @@ return 1 /obj/item/weapon/gun/projectile/sec - desc = "A Nanotrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds." + desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds." name = "\improper NT Mk58" icon_state = "secguncomp" magazine_type = /obj/item/ammo_magazine/c45m/rubber caliber = ".45" - origin_tech = "combat=3;materials=2" + origin_tech = "combat=2;materials=2" load_method = MAGAZINE +/obj/item/weapon/gun/projectile/sec/flash + name = "\improper NT Mk58 signal pistol" + desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 signal flash rounds." + magazine_type = /obj/item/ammo_magazine/c45m/flash /obj/item/weapon/gun/projectile/sec/wood desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses less-than-lethal .45 rounds." From ae6466ac4525e0f5bb94c4806bb7286e79889311 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 21:23:45 -0500 Subject: [PATCH 14/23] Examining the Z8 now shows what is loaded in the grenade launcher. --- code/modules/projectiles/guns/projectile/automatic.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index d497ecf0f2..af2b9f9368 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -139,6 +139,13 @@ icon_state = "carbine" return +/obj/item/weapon/gun/projectile/automatic/z8/examine(mob/user) + ..() + if(launcher.chambered) + user << "\The [launcher] has \a [launcher.chambered] loaded." + else + user << "\The [launcher] is empty." + /obj/item/weapon/gun/projectile/automatic/l6_saw name = "\improper L6 SAW" desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" From 9782140d322a1a28eed6152f51aae4972cb57b19 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 21:25:31 -0500 Subject: [PATCH 15/23] Resolves #8236 Lasers deal more damage to grilles, and clicking directly on the grille makes it more likely for the grille to absorb the projectile. --- code/game/objects/structures/grille.dm | 33 ++++++++++++++++---------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 76eac1b6b4..c78754c7ed 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -67,22 +67,29 @@ //Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact var/damage = Proj.damage - var/passthrough - if(damage > 30) - passthrough = 1 - if(prob(20)) - Proj.damage *= 0.5 //weaken the projectile - else - //weaker bullets are affected to a greater extent - if(prob(20)) - passthrough = 0 - else - Proj.damage *= 0.5 //weaken the projectile - passthrough = 1 + var/passthrough = 0 + + //20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area. + //If they click on the grille itself then we assume they are aiming at the grille itself and the extra cover behaviour is always used. + switch(Proj.damage_type) + if(BRUTE) + //bullets + if(Proj.original == src || prob(20)) + Proj.damage *= between(0, Proj.damage/60, 0.5) + if(prob(max((damage-10)/25, 0))*100) + passthrough = 1 + else + Proj.damage *= between(0, Proj.damage/60, 1) + passthrough = 1 + if(BURN) + //beams and other projectiles are either blocked completely by grilles or stop half the damage. + if(!(Proj.original == src || prob(20))) + Proj.damage *= 0.5 + passthrough = 1 if(passthrough) . = -1 - damage *= 0.1 //if the bullet passes through then the grille avoids most of the damage + damage = between(0, (damage - Proj.damage)*(Proj.damage_type == BRUTE? 0.4 : 1), 10) //if the bullet passes through then the grille avoids most of the damage src.health -= damage*0.2 spawn(0) healthcheck() //spawn to make sure we return properly if the grille is deleted From b067b491a410cde84c4c4a7769eb55eb30cbc9e2 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 23:36:19 -0500 Subject: [PATCH 16/23] Returns the laser carbine capacity to 10 --- code/modules/projectiles/guns/energy/laser.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 527f8c2020..28f95d8211 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -6,12 +6,11 @@ fire_sound = 'sound/weapons/Laser.ogg' slot_flags = SLOT_BELT|SLOT_BACK w_class = 3 - force = 10 //it has a stock, might as well give some kind of perk over the egun + force = 10 matter = list("metal" = 2000) origin_tech = "combat=3;magnets=2" projectile_type = /obj/item/projectile/beam - charge_cost = 75 - fire_delay = 1 + fire_delay = 1 //rapid fire /obj/item/weapon/gun/energy/laser/mounted self_recharge = 1 From 768faa4bf0909c0f929eee98b4d4b9041f9f52e3 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 25 Feb 2015 09:00:18 +0100 Subject: [PATCH 17/23] Fixes #8266. Ensures drones get access to the alarm monitor subsystem. Restores the Show Alerts link in alarm notices. --- code/modules/mob/living/silicon/robot/drone/drone.dm | 2 ++ code/modules/mob/living/silicon/silicon.dm | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 44df327240..bda08125e7 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -287,5 +287,7 @@ return /mob/living/silicon/robot/drone/add_robot_verbs() + src.verbs |= robot_verbs_subsystems /mob/living/silicon/robot/drone/remove_robot_verbs() + src.verbs -= robot_verbs_subsystems diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index fc647dcbeb..466e984350 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -323,11 +323,13 @@ if(next_alarm_notice && (world.time > next_alarm_notice)) next_alarm_notice = 0 + var/alarm_raised = 0 for(var/datum/alarm_handler/AH in queued_alarms) var/list/alarms = queued_alarms[AH] var/reported = 0 for(var/datum/alarm/A in alarms) if(alarms[A] == 1) + alarm_raised = 1 if(!reported) reported = 1 src << "--- [AH.category] Detected ---" @@ -343,6 +345,9 @@ src << "--- [AH.category] Cleared ---" src << "\The [A.alarm_name()]." + if(alarm_raised) + src << "\[Show Alerts\]" + for(var/datum/alarm_handler/AH in queued_alarms) var/list/alarms = queued_alarms[AH] alarms.Cut() From dfd83f787a540aa8d0bc2eee02e654a1a43bc687 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 25 Feb 2015 09:47:50 +0100 Subject: [PATCH 18/23] Fixes #8258. Main correction is the removal of Topic() in code/game/machinery/computer/computer.dm. Issue introduced in #7617 where I stated multiple times this Topic()-return value was incorrect. Ensures that computers return the correct value after the ..() check. --- code/game/machinery/atmo_control.dm | 1036 +++++++++-------- code/game/machinery/computer/Operating.dm | 2 +- code/game/machinery/computer/aifixer.dm | 2 +- code/game/machinery/computer/arcade.dm | 2 +- code/game/machinery/computer/cloning.dm | 2 +- .../game/machinery/computer/communications.dm | 2 +- code/game/machinery/computer/computer.dm | 6 - code/game/machinery/computer/guestpass.dm | 2 +- code/game/machinery/computer/message.dm | 2 +- code/game/machinery/computer/robot.dm | 2 +- code/game/machinery/computer/security.dm | 4 +- code/game/machinery/computer/skills.dm | 2 +- .../machinery/computer/specops_shuttle.dm | 4 +- code/game/machinery/computer/supply.dm | 4 +- .../computer/syndicate_specops_shuttle.dm | 2 +- 15 files changed, 540 insertions(+), 534 deletions(-) diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index a62da66d77..3c032a6bce 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -1,512 +1,524 @@ -/obj/machinery/air_sensor - icon = 'icons/obj/stationobjs.dmi' - icon_state = "gsensor1" - name = "Gas Sensor" - - anchored = 1 - var/state = 0 - - var/id_tag - var/frequency = 1439 - - var/on = 1 - var/output = 3 - //Flags: - // 1 for pressure - // 2 for temperature - // Output >= 4 includes gas composition - // 4 for oxygen concentration - // 8 for phoron concentration - // 16 for nitrogen concentration - // 32 for carbon dioxide concentration - - var/datum/radio_frequency/radio_connection - -/obj/machinery/air_sensor/update_icon() - icon_state = "gsensor[on]" - -/obj/machinery/air_sensor/process() - if(on) - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.data["tag"] = id_tag - signal.data["timestamp"] = world.time - - var/datum/gas_mixture/air_sample = return_air() - - if(output&1) - signal.data["pressure"] = num2text(round(air_sample.return_pressure(),0.1),) - if(output&2) - signal.data["temperature"] = round(air_sample.temperature,0.1) - - if(output>4) - var/total_moles = air_sample.total_moles - if(total_moles > 0) - if(output&4) - signal.data["oxygen"] = round(100*air_sample.gas["oxygen"]/total_moles,0.1) - if(output&8) - signal.data["phoron"] = round(100*air_sample.gas["phoron"]/total_moles,0.1) - if(output&16) - signal.data["nitrogen"] = round(100*air_sample.gas["nitrogen"]/total_moles,0.1) - if(output&32) - signal.data["carbon_dioxide"] = round(100*air_sample.gas["carbon_dioxide"]/total_moles,0.1) - else - signal.data["oxygen"] = 0 - signal.data["phoron"] = 0 - signal.data["nitrogen"] = 0 - signal.data["carbon_dioxide"] = 0 - signal.data["sigtype"]="status" - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - -/obj/machinery/air_sensor/proc/set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) - -/obj/machinery/air_sensor/initialize() - set_frequency(frequency) - -/obj/machinery/air_sensor/New() - ..() - - if(radio_controller) - set_frequency(frequency) - -/obj/machinery/computer/general_air_control - icon = 'icons/obj/computer.dmi' - icon_state = "tank" - - name = "Computer" - - var/frequency = 1439 - var/list/sensors = list() - - var/list/sensor_information = list() - var/datum/radio_frequency/radio_connection - circuit = /obj/item/weapon/circuitboard/air_management - -/obj/machinery/computer/general_air_control/attack_hand(mob/user) - if(..(user)) - return - user << browse(return_text(),"window=computer") - user.set_machine(src) - onclose(user, "computer") - -/obj/machinery/computer/general_air_control/process() - ..() - src.updateUsrDialog() - -/obj/machinery/computer/general_air_control/receive_signal(datum/signal/signal) - if(!signal || signal.encryption) return - - var/id_tag = signal.data["tag"] - if(!id_tag || !sensors.Find(id_tag)) return - - sensor_information[id_tag] = signal.data - -/obj/machinery/computer/general_air_control/proc/return_text() - var/sensor_data - if(sensors.len) - for(var/id_tag in sensors) - var/long_name = sensors[id_tag] - var/list/data = sensor_information[id_tag] - var/sensor_part = "[long_name]:
" - - if(data) - if(data["pressure"]) - sensor_part += " Pressure: [data["pressure"]] kPa
" - if(data["temperature"]) - sensor_part += " Temperature: [data["temperature"]] K
" - if(data["oxygen"]||data["phoron"]||data["nitrogen"]||data["carbon_dioxide"]) - sensor_part += " Gas Composition :" - if(data["oxygen"]) - sensor_part += "[data["oxygen"]]% O2; " - if(data["nitrogen"]) - sensor_part += "[data["nitrogen"]]% N; " - if(data["carbon_dioxide"]) - sensor_part += "[data["carbon_dioxide"]]% CO2; " - if(data["phoron"]) - sensor_part += "[data["phoron"]]% TX; " - sensor_part += "
" - - else - sensor_part = "[long_name] can not be found!
" - - sensor_data += sensor_part - - else - sensor_data = "No sensors connected." - - var/output = {"[name]
-Sensor Data:

[sensor_data]"} - - return output - -/obj/machinery/computer/general_air_control/proc/set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) - -/obj/machinery/computer/general_air_control/initialize() - set_frequency(frequency) - - -/obj/machinery/computer/general_air_control/large_tank_control - icon = 'icons/obj/computer.dmi' - icon_state = "tank" - - frequency = 1441 - var/input_tag - var/output_tag - - var/list/input_info - var/list/output_info - - var/input_flow_setting = 200 - var/pressure_setting = ONE_ATMOSPHERE * 45 - circuit = /obj/item/weapon/circuitboard/air_management/tank_control - - -/obj/machinery/computer/general_air_control/large_tank_control/return_text() - var/output = ..() - //if(signal.data) - // input_info = signal.data // Attempting to fix intake control -- TLE - - output += "Tank Control System

" - if(input_info) - var/power = (input_info["power"]) - var/volume_rate = round(input_info["volume_rate"], 0.1) - output += "Input: [power?("Injecting"):("On Hold")] Refresh
Flow Rate Limit: [volume_rate] L/s
" - output += "Command: Toggle Power Set Flow Rate
" - - else - output += "ERROR: Can not find input port Search
" - - output += "Flow Rate Limit: - - - - [round(input_flow_setting, 0.1)] L/s + + + +
" - - output += "
" - - if(output_info) - var/power = (output_info["power"]) - var/output_pressure = output_info["internal"] - output += {"Output: [power?("Open"):("On Hold")] Refresh
-Max Output Pressure: [output_pressure] kPa
"} - output += "Command: Toggle Power Set Pressure
" - - else - output += "ERROR: Can not find output port Search
" - - output += "Max Output Pressure Set: - - - - [pressure_setting] kPa + + + +
" - - return output - -/obj/machinery/computer/general_air_control/large_tank_control/receive_signal(datum/signal/signal) - if(!signal || signal.encryption) return - - var/id_tag = signal.data["tag"] - - if(input_tag == id_tag) - input_info = signal.data - else if(output_tag == id_tag) - output_info = signal.data - else - ..(signal) - -/obj/machinery/computer/general_air_control/large_tank_control/Topic(href, href_list) - if(..()) - return - - if(href_list["adj_pressure"]) - var/change = text2num(href_list["adj_pressure"]) - pressure_setting = between(0, pressure_setting + change, 50*ONE_ATMOSPHERE) - spawn(1) - src.updateUsrDialog() - return - - if(href_list["adj_input_flow_rate"]) - var/change = text2num(href_list["adj_input_flow_rate"]) - input_flow_setting = between(0, input_flow_setting + change, ATMOS_DEFAULT_VOLUME_PUMP + 500) //default flow rate limit for air injectors - spawn(1) - src.updateUsrDialog() - return - - if(!radio_connection) - return 0 - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - if(href_list["in_refresh_status"]) - input_info = null - signal.data = list ("tag" = input_tag, "status" = 1) - - if(href_list["in_toggle_injector"]) - input_info = null - signal.data = list ("tag" = input_tag, "power_toggle" = 1) - - if(href_list["in_set_flowrate"]) - input_info = null - signal.data = list ("tag" = input_tag, "set_volume_rate" = "[input_flow_setting]") - - if(href_list["out_refresh_status"]) - output_info = null - signal.data = list ("tag" = output_tag, "status" = 1) - - if(href_list["out_toggle_power"]) - output_info = null - signal.data = list ("tag" = output_tag, "power_toggle" = 1) - - if(href_list["out_set_pressure"]) - output_info = null - signal.data = list ("tag" = output_tag, "set_internal_pressure" = "[pressure_setting]") - - signal.data["sigtype"]="command" - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - spawn(5) - src.updateUsrDialog() - -/obj/machinery/computer/general_air_control/supermatter_core - icon = 'icons/obj/computer.dmi' - icon_state = "tank" - - frequency = 1438 - var/input_tag - var/output_tag - - var/list/input_info - var/list/output_info - - var/input_flow_setting = 700 - var/pressure_setting = 100 - circuit = /obj/item/weapon/circuitboard/air_management/supermatter_core - - -/obj/machinery/computer/general_air_control/supermatter_core/return_text() - var/output = ..() - //if(signal.data) - // input_info = signal.data // Attempting to fix intake control -- TLE - - output += "Core Cooling Control System

" - if(input_info) - var/power = (input_info["power"]) - var/volume_rate = round(input_info["volume_rate"], 0.1) - output += "Coolant Input: [power?("Injecting"):("On Hold")] Refresh
Flow Rate Limit: [volume_rate] L/s
" - output += "Command: Toggle Power Set Flow Rate
" - - else - output += "ERROR: Can not find input port Search
" - - output += "Flow Rate Limit: - - - - [round(input_flow_setting, 0.1)] L/s + + + +
" - - output += "
" - - if(output_info) - var/power = (output_info["power"]) - var/pressure_limit = output_info["external"] - output += {"Core Outpump: [power?("Open"):("On Hold")] Refresh
-Min Core Pressure: [pressure_limit] kPa
"} - output += "Command: Toggle Power Set Pressure
" - - else - output += "ERROR: Can not find output port Search
" - - output += "Min Core Pressure Set: - - - - [pressure_setting] kPa + + + +
" - - return output - -/obj/machinery/computer/general_air_control/supermatter_core/receive_signal(datum/signal/signal) - if(!signal || signal.encryption) return - - var/id_tag = signal.data["tag"] - - if(input_tag == id_tag) - input_info = signal.data - else if(output_tag == id_tag) - output_info = signal.data - else - ..(signal) - -/obj/machinery/computer/general_air_control/supermatter_core/Topic(href, href_list) - if(..()) - return - - if(href_list["adj_pressure"]) - var/change = text2num(href_list["adj_pressure"]) - pressure_setting = between(0, pressure_setting + change, 10*ONE_ATMOSPHERE) - spawn(1) - src.updateUsrDialog() - return - - if(href_list["adj_input_flow_rate"]) - var/change = text2num(href_list["adj_input_flow_rate"]) - input_flow_setting = between(0, input_flow_setting + change, ATMOS_DEFAULT_VOLUME_PUMP + 500) //default flow rate limit for air injectors - spawn(1) - src.updateUsrDialog() - return - - if(!radio_connection) - return 0 - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - if(href_list["in_refresh_status"]) - input_info = null - signal.data = list ("tag" = input_tag, "status" = 1) - - if(href_list["in_toggle_injector"]) - input_info = null - signal.data = list ("tag" = input_tag, "power_toggle" = 1) - - if(href_list["in_set_flowrate"]) - input_info = null - signal.data = list ("tag" = input_tag, "set_volume_rate" = "[input_flow_setting]") - - if(href_list["out_refresh_status"]) - output_info = null - signal.data = list ("tag" = output_tag, "status" = 1) - - if(href_list["out_toggle_power"]) - output_info = null - signal.data = list ("tag" = output_tag, "power_toggle" = 1) - - if(href_list["out_set_pressure"]) - output_info = null - signal.data = list ("tag" = output_tag, "set_external_pressure" = "[pressure_setting]", "checks" = 1) - - signal.data["sigtype"]="command" - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - spawn(5) - src.updateUsrDialog() - -/obj/machinery/computer/general_air_control/fuel_injection - icon = 'icons/obj/computer.dmi' - icon_state = "atmos" - - var/device_tag - var/list/device_info - - var/automation = 0 - - var/cutoff_temperature = 2000 - var/on_temperature = 1200 - circuit = /obj/item/weapon/circuitboard/air_management/injector_control - -/obj/machinery/computer/general_air_control/fuel_injection/process() - if(automation) - if(!radio_connection) - return 0 - - var/injecting = 0 - for(var/id_tag in sensor_information) - var/list/data = sensor_information[id_tag] - if(data["temperature"]) - if(data["temperature"] >= cutoff_temperature) - injecting = 0 - break - if(data["temperature"] <= on_temperature) - injecting = 1 - - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - - signal.data = list( - "tag" = device_tag, - "power" = injecting, - "sigtype"="command" - ) - - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - ..() - -/obj/machinery/computer/general_air_control/fuel_injection/return_text() - var/output = ..() - - output += "Fuel Injection System
" - if(device_info) - var/power = device_info["power"] - var/volume_rate = device_info["volume_rate"] - output += {"Status: [power?("Injecting"):("On Hold")] Refresh
-Rate: [volume_rate] L/sec
"} - - if(automation) - output += "Automated Fuel Injection: Engaged
" - output += "Injector Controls Locked Out
" - else - output += "Automated Fuel Injection: Disengaged
" - output += "Injector: Toggle Power Inject (1 Cycle)
" - - else - output += "ERROR: Can not find device Search
" - - return output - -/obj/machinery/computer/general_air_control/fuel_injection/receive_signal(datum/signal/signal) - if(!signal || signal.encryption) return - - var/id_tag = signal.data["tag"] - - if(device_tag == id_tag) - device_info = signal.data - else - ..(signal) - -/obj/machinery/computer/general_air_control/fuel_injection/Topic(href, href_list) - if(..()) - return - - if(href_list["refresh_status"]) - device_info = null - if(!radio_connection) - return 0 - - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - signal.data = list( - "tag" = device_tag, - "status" = 1, - "sigtype"="command" - ) - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - if(href_list["toggle_automation"]) - automation = !automation - - if(href_list["toggle_injector"]) - device_info = null - if(!radio_connection) - return 0 - - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - signal.data = list( - "tag" = device_tag, - "power_toggle" = 1, - "sigtype"="command" - ) - - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - if(href_list["injection"]) - if(!radio_connection) - return 0 - - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - signal.data = list( - "tag" = device_tag, - "inject" = 1, - "sigtype"="command" - ) - - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - - - +/obj/machinery/air_sensor + icon = 'icons/obj/stationobjs.dmi' + icon_state = "gsensor1" + name = "Gas Sensor" + + anchored = 1 + var/state = 0 + + var/id_tag + var/frequency = 1439 + + var/on = 1 + var/output = 3 + //Flags: + // 1 for pressure + // 2 for temperature + // Output >= 4 includes gas composition + // 4 for oxygen concentration + // 8 for phoron concentration + // 16 for nitrogen concentration + // 32 for carbon dioxide concentration + + var/datum/radio_frequency/radio_connection + +/obj/machinery/air_sensor/update_icon() + icon_state = "gsensor[on]" + +/obj/machinery/air_sensor/process() + if(on) + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.data["tag"] = id_tag + signal.data["timestamp"] = world.time + + var/datum/gas_mixture/air_sample = return_air() + + if(output&1) + signal.data["pressure"] = num2text(round(air_sample.return_pressure(),0.1),) + if(output&2) + signal.data["temperature"] = round(air_sample.temperature,0.1) + + if(output>4) + var/total_moles = air_sample.total_moles + if(total_moles > 0) + if(output&4) + signal.data["oxygen"] = round(100*air_sample.gas["oxygen"]/total_moles,0.1) + if(output&8) + signal.data["phoron"] = round(100*air_sample.gas["phoron"]/total_moles,0.1) + if(output&16) + signal.data["nitrogen"] = round(100*air_sample.gas["nitrogen"]/total_moles,0.1) + if(output&32) + signal.data["carbon_dioxide"] = round(100*air_sample.gas["carbon_dioxide"]/total_moles,0.1) + else + signal.data["oxygen"] = 0 + signal.data["phoron"] = 0 + signal.data["nitrogen"] = 0 + signal.data["carbon_dioxide"] = 0 + signal.data["sigtype"]="status" + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + +/obj/machinery/air_sensor/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) + +/obj/machinery/air_sensor/initialize() + set_frequency(frequency) + +/obj/machinery/air_sensor/New() + ..() + + if(radio_controller) + set_frequency(frequency) + +/obj/machinery/computer/general_air_control + icon = 'icons/obj/computer.dmi' + icon_state = "tank" + + name = "Computer" + + var/frequency = 1439 + var/list/sensors = list() + + var/list/sensor_information = list() + var/datum/radio_frequency/radio_connection + circuit = /obj/item/weapon/circuitboard/air_management + +/obj/machinery/computer/general_air_control/attack_hand(mob/user) + if(..(user)) + return + user << browse(return_text(),"window=computer") + user.set_machine(src) + onclose(user, "computer") + +/obj/machinery/computer/general_air_control/process() + ..() + src.updateUsrDialog() + +/obj/machinery/computer/general_air_control/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) return + + var/id_tag = signal.data["tag"] + if(!id_tag || !sensors.Find(id_tag)) return + + sensor_information[id_tag] = signal.data + +/obj/machinery/computer/general_air_control/proc/return_text() + var/sensor_data + if(sensors.len) + for(var/id_tag in sensors) + var/long_name = sensors[id_tag] + var/list/data = sensor_information[id_tag] + var/sensor_part = "[long_name]:
" + + if(data) + if(data["pressure"]) + sensor_part += " Pressure: [data["pressure"]] kPa
" + if(data["temperature"]) + sensor_part += " Temperature: [data["temperature"]] K
" + if(data["oxygen"]||data["phoron"]||data["nitrogen"]||data["carbon_dioxide"]) + sensor_part += " Gas Composition :" + if(data["oxygen"]) + sensor_part += "[data["oxygen"]]% O2; " + if(data["nitrogen"]) + sensor_part += "[data["nitrogen"]]% N; " + if(data["carbon_dioxide"]) + sensor_part += "[data["carbon_dioxide"]]% CO2; " + if(data["phoron"]) + sensor_part += "[data["phoron"]]% TX; " + sensor_part += "
" + + else + sensor_part = "[long_name] can not be found!
" + + sensor_data += sensor_part + + else + sensor_data = "No sensors connected." + + var/output = {"[name]
+Sensor Data:

[sensor_data]"} + + return output + +/obj/machinery/computer/general_air_control/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) + +/obj/machinery/computer/general_air_control/initialize() + set_frequency(frequency) + + +/obj/machinery/computer/general_air_control/large_tank_control + icon = 'icons/obj/computer.dmi' + icon_state = "tank" + + frequency = 1441 + var/input_tag + var/output_tag + + var/list/input_info + var/list/output_info + + var/input_flow_setting = 200 + var/pressure_setting = ONE_ATMOSPHERE * 45 + circuit = /obj/item/weapon/circuitboard/air_management/tank_control + + +/obj/machinery/computer/general_air_control/large_tank_control/return_text() + var/output = ..() + //if(signal.data) + // input_info = signal.data // Attempting to fix intake control -- TLE + + output += "Tank Control System

" + if(input_info) + var/power = (input_info["power"]) + var/volume_rate = round(input_info["volume_rate"], 0.1) + output += "Input: [power?("Injecting"):("On Hold")] Refresh
Flow Rate Limit: [volume_rate] L/s
" + output += "Command: Toggle Power Set Flow Rate
" + + else + output += "ERROR: Can not find input port Search
" + + output += "Flow Rate Limit: - - - - [round(input_flow_setting, 0.1)] L/s + + + +
" + + output += "
" + + if(output_info) + var/power = (output_info["power"]) + var/output_pressure = output_info["internal"] + output += {"Output: [power?("Open"):("On Hold")] Refresh
+Max Output Pressure: [output_pressure] kPa
"} + output += "Command: Toggle Power Set Pressure
" + + else + output += "ERROR: Can not find output port Search
" + + output += "Max Output Pressure Set: - - - - [pressure_setting] kPa + + + +
" + + return output + +/obj/machinery/computer/general_air_control/large_tank_control/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) return + + var/id_tag = signal.data["tag"] + + if(input_tag == id_tag) + input_info = signal.data + else if(output_tag == id_tag) + output_info = signal.data + else + ..(signal) + +/obj/machinery/computer/general_air_control/large_tank_control/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["adj_pressure"]) + var/change = text2num(href_list["adj_pressure"]) + pressure_setting = between(0, pressure_setting + change, 50*ONE_ATMOSPHERE) + spawn(1) + src.updateUsrDialog() + return 1 + + if(href_list["adj_input_flow_rate"]) + var/change = text2num(href_list["adj_input_flow_rate"]) + input_flow_setting = between(0, input_flow_setting + change, ATMOS_DEFAULT_VOLUME_PUMP + 500) //default flow rate limit for air injectors + spawn(1) + src.updateUsrDialog() + return 1 + + if(!radio_connection) + return 0 + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + if(href_list["in_refresh_status"]) + input_info = null + signal.data = list ("tag" = input_tag, "status" = 1) + return 1 + + if(href_list["in_toggle_injector"]) + input_info = null + signal.data = list ("tag" = input_tag, "power_toggle" = 1) + return 1 + + if(href_list["in_set_flowrate"]) + input_info = null + signal.data = list ("tag" = input_tag, "set_volume_rate" = "[input_flow_setting]") + return 1 + + if(href_list["out_refresh_status"]) + output_info = null + signal.data = list ("tag" = output_tag, "status" = 1) + return 1 + + if(href_list["out_toggle_power"]) + output_info = null + signal.data = list ("tag" = output_tag, "power_toggle" = 1) + return 1 + + if(href_list["out_set_pressure"]) + output_info = null + signal.data = list ("tag" = output_tag, "set_internal_pressure" = "[pressure_setting]") + return 1 + + signal.data["sigtype"]="command" + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + spawn(5) + src.updateUsrDialog() + +/obj/machinery/computer/general_air_control/supermatter_core + icon = 'icons/obj/computer.dmi' + icon_state = "tank" + + frequency = 1438 + var/input_tag + var/output_tag + + var/list/input_info + var/list/output_info + + var/input_flow_setting = 700 + var/pressure_setting = 100 + circuit = /obj/item/weapon/circuitboard/air_management/supermatter_core + + +/obj/machinery/computer/general_air_control/supermatter_core/return_text() + var/output = ..() + //if(signal.data) + // input_info = signal.data // Attempting to fix intake control -- TLE + + output += "Core Cooling Control System

" + if(input_info) + var/power = (input_info["power"]) + var/volume_rate = round(input_info["volume_rate"], 0.1) + output += "Coolant Input: [power?("Injecting"):("On Hold")] Refresh
Flow Rate Limit: [volume_rate] L/s
" + output += "Command: Toggle Power Set Flow Rate
" + + else + output += "ERROR: Can not find input port Search
" + + output += "Flow Rate Limit: - - - - [round(input_flow_setting, 0.1)] L/s + + + +
" + + output += "
" + + if(output_info) + var/power = (output_info["power"]) + var/pressure_limit = output_info["external"] + output += {"Core Outpump: [power?("Open"):("On Hold")] Refresh
+Min Core Pressure: [pressure_limit] kPa
"} + output += "Command: Toggle Power Set Pressure
" + + else + output += "ERROR: Can not find output port Search
" + + output += "Min Core Pressure Set: - - - - [pressure_setting] kPa + + + +
" + + return output + +/obj/machinery/computer/general_air_control/supermatter_core/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) return + + var/id_tag = signal.data["tag"] + + if(input_tag == id_tag) + input_info = signal.data + else if(output_tag == id_tag) + output_info = signal.data + else + ..(signal) + +/obj/machinery/computer/general_air_control/supermatter_core/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["adj_pressure"]) + var/change = text2num(href_list["adj_pressure"]) + pressure_setting = between(0, pressure_setting + change, 10*ONE_ATMOSPHERE) + spawn(1) + src.updateUsrDialog() + return 1 + + if(href_list["adj_input_flow_rate"]) + var/change = text2num(href_list["adj_input_flow_rate"]) + input_flow_setting = between(0, input_flow_setting + change, ATMOS_DEFAULT_VOLUME_PUMP + 500) //default flow rate limit for air injectors + spawn(1) + src.updateUsrDialog() + return 1 + + if(!radio_connection) + return 0 + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + if(href_list["in_refresh_status"]) + input_info = null + signal.data = list ("tag" = input_tag, "status" = 1) + return 1 + + if(href_list["in_toggle_injector"]) + input_info = null + signal.data = list ("tag" = input_tag, "power_toggle" = 1) + return 1 + + if(href_list["in_set_flowrate"]) + input_info = null + signal.data = list ("tag" = input_tag, "set_volume_rate" = "[input_flow_setting]") + return 1 + + if(href_list["out_refresh_status"]) + output_info = null + signal.data = list ("tag" = output_tag, "status" = 1) + return 1 + + if(href_list["out_toggle_power"]) + output_info = null + signal.data = list ("tag" = output_tag, "power_toggle" = 1) + return 1 + + if(href_list["out_set_pressure"]) + output_info = null + signal.data = list ("tag" = output_tag, "set_external_pressure" = "[pressure_setting]", "checks" = 1) + return 1 + + signal.data["sigtype"]="command" + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + spawn(5) + src.updateUsrDialog() + +/obj/machinery/computer/general_air_control/fuel_injection + icon = 'icons/obj/computer.dmi' + icon_state = "atmos" + + var/device_tag + var/list/device_info + + var/automation = 0 + + var/cutoff_temperature = 2000 + var/on_temperature = 1200 + circuit = /obj/item/weapon/circuitboard/air_management/injector_control + +/obj/machinery/computer/general_air_control/fuel_injection/process() + if(automation) + if(!radio_connection) + return 0 + + var/injecting = 0 + for(var/id_tag in sensor_information) + var/list/data = sensor_information[id_tag] + if(data["temperature"]) + if(data["temperature"] >= cutoff_temperature) + injecting = 0 + break + if(data["temperature"] <= on_temperature) + injecting = 1 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = device_tag, + "power" = injecting, + "sigtype"="command" + ) + + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + ..() + +/obj/machinery/computer/general_air_control/fuel_injection/return_text() + var/output = ..() + + output += "Fuel Injection System
" + if(device_info) + var/power = device_info["power"] + var/volume_rate = device_info["volume_rate"] + output += {"Status: [power?("Injecting"):("On Hold")] Refresh
+Rate: [volume_rate] L/sec
"} + + if(automation) + output += "Automated Fuel Injection: Engaged
" + output += "Injector Controls Locked Out
" + else + output += "Automated Fuel Injection: Disengaged
" + output += "Injector: Toggle Power Inject (1 Cycle)
" + + else + output += "ERROR: Can not find device Search
" + + return output + +/obj/machinery/computer/general_air_control/fuel_injection/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) return + + var/id_tag = signal.data["tag"] + + if(device_tag == id_tag) + device_info = signal.data + else + ..(signal) + +/obj/machinery/computer/general_air_control/fuel_injection/Topic(href, href_list) + if(..()) + return + + if(href_list["refresh_status"]) + device_info = null + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + signal.data = list( + "tag" = device_tag, + "status" = 1, + "sigtype"="command" + ) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + if(href_list["toggle_automation"]) + automation = !automation + + if(href_list["toggle_injector"]) + device_info = null + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + signal.data = list( + "tag" = device_tag, + "power_toggle" = 1, + "sigtype"="command" + ) + + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + if(href_list["injection"]) + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + signal.data = list( + "tag" = device_tag, + "inject" = 1, + "sigtype"="command" + ) + + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + + + diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index bcd7beda08..b35cfd95a6 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -71,7 +71,7 @@ /obj/machinery/computer/operating/Topic(href, href_list) if(..()) - return + return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) return diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 223f9523cc..e9d1f60674 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -113,7 +113,7 @@ /obj/machinery/computer/aifixer/Topic(href, href_list) if(..()) - return + return 1 if (href_list["fix"]) src.active = 1 src.overlays += image('icons/obj/computer.dmi', "ai-fixer-on") diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 056c45e4f8..db7b44f7ad 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -84,7 +84,7 @@ /obj/machinery/computer/arcade/Topic(href, href_list) if(..()) - return + return 1 if (!src.blocked && !src.gameover) if (href_list["attack"]) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 484f39df25..a77a3071b1 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -188,7 +188,7 @@ /obj/machinery/computer/cloning/Topic(href, href_list) if(..()) - return + return 1 if(loading) return diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index a8403bbede..9df53b039c 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -47,7 +47,7 @@ /obj/machinery/computer/communications/Topic(href, href_list) if(..()) - return + return 1 if (src.z > 1) usr << "\red Unable to establish a connection: \black You're too far away from the station!" return diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index b639334c01..304ac7d1af 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -109,12 +109,6 @@ if(istype(user, /mob/dead/observer)) return 0 return ..() -/obj/machinery/computer/Topic(href, href_list) - /* Can't use topic as observer by default */ - if(istype(usr, /mob/dead/observer)) return 0 - return ..() - - /obj/machinery/computer/attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 7b524fe989..121942a418 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -106,7 +106,7 @@ /obj/machinery/computer/guestpass/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) if (href_list["mode"]) mode = text2num(href_list["mode"]) diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index a30f355d2a..bc7892b9bc 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -283,7 +283,7 @@ /obj/machinery/computer/message_monitor/Topic(href, href_list) if(..()) - return + return 1 if(stat & (NOPOWER|BROKEN)) return if(!istype(usr, /mob/living)) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index b429c70306..41d73ee2ae 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -98,7 +98,7 @@ /obj/machinery/computer/robotics/Topic(href, href_list) if(..()) - return + return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index f3a7f80203..5d5d995a41 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -208,7 +208,7 @@ I can't be bothered to look more of the actual code outside of switch but that p What a mess.*/ /obj/machinery/computer/secure_data/Topic(href, href_list) if(..()) - return + return 1 if (!( data_core.general.Find(active1) )) active1 = null if (!( data_core.security.Find(active2) )) @@ -612,4 +612,4 @@ What a mess.*/ /obj/machinery/computer/secure_data/detective_computer icon = 'icons/obj/computer.dmi' - icon_state = "messyfiles" + icon_state = "messyfiles" diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 8382f87185..4d4997d23b 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -148,7 +148,7 @@ I can't be bothered to look more of the actual code outside of switch but that p What a mess.*/ /obj/machinery/computer/skills/Topic(href, href_list) if(..()) - return + return 1 if (!( data_core.general.Find(active1) )) active1 = null if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index a76a19ddd7..8d51017603 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -283,7 +283,7 @@ var/specops_shuttle_timeleft = 0 /obj/machinery/computer/specops_shuttle/Topic(href, href_list) if(..()) - return + return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.machine = src @@ -541,7 +541,7 @@ var/specops_shuttle_timeleft = 0 /obj/machinery/computer/specops_shuttle/Topic(href, href_list) if(..()) - return + return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm index 9f69c7bc1c..e27813ccf6 100644 --- a/code/game/machinery/computer/supply.dm +++ b/code/game/machinery/computer/supply.dm @@ -49,7 +49,7 @@ /obj/machinery/computer/ordercomp/Topic(href, href_list) if(..()) - return + return 1 if( isturf(loc) && (in_range(src, usr) || istype(usr, /mob/living/silicon)) ) usr.set_machine(src) @@ -224,7 +224,7 @@ world.log << "## ERROR: Eek. The supply/shuttle datum is missing somehow." return if(..()) - return + return 1 if(isturf(loc) && ( in_range(src, usr) || istype(usr, /mob/living/silicon) ) ) usr.set_machine(src) diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index eb8acc83f5..970bb362c3 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -218,7 +218,7 @@ var/syndicate_elite_shuttle_timeleft = 0 /obj/machinery/computer/syndicate_elite_shuttle/Topic(href, href_list) if(..()) - return + return 1 if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) From c61a60c0648e5d3c1bd17dd9677c5fbc4c300f4d Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 25 Feb 2015 10:19:38 +0100 Subject: [PATCH 19/23] Map fixes. Fixes one of the holodeck issues mentioned in #8267. Was unable to reproduce the failure to load the basketball simulation. Fixes a problem in the vault where the a crate of gold had been replaced with a vault door instead. --- maps/exodus-1.dmm | 41 ++++++++++++++++++++--------------------- maps/exodus-2.dmm | 7 ++++--- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index a2507d692e..9c9dca27e5 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -1651,7 +1651,7 @@ "aFM" = (/obj/item/weapon/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "aFN" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/storage/primary) "aFO" = (/obj/machinery/lapvend,/turf/simulated/floor,/area/storage/primary) -"aFP" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/security/nuke_storage) +"aFP" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/obj/item/weapon/storage/belt/champion,/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/security/nuke_storage) "aFQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "vault"},/area/security/nuke_storage) "aFR" = (/obj/item/weapon/coin/silver{pixel_x = 7; pixel_y = 12},/obj/item/weapon/coin/silver{pixel_x = 12; pixel_y = 7},/obj/item/weapon/coin/silver{pixel_x = 4; pixel_y = 8},/obj/item/weapon/coin/silver{pixel_x = -6; pixel_y = 5},/obj/item/weapon/coin/silver{pixel_x = 5; pixel_y = -8},/obj/structure/closet/crate{name = "Silver Crate"},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/security/nuke_storage) "aFS" = (/obj/machinery/camera{c_tag = "Gateway"; dir = 4; network = list("SS13")},/obj/machinery/vending/coffee,/turf/simulated/floor,/area/gateway) @@ -2315,7 +2315,7 @@ "aSA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central_one) "aSB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central_one) "aSC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central_one) -"aSD" = (/obj/machinery/light/small{dir = 1},/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; output_level = 100000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"aSD" = (/obj/machinery/light/small{dir = 1},/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aSE" = (/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/power/sensor{name = "Powernet Sensor - AI Subgrid"; name_tag = "AI Subgrid"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aSF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{dir = 8; id = "office_shutter"; layer = 3.1; name = "Office Shutters"},/turf/simulated/floor/plating,/area/hallway/secondary/entry/aft) "aSG" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{dir = 2; id = "kitchen"; layer = 3.3; name = "Kitchen Shutters"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/hallway/primary/starboard) @@ -2857,6 +2857,7 @@ "bcW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics/garden) "bcX" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hydroponics/garden) "bcY" = (/obj/structure/flora/ausbushes,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) +"bcZ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/tech) "bda" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/starboard) "bdb" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "bdc" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Library"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/hallway/primary/starboard) @@ -4191,7 +4192,7 @@ "bCF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay3) "bCG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bCH" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) -"bCI" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) +"bCI" = (/obj/item/weapon/camera_assembly,/turf/simulated/floor/plating,/area/medical/genetics) "bCJ" = (/turf/simulated/wall,/area/rnd/docking) "bCK" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_dock_outer"; locked = 1; name = "Shuttle Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/rnd/docking) "bCL" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "research_dock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = 8; req_access_txt = "0"; req_one_access_txt = "13;65"},/turf/space,/area/space) @@ -4250,7 +4251,7 @@ "bDM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bDN" = (/obj/item/apc_frame,/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/medical/genetics) "bDO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/genetics) -"bDP" = (/obj/machinery/camera{c_tag = "Genetics Fore"; network = list("SS13")},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plating,/area/medical/genetics) +"bDP" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Aft Primary Hallway"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bDQ" = (/obj/item/weapon/table_parts,/turf/simulated/floor/plating,/area/medical/genetics) "bDR" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/medical/genetics) "bDS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) @@ -4277,10 +4278,10 @@ "bEn" = (/turf/simulated/wall,/area/maintenance/research_shuttle) "bEo" = (/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bEp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) -"bEq" = (/obj/machinery/camera{c_tag = "Research Dock"; dir = 2; network = list("SS13","Research")},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/rnd/docking) +"bEq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bEr" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "research_dock_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;65"},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/rnd/docking) "bEs" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_dock_inner"; locked = 1; name = "Shuttle Airlock"; req_access_txt = "13"},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) -"bEt" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "research_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/rnd/docking) +"bEt" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/autoname{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) "bEu" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/rnd/docking) "bEv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/rnd/docking) "bEw" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) @@ -4796,7 +4797,7 @@ "bOm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) "bOn" = (/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/obj/structure/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) "bOo" = (/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/medical/genetics) -"bOp" = (/obj/machinery/camera{c_tag = "Genetics Aft"; dir = 1; network = list("SS13")},/turf/simulated/floor/plating,/area/medical/genetics) +"bOp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "research_dock_pump"},/obj/machinery/camera/autoname{dir = 2; network = list("SS13","Supermatter","Atmospherics")},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/rnd/docking) "bOq" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/engine,/area/rnd/misc_lab) "bOr" = (/obj/machinery/portable_atmospherics/canister,/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bOs" = (/turf/simulated/floor/engine,/area/rnd/misc_lab) @@ -4918,7 +4919,7 @@ "bQE" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/rdconsole,/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe,/obj/item/weapon/circuitboard/rdserver{pixel_x = 3; pixel_y = -3},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/tech) "bQF" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/arcade,/obj/item/weapon/circuitboard/message_monitor{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plating,/area/storage/tech) "bQG" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/security/mining,/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/storage/tech) -"bQH" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/tech) +"bQH" = (/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/rnd/docking) "bQI" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bQJ" = (/turf/simulated/floor,/area/hallway/primary/aft) "bQK" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -4994,7 +4995,7 @@ "bSc" = (/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "23"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/aft) "bSd" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bSe" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/hallway/primary/aft) -"bSf" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Aft Primary Hallway"; dir = 8; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"bSf" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plating,/area/medical/genetics) "bSg" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/janitor) "bSh" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) "bSi" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/engineering) @@ -5064,7 +5065,7 @@ "bTu" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/security/engineering,/obj/item/weapon/circuitboard/atmos_alert{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plating,/area/storage/tech) "bTv" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/security{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/skills{pixel_x = 4; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/storage/tech) "bTw" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) -"bTx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bTx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/camera/autoname{dir = 4},/turf/simulated/floor,/area/engineering/engineering_monitoring) "bTy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "bTz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bTA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/aft) @@ -5121,7 +5122,7 @@ "bUz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) "bUA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech) "bUB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/plating,/area/storage/tech) -"bUC" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) +"bUC" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera/autoname{dir = 8},/turf/simulated/floor,/area/engineering/atmos/monitoring) "bUD" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bUE" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/aft) "bUF" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/sleeper) @@ -6229,9 +6230,7 @@ "cpQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "cpR" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/space,/area/space) "cpS" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/hallway/secondary/entry/port) -"cpT" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engineering/atmos/monitoring) "cpU" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor,/area/engineering/engineering_monitoring) -"cpV" = (/obj/machinery/camera{c_tag = "Engineering Monitoring"; dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/engineering/engineering_monitoring) "cpW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "cpX" = (/obj/machinery/computer/security/engineering,/turf/simulated/floor{dir = 8; icon_state = "floorgrimecaution"},/area/engineering/engineering_monitoring) "cpY" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engineering) @@ -7435,20 +7434,20 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbwMbwNbwObwPbrJbwQbrJbwRbwRbwRbwSbwTbrKbrJbrJbrLbwUbwVbwWbwXbwYbwZbxabgGbgGbxbbxcbvtbvubxdbxebxfbUbbnCbxibxjbxkbxlbvwaafbxmbqtbskbxobxpbxobskbqxbxraafbspbqwbxtbnDbedbxvbspbtVaJlbxwbcLaRpaJibxxbxybxzbxAbxBbxCbxDbxEbxCbxFbxGbxHbxFbwkbxIbxJbwkbwkbxKbxLbxMbxNbxObxPbxQbxRbxSaXKbaybdBaXKaVJbpjbxXbqZbqZbxYbxZbppbyabwsbwsbwsbsSbwtbybbwwbnSbUabTQbwwbyfbygbyhbyibpCbAtbnIbrqbykbnMaaaaaaaaaaaaaaaaafbylbymbwIbwJbwIbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbyobypbyobyqbyrbwQbrJbrJbrJbysbrJbwTbrKbytbdPbdPbyubgGbrNbwXbyvbywbyxbyybyybyzbyAbyBbyCbyDbvsbyEboobyGbxkbyHbyIbyJbvwaafbxrbxrbyKbtLbyLbskbyMbxrbxraafbyNbyNbyNbyNbyNbyNbyNbyOaJibyPblMblNaJibyQbyRbyRbySbyTbxCbyUbyVbyWbyXbyYbyZbzabwmbzbbzcbzdbzebzfbzgbzgbzhbzibzgbzjbzkbckbaAboObclbdQbcnbzrbzsbztbzubzvbzwbppbzxbpqbpqbzybsSbwtbzzbzAbzBbzCbzDbzAbzEbzFbzGbzHbzIbwwbwwbzJbnMbnMbzKbzLbzLbzLbzMbzNbwGbwJbwIbwJbwJbzObwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaacaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbzRbrJbwQbrJbzSbzSbzSbzSbwTbrKbzTbzUbdPbzVbgGbrNbwXbzWbzXbzYbgGblnbgGbzZbAabAbbAcbAdbyEbpvbAfbxkbxkbxkbAgbvwbAhbAhbAhbxrbAibxpbAibxrbAjbAjbAjbyNbAkbAlbAmbAnbAobApbAqaJibAraRqaRpaJibCdbAucJsbAvbAwbAxbAybAzbAAbABbACbADbAEbAFbAGbAHbAIbAJbAKbAIbqMbAMbANbAObnvblUbsdbnwbsgbsfbaAbPObpjbwubrgbAYbAZbAZbppbBabBbbBcbppbBdbBebBfbBgbBhbBibBjbBkbBlbBlbBmbBnbBobTHbBqbBrbBsbBtbTIbBvbBwbBwbBxbBybBzbuQbuRbBAbuRbuQbBBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBCbwNbBDbBEbrJbwQbrJbrJbrJbrJbrJbwTbrKbzTbBFbdPbBGbgGbBHbBIbgGbBJbgFbgGbgGbBKbvsbvtbAbbAcbAdbyEbvwbBLbBMbBNbBMbBObvwbBPbBQbBRbAhbxrbBSbxrbAjbBTbBUbBVbyNbBWbBXbBYbBZbCabCabCbbCcbAraRqaRpaJicJtbCebCebySbCfbxCbCgbChbxCbCibCjbCjbCkbwkbClbCmbwkbwkbwkbwkbwkbwkbCnbwkbwkbwmbCoaXKaXKaXKaXKbSwbpjbwwbzAbzAbzAbzAbzAbzAbzAbzAbzAbzIbCrbCsbCtbBhbCubCvbCwbCxbCxbCxbCybCzbSubCBbCCbCDbCEbTGbCGbCHbCGbCIbCJbzKbzLbzMbCKbzNbCLaaaaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbCQbgGbrNbwXbgGbqlbCRbgGbgGbCSbxcbvtbAbbCTbxcbCUbvwbCVbrpbCXbCYbxlbvwbCZbDabDbbDcbDdbvFbvEbDgbDhbDibDjbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbJxbDvbDwbDxbDybDzbDAbyWbDBbvLbCjbDDbwmbDEbDFbwmbDGbDHbDIbDJbDKbDLbDMbCpbDNbDObDPbDQbDRbCpbVLbVMbDUbVAbDWbDXbDXbDYbDZbEabEbbEcbEdbEebEfbEabEgbEhbCvbEibEjbEkbwwbwwbwwbwwbwwbxhbwbbEnbzKbzMbCJbEobEpbEqbErbEsbEtbEubEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBCbwNbBDbBEbrJbwQbrJbrJbrJbrJbrJbwTbrKbzTbBFbdPbBGbgGbBHbBIbgGbBJbgFbgGbgGbBKbvsbvtbAbbAcbAdbyEbvwbBLbBMbBNbBMbBObvwbBPbBQbBRbAhbxrbBSbxrbAjbBTbBUbBVbyNbBWbBXbBYbBZbCabCabCbbCcbAraRqaRpaJicJtbCebCebySbCfbxCbCgbChbxCbCibCjbCjbCkbwkbClbCmbwkbwkbwkbwkbwkbwkbCnbwkbwkbwmbCoaXKaXKaXKaXKbSwbpjbwwbzAbzAbzAbzAbzAbzAbzAbzAbzAbzIbCrbCsbCtbBhbCubCvbCwbCxbCxbCxbCybCzbSubCBbCCbCDbCEbTGbCGbCHbCGbEtbCJbzKbzLbzMbCKbzNbCLaaaaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbCQbgGbrNbwXbgGbqlbCRbgGbgGbCSbxcbvtbAbbCTbxcbCUbvwbCVbrpbCXbCYbxlbvwbCZbDabDbbDcbDdbvFbvEbDgbDhbDibDjbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbJxbDvbDwbDxbDybDzbDAbyWbDBbvLbCjbDDbwmbDEbDFbwmbDGbDHbDIbDJbDKbDLbDMbCpbDNbDObSfbDQbDRbCpbVLbVMbDUbVAbDWbDXbDXbDYbDZbEabEbbEcbEdbEebEfbEabEgbEhbCvbEibEjbEkbwwbwwbwwbwwbwwbxhbwbbEnbzKbzMbCJbEobEpbQHbErbEsbOpbEubEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbEwbExbEwbEybEzbEAbEAbEAbEAbEAbEBbECbEDbzTbEEbdPbEFbEGbEHbEIbEJbtzbEKbELbEMbfmbtCbENbAbbEObEPbyEbvwbEQbERbESbBMbETbvwbEUbEVbEWbAhbEXbvCbEYbAjbFabFbbFcbyNbFdbFebFfbFgbDnbDobFhaJibxwaRqaRpbVjbFjbFkbFlbFmbFnbFobFpbFqbxCbxFbxFbFrbxFbwkbFsbFtbFubFvbFwbFxbDJbFybDLbFzbFAbFBbDObFCbFDbFEbFFbVlbDXbVybVAbFJbDXbDXbFKbFLbFMbFLbFLbFNbFObFPbFQbFRbFSbCvbFTbFUbFVbFWbFXbFYbFZbGabGbbGcbGdaafaafbCJbGebGfbGgbGhbGibGjbGkbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbGlbGmbGnbdPbdPbGobwNbwNbwNbGpbdPbdPbGqbGrbGsbdPbGtbGtbGtbGubGtbGvbGwbGxbGybGzbtCbvtbAbbGAbGBbtCbtGbtGbtGbtGbtGbGCbtGbtGbtGbtGbtGbtGbshbtGbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJiaJiaJibxwaRqaRpbVjbGEbFkbxubGGbxUbGIbGJbGKbGLbGMbGNbCjbGObGPbGQbGRbGSbGTbGUbGVbGWbGXbGYbGZbHabHbbHcbHdbHebHfbCpbUSbUfbwwbwwbwwbwwbwwbHibwwbwwbwwbzAbHjbzAbzAbHkbBhbCubCvbFTbHlbHmbHnbHobHpbHqbGabGbbGcbHraaaaaabCJbHsbHtbCJbBybCJbCJbBybCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHuaafaaaaaaaaaaaabGtbHvbHwbHxbHybGvbHzbHAbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbHGbHHbHIbHJbHKbHLbHMbHLbHNbHObqybHQbHRbAabHSbAabHTbAabzZbHUbHVbHWbHXbHYbHZbxwaRqbDsaJlbDtbALbDtbCAbKZbxCbIbbIcbIdbIebIfbIgbIhbIibIjbIkbwmbIlbImbInbDJbCWbIobIpbIqbIrbFDbIsbItbIubCpbIvbIwbIxbIybUdbIAbIBbICbIDbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbILbIMbINbIObIPbIQbIRbGabGbbISbEnbEnbEnbCJbCJbCJbCJaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbITbIUbIVbIWbIXbIYbIZbJabJbbtCbvtbJcbJdbJebJebJfbJgbJhbJibJjbJgbJfbJebJebJebJkbJlbqsbJnbJobJebJebJebJpbJgbJhbJqbJrbJsbJtbJubJtbJvbJwbvUaJlbDubDebDCbGFbElbDTbDzbEmbFibDVbxFbJDbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbJVbJWbJXbJYbIFbJZbKabKbbKbbzAbKcbKdbKebKfbKgbKhbKibKjbKjbKkbGabGbbKlbEnbKmbKobKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbKzbKAbIVbKAbKBbKCbHBbKDbKEbtCbKFbvtbKGbKHbAabKIbAabzZbHHbKJbAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbKTbKUbKVbKWbKXbcLbKYaRpaRpaRpaJlbFHbGFbGFbFlbHPbGHbLdbJmbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbLpbLqbLrbLsbLtbCpbLubLvbIxbLwbFGbLybLzbLAbLBbLCbIFbLDbLEbKbbKbbzAbRsbLFbCvbwwbLGbLHbLIbLJbLKbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbLWbLXbLYbLVbLZbMabMbbGtbMcbMdbMebMfbMgbMhbMibMjbMjbMkbtCbtCbtCbMlbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbMpbtCaJlaJlaJlaJlbMqaJlaKSaMpbMraJlbJCbJybMsbGFbMtbxCbDzbLabxCbMybMzbMAbMBbwkbMCbMDbMEbMFbMGbMHbMIbMJbMKbMLbItbJObFDbFDbMMbJObCpbMNbMObMObMObMObMObMObMObMObMObMObMPbMQbMRbMRbzAbMSbMTbMUbwwbMVbMVbMVbMWbMXbMYbMVbMVbMVbMVbMVbMZbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbNdbLRbLRbNebKtbKtbLTbLTbNfbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbNhbNgbKxbNibNjbNkbNlbNmbNnbKAbNobNpbGvbNqbNrbNsbNtbGvbNubNvbNwbNxaaaaaaaaaaaabNybNzbNAbNBbNDbNCbNEbNFbNGbNHbNIbNFbNJbNKbNLbNMbNNbNObNPbNQbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbMwbMwbxCbNZbOabObbMzbOcbOdbOebOfbOgbOhbOibOjbOkbOlbOmbOnbMKbOobFDbFDbOpbJObJObOobCpbMNbMObOqbOrbOsbOtbOubOvbOwbOxbMObOybOzbOAbOAbzAbOBbOCbCvbzIbODbOEbOFbOGbOHbOIbOJbOKbOLbOMbMVbEnbONbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbNhbNgbKxbNibNjbNkbNlbNmbNnbKAbNobNpbGvbNqbNrbNsbNtbGvbNubNvbNwbNxaaaaaaaaaaaabNybNzbNAbNBbNDbNCbNEbNFbNGbNHbNIbNFbNJbNKbNLbNMbNNbNObNPbNQbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbMwbMwbxCbNZbOabObbMzbOcbOdbOebOfbOgbOhbOibOjbOkbOlbOmbOnbMKbOobFDbFDbCIbJObJObOobCpbMNbMObOqbOrbOsbOtbOubOvbOwbOxbMObOybOzbOAbOAbzAbOBbOCbCvbzIbODbOEbOFbOGbOHbOIbOJbOKbOLbOMbMVbEnbONbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbOQbORbKAbOSbOTbOUbKAbKAbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbPaaaabPbbPcbPcbPdbPebPfbPgbPhbPfbPibNFbPjbPkbPlbNFbPmbPnbPobPpbPqbPrbPsbPtbPtbNSbPubPvbPwbPxbPybDtbMubLbbNYbGFbGFbMvbDzbPCbxCbPDbPEbPFbPGbwkbPHbPIbwkbPJbPKbPLbPMbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbPSbMObPTbLEbPUbPUbzAbBhbPVbPWbPXbPYbPYbPYbPYbPZbQabQabQbbQcbQdbMVbQebQfbQgbOObQhbMxbQjbQkaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQGbQFbQHbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbNVbNXbGFbQVbGFbGFbPzbDzbLebRCbQZaZvbRbbRcbRGbDEbIkbSpbPJbPLbPLbPMbRfbMKbRgbRhbPBbRjbRkbRlbQibRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRebRDbREbRFbRdbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebSfbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtbRibLbbQVbSmbPAbPzbSobJAbJBbSqbSrbSsbStbJzbFsbSvbIEbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabQabRabMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbTgaafaaaaaabGtbThbTibTjbGtaaabNxbTkbTlbTmbTnbTnbTnbTobQyaaabQzbTpbTqbTrbTsbPfbTtbTvbTubTwbNFbTxbTybTzbTAbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbTObLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbTTbTUbTVbRjbTWbTXbTYbRnbPObMObTZbQWbPQbLxbLnbNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbMVbMVbMVbUkbMVbSUbSTbVFbMVbUnbUobUnbOObUpbUqbUrbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbUCbNFbUDbTMbTNbNFbTPbTPbTPbTPbTPbTPbTPbTPbUHbUIbUJbUKbUKbUMbNUbDtbUNbUebUFbUQbURbwabUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibUGbVkbUObRjbUPbVmbUPbRnbPObMObVnbWcbVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbnxbVzblSbVBbUlbVBbVCbUmbVDbMVbVGbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQGbQFbPfbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbNVbNXbGFbQVbGFbGFbPzbDzbLebRCbQZaZvbRbbRcbRGbDEbIkbSpbPJbPLbPLbPMbRfbMKbRgbRhbPBbRjbRkbRlbQibRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRebRDbREbRFbRdbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebDPbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtbRibLbbQVbSmbPAbPzbSobJAbJBbSqbSrbSsbStbJzbFsbSvbIEbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabQabRabMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbTgaafaaaaaabGtbThbTibTjbGtaaabNxbTkbTlbTmbTnbTnbTnbTobQyaaabQzbTpbTqbTrbTsbPfbTtbTvbTubTwbNFbEqbTybTzbTAbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbTObLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbTTbTUbTVbRjbTWbTXbTYbRnbPObMObTZbQWbPQbLxbLnbNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbMVbMVbMVbUkbMVbSUbSTbVFbMVbUnbUobUnbOObUpbUqbUrbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbcZbNFbUDbTMbTNbNFbTPbTPbTPbTPbTPbTPbTPbTPbUHbUIbUJbUKbUKbUMbNUbDtbUNbUebUFbUQbURbwabUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibUGbVkbUObRjbUPbVmbUPbRnbPObMObVnbWcbVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbnxbVzblSbVBbUlbVBbVCbUmbVDbMVbVGbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybVVbVWbVXbVZbVYbPfbNFbWabWbbNIbNFbTPbWdbWfbWebWhbWgbWibTPcaqcaqcaqcaqcaqbTFbWjbWkbWlbWmbWnbWobWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbWMbxVbMObxWbzmbzlbWSbWTbWUbWSbWSbWVbWWbWXbWYbWZbCxbCxbSLbCxbFTaafbnxbXabXbbXcbXdbXebXfbXgbXhbMVbXibVHbXjbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbXnbXobXpbRSbXqbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUDbUEbXtbNFbTPbXubXwbXvbXvbXwbXxbTPbXzbXybXybXAcaqbXBbDtbDtbXCbXDbXEbXFbXGblRbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbznbzpbzobAPbzqbARbAQbATbASbAVbAUbYfbYgbIwbYhbVobCqbWObWNbWPbYmbYnbYobYpbYqbYrbYsbYtbYrbYubYvbILaafbnxbXabrBbVBbVEbVBbYebYzbYAbMVbXjbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaBsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxbYHbNxbYIbYJbYKbYIbYIbYLbYMbYNbYObYPbYQbYybYSbYRbYUbYTbYVbXwbYXbYWbYZbYYbZbbZabZdbZcbZfbZecaqbZhbNSbZibZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqbZrbTJbTJbZsbZgbZTbVibZvbWQbZxbZybZzbZybZAbZUbZCbZUbZAbWRbYfbMNbIwbZEbXWbXVbZVbZIbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbYxbMVbMVbMVbMVbMVbZObZPbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7464,7 +7463,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcfQckZclcclacfQcldclcclecfQcldclcclecfQaaaaafcmzcgTcgTcgUcgUcmAcejclhclgclkcljclmcllclnclnclvcltclncmscmtcbBcmvcmucmxcmwcihcmycmycmBckBcmCcmEcmDcmDciAcibceVcmFcqgciGcnbciIcnccndcmGciGcnfciNcmHcfYcmIcnicnjciScnkciUclLclMclNcnlcsNcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfaaaaaaaaaaaacdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScnrcnscsOcdScdScdScdScnucnscntcdScdScnvcnwcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZSaafaafaafaaaaafcnxaafcnxaafcKBaafcKAaafcKBaafcKAaafaafaaacejcnAcnBcgUcgUcnCcnDcmKcmJcmMcmLcmOcmNcmNcmPcmNcmQcmScmRcmQcmXcngcnecnycnhcnzcnzcnzcnzcnFcnEcnGcnGcnGcgscgscgscgscnSciGcnTcnUcnccnVcnWciGcnfciNcnXciUcnYcnZcnjcoacobciUclLclMclNcocctycoeclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacdOcofcogcohcwlcojcokcolcomconcvQcvncdObqpaafaafcvWaafaaaaaaaaaaaaaaaaaaaaaaafcoscotcosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcnHcnJcnIcnKcnIcnJcnLcnKcnMcnNcnLcnPcnOcnRcnQcmMcmMcmMcmMcmMcmMcmMcmMcovcoucoxcowcoAcoycoCcoBcoDcmQcoFcoEcoGcmQcoIcoHcoJcnzcoLcoKcoNcoMcoPcoOcoRcoQcoQcoScoTcoTcoRbTFciGciGcpccpdciGciGciGcpeciNcpfciUciUciUcpgcphciUciUclLcpiclNcvmcvXcvmclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafcdOcplcpmcplcvlcpocppcpqcomcomcprcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacvtaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcoUcoWcoVcoYcoXcoWcoZcpbcpacpkcpjcpscpncpucptcpwcpvcpycpxcpAcpzcpCcpBcpFcpDcpJcpHcpMcpLcpOcpNcpTcpQcpVcpUcpXcpWcoIcpYcpZcnzcoPcoPcoPcoPcoPcqacoRcqbcqbcqbcoTcoTcoRbTFcrYciGcqhcqicqjcqkciGcqlciNcqmciUcqncqocqpcqqciUcqrclLcpiclNcqscvYcquclNaaaaaaaaaaaaaaaaaacqvcqwcqxcqycqvaafaaaaaaaaaaaacdOcplcplcplcoicqAcqBcqCcqDcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacmZaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcoUcoWcoVcoYcoXcoWcoZcpbcpacpkcpjcpscpncpucptcpwcpvcpycpxcpAcpzcpCcpBcpFcpDcpJcpHcpMcpLcpOcpNbUCcpQbTxcpUcpXcpWcoIcpYcpZcnzcoPcoPcoPcoPcoPcqacoRcqbcqbcqbcoTcoTcoRbTFcrYciGcqhcqicqjcqkciGcqlciNcqmciUcqncqocqpcqqciUcqrclLcpiclNcqscvYcquclNaaaaaaaaaaaaaaaaaacqvcqwcqxcqycqvaafaaaaaaaaaaaacdOcplcplcplcoicqAcqBcqCcqDcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacmZaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcqccptcqdcqfcqecptcqzcptcqIcqJcqzcptcqIcqJcptcptcptcptcptcqKcptcptcptcpMcqMcpHcqPcqzcpLcqRcqQcqUcqScqWcqVcqYcqXcoIcpYcJrcnzcracoPcoPcrbcoPcrccoRcrdcrfcrecrfcrgcoRbTFcrqciGcrrcrscrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDciUcrEcrFcrGcrHcqvcvZcqvcrHaaaaaaaafaaaaaaaaacqvcwkcwTcwScqvaafaafaaaaaaaaacdOcomcomcomcomcrMcppcrNcrNcrNcnpcrNcrOcdOaaaaaaaaaaaaaaacrPcrPcrPbZSaafaafaafaafcnaaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcoUcptcqPcptcqPcptcqzcptcrhcrjcricrjcrkcrjcrjcrmcrlcptcptcrocrncrncrncrQcrpcrRcrRcrScpLcrUcrTcrVcmQcrXcrWcrZcmQcsbcsacsdcsccsfcsecshcsgcoPcsicoRcsjcrfcskcrfcsmcoRbTFcizciGcszcsAcsBcsCciGcfYcsDcfYciUcsEcsFcsGcsHciUcsIcrGcrGcqvcsJcwUcsLcqvcqvcqvcsMcqvcqvcqvcqvctMctDctNcqvcqvcqvcrHaaaaaacdOcofcogcohcslcsRcqBcrNcrNcrNcnpcrNcsScdOaaaaaaaaaaaaaaacrPaaaaafaaaaafaaaaaaaaackxaaaaafaafaaaaaaaaaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaacoUcptcqPcptcsncspcsocsrcsqcsscricrjcstcrjcrjcrmcsucptcptcsvcqfcsxcswcswcsycqPcqPcsTcsQcsVcsUcmNcmQcsWcmQcmQcmQcsYcsXcsdcsZctcctactectdcoPctfcoRctgcrfcskcrfcthcoRctvctwciGciGctxciGciGciGciBctzctAciUciUciUctBciUciUcsIcrGaaacqvctCcwVctEctFctGctHctIctJctKctLcqvcuVcuUcuVcqvctOctPcqvaafaafcdOcplcplcplcorcpoctRctSctTctUctVcrNctWcdOcdOcdOcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index f60bb21124..01b4f044a3 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -1152,7 +1152,7 @@ "wh" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT1"; name = "Launch Bay #1"; p_open = 0},/turf/unsimulated/floor{name = "plating"},/area/centcom) "wi" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "wj" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"wk" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/accessory/storage/black_vest,/obj/item/weapon/rig/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"wk" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor{icon_state = "carpet9-4"; dir = 4},/area/holodeck/source_courtroom) "wl" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "wm" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) "wn" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom) @@ -1970,6 +1970,7 @@ "LT" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/escape_pod5/transit) "LU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space) "LV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space) +"LW" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/accessory/storage/black_vest,/obj/item/weapon/rig/ert,/obj/item/device/mmi/digital/posibrain,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "MA" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area/space) "MO" = (/obj/machinery/vending/cigarette{contraband = newlist(); premium = newlist(); prices = list(/obj/item/weapon/storage/fancy/cigarettes = 15, /obj/item/weapon/storage/box/matches = 1, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 20); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "MP" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) @@ -2049,7 +2050,7 @@ abaZaYaXaVbdbbbebfbecqcEbSbSbSbSbSbSbSiLbUaUbcaVaUbaaSaWbeaRaiarasatauavbgbhaybj aeaVbaaWbeaTaYbbaRebczbSbSbSbSbSbSbSbSbSjgLDbfbeaXbdaZaSbbaUafbnbkblbmapaqaraHatauavbgbhbibjbnbiavaraqbhauasatauavbgbhbibjbnaBaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbpbpbpbvbpbpbpbCbrcMcLLABjbVbVbQBhbEbFbrbYLzcmcmcmcmcmcmLBLCbreVffEkCDAkCDCUftfCfvbrbwbwbwbHbwbwbHbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePcobJbJbJbJbJcpbB ahbebdaSbbbcbaaYaUcxbSbSbSbSbSbSbSbSbSbSbSiyaRbbaWaTaVaZaYaXanbmapaqarasatauaKbgbhbibjbnbkblbmcFcGcHcIcJcKavbgbhbibjbnbkblbmaEaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbvbpbpbpbpbpbpbpbrbFbEbFcMcLcMcLbEbFbEbrbYLzcmcmcmcmcmcmLBLCbreVLGLFAkAkAkLEftfCfvbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReRLHcobJbJbJbJbJcpbB agbbaTaZaYbfbdbaaXcEbSbSbSbSbSbSbSbSbSbSbShZaUaYaSbcbeaVbaaWakbibjbnbkblbmapaFarasatauavbgbhbicKcUKFLPEncYaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobpbpbpbpbpbpbpbpbpbpbrbEbFbEbFbEbFbEbFbFbEbrbYCBdmdmdmdmdmdmDJDKbreVffEkCDCDCDCUftfCfvbrbwbHbwbwbwbwbwbwbHbwbrbxbxbxbxbxbxbxbxbxbxbreReQePcobJbJbJbJbJcpbB -acaYbcaVbaaRaTbdaWcqbSbSbSbSbSbSbSbSbSbSbSigaXbaaZbfbbbebdaSaaasatauavbgbhbiazbnbkblbmapaqarasddLSLTdgdhdibhbnbkblbmapaqarasaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobCbpbpbpbvbpbpbpbpbvbrbsbtbsbtbsbsbtbsbtbsbrIZbYbYbYbYbYbYbYbYEObreVeUFjEzEzEzEvEuENeSbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePdodpdpdpdpdpdqbB +acaYbcaVbaaRaTbdaWcqbSbSbSbSbSbSbSbSbSbSbSigaXbaaZbfbbbebdaSaaasatauavbgbhbiazbnbkblbmapaqarasddLSLTdgdhdibhbnbkblbmapaqarasaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobCbpbpbpbvbpbpbpbpbvbrbsbtbsbtbsbsbtbsbtbsbrIZbYbYbYbYbYbYbYbYEObreVeUFjEzEzEzEvEuENwkbrbwbwbwbwbwbwbwbwbwbwbrbxbxbxbxbxbxbxbxbxbxbreReQePdodpdpdpdpdpdqbB aibabfbebdaUbcaTaSczbSbSbSbSbSbSbSbSbSbSbSbUaWbdaVaRaYbbaTaZajbhbibjbnbkblbmaEaqarasatauavbgbheGdwdxdyLSdzapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMLOdBdBdBdBdBdBdBdBdBdBdCdBdBdBdBdBdBdBdBdBdBdCdBdBdBdBdBdBdBdBdBdBdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdCdDdDdDdDdDdDdDdDdDdDdE afbdaRbbaTaXbfbcaZcTbSbSbSbSbSbSbSbSbSbSbSdYaSaTbeaUbaaYbcaVamaqarasatauavbgaxbibjbnbkblbmapaqdHdddIcGcHcIbhbibjbnbkblbmapaqaGaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbWbWbWbWbWbWbWbrdMdMdMdMdMdMdMdMdMdMbrLILILILILILILILILILQbrcncrcldOevdOdPdQevdQbrdRdSdTdRdUdRdSdTdRdUbrctcscudVdWdWdWdWdWdXbrLRLRcBcBcBcBcBcBcBcBbB anaTaUaYbcaWaRbfdGfsbSbSbSbSbSbSbSbSbSbSbSidiKbcbbaXbdbabfbeadauavbgbhbibjbnaBblbmapaqarasatauarbibjbnbkbgbkblbmapaqarasatauaKaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbobWbWbWbXbWbWbWbWbXbWbrdMecdMdMdMdMecdMdMdMbrLILIedefeeedefLILILIbrcncrclegehegeheieheibrdUekejdUdRdUdRekekdRbrctcscueneoeoeoeoeoepbrcBcBcBcBcAcAcAcBcBcBbB @@ -2177,7 +2178,7 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVwWuXuVuVuVuYwWwivavbwjoNtvoNoNoNtZoNvetZtZtZwloNwmwnwowpwpwpwpwpwpNZtvtvtvtvtvufufvVwrwsufwtwuwvufwswrueufufugugugugugugugweuNuptxurururtxwwwwuNwwwwvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutwxvbwyoNwzwAwBoNtZoNvNvKtZtZwEoNwmvMtvwFwGwGwGwHwGwItvwJwJwJtvufufwKwLwMwNwOwPwQwRwSwLwTufuftxwUwUwUwUwUtxtxuOtxtxtxuOtxtxuNuNuNuNuNvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwVoVoVoVoVoVoVoVoVoVoVoVoVoVwhoUoVoVoVqVwhwXwYvMwZoNyQtZxboNxcoNoNoNxdoNoNoNwmwnuWxfxfxfxfxfxfxfxgxfxfxfxgufufufxhufufxiufxiufufxhufufufxjurururururxjurururururururxjwwwwwwwwwwvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMxkoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNxlxmvMxnoNvPuhwkoNtZxqtZxrtZxsxtxttZxutvxvxwxwxxxyxzxAtvxBxBxBtvufufvBxCxDwNxEufxFwRxGxCvDufufxjurururururxjurururururururxjwwwwwwwwwwtxuOuOtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMxkoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNxlxmvMxnoNvPuhLWoNtZxqtZxrtZxsxtxttZxutvxvxwxwxxxyxzxAtvxBxBxBtvufufvBxCxDwNxEufxFwRxGxCvDufufxjurururururxjurururururururxjwwwwwwwwwwtxuOuOtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwVoVoVoVoVoVoVoVoVoVoVoVoVoVxHoUoVoVoVqVxHxIxJvMwnxKuhtZtZxLtZxMtZwmwmxNxNwmwmxutvxOxOxOxPxQxPxRtvtvtvtvtvufufvVwLxSufxiufxiufxSwLueufuftxxTxUxUxUxVtxtxxWtxtxtxuOtxtxtxxXxXxXtxtxurururxYurxZtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMxkoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNLgyaoNoNoNoNoNyboNycwmydyeyWygwmxutvtvyhyiyjykylymyhaMaMaMtxufufvVtxtxynyoufypyqtxtxueufuftxaMaMaMaMaMtxyrystxuNytuNuNyuyvywywywObtxururuQuQururyyaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMoNoNoNoNyzyAxowDtZoNxewmydyfyfygwmxpyEyFyhyGyHyIyByKyhaMaMaMtxufufvVtxtxvlvmvmvmvotxtxueufuftxaMaMaMaMaMtxysystxyLyLyLuNyuywywywywyMtxuryNuPuPyOuryPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM From 4dca85b17c990e3d4d7e8c6143b669a4fb7223d1 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 25 Feb 2015 19:45:48 +0100 Subject: [PATCH 20/23] Fixes camera network changes not always being reflected in camera consoles. Cameras with altered networks would not necessarily show up on camera consoles, primarily affecting cameras joining/leaving alarm zones. --- code/game/machinery/camera/camera.dm | 45 +++++++++++++++++++ code/game/machinery/camera/camera_assembly.dm | 2 +- .../objects/items/robot/robot_upgrades.dm | 2 +- code/modules/alarm/alarm_handler.dm | 5 +-- .../modules/clothing/spacesuits/spacesuits.dm | 2 +- .../mob/living/silicon/robot/drone/drone.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 14 +++--- .../simple_animal/friendly/spiderbot.dm | 2 +- 8 files changed, 59 insertions(+), 15 deletions(-) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 77f41cb2eb..50a814b8de 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -349,6 +349,51 @@ user.set_machine(src) wires.Interact(user) +/obj/machinery/camera/proc/add_network(var/network_name) + add_networks(list(network_name)) + +/obj/machinery/camera/proc/remove_network(var/network_name) + remove_networks(list(network_name)) + +/obj/machinery/camera/proc/add_networks(var/list/networks) + var/network_added + network_added = 0 + for(var/network_name in networks) + if(!(network_name in src.network)) + network += network_name + network_added = 1 + + if(network_added) + invalidateCameraCache() + +/obj/machinery/camera/proc/remove_networks(var/list/networks) + var/network_removed + network_removed = 0 + for(var/network_name in networks) + if(network_name in src.network) + network -= network_name + network_removed = 1 + + if(network_removed) + invalidateCameraCache() + +/obj/machinery/camera/proc/replace_networks(var/list/networks) + if(networks.len != network.len) + network = networks + invalidateCameraCache() + return + + for(var/new_network in networks) + if(!(new_network in network)) + network = networks + invalidateCameraCache() + return + +/obj/machinery/camera/proc/clear_all_networks() + if(network.len) + network.Cut() + invalidateCameraCache() + /obj/machinery/camera/proc/nano_structure() var/cam[0] cam["name"] = sanitize(c_tag) diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 19f2216272..8be7f6ebe5 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -99,7 +99,7 @@ C.auto_turn() - C.network = uniquelist(tempnetwork) + C.replace_networks(uniquelist(tempnetwork)) tempnetwork = difflist(C.network,restricted_camera_networks) if(!tempnetwork.len)//Camera isn't on any open network - remove its chunk from AI visibility. cameranet.removeCamera(C) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 9bc40c779d..a9b040f647 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -37,7 +37,7 @@ R.icon_state = "[R.ckey]-Standard" del(R.module) R.module = null - R.camera.network.Remove(list("Engineering","Medical","MINE")) + R.camera.remove_networks(list("Engineering","Medical","MINE")) R.updatename("Default") R.status_flags |= CANPUSH R.updateicon() diff --git a/code/modules/alarm/alarm_handler.dm b/code/modules/alarm/alarm_handler.dm index 73bd2348aa..2be4060de2 100644 --- a/code/modules/alarm/alarm_handler.dm +++ b/code/modules/alarm/alarm_handler.dm @@ -64,10 +64,9 @@ /datum/alarm_handler/proc/on_alarm_change(var/datum/alarm/alarm, var/was_raised) for(var/obj/machinery/camera/C in alarm.cameras()) if(was_raised) - C.network.Add(category) - invalidateCameraCache() + C.add_network(category) else - C.network.Remove(category) + C.remove_network(category) notify_listeners(alarm, was_raised) /datum/alarm_handler/proc/get_alarm_severity_for_origin(var/atom/origin) diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 8d73a40e68..b7db5da591 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -32,7 +32,7 @@ icon_action_button = "[icon_state]" camera = new /obj/machinery/camera(src) - camera.network = camera_networks + camera.replace_networks(camera_networks) cameranet.removeCamera(camera) camera.c_tag = user.name user << "\blue User scanned as [camera.c_tag]. Camera activated." diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 44df327240..a1bd1c3019 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -31,7 +31,7 @@ add_language("Drone Talk", 1) if(camera && "Robots" in camera.network) - camera.network.Add("Engineering") + camera.add_network("Engineering") //They are unable to be upgraded, so let's give them a bit of a better battery. cell.maxcharge = 10000 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 667f57f953..d5ff0f1c09 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -125,7 +125,7 @@ var/list/robot_verbs_default = list( if(!scrambledcodes && !camera) camera = new /obj/machinery/camera(src) camera.c_tag = real_name - camera.network = list("SS13","Robots") + camera.replace_networks(list("SS13","Robots")) if(wires.IsIndexCut(BORG_WIRE_CAMERA)) camera.status = 0 @@ -275,7 +275,7 @@ var/list/robot_verbs_default = list( module = new /obj/item/weapon/robot_module/miner(src) module.channels = list("Supply" = 1) if(camera && "Robots" in camera.network) - camera.network.Add("MINE") + camera.add_network("MINE") module_sprites["Basic"] = "Miner_old" module_sprites["Advanced Droid"] = "droid-miner" module_sprites["Treadhead"] = "Miner" @@ -285,7 +285,7 @@ var/list/robot_verbs_default = list( module = new /obj/item/weapon/robot_module/crisis(src) module.channels = list("Medical" = 1) if(camera && "Robots" in camera.network) - camera.network.Add("Medical") + camera.add_network("Medical") module_sprites["Basic"] = "Medbot" module_sprites["Standard"] = "surgeon" module_sprites["Advanced Droid"] = "droid-medical" @@ -296,7 +296,7 @@ var/list/robot_verbs_default = list( module = new /obj/item/weapon/robot_module/surgeon(src) module.channels = list("Medical" = 1) if(camera && "Robots" in camera.network) - camera.network.Add("Medical") + camera.add_network("Medical") module_sprites["Basic"] = "Medbot" module_sprites["Standard"] = "surgeon" @@ -318,7 +318,7 @@ var/list/robot_verbs_default = list( module = new /obj/item/weapon/robot_module/engineering(src) module.channels = list("Engineering" = 1) if(camera && "Robots" in camera.network) - camera.network.Add("Engineering") + camera.add_network("Engineering") module_sprites["Basic"] = "Engineering" module_sprites["Antique"] = "engineerrobot" module_sprites["Landmate"] = "landmate" @@ -329,7 +329,7 @@ var/list/robot_verbs_default = list( module = new /obj/item/weapon/robot_module/construction(src) module.channels = list("Engineering" = 1) if(camera && "Robots" in camera.network) - camera.network.Add("Engineering") + camera.add_network("Engineering") module_sprites["Basic"] = "Engineering" module_sprites["Antique"] = "engineerrobot" module_sprites["Landmate"] = "landmate" @@ -1142,7 +1142,7 @@ var/list/robot_verbs_default = list( scrambledcodes = 1 //Disconnect it's camera so it's not so easily tracked. if(src.camera) - src.camera.network = list() + src.camera.clear_all_networks() cameranet.removeCamera(src.camera) diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 89cfe60b65..ab4f7b2269 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -194,7 +194,7 @@ radio = new /obj/item/device/radio/borg(src) camera = new /obj/machinery/camera(src) camera.c_tag = "Spiderbot-[real_name]" - camera.network = list("SS13") + camera.replace_networks(list("SS13")) ..() From 6d1580976876f39bd0cd89884b5fe0d9bc612733 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 25 Feb 2015 21:32:35 -0500 Subject: [PATCH 21/23] Corrects return values for the Topic procs of several computers and some other machines as well. --- .../ATMOSPHERICS/components/binary_devices/passive_gate.dm | 2 +- code/ATMOSPHERICS/components/binary_devices/pump.dm | 2 +- code/ATMOSPHERICS/components/omni_devices/filter.dm | 2 +- code/ATMOSPHERICS/components/omni_devices/mixer.dm | 2 +- code/ATMOSPHERICS/components/trinary_devices/filter.dm | 2 +- code/ATMOSPHERICS/components/trinary_devices/mixer.dm | 2 +- code/ATMOSPHERICS/components/unary/cold_sink.dm | 3 ++- code/ATMOSPHERICS/components/unary/heat_source.dm | 3 ++- code/game/machinery/atmoalter/canister.dm | 1 + code/game/machinery/computer/lockdown.dm | 2 +- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/pod.dm | 2 +- code/modules/assembly/infrared.dm | 2 +- code/modules/assembly/proximity.dm | 2 +- code/modules/assembly/signaler.dm | 2 +- code/modules/assembly/timer.dm | 2 +- code/modules/detectivework/scanning_console.dm | 1 + code/modules/holodeck/HolodeckControl.dm | 2 +- code/modules/mining/machine_processing.dm | 2 +- code/modules/mining/machine_stacking.dm | 2 +- code/modules/mining/mint.dm | 2 +- code/modules/mining/money_bag.dm | 2 +- code/modules/overmap/ships/computers/engine_control.dm | 2 +- code/modules/overmap/ships/computers/helm.dm | 2 +- code/modules/overmap/ships/computers/shuttle.dm | 2 +- code/modules/projectiles/guns/energy/temperature.dm | 2 +- code/modules/projectiles/guns/projectile/dartgun.dm | 1 + code/modules/research/rdconsole.dm | 2 +- code/modules/research/server.dm | 2 +- .../research/xenoarchaeology/genetics/reconstitutor.dm | 7 ++----- code/modules/shuttles/escape_pods.dm | 2 +- code/modules/shuttles/shuttle_console.dm | 2 +- code/modules/shuttles/shuttle_emergency.dm | 2 +- code/modules/shuttles/shuttles_multi.dm | 2 +- code/modules/virus2/centrifuge.dm | 2 +- code/modules/virus2/curer.dm | 3 +-- code/modules/virus2/diseasesplicer.dm | 2 +- code/modules/virus2/dishincubator.dm | 2 +- code/modules/virus2/isolator.dm | 2 +- code/modules/virus2/items_devices.dm | 2 +- 40 files changed, 43 insertions(+), 42 deletions(-) diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 3bd9fdae2b..51035c5d76 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -204,7 +204,7 @@ /obj/machinery/atmospherics/binary/passive_gate/Topic(href,href_list) - if(..()) return + if(..()) return 1 if(href_list["toggle_valve"]) unlocked = !unlocked diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 53a66d70a6..87eaf9250d 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -190,7 +190,7 @@ Thus, the two variables affect pump operation are set in New(): return /obj/machinery/atmospherics/binary/pump/Topic(href,href_list) - if(..()) return + if(..()) return 1 if(href_list["power"]) use_power = !use_power diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm index af9586037f..3478f0f142 100644 --- a/code/ATMOSPHERICS/components/omni_devices/filter.dm +++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm @@ -155,7 +155,7 @@ return null /obj/machinery/atmospherics/omni/filter/Topic(href, href_list) - if(..()) return + if(..()) return 1 switch(href_list["command"]) if("power") if(!configuring) diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm index bb3376fab4..970a33feee 100644 --- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm @@ -172,7 +172,7 @@ return data /obj/machinery/atmospherics/omni/mixer/Topic(href, href_list) - if(..()) return + if(..()) return 1 switch(href_list["command"]) if("power") diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index d582eddd36..7a5fca0fa7 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -199,7 +199,7 @@ /obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) if(href_list["filterset"]) diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index bc5b49157f..c6f5b17613 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -156,7 +156,7 @@ return /obj/machinery/atmospherics/trinary/mixer/Topic(href,href_list) - if(..()) return + if(..()) return 1 if(href_list["power"]) use_power = !use_power if(href_list["set_press"]) diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/ATMOSPHERICS/components/unary/cold_sink.dm index 82d7d41b7b..e5305876ed 100644 --- a/code/ATMOSPHERICS/components/unary/cold_sink.dm +++ b/code/ATMOSPHERICS/components/unary/cold_sink.dm @@ -93,6 +93,8 @@ ui.set_auto_update(1) /obj/machinery/atmospherics/unary/freezer/Topic(href, href_list) + if(..()) + return 1 if(href_list["toggleStatus"]) use_power = !use_power update_icon() @@ -107,7 +109,6 @@ set_power_level(new_setting) add_fingerprint(usr) - return 1 /obj/machinery/atmospherics/unary/freezer/process() ..() diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm index 829f06f420..db046e7974 100644 --- a/code/ATMOSPHERICS/components/unary/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary/heat_source.dm @@ -113,6 +113,8 @@ ui.set_auto_update(1) /obj/machinery/atmospherics/unary/heater/Topic(href, href_list) + if(..()) + return 1 if(href_list["toggleStatus"]) use_power = !use_power update_icon() @@ -127,7 +129,6 @@ set_power_level(new_setting) add_fingerprint(usr) - return 1 //upgrading parts /obj/machinery/atmospherics/unary/heater/RefreshParts() diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 12ad5d1c3b..6026166b6b 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -302,6 +302,7 @@ update_flag /obj/machinery/portable_atmospherics/canister/Topic(href, href_list) //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. // yeah but without SOME sort of Topic check any dick can mess with them via exploits as he pleases -walter0o + //First comment might be outdated. if (!istype(src.loc, /turf)) return 0 diff --git a/code/game/machinery/computer/lockdown.dm b/code/game/machinery/computer/lockdown.dm index bb1fff338d..c1eb5d8e06 100644 --- a/code/game/machinery/computer/lockdown.dm +++ b/code/game/machinery/computer/lockdown.dm @@ -110,7 +110,7 @@ onclose(user, "lockdown") Topic(href, href_list) - ..() + if(..()) return 1 if( href_list["close"] ) usr << browse(null, "window=lockdown") diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index b67834eb60..562b92a2df 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -148,7 +148,7 @@ /obj/machinery/computer/med_data/Topic(href, href_list) if(..()) - return + return 1 if (!( data_core.general.Find(src.active1) )) src.active1 = null diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index bdac56c85d..0c7830a78a 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -158,7 +158,7 @@ /obj/machinery/computer/pod/Topic(href, href_list) if(..()) - return + return 1 if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) if(href_list["power"]) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 89699b3427..79e3cf8637 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -120,7 +120,7 @@ Topic(href, href_list) - ..() + if(..()) return 1 if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=infra") onclose(usr, "infra") diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index cd0a377b43..06923f8458 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -129,7 +129,7 @@ Topic(href, href_list) - ..() + if(..()) return 1 if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=prox") onclose(usr, "prox") diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 9d79d67876..0b2acd5a5b 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -70,7 +70,7 @@ Topic(href, href_list) - ..() + if(..()) return 1 if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=radio") diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 5a0fb6e4d4..326d36195f 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -83,7 +83,7 @@ Topic(href, href_list) - ..() + if(..()) return 1 if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=timer") onclose(usr, "timer") diff --git a/code/modules/detectivework/scanning_console.dm b/code/modules/detectivework/scanning_console.dm index 5ff719548c..d9f3ac4df9 100644 --- a/code/modules/detectivework/scanning_console.dm +++ b/code/modules/detectivework/scanning_console.dm @@ -213,6 +213,7 @@ onclose(user,"fscanner") /obj/machinery/computer/forensic_scanning/Topic(href,href_list) + if(..()) return 1 switch(href_list["operation"]) if("login") var/mob/M = usr diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index 9431c4685f..fdc882eee6 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -106,7 +106,7 @@ var/global/list/holodeck_programs = list( /obj/machinery/computer/HolodeckControl/Topic(href, href_list) if(..()) - return + return 1 if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 2a029b42ee..ee043b1441 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -67,7 +67,7 @@ /obj/machinery/mineral/processing_unit_console/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index b974a57aaf..9dc23503ec 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -43,7 +43,7 @@ /obj/machinery/mineral/stacking_unit_console/Topic(href, href_list) if(..()) - return + return 1 if(href_list["change_stack"]) var/choice = input("What would you like to set the stack amount to?") as null|anything in list(1,5,10,20,50) diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index 59857424e6..bcf46bb292 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -116,7 +116,7 @@ /obj/machinery/mineral/mint/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) if(processing==1) diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index d49ccc222f..7409859af2 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -62,7 +62,7 @@ /obj/item/weapon/moneybag/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) if(href_list["remove"]) diff --git a/code/modules/overmap/ships/computers/engine_control.dm b/code/modules/overmap/ships/computers/engine_control.dm index 87873775b0..933969a91b 100644 --- a/code/modules/overmap/ships/computers/engine_control.dm +++ b/code/modules/overmap/ships/computers/engine_control.dm @@ -59,7 +59,7 @@ /obj/machinery/computer/engines/Topic(href, href_list) if(..()) - return + return 1 if(href_list["state"]) state = href_list["state"] diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm index d78934f574..a0611c6866 100644 --- a/code/modules/overmap/ships/computers/helm.dm +++ b/code/modules/overmap/ships/computers/helm.dm @@ -110,7 +110,7 @@ /obj/machinery/computer/helm/Topic(href, href_list) if(..()) - return + return 1 if (!linked) return diff --git a/code/modules/overmap/ships/computers/shuttle.dm b/code/modules/overmap/ships/computers/shuttle.dm index dbfa94043e..5199b3e3eb 100644 --- a/code/modules/overmap/ships/computers/shuttle.dm +++ b/code/modules/overmap/ships/computers/shuttle.dm @@ -113,7 +113,7 @@ /obj/machinery/computer/shuttle_control/explore/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm index ad4db3d5ca..cd69b9413a 100644 --- a/code/modules/projectiles/guns/energy/temperature.dm +++ b/code/modules/projectiles/guns/energy/temperature.dm @@ -42,7 +42,7 @@ /obj/item/weapon/gun/energy/temperature/Topic(href, href_list) if (..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index 4d90a0fef3..afb1f33874 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -165,6 +165,7 @@ return 0 /obj/item/weapon/gun/projectile/dartgun/Topic(href, href_list) + if(..()) return 1 src.add_fingerprint(usr) if(href_list["stop_mix"]) var/index = text2num(href_list["stop_mix"]) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 16c14863aa..da76756fd6 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -162,7 +162,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole/Topic(href, href_list) if(..()) - return + return 1 add_fingerprint(usr) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 5688f6b6d7..6a5311e62b 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -205,7 +205,7 @@ /obj/machinery/computer/rdservercontrol/Topic(href, href_list) if(..()) - return + return 1 add_fingerprint(usr) usr.set_machine(src) diff --git a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm index 26419c6ab2..38d6a52465 100644 --- a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm +++ b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm @@ -181,6 +181,7 @@ datum/genesequence onclose(user, "reconstitutor") /obj/machinery/computer/reconstitutor/animal/Topic(href, href_list) + if(..()) return 1 if(href_list["clone"]) var/sequence_num = text2num(href_list["sequence_num"]) var/datum/genesequence/cloned_genesequence = completed_genesequences[sequence_num] @@ -201,10 +202,9 @@ datum/genesequence pod1.biomass -= CLONE_BIOMASS else usr << "\red \icon[src] Unable to locate cloning pod!" - else - ..() /obj/machinery/computer/reconstitutor/Topic(href, href_list) + if(..()) return 1 if(href_list["insertpos"]) //world << "inserting gene for genesequence [href_list["insertgenome"]] at pos [text2num(href_list["insertpos"])]" var/sequence_num = text2num(href_list["sequence_num"]) @@ -252,9 +252,6 @@ datum/genesequence usr.unset_machine(src) usr << browse(null, "window=reconstitutor") - else - ..() - /obj/machinery/computer/reconstitutor/proc/scan_fossil(var/obj/item/weapon/fossil/scan_fossil) //see whether we accept these kind of fossils if(accepted_fossil_types.len && !accepted_fossil_types.Find(scan_fossil.type)) diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm index 719c29fd9a..289cf4d7b0 100644 --- a/code/modules/shuttles/escape_pods.dm +++ b/code/modules/shuttles/escape_pods.dm @@ -43,7 +43,7 @@ ui.set_auto_update(1) /obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/Topic(href, href_list) - if(..()) //I hate this "return 1 to indicate they are not allowed to use the controller" crap, but not sure how else to do it without being able to call machinery/Topic() directly. + if(..()) return 1 if("manual_arm") diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 6a5c493462..5cb28c40e6 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -67,7 +67,7 @@ /obj/machinery/computer/shuttle_control/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index 814401cb5a..5215400a4e 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -221,7 +221,7 @@ /obj/machinery/computer/shuttle_control/emergency/Topic(href, href_list) if(..()) - return + return 1 if(href_list["removeid"]) var/dna_hash = href_list["removeid"] diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm index 9c2528adaa..88a1e0fffa 100644 --- a/code/modules/shuttles/shuttles_multi.dm +++ b/code/modules/shuttles/shuttles_multi.dm @@ -78,7 +78,7 @@ /obj/machinery/computer/shuttle_control/multi/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm index a4c9187667..f6cf9fe390 100644 --- a/code/modules/virus2/centrifuge.dm +++ b/code/modules/virus2/centrifuge.dm @@ -92,7 +92,7 @@ isolate() /obj/machinery/computer/centrifuge/Topic(href, href_list) - if (..()) return 0 + if (..()) return 1 var/mob/user = usr var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index 367e336c43..ccbbbed9a2 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -80,7 +80,7 @@ /obj/machinery/computer/curer/Topic(href, href_list) if(..()) - return + return 1 usr.machine = src if (href_list["antibody"]) @@ -91,7 +91,6 @@ src.add_fingerprint(usr) src.updateUsrDialog() - return /obj/machinery/computer/curer/proc/createcure(var/obj/item/weapon/reagent_containers/container) diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm index 81e4ed5e93..4ff37034b7 100644 --- a/code/modules/virus2/diseasesplicer.dm +++ b/code/modules/virus2/diseasesplicer.dm @@ -122,7 +122,7 @@ nanomanager.update_uis(src) /obj/machinery/computer/diseasesplicer/Topic(href, href_list) - if(..()) return 0 + if(..()) return 1 var/mob/user = usr var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") diff --git a/code/modules/virus2/dishincubator.dm b/code/modules/virus2/dishincubator.dm index b259c1eac7..6882e8e622 100644 --- a/code/modules/virus2/dishincubator.dm +++ b/code/modules/virus2/dishincubator.dm @@ -139,7 +139,7 @@ nanomanager.update_uis(src) /obj/machinery/disease2/incubator/Topic(href, href_list) - if (..()) return 0 + if (..()) return 1 var/mob/user = usr var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") diff --git a/code/modules/virus2/isolator.dm b/code/modules/virus2/isolator.dm index 460181bc36..6a27d2f17d 100644 --- a/code/modules/virus2/isolator.dm +++ b/code/modules/virus2/isolator.dm @@ -120,7 +120,7 @@ update_icon() /obj/machinery/disease2/isolator/Topic(href, href_list) - if (..()) return 0 + if (..()) return 1 var/mob/user = usr var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm index 784c1c4249..741fdb099d 100644 --- a/code/modules/virus2/items_devices.dm +++ b/code/modules/virus2/items_devices.dm @@ -73,7 +73,7 @@ /obj/item/weapon/virusdish/Topic(href, href_list) . = ..() - if(.) return + if(.) return 1 if(href_list["info"]) usr << browse(info, "window=info_\ref[src]") From f4f54dfed16257675d073cf44f846b4efdfa8bea Mon Sep 17 00:00:00 2001 From: MrSnapwalk Date: Wed, 25 Feb 2015 21:52:36 -0600 Subject: [PATCH 22/23] Fixes action figures not randomizing properly. --- code/game/machinery/computer/arcade.dm | 2 +- code/game/objects/random/random.dm | 44 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 056c45e4f8..12beaf47ca 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -33,7 +33,7 @@ /obj/item/toy/prize/odysseus = 1, /obj/item/toy/prize/phazon = 1, /obj/item/toy/waterflower = 1, - /obj/item/toy/figure = 1, + /obj/random/action_figure = 1, /obj/random/plushie = 1, /obj/item/toy/cultsword = 1 ) diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 773881ab58..c4d0c75313 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -210,6 +210,50 @@ prob(3);/obj/item/ammo_magazine/mc9mmt/rubber) +/obj/random/action_figure + name = "random action figure" + desc = "This is a random action figure." + icon = 'icons/obj/toy.dmi' + icon_state = "assistant" + item_to_spawn() + return pick(/obj/item/toy/figure/cmo,\ + /obj/item/toy/figure/assistant,\ + /obj/item/toy/figure/atmos,\ + /obj/item/toy/figure/bartender,\ + /obj/item/toy/figure/borg,\ + /obj/item/toy/figure/gardener,\ + /obj/item/toy/figure/captain,\ + /obj/item/toy/figure/cargotech,\ + /obj/item/toy/figure/ce,\ + /obj/item/toy/figure/chaplain,\ + /obj/item/toy/figure/chef,\ + /obj/item/toy/figure/chemist,\ + /obj/item/toy/figure/clown,\ + /obj/item/toy/figure/corgi,\ + /obj/item/toy/figure/detective,\ + /obj/item/toy/figure/dsquad,\ + /obj/item/toy/figure/engineer,\ + /obj/item/toy/figure/geneticist,\ + /obj/item/toy/figure/hop,\ + /obj/item/toy/figure/hos,\ + /obj/item/toy/figure/qm,\ + /obj/item/toy/figure/janitor,\ + /obj/item/toy/figure/agent,\ + /obj/item/toy/figure/librarian,\ + /obj/item/toy/figure/md,\ + /obj/item/toy/figure/mime,\ + /obj/item/toy/figure/miner,\ + /obj/item/toy/figure/ninja,\ + /obj/item/toy/figure/wizard,\ + /obj/item/toy/figure/rd,\ + /obj/item/toy/figure/roboticist,\ + /obj/item/toy/figure/scientist,\ + /obj/item/toy/figure/syndie,\ + /obj/item/toy/figure/secofficer,\ + /obj/item/toy/figure/warden,\ + /obj/item/toy/figure/psychologist,\ + /obj/item/toy/figure/paramedic,\ + /obj/item/toy/figure/ert) /obj/random/plushie From ec59f8ab0766fec9bba27830ff2f6ff2c8a31435 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 25 Feb 2015 23:35:20 -0500 Subject: [PATCH 23/23] Fixes captain's laser gun Also updates retro laser gun path, as it isn't really conceptually related to the carbine anymore, and should avoid inheriting things like fire rate. --- code/game/gamemodes/newobjective.dm | 2 +- code/game/gamemodes/objective.dm | 2 +- code/game/machinery/portable_turret.dm | 6 +++--- code/game/objects/structures/displaycase.dm | 8 ++++---- code/modules/flufftext/Hallucination.dm | 2 +- code/modules/projectiles/guns/energy/laser.dm | 12 ++++++++++-- code/modules/research/xenoarchaeology/finds/finds.dm | 2 +- .../research/xenoarchaeology/finds/finds_eguns.dm | 4 ++-- maps/exodus-3.dmm | 2 +- 9 files changed, 24 insertions(+), 16 deletions(-) diff --git a/code/game/gamemodes/newobjective.dm b/code/game/gamemodes/newobjective.dm index 949e6bfc77..9dc8623822 100644 --- a/code/game/gamemodes/newobjective.dm +++ b/code/game/gamemodes/newobjective.dm @@ -563,7 +563,7 @@ datum captainslaser - steal_target = /obj/item/weapon/gun/energy/laser/captain + steal_target = /obj/item/weapon/gun/energy/captain explanation_text = "Steal the captain's antique laser gun." weight = 20 diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 534383867e..83fc1a9a85 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -480,7 +480,7 @@ datum/objective/steal var/target_name var/global/possible_items[] = list( - "the captain's antique laser gun" = /obj/item/weapon/gun/energy/laser/captain, + "the captain's antique laser gun" = /obj/item/weapon/gun/energy/captain, "a hand teleporter" = /obj/item/weapon/hand_tele, "an RCD" = /obj/item/weapon/rcd, "a jetpack" = /obj/item/weapon/tank/jetpack, diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 60447703f5..8c04da619b 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -94,13 +94,13 @@ // iconholder = 1 // eprojectile = /obj/item/projectile/beam - if(/obj/item/weapon/gun/energy/laser/retro) + if(/obj/item/weapon/gun/energy/retro) iconholder = 1 -// if(/obj/item/weapon/gun/energy/laser/retro/sc_retro) +// if(/obj/item/weapon/gun/energy/retro/sc_retro) // iconholder = 1 - if(/obj/item/weapon/gun/energy/laser/captain) + if(/obj/item/weapon/gun/energy/captain) iconholder = 1 if(/obj/item/weapon/gun/energy/lasercannon) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 0ab10debe9..4eb2236ec0 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -15,7 +15,7 @@ if (1) new /obj/item/weapon/shard( src.loc ) if (occupied) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) + new /obj/item/weapon/gun/energy/captain( src.loc ) occupied = 0 del(src) if (2) @@ -39,14 +39,14 @@ if (prob(75)) new /obj/item/weapon/shard( src.loc ) if (occupied) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) + new /obj/item/weapon/gun/energy/captain( src.loc ) occupied = 0 del(src) /obj/structure/displaycase/meteorhit(obj/O as obj) new /obj/item/weapon/shard( src.loc ) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) + new /obj/item/weapon/gun/energy/captain( src.loc ) del(src) @@ -78,7 +78,7 @@ /obj/structure/displaycase/attack_hand(mob/user as mob) if (src.destroyed && src.occupied) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) + new /obj/item/weapon/gun/energy/captain( src.loc ) user << "\b You deactivate the hover field built into the case." src.occupied = 0 src.add_fingerprint(user) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index fe6c3ea031..e35b100269 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -342,7 +342,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/aiModule,\ /obj/item/device/radio/headset/syndicate, /obj/item/weapon/plastique,\ /obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\ - /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ + /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/captain,\ /obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\ /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ /obj/item/clothing/shoes/magboots, /obj/item/blueprints, /obj/item/weapon/disk/nuclear,\ diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 28f95d8211..eb6e73ec2e 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -21,22 +21,29 @@ desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." projectile_type = /obj/item/projectile/beam/practice -obj/item/weapon/gun/energy/laser/retro +obj/item/weapon/gun/energy/retro name = "retro laser" icon_state = "retro" desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." + fire_sound = 'sound/weapons/Laser.ogg' + slot_flags = SLOT_BELT + w_class = 3 + projectile_type = /obj/item/projectile/beam + fire_delay = 10 /obj/item/weapon/gun/energy/captain name = "antique laser gun" icon_state = "caplaser" desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding." force = 5 + fire_sound = 'sound/weapons/Laser.ogg' slot_flags = SLOT_BELT + w_class = 3 + projectile_type = /obj/item/projectile/beam origin_tech = null charge_cost = 200 //to compensate a bit for self-recharging self_recharge = 1 - /obj/item/weapon/gun/energy/lasercannon name = "laser cannon" desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" @@ -62,6 +69,7 @@ obj/item/weapon/gun/energy/laser/retro origin_tech = "combat=5;materials=3;magnets=2;syndicate=2" projectile_type = /obj/item/projectile/beam/xray charge_cost = 50 + fire_delay = 1 /obj/item/weapon/gun/energy/sniperrifle name = "\improper L.W.A.P. sniper rifle" diff --git a/code/modules/research/xenoarchaeology/finds/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm index b758192bee..518b2ddc40 100644 --- a/code/modules/research/xenoarchaeology/finds/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -345,7 +345,7 @@ /obj/item/weapon/gun/energy/laser/practice/xenoarch,\ /obj/item/weapon/gun/energy/laser/xenoarch,\ /obj/item/weapon/gun/energy/xray/xenoarch,\ - /obj/item/weapon/gun/energy/laser/captain/xenoarch) + /obj/item/weapon/gun/energy/captain/xenoarch) if(spawn_type) var/obj/item/weapon/gun/energy/new_gun = new spawn_type(src.loc) new_item = new_gun diff --git a/code/modules/research/xenoarchaeology/finds/finds_eguns.dm b/code/modules/research/xenoarchaeology/finds/finds_eguns.dm index 95755e4d9c..dc07d9a88d 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_eguns.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_eguns.dm @@ -19,7 +19,7 @@ update_icon() return -/obj/item/weapon/gun/energy/laser/captain/xenoarch +/obj/item/weapon/gun/energy/captain/xenoarch icon = 'icons/obj/xenoarchaeology.dmi' update_icon() - return \ No newline at end of file + return diff --git a/maps/exodus-3.dmm b/maps/exodus-3.dmm index 5dd253a86c..b1005c80a1 100644 --- a/maps/exodus-3.dmm +++ b/maps/exodus-3.dmm @@ -45,7 +45,7 @@ "aS" = (/obj/machinery/door/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aU" = (/obj/structure/lattice,/turf/space,/area/space) -"aV" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) +"aV" = (/obj/structure/table,/obj/item/weapon/gun/energy/retro,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/derelict/ship) "aX" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aY" = (/obj/structure/table,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)