From cd4eaecf21c1e2725868b068871f77f5e1fb3e9a Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 19 Aug 2013 13:05:00 +0300 Subject: [PATCH 001/226] Fix for #3549. --- code/game/turfs/simulated/floor.dm | 2 +- code/game/turfs/space/space.dm | 2 +- code/game/turfs/unsimulated/floor.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 236d41d319d..2b85253dd06 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -188,7 +188,7 @@ turf/simulated/floor/proc/update_icon() update_icon() if ((!( user.canmove ) || user.restrained() || !( user.pulling ))) return - if (user.pulling.anchored) + if (user.pulling.anchored || !isturf(user.pulling.loc)) return if ((user.pulling.loc != user.loc && get_dist(user, user.pulling) > 1)) return diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index e5ced14d63b..95720295c87 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -17,7 +17,7 @@ /turf/space/attack_hand(mob/user as mob) if ((user.restrained() || !( user.pulling ))) return - if (user.pulling.anchored) + if (user.pulling.anchored || !isturf(user.pulling.loc)) return if ((user.pulling.loc != user.loc && get_dist(user, user.pulling) > 1)) return diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm index f18ceeb8210..1d391eee1c1 100644 --- a/code/game/turfs/unsimulated/floor.dm +++ b/code/game/turfs/unsimulated/floor.dm @@ -9,7 +9,7 @@ /turf/unsimulated/floor/attack_hand(var/mob/user as mob) if ((!( user.canmove ) || user.restrained() || !( user.pulling ))) return - if (user.pulling.anchored) + if (user.pulling.anchored || !isturf(user.pulling.loc)) return if ((user.pulling.loc != user.loc && get_dist(user, user.pulling) > 1)) return From 18b26c57b737e05c53eb5222162db49cf269583a Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 19 Aug 2013 13:05:52 +0300 Subject: [PATCH 002/226] Inertia fix. --- code/game/turfs/turf.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 6b21b320595..dc15cc4c9d8 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -181,7 +181,7 @@ M.inertia_dir = 0 return spawn(5) - if((M && !(M.anchored) && (M.loc == src))) + if((M && !(M.anchored) && !(M.pulledby) && (M.loc == src))) if(M.inertia_dir) step(M, M.inertia_dir) return From 71e52b57feaec9e50aa89dd3068ec434f22c1531 Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 19 Aug 2013 23:25:03 +0300 Subject: [PATCH 003/226] Fix for #3552. --- code/game/jobs/access.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 82fe991ce0b..22037996ce3 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -412,10 +412,14 @@ return "Code Gold" /proc/get_all_jobs() - return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician", - "Shaft Miner", /*"Clown", "Mime", */"Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", - "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", - "Research Director", "Scientist", "Xenobiologist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") + var/list/all_jobs = list() + var/list/all_datums = typesof(/datum/job) + all_datums.Remove(list(/datum/job,/datum/job/ai,/datum/job/cyborg)) + var/datum/job/jobdatum + for(var/jobtype in all_datums) + jobdatum = new jobtype + all_jobs.Add(jobdatum.title) + return all_jobs /proc/get_all_centcom_jobs() return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander") From b2a3405f80a3a4417eae39b1ccb8ddd47f1403e5 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Mon, 19 Aug 2013 23:49:53 +0100 Subject: [PATCH 004/226] Two fixes for dismemberment. Species dismemberment now creates the correctly textured gibs. Decapitation now kills you. Signed-off-by: Mloc-Argent --- code/modules/organs/organ_external.dm | 61 +++++++++++++++++++-------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 9390d96218b..7fe936dbab6 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -742,21 +742,40 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H) //Forming icon for the limb //Setting base icon for this mob's race - if(ishuman(H) && H.dna) - var/icon/base = new H.species.icobase - if(base) - icon = base.MakeLying() + var/icon/base + if(H.species && H.species.icobase) + base = icon(H.species.icobase) else - icon_state = initial(icon_state)+"_l" + base = icon('icons/mob/human_races/r_human.dmi') - var/icon/I = new /icon(icon, icon_state) + if(base) + base = base.MakeLying() - //Changing limb's skin tone to match owner - if (H.s_tone >= 0) - I.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD) - else - I.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT) - icon = I + //Changing limb's skin tone to match owner + if(!H.species || H.species.flags & HAS_SKIN_TONE) + if (H.s_tone >= 0) + base.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD) + else + base.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT) + + //this is put here since I can't easially edit the same icon from head's constructor + if(istype(src, /obj/item/weapon/organ/head)) + //Add (facial) hair. + if(H.f_style) + var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style] + if(facial_hair_style) + var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") + facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) + base.Blend(facial, ICON_OVERLAY) + + if(H.h_style && !(H.head && (H.head.flags & BLOCKHEADHAIR))) + var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style] + if(hair_style) + var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") + hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) + base.Blend(hair, ICON_OVERLAY) + + icon = base /**************************************************** @@ -794,21 +813,27 @@ obj/item/weapon/organ/head var/brain_op_stage = 0 obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H) + if(istype(H)) + src.icon_state = H.gender == MALE? "head_m" : "head_f" ..() spawn(5) if(brainmob && brainmob.client) brainmob.client.screen.len = null //clear the hud - if(ishuman(H)) - if(H.gender == FEMALE) - H.icon_state = "head_f" - H.overlays += H.generate_head_icon() + + //if(ishuman(H)) + // if(H.gender == FEMALE) + // H.icon_state = "head_f" + // H.overlays += H.generate_head_icon() transfer_identity(H) - pixel_x = -10 - pixel_y = 6 + name = "[H.real_name]'s head" H.regenerate_icons() + if(H.organs_by_name["chest"]) + var/datum/organ/external/chest/humanchest = H.organs_by_name["chest"] + humanchest.brute_dam = H.maxHealth * 2 + H.death() obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head From de79aa733bc6ccf123611fb8c74b30725a4f8319 Mon Sep 17 00:00:00 2001 From: Mloc Date: Tue, 20 Aug 2013 02:06:56 +0100 Subject: [PATCH 005/226] More dismemberment fixes More elegant solution to gasping torsos. Applying damage to torso will no longer gib everything connected to it. Signed-off-by: Mloc --- code/modules/organs/organ_external.dm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 7fe936dbab6..02d0e47512a 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -81,10 +81,11 @@ burn *= 0.66 //~2/3 damage for ROBOLIMBS //If limb took enough damage, try to cut or tear it off - if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier) - if( (sharp && prob(5 * brute)) || (brute > 20 && prob(2 * brute)) ) - droplimb(1) - return + if(body_part != UPPER_TORSO && body_part != LOWER_TORSO) //as hilarious as it is, getting hit on the chest too much shouldn't effectively gib you. + if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier) + if( (sharp && prob(5 * brute)) || (brute > 20 && prob(2 * brute)) ) + droplimb(1) + return // High brute damage or sharp objects may damage internal organs if(internal_organs != null) if( (sharp && brute >= 5) || brute >= 10) if(prob(5)) @@ -830,10 +831,7 @@ obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H) H.regenerate_icons() - if(H.organs_by_name["chest"]) - var/datum/organ/external/chest/humanchest = H.organs_by_name["chest"] - humanchest.brute_dam = H.maxHealth * 2 - + H.stat = 2 H.death() obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head From de6eb16e1aeca7cb62c86394a34ab2b439ac620c Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 20 Aug 2013 10:37:05 +0100 Subject: [PATCH 006/226] Fixes being able to have alien species hair on humans or other species. --- code/__HELPERS/mobs.dm | 43 +++++++++++++++---- code/modules/client/preferences.dm | 4 +- .../mob/new_player/preferences_setup.dm | 4 +- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 9156b5b416a..324cfad6323 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,14 +1,41 @@ proc/random_hair_style(gender, species = "Human") - switch(gender) - if(MALE) return pick(hair_styles_male_list) - if(FEMALE) return pick(hair_styles_female_list) - else return pick(hair_styles_list) + var/h_style = "Bald" + + var/list/valid_hairstyles = list() + for(var/hairstyle in hair_styles_list) + var/datum/sprite_accessory/S = hair_styles_list[hairstyle] + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) + continue + if( !(species in S.species_allowed)) + continue + valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] + + if(valid_hairstyles.len) + h_style = pick(valid_hairstyles) + + return h_style proc/random_facial_hair_style(gender, species = "Human") - switch(gender) - if(MALE) return pick(facial_hair_styles_male_list) - if(FEMALE) return pick(facial_hair_styles_female_list) - else return pick(facial_hair_styles_list) + var/f_style = "Shaved" + + var/list/valid_facialhairstyles = list() + for(var/facialhairstyle in facial_hair_styles_list) + var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) + continue + if( !(species in S.species_allowed)) + continue + + valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] + + if(valid_facialhairstyles.len) + f_style = pick(valid_facialhairstyles) + + return f_style proc/random_name(gender, species = "Human") if(gender==FEMALE) return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 597ad94ebfd..cdf4e8e20ff 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -764,13 +764,13 @@ datum/preferences g_hair = rand(0,255) b_hair = rand(0,255) if("h_style") - h_style = random_hair_style(gender) + h_style = random_hair_style(gender, species) if("facial") r_facial = rand(0,255) g_facial = rand(0,255) b_facial = rand(0,255) if("f_style") - f_style = random_facial_hair_style(gender) + f_style = random_facial_hair_style(gender, species) if("underwear") underwear = rand(1,underwear_m.len) ShowChoices(user) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 48c6127a4be..86ed744fcca 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -7,8 +7,8 @@ datum/preferences else gender = FEMALE s_tone = random_skin_tone() - h_style = random_hair_style(gender) - f_style = random_facial_hair_style(gender) + h_style = random_hair_style(gender, species) + f_style = random_facial_hair_style(gender, species) randomize_hair_color("hair") randomize_hair_color("facial") randomize_eyes_color() From ec3000ecfb2609cbcc5116169aa640e1d89815b5 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 20 Aug 2013 10:37:57 +0100 Subject: [PATCH 007/226] Experimentally readding Delete Book verb. --- code/modules/admin/admin_verbs.dm | 6 ++++-- code/modules/library/lib_machines.dm | 28 ++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 7f821923415..717924eb814 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -69,7 +69,8 @@ var/list/admin_verbs_admin = list( /client/proc/check_customitem_activity, /client/proc/man_up, /client/proc/global_man_up, - /client/proc/response_team // Response Teams admin verb + /client/proc/response_team, // Response Teams admin verb + /client/proc/delbook ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, @@ -121,7 +122,8 @@ var/list/admin_verbs_server = list( /datum/admins/proc/toggle_aliens, /datum/admins/proc/toggle_space_ninja, /client/proc/toggle_random_events, - /client/proc/check_customitem_activity + /client/proc/check_customitem_activity, + /client/proc/delbook ) var/list/admin_verbs_debug = list( /client/proc/cmd_admin_list_open_jobs, diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index a47d80309d0..08b0c4f3bdc 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -195,7 +195,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f else dat += "(Order book by SS13BN)

" dat += "" - dat += "" + dat += "" var/DBQuery/query = dbcon_old.NewQuery("SELECT id, author, title, category FROM library") query.Execute() @@ -205,7 +205,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/author = query.item[2] var/title = query.item[3] var/category = query.item[4] - dat += "" + dat += "" dat += "
AUTHORTITLECATEGORY
AUTHORTITLECATEGORYID
[author][title][category]\[Order\]
[author][title][category][id]\[Order\]
" dat += "
(Return to main menu)
" if(5) @@ -463,3 +463,27 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f del(O) else ..() + +/client/proc/delbook() + set name = "Delete Book" + set desc = "Permamently deletes a book from the database." + set category = "Admin" + if(!src.holder) + src << "Only administrators may use this command." + return + + var/isbn = input("ISBN number?", "Delete Book") as num | null + if(!isbn) + return + + if(dbcon_old.IsConnected()) + var/DBConnection/dbcon = new() + dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]") + if(!dbcon.IsConnected()) + alert("Connection to Archive has been severed. Aborting.") + else + var/DBQuery/query = dbcon.NewQuery("DELETE FROM library WHERE id=[isbn]") + if(!query.Execute()) + usr << query.ErrorMsg() + dbcon.Disconnect() + log_admin("[usr.key] has deleted the book [isbn]") \ No newline at end of file From 16d9b765995e77713a572d74edc66853cdde9ea3 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 20 Aug 2013 10:38:57 +0100 Subject: [PATCH 008/226] Allow all mobs to emote. Standardising emote proc. --- .../mob/living/carbon/alien/humanoid/emote.dm | 21 +++++++++++++++--- .../mob/living/carbon/alien/larva/emote.dm | 21 +++++++++++++++--- code/modules/mob/living/carbon/brain/emote.dm | 17 ++++++++++++++ code/modules/mob/living/carbon/human/emote.dm | 4 ++-- .../mob/living/carbon/metroid/emote.dm | 22 ++++++++++++++----- .../modules/mob/living/carbon/monkey/emote.dm | 21 +++++++++++++----- 6 files changed, 87 insertions(+), 19 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/emote.dm b/code/modules/mob/living/carbon/alien/humanoid/emote.dm index 087422810c3..71dc56ef402 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/emote.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/alien/humanoid/emote(var/act) +/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null) var/param = null if (findtext(act, "-", 1, null)) @@ -9,10 +9,25 @@ if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_' act = copytext(act,1,length(act)) var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle) - var/m_type = 1 - var/message switch(act) + if ("me") + if(silent) + return + if (src.client) + if (client.prefs.muted & MUTE_IC) + src << "\red You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + if (stat) + return + if(!(message)) + return + return custom_emote(m_type, message) + + if ("custom") + return custom_emote(m_type, message) if("sign") if (!src.restrained()) message = text("The alien signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null)) diff --git a/code/modules/mob/living/carbon/alien/larva/emote.dm b/code/modules/mob/living/carbon/alien/larva/emote.dm index 2be246fe8fb..375c5c6b0c9 100644 --- a/code/modules/mob/living/carbon/alien/larva/emote.dm +++ b/code/modules/mob/living/carbon/alien/larva/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/alien/larva/emote(var/act) +/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null) var/param = null if (findtext(act, "-", 1, null)) @@ -9,10 +9,25 @@ if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_' act = copytext(act,1,length(act)) var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle) - var/m_type = 1 - var/message switch(act) + if ("me") + if(silent) + return + if (src.client) + if (client.prefs.muted & MUTE_IC) + src << "\red You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + if (stat) + return + if(!(message)) + return + return custom_emote(m_type, message) + + if ("custom") + return custom_emote(m_type, message) if("sign") if (!src.restrained()) message = text("The alien signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null)) diff --git a/code/modules/mob/living/carbon/brain/emote.dm b/code/modules/mob/living/carbon/brain/emote.dm index 8f83bd390ab..1995ff5e1cc 100644 --- a/code/modules/mob/living/carbon/brain/emote.dm +++ b/code/modules/mob/living/carbon/brain/emote.dm @@ -12,6 +12,23 @@ if(src.stat == DEAD) return switch(act) + if ("me") + if(silent) + return + if (src.client) + if (client.prefs.muted & MUTE_IC) + src << "\red You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + if (stat) + return + if(!(message)) + return + return custom_emote(m_type, message) + + if ("custom") + return custom_emote(m_type, message) if ("alarm") src << "You sound an alarm." message = "[src] sounds an alarm." diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 4029fc46444..591e4426e09 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -63,7 +63,7 @@ else alert("Unable to use this emote, must be either hearable or visible.") return - message = "[src] [input]" + return custom_emote(m_type, message) if ("me") if(silent) @@ -78,7 +78,7 @@ return if(!(message)) return - message = "[src] [message]" + return custom_emote(m_type, message) if ("salute") if (!src.buckled) diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm index 0e6688e69ea..2f6f0005396 100644 --- a/code/modules/mob/living/carbon/metroid/emote.dm +++ b/code/modules/mob/living/carbon/metroid/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/slime/emote(var/act, var/type, var/desc) +/mob/living/carbon/slime/emote(var/act,var/m_type=1,var/message = null) if (findtext(act, "-", 1, null)) @@ -9,14 +9,24 @@ if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_' act = copytext(act,1,length(act)) - var/m_type = 1 - var/message - switch(act) if ("me") - return custom_emote(m_type, desc) + if(silent) + return + if (src.client) + if (client.prefs.muted & MUTE_IC) + src << "\red You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + if (stat) + return + if(!(message)) + return + return custom_emote(m_type, message) + if ("custom") - return custom_emote(m_type, desc) + return custom_emote(m_type, message) if("moan") message = "The [src.name] moans." m_type = 2 diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm index 8e6c281c781..615fb631d0e 100644 --- a/code/modules/mob/living/carbon/monkey/emote.dm +++ b/code/modules/mob/living/carbon/monkey/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/monkey/emote(var/act, var/type, var/desc) +/mob/living/carbon/monkey/emote(var/act,var/m_type=1,var/message = null) var/param = null if (findtext(act, "-", 1, null)) @@ -10,15 +10,26 @@ act = copytext(act,1,length(act)) var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle) - var/m_type = 1 - var/message switch(act) if ("me") - return custom_emote(m_type, desc) + if(silent) + return + if (src.client) + if (client.prefs.muted & MUTE_IC) + src << "\red You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + if (stat) + return + if(!(message)) + return + return custom_emote(m_type, message) + if ("custom") - return custom_emote(m_type, desc) + return custom_emote(m_type, message) if("sign") if (!src.restrained()) From b6900d50fc4a7762b645138cf5ea4cc62c17306f Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 20 Aug 2013 14:20:33 +0100 Subject: [PATCH 009/226] Fixes admins not spawning as aliens on roundstart. --- code/modules/admin/holder2.dm | 2 +- code/modules/mob/new_player/new_player.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 2f0a38f985b..34b4cacde93 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -48,7 +48,7 @@ proc/admin_proc() world << "you have enough rights!" NOTE: it checks usr! not src! So if you're checking somebody's rank in a proc which they did not call -you will have to do something like if(client.rights & R_ADMIN) yourself. +you will have to do something like if(client.holder.rights & R_ADMIN) yourself. */ /proc/check_rights(rights_required, show_msg=1) if(usr && usr.client) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 9fa5357d103..c1e808a6bdc 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -347,7 +347,7 @@ if(client.prefs.species) chosen_species = all_species[client.prefs.species] if(chosen_species) - if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED)) + if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED) || (client.holder.rights & R_ADMIN) )// Have to recheck admin due to no usr at roundstart. Latejoins are fine though. new_character.set_species(client.prefs.species) if(chosen_species.language) new_character.add_language(chosen_species.language) From 13caefe13803498dcb435064db63226ac6381822 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 20 Aug 2013 14:20:46 +0100 Subject: [PATCH 010/226] Uncomments Space Law book content. --- code/game/objects/items/weapons/manuals.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index cc2c284adce..0f65736b507 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -584,7 +584,7 @@ icon_state = "bookSpaceLaw" author = "Nanotrasen" title = "Space Law" - /*dat = {" + dat = {" @@ -594,7 +594,7 @@ - "}*/ + "} /obj/item/weapon/book/manual/engineering_guide name = "Engineering Textbook" From c188e46efcf336bad1173b5e83e885061e80535e Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Tue, 20 Aug 2013 21:54:37 +0100 Subject: [PATCH 011/226] Removes alien virus. Signed-off-by: Mloc-Argent --- code/modules/virus2/effect.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index b5eaf35452a..b50943549cd 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -48,7 +48,7 @@ proc/deactivate(var/mob/living/carbon/mob) ////////////////////////SPECIAL///////////////////////////////// -/datum/disease2/effect/alien +/*/datum/disease2/effect/alien name = "Unidentified Foreign Body" stage = 4 activate(var/mob/living/carbon/mob,var/multiplier) @@ -62,7 +62,7 @@ new/mob/living/carbon/alien/larva(mob.loc) var/datum/disease2/disease/D = mob:virus2 mob:gib() - del D + del D*/ /datum/disease2/effect/invisible name = "Waiting Syndrome" From 9b34f6b5b026b9f56af796f445dccce8941a2223 Mon Sep 17 00:00:00 2001 From: "Mark Aherne (Faerdan)" Date: Wed, 21 Aug 2013 01:50:50 +0200 Subject: [PATCH 012/226] I added nanomanager.update_uis(src) to the cryo.dm Topic(). This method updates all UIs attached to the (src) object.Fixed issue with Nano UI windows taking seconds to load. Removed user << browse_rsc() entries as they caused the delay. New assets (stylesheets, scripts, templates and images) have to be added to the client's send_resources proc or they will not exist on the client. --- code/game/machinery/cryo.dm | 2 +- code/modules/client/client procs.dm | 2 +- code/modules/nano/nanoui.dm | 114 ++++++++++++---------------- nano/css/{common.css => shared.css} | 0 4 files changed, 49 insertions(+), 69 deletions(-) rename nano/css/{common.css => shared.css} (100%) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 79962deaaf3..163c5f6bae1 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -110,7 +110,7 @@ var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key) if (!ui) - ui = new(user, src, ui_key, 'nano/templates/cryo.tmpl', "Cryo Cell Control System", 520, 410) + ui = new(user, src, ui_key, "cryo.tmpl", "Cryo Cell Control System", 520, 410) // When the UI is first opened this is the data it will use ui.set_initial_data(data) ui.open() diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 0cfa286689b..f372f27e547 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -246,7 +246,7 @@ 'nano/js/nano_update.js', 'nano/js/nano_config.js', 'nano/js/nano_base_helpers.js', - 'nano/css/common.css', + 'nano/css/shared.css', 'nano/css/icons.css', 'nano/templates/cryo.tmpl', 'nano/images/uiBackground.png', diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 52b9c3d0045..add6437c3be 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -9,8 +9,8 @@ var/atom/ref = null var/on_close_logic = 1 var/window_options = "focus=0;can_close=1;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;" // window option is set using window_id - var/stylesheets[0] - var/scripts[0] + var/list/stylesheets = list() + var/list/scripts = list() var/templates[0] var/title_image var/head_elements @@ -23,13 +23,13 @@ /datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) - user = nuser + user = nuser src_object = nsrc_object ui_key = nui_key window_id = "[ui_key]\ref[src_object]" - + add_template("main", ntemplate) - + if (ntitle) title = ntitle if (nwidth) @@ -37,27 +37,25 @@ if (nheight) height = nheight if (nref) - ref = nref - + ref = nref + add_common_assets() - + /datum/nanoui/proc/add_common_assets() - add_script("libraries", 'nano/js/libraries.min.js') // The jQuery library - //add_script("jquery", 'nano/js/jquery.js') // The jQuery library - //add_script("jsviews", 'nano/js/jsviews.js') // JSViews, for rendering templates - add_script("nanoupdate", 'nano/js/nano_update.js') // The NanoUpdate JS, this is used to receive updates and apply them. - add_script("nanoconfig", 'nano/js/nano_config.js') // The NanoUpdate JS, this is used to receive updates and apply them. - add_script("nanobasehelpers", 'nano/js/nano_base_helpers.js') // The NanoBaseHelpers JS, this is used to set up template helpers which are common to all templates - add_stylesheet("common", 'nano/css/common.css') // this CSS sheet is common to all UIs - add_stylesheet("icons", 'nano/css/icons.css') // this CSS sheet is common to all UIs + add_script("libraries.min.js") // The jQuery library + add_script("nano_update.js") // The NanoUpdate JS, this is used to receive updates and apply them. + add_script("nano_config.js") // The NanoUpdate JS, this is used to receive updates and apply them. + add_script("nano_base_helpers.js") // The NanoBaseHelpers JS, this is used to set up template helpers which are common to all templates + add_stylesheet("shared.css") // this CSS sheet is common to all UIs + add_stylesheet("icons.css") // this CSS sheet is common to all UIs /datum/nanoui/proc/set_status(state) if (state != status) status = state push_data(list(), 1) // Update the UI - else + else status = state - + /datum/nanoui/proc/set_auto_update(state = 1) is_auto_updating = state @@ -73,11 +71,11 @@ /datum/nanoui/proc/set_title_image(ntitle_image) //title_image = ntitle_image -/datum/nanoui/proc/add_stylesheet(name, file) - stylesheets[name] = file +/datum/nanoui/proc/add_stylesheet(file) + stylesheets.Add(file) -/datum/nanoui/proc/add_script(name, file) - scripts[name] = file +/datum/nanoui/proc/add_script(file) + scripts.Add(file) /datum/nanoui/proc/add_template(name, file) templates[name] = file @@ -87,35 +85,21 @@ /datum/nanoui/proc/add_content(ncontent) content += ncontent - + /datum/nanoui/proc/use_on_close_logic(nsetting) - on_close_logic = nsetting + on_close_logic = nsetting /datum/nanoui/proc/get_header() - var/key - var/filename - - for (key in stylesheets) - filename = "[ckey(key)].css" - user << browse_rsc(stylesheets[key], filename) + for (var/filename in stylesheets) head_content += "" - - user << browse_rsc('nano/images/uiBackground.png', "uiBackground.png") - user << browse_rsc('nano/images/uiIcons16.png', "uiIcons16.png") - user << browse_rsc('nano/images/uiIcons24.png', "uiIcons24.png") - user << browse_rsc('nano/images/uiLinkPendingIcon.gif', "uiLinkPendingIcon.gif") - user << browse_rsc('nano/images/uiNoticeBackground.jpg', "uiNoticeBackground.jpg") - user << browse_rsc('nano/images/uiTitleFluff.png', "uiTitleFluff.png") var/title_attributes = "id='uiTitle'" if (title_image) title_attributes = "id='uiTitle icon' style='background-image: url([title_image]);'" var/templatel_data[0] - for (key in templates) - filename = "[ckey(key)].tmpl" - user << browse_rsc(templates[key], filename) - templatel_data[key] = filename; + for (var/key in templates) + templatel_data[key] = templates[key]; var/template_data_json = "{}" // An empty JSON object if (templatel_data.len > 0) @@ -136,7 +120,7 @@ " - + return {" [scriptsContent] @@ -197,17 +177,17 @@ /datum/nanoui/proc/close() is_auto_updating = 0 - nanomanager.ui_closed(src) - user << browse(null, "window=[window_id]") - + nanomanager.ui_closed(src) + user << browse(null, "window=[window_id]") + /datum/nanoui/proc/on_close_winset() - if(!user.client) + if(!user.client) world << "ERROR: No user.client!?" return var/params = "\ref[src]" - + winset(user, window_id, "on-close=\"nanoclose [params]\"") - + /datum/nanoui/proc/process(update = 0) var/dist = get_dist(src_object, user) if (dist <= 1) @@ -219,11 +199,11 @@ return // don't auto update else close() - return - + return + if (update || is_auto_updating) src_object.ui_interact(user, ui_key) - + /datum/nanoui/proc/modify_data(data) data["ui"] = list( "status" = status, @@ -231,14 +211,14 @@ ) //user << list2json(data) return data - + /datum/nanoui/proc/push_data(data, force_push = 0) if (!status && !force_push) user << "Cannot update UI, user out of range (status [status])" return - + data = modify_data(data) - + user << output(list2params(list(list2json(data))),"[window_id].browser:receiveUpdateData") on_close_winset() @@ -247,13 +227,13 @@ set name = "nanoclose" // no autocomplete on cmd line //world << "world [src] looking for [uiref]" - - var/datum/nanoui/ui = locate(uiref) - + + var/datum/nanoui/ui = locate(uiref) + if (ui) //world << "[src] UI found [ui.window_id]" ui.close() - + if (ui.on_close_logic) if(ui.ref) var/href = "close=1" @@ -265,7 +245,7 @@ // so just reset the user mob's machine var if(src && src.mob) //world << "[src] was [src.mob.machine], setting to null" - src.mob.unset_machine() + src.mob.unset_machine() else world << "[src] UI not found" return \ No newline at end of file diff --git a/nano/css/common.css b/nano/css/shared.css similarity index 100% rename from nano/css/common.css rename to nano/css/shared.css From 475fae27901d0ec493087913a5d5b3fc95745ae8 Mon Sep 17 00:00:00 2001 From: Segrain Date: Wed, 21 Aug 2013 05:58:07 +0300 Subject: [PATCH 013/226] Missing comment. --- code/game/objects/items/devices/scanners.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index c17dd0e67ab..a5a4093028f 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -6,7 +6,7 @@ HEALTH ANALYZER GAS ANALYZER PLANT ANALYZER MASS SPECTROMETER - +REAGENT SCANNER */ /obj/item/device/t_scanner name = "T-ray scanner" From 3c99618f87ba9ea033232f422b9a1073fc04762d Mon Sep 17 00:00:00 2001 From: Segrain Date: Wed, 21 Aug 2013 06:00:08 +0300 Subject: [PATCH 014/226] New verb. --- code/game/machinery/OpTable.dm | 50 +++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 7078d9df906..e1aa0ebfa7d 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -91,10 +91,10 @@ /obj/machinery/optable/proc/check_victim() if(locate(/mob/living/carbon/human, src.loc)) - var/mob/M = locate(/mob/living/carbon/human, src.loc) + var/mob/living/carbon/human/M = locate(/mob/living/carbon/human, src.loc) if(M.resting) src.victim = M - icon_state = "table2-active" + icon_state = M.pulse ? "table2-active" : "table2-idle" return 1 src.victim = null icon_state = "table2-idle" @@ -103,22 +103,40 @@ /obj/machinery/optable/process() check_victim() -/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob) +/obj/machinery/optable/proc/take_victim(mob/living/carbon/human/H, mob/living/carbon/user as mob) + if (H == user) + user.visible_message("[user] climbs on the operating table.","You climb on the operating table.") + else + visible_message("\red [H] has been laid on the operating table by [user].", 3) + if (H.client) + H.client.perspective = EYE_PERSPECTIVE + H.client.eye = src + H.resting = 1 + H.loc = src.loc + for(var/obj/O in src) + O.loc = src.loc + src.add_fingerprint(user) + icon_state = H.pulse ? "table2-active" : "table2-idle" + src.victim = H +/obj/machinery/optable/verb/climb_on() + set name = "Climb On Table" + set category = "Object" + set src in oview(1) + + if(usr.stat || !ishuman(usr) || usr.buckled || usr.restrained()) + return + + if(src.victim) + usr << "\blue The table is already occupied!" + return + + take_victim(usr,usr) + +/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob) if (istype(W, /obj/item/weapon/grab)) - if(ismob(W:affecting)) - var/mob/M = W:affecting - if (M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src - M.resting = 1 - M.loc = src.loc - visible_message("\red [M] has been laid on the operating table by [user].", 3) - for(var/obj/O in src) - O.loc = src.loc - src.add_fingerprint(user) - icon_state = "table2-active" - src.victim = M + if(ishuman(W:affecting)) + take_victim(W:affecting,usr) del(W) return user.drop_item() From d3775875df6c4f4f53bf1f13b43fc31cbeee09ba Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 21 Aug 2013 09:10:21 +0100 Subject: [PATCH 015/226] Revert "Experimentally readding Delete Book verb." This reverts commit ec3000ecfb2609cbcc5116169aa640e1d89815b5. --- code/modules/admin/admin_verbs.dm | 6 ++---- code/modules/library/lib_machines.dm | 28 ++-------------------------- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 717924eb814..7f821923415 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -69,8 +69,7 @@ var/list/admin_verbs_admin = list( /client/proc/check_customitem_activity, /client/proc/man_up, /client/proc/global_man_up, - /client/proc/response_team, // Response Teams admin verb - /client/proc/delbook + /client/proc/response_team // Response Teams admin verb ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, @@ -122,8 +121,7 @@ var/list/admin_verbs_server = list( /datum/admins/proc/toggle_aliens, /datum/admins/proc/toggle_space_ninja, /client/proc/toggle_random_events, - /client/proc/check_customitem_activity, - /client/proc/delbook + /client/proc/check_customitem_activity ) var/list/admin_verbs_debug = list( /client/proc/cmd_admin_list_open_jobs, diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 08b0c4f3bdc..a47d80309d0 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -195,7 +195,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f else dat += "(Order book by SS13BN)

" dat += "" - dat += "" + dat += "" var/DBQuery/query = dbcon_old.NewQuery("SELECT id, author, title, category FROM library") query.Execute() @@ -205,7 +205,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/author = query.item[2] var/title = query.item[3] var/category = query.item[4] - dat += "" + dat += "" dat += "
AUTHORTITLECATEGORYID
AUTHORTITLECATEGORY
[author][title][category][id]\[Order\]
[author][title][category]\[Order\]
" dat += "
(Return to main menu)
" if(5) @@ -463,27 +463,3 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f del(O) else ..() - -/client/proc/delbook() - set name = "Delete Book" - set desc = "Permamently deletes a book from the database." - set category = "Admin" - if(!src.holder) - src << "Only administrators may use this command." - return - - var/isbn = input("ISBN number?", "Delete Book") as num | null - if(!isbn) - return - - if(dbcon_old.IsConnected()) - var/DBConnection/dbcon = new() - dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]") - if(!dbcon.IsConnected()) - alert("Connection to Archive has been severed. Aborting.") - else - var/DBQuery/query = dbcon.NewQuery("DELETE FROM library WHERE id=[isbn]") - if(!query.Execute()) - usr << query.ErrorMsg() - dbcon.Disconnect() - log_admin("[usr.key] has deleted the book [isbn]") \ No newline at end of file From d7fc84b42b565ac6e8b3fcf7d0d895aa9fcfb844 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 21 Aug 2013 09:59:07 +0100 Subject: [PATCH 016/226] Better gender checks. --- code/__HELPERS/mobs.dm | 12 ++++-------- code/modules/client/preferences.dm | 12 +++--------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 324cfad6323..df7e4f18901 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -4,11 +4,9 @@ proc/random_hair_style(gender, species = "Human") var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender == MALE && S.gender == FEMALE) + if(gender != S.gender) continue - if(gender == FEMALE && S.gender == MALE) - continue - if( !(species in S.species_allowed)) + if(!(species in S.species_allowed)) continue valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] @@ -23,11 +21,9 @@ proc/random_facial_hair_style(gender, species = "Human") var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender == MALE && S.gender == FEMALE) + if(gender != S.gender) continue - if(gender == FEMALE && S.gender == MALE) - continue - if( !(species in S.species_allowed)) + if(!(species in S.species_allowed)) continue valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index cdf4e8e20ff..f4cb339f045 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -822,9 +822,7 @@ datum/preferences var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender == MALE && S.gender == FEMALE) - continue - if(gender == FEMALE && S.gender == MALE) + if(gender != S.gender) continue if( !(species in S.species_allowed)) continue @@ -840,9 +838,7 @@ datum/preferences var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender == MALE && S.gender == FEMALE) - continue - if(gender == FEMALE && S.gender == MALE) + if(gender != S.gender) continue if( !(species in S.species_allowed)) continue @@ -925,9 +921,7 @@ datum/preferences var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender == MALE && S.gender == FEMALE) - continue - if(gender == FEMALE && S.gender == MALE) + if(gender != S.gender) continue if( !(species in S.species_allowed)) continue From 740a44b600f77f8342e8c582977e8ef23f673b1f Mon Sep 17 00:00:00 2001 From: Mloc Date: Wed, 21 Aug 2013 20:27:14 +0100 Subject: [PATCH 017/226] Tweaked gitignore. --- .gitignore | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c1e9211514f..e7f44a7c441 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,10 @@ +#ignore misc BYOND files *.log *.int *.rsc *.dmb *.lk -info.json -/config/admins.txt + +#ignore any files in config/, except those in subdirectories. +/config/* +!/config/*/* From 5cee2d2ac2b1d141a26b8d6c8275e1274e4f0e3e Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Wed, 21 Aug 2013 23:26:59 +0100 Subject: [PATCH 018/226] Species will no longer draw hair not allowed for them. Mirrors will no longer let you choose disallowed hair styles. --- code/game/objects/structures/mirror.dm | 22 +++++++++++++++++-- .../mob/living/carbon/human/update_icons.dm | 4 ++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index c6a448be97e..0937e72d848 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -22,13 +22,31 @@ //handle facial hair (if necessary) if(H.gender == MALE) - var/new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list + var/list/species_facial_hair = list() + if(H.species) + for(var/i in facial_hair_styles_list) + var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i] + if(H.species.name in tmp_facial.species_allowed) + species_facial_hair += i + else + species_facial_hair = facial_hair_styles_list + + var/new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in species_facial_hair if(userloc != H.loc) return //no tele-grooming if(new_style) H.f_style = new_style //handle normal hair - var/new_style = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list + var/list/species_hair = list() + if(H.species) + for(var/i in hair_styles_list) + var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i] + if(H.species.name in tmp_hair.species_allowed) + species_hair += i + else + species_hair = hair_styles_list + + var/new_style = input(user, "Select a hair style", "Grooming") as null|anything in species_hair if(userloc != H.loc) return //no tele-grooming if(new_style) H.h_style = new_style diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 1526203f9ba..507f38723a4 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -347,7 +347,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] - if(facial_hair_style) + if(facial_hair_style && src.species.name in facial_hair_style.species_allowed) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) @@ -357,7 +357,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(h_style && !(head && (head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] - if(hair_style) + if(hair_style && src.species.name in hair_style.species_allowed) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) From 57c1a9a55633725dc2e31993e00dafe27c9b3af0 Mon Sep 17 00:00:00 2001 From: Segrain Date: Thu, 22 Aug 2013 10:11:49 +0300 Subject: [PATCH 019/226] Code cleanup. --- .../structures/crates_lockers/closets.dm | 23 ++--- .../closets/secure/secure_closets.dm | 87 ++++++------------- 2 files changed, 37 insertions(+), 73 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 48c13eb8499..3e23be3bfef 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -119,10 +119,11 @@ density = 1 return 1 -/obj/structure/closet/proc/toggle() - if(src.opened) - return src.close() - return src.open() +/obj/structure/closet/proc/toggle(mob/user as mob) + . = src.opened ? src.close() : src.open() + if(!.) + user << "It won't budge!" + return // this should probably use dump_contents() /obj/structure/closet/ex_act(severity) @@ -180,7 +181,6 @@ if(src.opened) if(istype(W, /obj/item/weapon/grab)) src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet - if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(!WT.remove_fuel(0,user)) @@ -191,15 +191,11 @@ M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2) del(src) return - if(isrobot(user)) return - usr.drop_item() - if(W) W.loc = src.loc - else if(istype(W, /obj/item/weapon/packageWrap)) return else if(istype(W, /obj/item/weapon/weldingtool)) @@ -207,7 +203,7 @@ if(!WT.remove_fuel(0,user)) user << "You need more welding fuel to complete this task." return - src.welded =! src.welded + src.welded = !src.welded src.update_icon() for(var/mob/M in viewers(src)) M.show_message("[src] has been [welded?"welded shut":"unwelded"] by [user.name].", 3, "You hear welding.", 2) @@ -257,9 +253,7 @@ /obj/structure/closet/attack_hand(mob/user as mob) src.add_fingerprint(user) - - if(!src.toggle()) - usr << "It won't budge!" + src.toggle(user) /obj/structure/closet/verb/verb_toggleopen() set src in oview(1) @@ -270,7 +264,8 @@ return if(ishuman(usr)) - src.attack_hand(usr) + src.add_fingerprint(usr) + src.toggle(usr) else usr << "This mob type can't use this verb." diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index 74062c27759..f6ce5d6d81e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -17,16 +17,17 @@ health = 200 /obj/structure/closet/secure_closet/can_open() - ..() if(src.locked) return 0 - return 1 + return ..() /obj/structure/closet/secure_closet/close() - ..() - if(broken) - icon_state = src.icon_off - return 1 + if(..()) + if(broken) + icon_state = src.icon_off + return 1 + else + return 0 /obj/structure/closet/secure_closet/emp_act(severity) for(var/obj/O in src) @@ -44,15 +45,21 @@ ..() /obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob) + if(src.opened) + user << "Close the locker first." + return + if(src.broken) + user << "The locker appears to be broken." + return + if(user.loc == src) + user << "You can't reach the lock from inside." + return if(src.allowed(user)) src.locked = !src.locked for(var/mob/O in viewers(user, 3)) if((O.client && !( O.blinded ))) O << "The locker has been [locked ? null : "un"]locked by [user]." - if(src.locked) - src.icon_state = src.icon_locked - else - src.icon_state = src.icon_closed + update_icon() else user << "Access Denied" @@ -62,15 +69,12 @@ if(src.large) src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet else - user << "The locker is too small to stuff [W] into!" + user << "The locker is too small to stuff [W:affecting] into!" if(isrobot(user)) return user.drop_item() if(W) W.loc = src.loc - else if(src.broken) - user << "The locker appears to be broken." - return else if((istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && !src.broken) broken = 1 locked = 0 @@ -88,46 +92,17 @@ else for(var/mob/O in viewers(user, 3)) O.show_message("The locker has been broken by [user] with an electromagnetic card!", 1, "You hear a faint electrical spark.", 2) + else if(istype(W,/obj/item/weapon/packageWrap) || istype(W,/obj/item/weapon/weldingtool)) + return ..(W,user) else - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(!WT.remove_fuel(0,user)) - user << "You need more welding fuel to complete this task." - return - src.welded =! src.welded - src.update_icon() - for(var/mob/M in viewers(src)) - M.show_message("[src] has been [welded?"welded shut":"unwelded"] by [user.name].", 3, "You hear welding.", 2) - else - togglelock(user) - -/obj/structure/closet/secure_closet/relaymove(mob/user as mob) - if(user.stat || !isturf(src.loc)) - return - - if(!(src.locked)) - for(var/obj/item/I in src) - I.loc = src.loc - for(var/mob/M in src) - M.loc = src.loc - if(M.client) - M.client.eye = M.client.mob - M.client.perspective = MOB_PERSPECTIVE - src.icon_state = src.icon_opened - src.opened = 1 - else - user << "The locker is locked!" - if(world.time > lastbang+5) - lastbang = world.time - for(var/mob/M in hearers(src, null)) - M << "BANG, bang!" - return + togglelock(user) /obj/structure/closet/secure_closet/attack_hand(mob/user as mob) src.add_fingerprint(user) - - if(!src.toggle()) - return src.attackby(null, user) + if(src.locked) + src.togglelock(user) + else + src.toggle(user) /obj/structure/closet/secure_closet/attack_paw(mob/user as mob) return src.attack_hand(user) @@ -140,15 +115,9 @@ if(!usr.canmove || usr.stat || usr.restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain return - if(get_dist(usr, src) != 1) - return - - if(src.broken) - return - - if (ishuman(usr)) - if (!opened) - togglelock(usr) + if(ishuman(usr)) + src.add_fingerprint(usr) + src.togglelock(usr) else usr << "This mob type can't use this verb." From e20f2e1409f21739d4e702872855105c35c6db37 Mon Sep 17 00:00:00 2001 From: Mloc Date: Thu, 22 Aug 2013 15:12:59 +0100 Subject: [PATCH 020/226] Small fixes to hair. Hair styles that aren't designed to have color shifts will no longer be affected. Balding virus symptom now only applies to humans. Signed-off-by: Mloc --- .../mob/living/carbon/human/update_icons.dm | 12 ++++--- .../mob/new_player/sprite_accessories.dm | 33 ++++++++++++++++++- code/modules/organs/organ_external.dm | 8 +++-- code/modules/virus2/effect.dm | 2 +- 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 507f38723a4..49242c64de1 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -350,8 +350,10 @@ proc/get_damage_icon_part(damage_state, body_part) if(facial_hair_style && src.species.name in facial_hair_style.species_allowed) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") - facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) - facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + if(facial_hair_style.do_colouration) + facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + face_standing.Blend(facial_s, ICON_OVERLAY) face_lying.Blend(facial_l, ICON_OVERLAY) @@ -360,8 +362,10 @@ proc/get_damage_icon_part(damage_state, body_part) if(hair_style && src.species.name in hair_style.species_allowed) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") - hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) - hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + if(hair_style.do_colouration) + hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + face_standing.Blend(hair_s, ICON_OVERLAY) face_lying.Blend(hair_l, ICON_OVERLAY) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index c983c3ba23c..55e37a4a4f6 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -28,9 +28,12 @@ // Determines if the accessory will be skipped or included in random hair generations var/gender = NEUTER - // Restrict some styles to specific races + // Restrict some styles to specific species var/list/species_allowed = list("Human") + // Whether or not the accessory can be affected by colouration + var/do_colouration = 1 + /* //////////////////////////// @@ -386,117 +389,139 @@ name = "Long Unathi Spines" icon_state = "soghun_longspines" species_allowed = list("Unathi") + do_colouration = 0 una_spines_short name = "Short Unathi Spines" icon_state = "soghun_shortspines" species_allowed = list("Unathi") + do_colouration = 0 una_frills_long name = "Long Unathi Frills" icon_state = "soghun_longfrills" species_allowed = list("Unathi") + do_colouration = 0 una_frills_short name = "Short Unathi Frills" icon_state = "soghun_shortfrill" species_allowed = list("Unathi") + do_colouration = 0 una_horns name = "Unathi Horns" icon_state = "soghun_horns" species_allowed = list("Unathi") + do_colouration = 0 skr_tentacle_m name = "Skrell Male Tentacles" icon_state = "skrell_hair_m" species_allowed = list("Skrell") gender = MALE + do_colouration = 0 skr_tentacle_f name = "Skrell Female Tentacles" icon_state = "skrell_hair_f" species_allowed = list("Skrell") gender = FEMALE + do_colouration = 0 skr_gold_m name = "Gold plated Skrell Male Tentacles" icon_state = "skrell_goldhair_m" species_allowed = list("Skrell") gender = MALE + do_colouration = 0 skr_gold_f name = "Gold chained Skrell Female Tentacles" icon_state = "skrell_goldhair_f" species_allowed = list("Skrell") gender = FEMALE + do_colouration = 0 skr_clothtentacle_m name = "Cloth draped Skrell Male Tentacles" icon_state = "skrell_clothhair_m" species_allowed = list("Skrell") gender = MALE + do_colouration = 0 skr_clothtentacle_f name = "Cloth draped Skrell Female Tentacles" icon_state = "skrell_clothhair_f" species_allowed = list("Skrell") gender = FEMALE + do_colouration = 0 taj_ears name = "Tajaran Ears" icon_state = "ears_plain" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_clean name = "Tajara Clean" icon_state = "hair_clean" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_shaggy name = "Tajara Shaggy" icon_state = "hair_shaggy" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_mohawk name = "Tajaran Mohawk" icon_state = "hair_mohawk" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_plait name = "Tajara Plait" icon_state = "hair_plait" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_straight name = "Tajara Straight" icon_state = "hair_straight" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_long name = "Tajara Long" icon_state = "hair_long" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_rattail name = "Tajara Rat Tail" icon_state = "hair_rattail" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_spiky name = "Tajara Spiky" icon_state = "hair_tajspiky" species_allowed = list("Tajaran") + do_colouration = 0 taj_ears_messy name = "Tajara Messy" icon_state = "hair_messy" species_allowed = list("Tajaran") + do_colouration = 0 vox_quills_short name = "Short Vox Quills" icon_state = "vox_shortquills" species_allowed = list("Vox") + do_colouration = 0 /datum/sprite_accessory/facial_hair @@ -504,31 +529,37 @@ name = "Tajara Sideburns" icon_state = "facial_mutton" species_allowed = list("Tajaran") + do_colouration = 0 taj_mutton name = "Tajara Mutton" icon_state = "facial_mutton" species_allowed = list("Tajaran") + do_colouration = 0 taj_pencilstache name = "Tajara Pencilstache" icon_state = "facial_pencilstache" species_allowed = list("Tajaran") + do_colouration = 0 taj_moustache name = "Tajara Moustache" icon_state = "facial_moustache" species_allowed = list("Tajaran") + do_colouration = 0 taj_goatee name = "Tajara Goatee" icon_state = "facial_goatee" species_allowed = list("Tajaran") + do_colouration = 0 taj_smallstache name = "Tajara Smallsatche" icon_state = "facial_smallstache" species_allowed = list("Tajaran") + do_colouration = 0 //skin styles - WIP //going to have to re-integrate this with surgery diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 02d0e47512a..de037500009 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -766,14 +766,18 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style] if(facial_hair_style) var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") - facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) + if(facial_hair_style.do_colouration) + facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD) + base.Blend(facial, ICON_OVERLAY) if(H.h_style && !(H.head && (H.head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style] if(hair_style) var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") - hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) + if(hair_style.do_colouration) + hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD) + base.Blend(hair, ICON_OVERLAY) icon = base diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index b50943549cd..86b69cc8c15 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -309,7 +309,7 @@ activate(var/mob/living/carbon/mob,var/multiplier) if(istype(mob, /mob/living/carbon/human)) var/mob/living/carbon/human/H = mob - if(!(H.h_style == "Bald") && !(H.h_style == "Balding Hair")) + if(H.species.name == "Human" && !(H.h_style == "Bald") && !(H.h_style == "Balding Hair")) H << "Your hair starts to fall out in clumps..." spawn(50) H.h_style = "Balding Hair" From 1106845cb6d9aab97f47dbf95396c8b2081cdaf2 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Thu, 22 Aug 2013 15:54:28 +0100 Subject: [PATCH 021/226] further checks against mobs being loaded by hydraulic clamps. Signed-off-by: Mloc-Argent --- code/game/mecha/equipment/tools/tools.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index c877084339b..69f88c9c932 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -21,6 +21,9 @@ if(!action_checks(target)) return if(!cargo_holder) return if(istype(target, /obj/structure/stool)) return + for(var/M in target.contents) + if(istype(M, /mob/living) + return if(istype(target,/obj)) var/obj/O = target From 4085aaf49b067f38c6ee0323d8ea6516253833bc Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 22 Aug 2013 16:03:37 -0700 Subject: [PATCH 022/226] Added two verbs to dionaea nymphs, gave them their own file. --- code/game/machinery/podmen.dm | 2 +- .../modules/mob/living/carbon/monkey/diona.dm | 122 ++++++++++++++++++ .../mob/living/carbon/monkey/monkey.dm | 71 ---------- 3 files changed, 123 insertions(+), 72 deletions(-) create mode 100644 code/modules/mob/living/carbon/monkey/diona.dm diff --git a/code/game/machinery/podmen.dm b/code/game/machinery/podmen.dm index b3be5ce053f..7654bda9641 100644 --- a/code/game/machinery/podmen.dm +++ b/code/game/machinery/podmen.dm @@ -153,5 +153,5 @@ Growing it to term with nothing injected will grab a ghost from the observers. * if (newname != "") podman.real_name = newname - parent.visible_message("\blue The pod disgorges a fully-formed plant person!") + parent.visible_message("\blue The pod disgorges a fully-formed plant creature!") parent.update_tray() diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm new file mode 100644 index 00000000000..461c5a264f0 --- /dev/null +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -0,0 +1,122 @@ +/* + Tiny babby plant critter plus procs. +*/ + +/mob/living/carbon/monkey/diona + name = "diona nymph" + voice_name = "diona nymph" + speak_emote = list("chirrups") + ico = "nymph" + var/list/donors = list() + var/ready_evolve = 0 + +/mob/living/carbon/monkey/diona/New() + + ..() + gender = NEUTER + dna.mutantrace = "plant" + greaterform = "Diona" + add_language("Rootspeak") + +//Verbs after this point. + +/mob/living/carbon/monkey/diona/verb/fertilize_plant() + + set category = "Diona" + set name = "Fertilize plant" + set desc = "Turn your food into nutrients for plants." + + var/list/trays = list() + for(var/obj/machinery/hydroponics/tray in range(1)) + if(tray.nutrilevel < 10) + trays += tray + + var/obj/machinery/hydroponics/target = input("Select a tray:") as null|anything in trays + + if(!src || !target || target.nutrilevel == 10) return //Sanity check. + + src.nutrition -= ((10-target.nutrilevel)*5) + target.nutrilevel = 10 + src.visible_message("\red [src] secretes a trickle of green liquid from its tail, refilling [target]'s nutrient tray.","\red You secrete a trickle of green liquid from your tail, refilling [target]'s nutrient tray.") + +/mob/living/carbon/monkey/diona/verb/eat_weeds() + + set category = "Diona" + set name = "Eat Weeds" + set desc = "Clean the weeds out of soil or a hydroponics tray." + + var/list/trays = list() + for(var/obj/machinery/hydroponics/tray in range(1)) + if(tray.weedlevel > 0) + trays += tray + + var/obj/machinery/hydroponics/target = input("Select a tray:") as null|anything in trays + + if(!src || !target || target.weedlevel == 0) return //Sanity check. + + src.reagents.add_reagent("nutriment", target.weedlevel) + target.weedlevel = 0 + src.visible_message("\red [src] begins rooting through [target], ripping out weeds and eating them noisily.","\red You begin rooting through [target], ripping out weeds and eating them noisily.") + +/mob/living/carbon/monkey/diona/verb/evolve() + + set category = "Diona" + set name = "Evolve" + set desc = "Grow to a more complex form." + + if(donors.len < 5) + src << "You are not yet ready for your growth..." + return + + if(reagents.get_reagent_amount("nutriment") < 5) + src << "You have not yet consumed enough to grow..." + return + + src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","\red You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!") + var/mob/living/carbon/human/adult = new(loc) + adult.set_species("Diona") + for(var/datum/language/L in languages) + adult.add_language(L.name) + adult.regenerate_icons() + + adult.name = src.name + adult.real_name = src.real_name + adult.ckey = src.ckey + del(src) + +/mob/living/carbon/monkey/diona/verb/steal_blood() + set category = "Diona" + set name = "Steal Blood" + set desc = "Take a blood sample from a suitable donor." + + var/list/choices = list() + for(var/mob/living/C in view(1,src)) + if(C.real_name != real_name) + choices += C + + var/mob/living/M = input(src,"Who do you wish to take a sample from?") in null|choices + + if(!M || !src) return + + if(donors.Find(M.real_name)) + src << "\red That donor offers you nothing new." + return + + src.visible_message("\red [src] flicks out a feeler and neatly steals a sample of [M]'s blood.","\red You flick out a feeler and neatly steal a sample of [M]'s blood.") + donors += M.real_name + spawn(25) + update_progression() + +/mob/living/carbon/monkey/diona/proc/update_progression() + + if(!donors.len) + return + + if(donors.len == 5) + ready_evolve = 1 + src << "\green You feel ready to move on to your next stage of growth." + else if(donors.len == 3) + universal_speak = 1 + src << "\green You feel your awareness expand, and realize you know how to speak to the meat-creatures around you." + else + src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind." \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index ad288d19141..7f109dd7d7a 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -34,77 +34,6 @@ ico = "stokkey" uni_append = "044C5D" -/mob/living/carbon/monkey/diona - name = "diona nymph" - voice_name = "diona nymph" - speak_emote = list("chirrups") - ico = "nymph" - var/list/donors = list() - var/ready_evolve = 0 - -/mob/living/carbon/monkey/diona/verb/evolve() - - set category = "Diona" - set name = "Evolve" - set desc = "Grow to a more complex form." - - if(donors.len < 5) - src << "You are not yet ready for your growth..." - return - - if(reagents.get_reagent_amount("nutriment") < 5) - src << "You have not yet consumed enough to grow..." - return - - src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","\red You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!") - var/mob/living/carbon/human/adult = new(loc) - adult.set_species("Diona") - for(var/datum/language/L in languages) - adult.add_language(L.name) - adult.regenerate_icons() - - adult.name = src.name - adult.real_name = src.real_name - adult.ckey = src.ckey - del(src) - -/mob/living/carbon/monkey/diona/verb/steal_blood() - set category = "Diona" - set name = "Steal Blood" - set desc = "Take a blood sample from a suitable donor." - - var/list/choices = list() - for(var/mob/living/C in view(1,src)) - if(C.real_name != real_name) - choices += C - - var/mob/living/M = input(src,"Who do you wish to take a sample from?") in null|choices - - if(!M || !src) return - - if(donors.Find(M.real_name)) - src << "\red That donor offers you nothing new." - return - - src.visible_message("\red [src] flicks out a feeler and neatly steals a sample of [M]'s blood.","\red You flick out a feeler and neatly steal a sample of [M]'s blood.") - donors += M.real_name - spawn(25) - update_progression() - -/mob/living/carbon/monkey/diona/proc/update_progression() - - if(!donors.len) - return - - if(donors.len == 5) - ready_evolve = 1 - src << "\green You feel ready to move on to your next stage of growth." - else if(donors.len == 3) - universal_speak = 1 - src << "\green You feel your awareness expand, and realize you know how to speak to the meat-creatures around you." - else - src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind." - /mob/living/carbon/monkey/New() var/datum/reagents/R = new/datum/reagents(1000) reagents = R From b20de202abbdd61f350e0b341aa0a95607c6aba3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 22 Aug 2013 16:03:49 -0700 Subject: [PATCH 023/226] Forgot the DME for the previous commit. --- baystation12.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/baystation12.dme b/baystation12.dme index acb23ee24f6..bb2c31042a0 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -949,6 +949,7 @@ #include "code\modules\mob\living\carbon\metroid\subtypes.dm" #include "code\modules\mob\living\carbon\metroid\update_icons.dm" #include "code\modules\mob\living\carbon\monkey\death.dm" +#include "code\modules\mob\living\carbon\monkey\diona.dm" #include "code\modules\mob\living\carbon\monkey\emote.dm" #include "code\modules\mob\living\carbon\monkey\examine.dm" #include "code\modules\mob\living\carbon\monkey\hud.dm" From 75896a8824233a3c240ee342f3acf47f01305b71 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 22 Aug 2013 16:10:06 -0700 Subject: [PATCH 024/226] Fixes from Ravensdale to robot code, unsure of issue numbers. --- code/game/objects/items/robot/robot_upgrades.dm | 1 - code/modules/mob/living/silicon/robot/robot.dm | 14 ++++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 5011f5346ee..7a76812b34e 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -30,7 +30,6 @@ R.uneq_all() R.hands.icon_state = "nomod" R.icon_state = "robot" - R.base_icon = "robot" del(R.module) R.module = null R.camera.network.Remove(list("Medical","MINE")) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index ab6739d744c..818cd06cb74 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -9,7 +9,6 @@ var/sight_mode = 0 var/custom_name = "" - var/base_icon var/custom_sprite = 0 //Due to all the sprites involved, a var for our custom borgs may be best var/crisis //Admin-settable for combat module use. @@ -232,7 +231,6 @@ choose_icon(6,module_sprites) radio.config(channels) - base_icon = icon_state /mob/living/silicon/robot/proc/updatename(var/prefix as text) if(prefix) @@ -1007,9 +1005,11 @@ if(module_active && istype(module_active,/obj/item/borg/combat/shield)) overlays += "[icon_state]-shield" - if(base_icon) + if(modtype == "Combat") + var/base_icon = "" + base_icon = icon_state if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) - icon_state = "[base_icon]-roll" + icon_state = "[icon_state]-roll" else icon_state = base_icon return @@ -1229,8 +1229,8 @@ var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") - icontype = "Lucy" + if (custom_sprite == 1) + icontype = "Custom" triesleft = 0 else icontype = input("Select an icon! [triesleft ? "You have [triesleft] more chances." : "This is your last try."]", "Robot", null, null) in module_sprites @@ -1240,11 +1240,9 @@ else src << "Something is badly wrong with the sprite selection. Harass a coder." icon_state = module_sprites[1] - base_icon = icon_state return overlays -= "eyes" - base_icon = icon_state updateicon() if (triesleft >= 1) From acb4a01b9dd052f36678b752db107b5b6bf45b7f Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 23 Aug 2013 10:42:29 +0300 Subject: [PATCH 025/226] Compile fix. --- code/game/mecha/equipment/tools/tools.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 69f88c9c932..a7936f15643 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -22,7 +22,7 @@ if(!cargo_holder) return if(istype(target, /obj/structure/stool)) return for(var/M in target.contents) - if(istype(M, /mob/living) + if(istype(M, /mob/living)) return if(istype(target,/obj)) From cd2922cebec20fa17fc54b4db7c1a0ede523458e Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 23 Aug 2013 15:30:49 +0300 Subject: [PATCH 026/226] Name fix. --- code/game/area/Space Station 13 areas.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index fd034fbf5ae..2ff200ae885 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -1140,7 +1140,7 @@ proc/process_ghost_teleport_locs() icon_state = "cloning" /area/medical/sleeper - name = "\improper Emergency" + name = "\improper Medical Treatment Center" icon_state = "exam_room" //Security From 40909bde5370d65df86dd170e6539f44d683552b Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 23 Aug 2013 15:31:37 +0300 Subject: [PATCH 027/226] Deconstruction fix. --- code/game/objects/structures/grille.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index c2514a11241..04f18fe3b6a 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -102,7 +102,7 @@ if(iswirecutter(W)) if(!shock(user, 100)) playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) - new /obj/item/stack/rods(loc) + new /obj/item/stack/rods(loc, 2) del(src) else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored)) if(!shock(user, 90)) From 245d33c1af9c61bedb5009807b6d1a8b85e5a1ed Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 23 Aug 2013 15:32:37 +0300 Subject: [PATCH 028/226] Fix for invisible wounds. --- .../mob/living/carbon/human/examine.dm | 71 ++++++++++--------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index b8b87003274..e074d9caae8 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -282,40 +282,43 @@ wound_descriptors[this_wound_desc] += W.amount continue wound_descriptors[this_wound_desc] = W.amount - var/list/flavor_text = list() - var/list/no_exclude = list("gaping wound", "big gaping wound", "massive wound", "large bruise",\ - "huge bruise", "massive bruise", "severe burn", "large burn", "deep burn", "carbonised area") - for(var/wound in wound_descriptors) - switch(wound_descriptors[wound]) - if(1) - if(!flavor_text.len) - flavor_text += "[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]" - else - flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]" - if(2) - if(!flavor_text.len) - flavor_text += "[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s" - else - flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s" - if(3 to 5) - if(!flavor_text.len) - flavor_text += "[t_He] has several [wound]s" - else - flavor_text += " several [wound]s" - if(6 to INFINITY) - if(!flavor_text.len) - flavor_text += "[t_He] has a bunch of [wound]s" - else - flavor_text += " a ton of [wound]\s" - var/flavor_text_string = "" - for(var/text = 1, text <= flavor_text.len, text++) - if(text == flavor_text.len && flavor_text.len > 1) - flavor_text_string += ", and" - else if(flavor_text.len > 1 && text > 1) - flavor_text_string += "," - flavor_text_string += flavor_text[text] - flavor_text_string += " on [t_his] [temp.display_name].
" - wound_flavor_text["[temp.display_name]"] = flavor_text_string + if(wound_descriptors.len) + var/list/flavor_text = list() + var/list/no_exclude = list("gaping wound", "big gaping wound", "massive wound", "large bruise",\ + "huge bruise", "massive bruise", "severe burn", "large burn", "deep burn", "carbonised area") + for(var/wound in wound_descriptors) + switch(wound_descriptors[wound]) + if(1) + if(!flavor_text.len) + flavor_text += "[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]" + else + flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]" + if(2) + if(!flavor_text.len) + flavor_text += "[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s" + else + flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s" + if(3 to 5) + if(!flavor_text.len) + flavor_text += "[t_He] has several [wound]s" + else + flavor_text += " several [wound]s" + if(6 to INFINITY) + if(!flavor_text.len) + flavor_text += "[t_He] has a bunch of [wound]s" + else + flavor_text += " a ton of [wound]\s" + var/flavor_text_string = "" + for(var/text = 1, text <= flavor_text.len, text++) + if(text == flavor_text.len && flavor_text.len > 1) + flavor_text_string += ", and" + else if(flavor_text.len > 1 && text > 1) + flavor_text_string += "," + flavor_text_string += flavor_text[text] + flavor_text_string += " on [t_his] [temp.display_name].
" + wound_flavor_text["[temp.display_name]"] = flavor_text_string + else + wound_flavor_text["[temp.display_name]"] = "" if(temp.status & ORGAN_BLEEDING) is_bleeding["[temp.display_name]"] = 1 else From 5f8c8d9cceac1149b4abce74b073025f41bb020a Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 23 Aug 2013 15:33:51 +0300 Subject: [PATCH 029/226] Fix for negative damage. --- code/modules/organs/organ_internal.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index 232fa2bc0e0..a3b1d59fe42 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -63,6 +63,9 @@ process() if(owner.life_tick % process_accuracy == 0) + if(src.damage < 0) + src.damage = 0 + //High toxins levels are dangerous if(owner.getToxLoss() >= 60 && !owner.reagents.has_reagent("anti_toxin")) //Healthy liver suffers on its own @@ -75,7 +78,7 @@ O.damage += 0.2 * process_accuracy //Detox can heal small amounts of damage - if (owner.reagents.has_reagent("anti_toxin") && src.damage < src.min_bruised_damage) + if (src.damage && src.damage < src.min_bruised_damage && owner.reagents.has_reagent("anti_toxin")) src.damage -= 0.2 * process_accuracy // Damaged liver means some chemicals are very dangerous From 4bd67e83b86197707046a4eb1dd3213ead5df345 Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Fri, 23 Aug 2013 05:47:45 -0700 Subject: [PATCH 030/226] Changed vote settings to game mode votes other than extended will not be announced. --- code/controllers/voting.dm | 14 +++++++++++--- code/game/gamemodes/gameticker.dm | 2 +- code/modules/mob/new_player/new_player.dm | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 7fc7f20b8fc..a81927cfd67 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -117,16 +117,24 @@ datum/controller/vote var/text if(winners.len > 0) if(winners.len > 1) - text = "Vote Tied Between:\n" + if(mode != "gamemode") // Here we are making sure we don't announce potential game modes + text = "Vote Tied Between:\n" for(var/option in winners) - text += "\t[option]\n" + if(mode != "gamemode") + text += "\t[option]\n" . = pick(winners) for(var/key in current_votes) if(choices[current_votes[key]] == .) round_voters += key // Keep track of who voted for the winning round. + if(mode == "gamemode" && . == "extended") // Announce Extended gamemode, but not other gamemodes + text += "Vote Result: [.]" + else + if(mode != "gamemode") + text += "Vote Result: [.]" + else + text += "The vote has ended." // What will be shown if it is a gamemode vote that isn't extended - text += "Vote Result: [.]" else text += "Vote Result: Inconclusive - No Votes!" log_vote(text) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 78a8fe69383..4d83aa5eefa 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -10,7 +10,7 @@ var/global/datum/controller/gameticker/ticker var/const/restart_timeout = 600 var/current_state = GAME_STATE_PREGAME - var/hide_mode = 0 + var/hide_mode = 1 var/datum/game_mode/mode = null var/event_time = null var/event = 0 diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 9fa5357d103..12219cc1354 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -74,7 +74,8 @@ if(ticker.hide_mode) stat("Game Mode:", "Secret") else - stat("Game Mode:", "[master_mode]") + //stat("Game Mode:", "[master_mode]") -- Old setting for showing the game mode + stat("Game Mode: ", "Secret") if((ticker.current_state == GAME_STATE_PREGAME) && going) stat("Time To Start:", ticker.pregame_timeleft) From 7265509b1dcf84273e5b0d1da99e79a1fead1c6a Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Fri, 23 Aug 2013 06:22:07 -0700 Subject: [PATCH 031/226] Added vars to change hide mode. --- code/controllers/voting.dm | 8 ++++---- code/modules/mob/new_player/new_player.dm | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index a81927cfd67..8e67d69cb71 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -13,6 +13,7 @@ datum/controller/vote var/list/voting = list() var/list/current_votes = list() var/auto_muted = 0 + var/hide_mode = 1 New() if(vote != src) @@ -117,17 +118,16 @@ datum/controller/vote var/text if(winners.len > 0) if(winners.len > 1) - if(mode != "gamemode") // Here we are making sure we don't announce potential game modes + if(mode != "gamemode" || hide_mode == 0) // Here we are making sure we don't announce potential game modes text = "Vote Tied Between:\n" for(var/option in winners) - if(mode != "gamemode") - text += "\t[option]\n" + text += "\t[option]\n" . = pick(winners) for(var/key in current_votes) if(choices[current_votes[key]] == .) round_voters += key // Keep track of who voted for the winning round. - if(mode == "gamemode" && . == "extended") // Announce Extended gamemode, but not other gamemodes + if((mode == "gamemode" && . == "extended") || hide_mode == 0) // Announce Extended gamemode, but not other gamemodes text += "Vote Result: [.]" else if(mode != "gamemode") diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 12219cc1354..acbccd7f14e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -5,6 +5,7 @@ var/spawning = 0//Referenced when you want to delete the new_player later on in the code. var/totalPlayers = 0 //Player counts for the Lobby tab var/totalPlayersReady = 0 + var/hide_mode = 1 universal_speak = 1 invisibility = 101 @@ -74,8 +75,10 @@ if(ticker.hide_mode) stat("Game Mode:", "Secret") else - //stat("Game Mode:", "[master_mode]") -- Old setting for showing the game mode - stat("Game Mode: ", "Secret") + if(hide_mode == 0) + stat("Game Mode:", "[master_mode]") // Old setting for showing the game mode + else + stat("Game Mode: ", "Secret") if((ticker.current_state == GAME_STATE_PREGAME) && going) stat("Time To Start:", ticker.pregame_timeleft) From 2525f4f8aadd262995ffe546ba652e56e00fd11f Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Fri, 23 Aug 2013 06:38:22 -0700 Subject: [PATCH 032/226] Moved hide_mode vars to global ticker instance. --- code/controllers/voting.dm | 5 ++--- code/modules/mob/new_player/new_player.dm | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 8e67d69cb71..9bb2197e6e8 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -13,7 +13,6 @@ datum/controller/vote var/list/voting = list() var/list/current_votes = list() var/auto_muted = 0 - var/hide_mode = 1 New() if(vote != src) @@ -118,7 +117,7 @@ datum/controller/vote var/text if(winners.len > 0) if(winners.len > 1) - if(mode != "gamemode" || hide_mode == 0) // Here we are making sure we don't announce potential game modes + if(mode != "gamemode" || ticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes text = "Vote Tied Between:\n" for(var/option in winners) text += "\t[option]\n" @@ -127,7 +126,7 @@ datum/controller/vote for(var/key in current_votes) if(choices[current_votes[key]] == .) round_voters += key // Keep track of who voted for the winning round. - if((mode == "gamemode" && . == "extended") || hide_mode == 0) // Announce Extended gamemode, but not other gamemodes + if((mode == "gamemode" && . == "extended") || ticker.hide_mode == 0) // Announce Extended gamemode, but not other gamemodes text += "Vote Result: [.]" else if(mode != "gamemode") diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index acbccd7f14e..35ca983d8ec 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -5,7 +5,6 @@ var/spawning = 0//Referenced when you want to delete the new_player later on in the code. var/totalPlayers = 0 //Player counts for the Lobby tab var/totalPlayersReady = 0 - var/hide_mode = 1 universal_speak = 1 invisibility = 101 @@ -75,7 +74,7 @@ if(ticker.hide_mode) stat("Game Mode:", "Secret") else - if(hide_mode == 0) + if(ticker.hide_mode == 0) stat("Game Mode:", "[master_mode]") // Old setting for showing the game mode else stat("Game Mode: ", "Secret") From 97af25119c7ebc65b43812ab112f4c26b63d764d Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Fri, 23 Aug 2013 07:09:40 -0700 Subject: [PATCH 033/226] Removed unnecessary second check. --- code/modules/mob/new_player/new_player.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 8084de6f4b1..c24123c8f6e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -76,8 +76,6 @@ else if(ticker.hide_mode == 0) stat("Game Mode:", "[master_mode]") // Old setting for showing the game mode - else - stat("Game Mode: ", "Secret") if((ticker.current_state == GAME_STATE_PREGAME) && going) stat("Time To Start:", ticker.pregame_timeleft) From e634cd01f2bb9eeb5e62538afca16261ac70beee Mon Sep 17 00:00:00 2001 From: Kilakk Date: Fri, 23 Aug 2013 14:21:08 -0400 Subject: [PATCH 034/226] Fixes #3517 --- code/game/gamemodes/autotraitor/autotraitor.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index de795b19222..a6da766b4e7 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -124,7 +124,12 @@ //message_admins("[newtraitor.real_name] is the new Traitor.") forge_traitor_objectives(newtraitor.mind) - equip_traitor(newtraitor) + + if(istype(newtraitor, /mob/living/silicon)) + add_law_zero(newtraitor) + else + equip_traitor(newtraitor) + traitors += newtraitor.mind newtraitor << "\red ATTENTION: \black It is time to pay your debt to the Syndicate..." newtraitor << "You are now a traitor." From 63cf0cb303e6673fcaefb1bc07b6fb81bd2e38f2 Mon Sep 17 00:00:00 2001 From: meyar Date: Fri, 23 Aug 2013 20:38:45 -0400 Subject: [PATCH 035/226] Adds a pair of fire lockers to the Emergency Closets. Adds some missing hazard doors missed during the first pass. --- maps/tgstation2.dmm | 292 ++++++++++++++++++++++---------------------- 1 file changed, 147 insertions(+), 145 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index ce389506178..ec7bfcc27e0 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -2328,7 +2328,7 @@ "aSN" = (/obj/structure/table,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/turf/simulated/floor,/area/storage/art) "aSO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/storage/art) "aSP" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Art Storage"; pixel_x = 27; pixel_y = 2},/turf/simulated/floor,/area/storage/art) -"aSQ" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) +"aSQ" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/closet/hydrant{pixel_x = -32},/turf/simulated/floor/plating,/area/storage/emergency2) "aSR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/storage/emergency2) "aSS" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/emergency2) "aST" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency2) @@ -2405,7 +2405,7 @@ "aUm" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency2) "aUn" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency2) "aUo" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/storage/emergency2) -"aUp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/storage/emergency2) +"aUp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) "aUq" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/storage/tools) "aUr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aUs" = (/turf/simulated/wall,/area/hallway/primary/central) @@ -3231,7 +3231,7 @@ "bkg" = (/obj/machinery/optable,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bkh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bki" = (/obj/structure/morgue{icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bkj" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/storage/emergency) +"bkj" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/closet/hydrant{pixel_x = -32},/turf/simulated/floor/plating,/area/storage/emergency) "bkk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/storage/emergency) "bkl" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency) "bkm" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency) @@ -8852,9 +8852,9 @@ "dol" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) "dom" = (/obj/structure/transit_tube{icon_state = "W-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) "don" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/mineral,/area/mine/unexplored) -"doo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/hallway) -"dop" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/hallway) -"doq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"doo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dop" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_outer"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"doq" = (/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},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "dor" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "NE-SW"},/turf/space,/area) "dos" = (/obj/structure/transit_tube{icon_state = "D-NW"},/obj/structure/lattice,/turf/space,/area) "dot" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) @@ -8865,7 +8865,7 @@ "doy" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "doz" = (/obj/structure/transit_tube/station,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "doA" = (/obj/structure/transit_tube,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) -"doB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/transit_tube,/turf/simulated/floor/plating,/area/research_outpost/hallway) +"doB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "doC" = (/obj/structure/transit_tube,/obj/structure/lattice,/turf/space,/area) "doD" = (/obj/structure/transit_tube{icon_state = "W-SE"},/obj/structure/lattice,/turf/space,/area) "doE" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area) @@ -8934,9 +8934,9 @@ "dpP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/research_outpost/hallway) "dpQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/research_outpost/hallway) "dpR" = (/turf/simulated/wall/r_wall,/area/research_outpost/atmos) -"dpS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dpT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dpU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dpS" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_inner"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 1; icon_state = "intact-c-f"; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/research_outpost/gearstore) +"dpT" = (/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},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dpU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "dpV" = (/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/mine/abandoned) "dpW" = (/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/mine/abandoned) "dpX" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) @@ -8966,7 +8966,7 @@ "dqv" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/research_outpost/atmos) "dqx" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/atmos) -"dqy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dqy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "dqz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "dqA" = (/turf/simulated/floor,/area/mine/abandoned) "dqB" = (/obj/machinery/anomaly/gas_chromatography,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/spectro) @@ -9047,8 +9047,8 @@ "drY" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos) "drZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2; name = "pipe manifold"},/obj/machinery/atmospherics/pipe/manifold4w{color = "blue"; icon_state = "manifold4w-b"; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dsa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b"; initialize_directions = 11; level = 2; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dsb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dsc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area) +"dsb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dsc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dsd" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/simulated/floor/plating/airless,/area/shuttle/alien/mine) "dse" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/alien/mine) "dsf" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/alien/mine) @@ -9112,8 +9112,8 @@ "dtl" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/mine/abandoned) "dtm" = (/obj/item/stack/rods,/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dtn" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"dto" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/hallway) -"dtp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/research_outpost/hallway) +"dto" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dtp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "dtq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/research_outpost/hallway) "dtr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/research_outpost/hallway) "dts" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/research_outpost/hallway) @@ -9142,7 +9142,7 @@ "dtP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "dtQ" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dtR" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dtS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dtS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) "dtT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/hallway) "dtU" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/research_outpost/hallway) "dtV" = (/obj/structure/table,/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -9175,7 +9175,7 @@ "duw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dux" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "duy" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"duz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/hallway) +"duz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/research_outpost/hallway) "duA" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/wood,/area/research_outpost/hallway) "duB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/wood,/area/research_outpost/hallway) "duC" = (/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -9195,7 +9195,7 @@ "duQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "duR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "duS" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power) -"duT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/research_outpost/power) +"duT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "duU" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) "duV" = (/obj/machinery/mass_driver{dir = 4; id = "research"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) "duW" = (/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) @@ -9230,7 +9230,7 @@ "dvz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) "dvA" = (/obj/machinery/conveyor_switch{id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power) "dvB" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/research_outpost/power) -"dvC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/research_outpost/power) +"dvC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dvD" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dvE" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/clothing/suit/space/syndicate,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dvF" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) @@ -9241,11 +9241,11 @@ "dvK" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dvL" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/plating,/area/mine/abandoned) "dvM" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/research_outpost/entry) -"dvN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) -"dvO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) -"dvP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) -"dvQ" = (/obj/machinery/door/airlock/external{name = "Research Outpost Dock Airlock"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) -"dvR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dvN" = (/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},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dvO" = (/obj/machinery/door/airlock/external{name = "Research Outpost Dock Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dvP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dvQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dvR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dvS" = (/obj/structure/sign/science,/turf/simulated/wall,/area/research_outpost/entry) "dvT" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/entry) "dvU" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) @@ -9274,12 +9274,12 @@ "dwr" = (/obj/effect/gibspawner/robot,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dws" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dwt" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned) -"dwu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dwu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/harvesting) "dwv" = (/obj/machinery/computer/research_shuttle,/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dww" = (/turf/simulated/floor,/area/research_outpost/entry) "dwx" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/entry) "dwy" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/entry) -"dwz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dwz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dwA" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/research_outpost/entry) "dwB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/research_outpost/entry) "dwC" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) @@ -9305,7 +9305,7 @@ "dwW" = (/obj/structure/transit_tube{icon_state = "W-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dwX" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dwY" = (/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) -"dwZ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/research_outpost/harvesting) +"dwZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dxa" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dxb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dxc" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -9315,7 +9315,7 @@ "dxg" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/mine/abandoned) "dxh" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dxi" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dxj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "N-SE"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dxj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dxk" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dxl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/entry) "dxm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/research_outpost/entry) @@ -9367,11 +9367,11 @@ "dyg" = (/obj/structure/table,/turf/simulated/floor,/area/mine/abandoned) "dyh" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/abandoned) "dyi" = (/obj/structure/rack,/turf/simulated/floor,/area/mine/abandoned) -"dyj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dyj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dyk" = (/obj/structure/transit_tube{icon_state = "S-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/entry) "dyl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor,/area/research_outpost/entry) "dym" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Research Outpost Shuttle Dock"; dir = 8; network = list("Research","SS13")},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/research_outpost/entry) -"dyn" = (/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/research_outpost/entry) +"dyn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dyo" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/entry) "dyp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/research_outpost/entry) "dyq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 6; icon_state = "intact-b-f"; initialize_directions = 6; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/entry) @@ -9414,13 +9414,13 @@ "dzb" = (/obj/structure/table,/turf/simulated/floor/airless,/area/mine/abandoned) "dzc" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dzd" = (/turf/simulated/mineral,/area/mine/explored) -"dze" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) +"dze" = (/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},/turf/simulated/floor/plating,/area/research_outpost/entry) "dzf" = (/obj/structure/transit_tube/station{icon_state = "closed"; dir = 4},/obj/structure/transit_tube_pod,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/entry) "dzg" = (/obj/machinery/hologram/holopad,/obj/machinery/light,/turf/simulated/floor{icon_state = "bluecorner"},/area/research_outpost/entry) "dzh" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/research_outpost/entry) "dzi" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/research_outpost/entry) "dzj" = (/obj/structure/cable,/obj/structure/table,/obj/machinery/power/apc{dir = 0; name = "Outpost Shuttle Dock APC"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/research_outpost/entry) -"dzk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dzk" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dzl" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/entry) "dzm" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/research_outpost/entry) "dzn" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/research_outpost/entry) @@ -9455,7 +9455,7 @@ "dzQ" = (/turf/simulated/wall,/area/mine/unexplored) "dzR" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area) "dzS" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall,/area/research_outpost/entry) -"dzT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SW"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dzT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dzU" = (/turf/simulated/wall,/area/research_outpost/entry) "dzV" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/entry) "dzW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) @@ -9498,7 +9498,7 @@ "dAH" = (/obj/structure/closet/excavation,/turf/simulated/floor,/area/research_outpost/gearstore) "dAI" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dAJ" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/turf/simulated/floor,/area/research_outpost/gearstore) -"dAK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dAK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dAL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/research_outpost/gearstore) "dAM" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "dAN" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9540,7 +9540,7 @@ "dBx" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/unexplored) "dBy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "dBz" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore) -"dBA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dBA" = (/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},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dBB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "dBC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/gearstore) "dBD" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Expedition Area APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/camera{c_tag = "Research Outpost Expedition Prep"; dir = 8; network = list("Research","SS13")},/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9609,7 +9609,7 @@ "dCO" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dCP" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dCQ" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/mine/explored) -"dCR" = (/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/research_outpost/gearstore) +"dCR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dCS" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor,/area/research_outpost/gearstore) "dCT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dCU" = (/obj/structure/table,/obj/item/weapon/storage/box/excavation,/obj/item/weapon/pickaxe,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/obj/item/weapon/wrench,/obj/item/device/measuring_tape,/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9640,7 +9640,7 @@ "dDt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/mine/explored) "dDu" = (/obj/machinery/suspension_gen,/turf/simulated/floor,/area/research_outpost/gearstore) "dDv" = (/obj/machinery/floodlight,/turf/simulated/floor,/area/research_outpost/gearstore) -"dDw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dDw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area) "dDx" = (/obj/machinery/atmospherics/portables_connector{dir = 2},/obj/machinery/portable_atmospherics/canister/air,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window{dir = 4; name = "Air Tank Access"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor,/area/research_outpost/gearstore) "dDy" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "research_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor,/area/research_outpost/gearstore) "dDz" = (/obj/structure/table,/obj/item/weapon/storage/box/excavation,/obj/item/weapon/pickaxe,/obj/item/weapon/wrench,/obj/item/device/measuring_tape,/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9669,11 +9669,11 @@ "dDW" = (/obj/machinery/door/window/westleft,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "dDX" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/explored) "dDY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area) -"dDZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/gearstore) -"dEa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dDZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dEa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/research_outpost/hallway) "dEb" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 1; icon_state = "intact-c-f"; level = 1},/turf/simulated/wall,/area/research_outpost/gearstore) -"dEc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/research_outpost/gearstore) -"dEd" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_inner"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 1; icon_state = "intact-c-f"; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore) +"dEc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dEd" = (/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},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dEe" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored) "dEf" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "dEg" = (/obj/structure/transit_tube{icon_state = "E-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) @@ -9719,7 +9719,7 @@ "dEU" = (/turf/space,/area/mine/unexplored) "dEV" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "dEW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) -"dEX" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_outer"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dEX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dEY" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored) "dEZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 0; pixel_y = -32},/obj/machinery/door/window/westleft,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "dFa" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/explored) @@ -9810,16 +9810,16 @@ "dGH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/mine/living_quarters) "dGI" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) "dGJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) -"dGK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dGK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/transit_tube,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dGL" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dGM" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost) "dGN" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) -"dGO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dGO" = (/obj/structure/transit_tube,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dGP" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/west_outpost) "dGQ" = (/turf/simulated/floor/mech_bay_recharge_floor{icon_state = "recharge_floor_asteroid"},/area/mine/west_outpost) "dGR" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/west_outpost) "dGS" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters) -"dGT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dGT" = (/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},/turf/simulated/floor/plating,/area/mine/production) "dGU" = (/turf/simulated/wall,/area/mine/west_outpost) "dGV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) "dGW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) @@ -9828,22 +9828,22 @@ "dGZ" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHa" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHb" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) -"dHc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dHd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) -"dHe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dHc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dHd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dHe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/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/mine/west_outpost) "dHf" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor,/area/mine/west_outpost) "dHg" = (/turf/simulated/floor,/area/mine/west_outpost) "dHh" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor,/area/mine/west_outpost) -"dHi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHj" = (/obj/machinery/recharge_station,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/west_outpost) "dHk" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/mine/west_outpost) "dHl" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "dHm" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "dHn" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) -"dHo" = (/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/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHo" = (/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/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHp" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_west_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "dHq" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) -"dHr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dHs" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHt" = (/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHu" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9854,16 +9854,16 @@ "dHz" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor,/area/mine/living_quarters) "dHA" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/eva) "dHB" = (/turf/simulated/wall,/area/mine/eva) -"dHC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/eva) -"dHD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/eva) +"dHC" = (/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},/turf/simulated/floor/plating,/area/mine/eva) +"dHD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dHE" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor,/area/mine/west_outpost) "dHF" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/west_outpost) -"dHG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/west_outpost) "dHI" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor,/area/mine/west_outpost) -"dHJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/west_outpost) +"dHJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/west_outpost) "dHK" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) -"dHL" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHL" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHM" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "dHN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHO" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9877,7 +9877,7 @@ "dHW" = (/obj/machinery/light,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dHX" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/mine/west_outpost) "dHY" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) -"dHZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dIa" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "mining_west_pump"; exterior_door_tag = "mining_west_outer"; frequency = 1379; id_tag = "mining_west_airlock"; interior_door_tag = "mining_west_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; sensor_tag = "mining_west_sensor"},/turf/simulated/floor,/area/mine/west_outpost) "dIb" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) "dIc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9890,37 +9890,37 @@ "dIj" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor,/area/mine/living_quarters) "dIk" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/living_quarters) "dIl" = (/turf/simulated/wall,/area/mine/production) -"dIm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/production) -"dIn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/production) +"dIm" = (/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/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dIn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dIo" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/mine/eva) "dIp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/eva) "dIq" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor,/area/mine/eva) "dIr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/mine/eva) "dIs" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/mine/west_outpost) "dIt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/mine/west_outpost) -"dIu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dIu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dIv" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor,/area/mine/west_outpost) "dIw" = (/obj/machinery/atmospherics/pipe/manifold{dir = 2},/turf/simulated/floor,/area/mine/west_outpost) "dIx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/mine/west_outpost) -"dIy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dIz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dIy" = (/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},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dIz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dIA" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/mine/living_quarters) "dIB" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor,/area/mine/living_quarters) -"dIC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) -"dID" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dIE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/production) +"dIC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dID" = (/obj/structure/grille,/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/mine/living_quarters) +"dIE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dIF" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/mine/production) "dIG" = (/turf/simulated/floor,/area/mine/production) "dIH" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor,/area/mine/production) -"dII" = (/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/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/eva) +"dII" = (/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/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dIJ" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/eva) "dIK" = (/turf/simulated/floor,/area/mine/eva) "dIL" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/eva) "dIM" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/eva) -"dIN" = (/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/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/eva) +"dIN" = (/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/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dIO" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_east_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/eva) "dIP" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva) -"dIQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/eva) +"dIQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dIR" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/mine/west_outpost) "dIS" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/mine/west_outpost) "dIT" = (/obj/machinery/power/apc{dir = 2; name = "Mining West Outpost APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/west_outpost) @@ -9931,7 +9931,7 @@ "dIY" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "dIZ" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "dJa" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) -"dJb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dJb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dJc" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "dJd" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "dJe" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) @@ -9940,22 +9940,22 @@ "dJh" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/mine/living_quarters) "dJi" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/living_quarters) "dJj" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/mine/living_quarters) -"dJk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dJk" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dJl" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/living_quarters) "dJm" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters) "dJn" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production) -"dJo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/production) -"dJp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/production) +"dJo" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/eva) +"dJp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dJq" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/mine/production) "dJr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/mine/production) "dJs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/production) "dJt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/eva) "dJu" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/mine/eva) "dJv" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor,/area/mine/eva) -"dJw" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/eva) +"dJw" = (/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/mine/production) "dJx" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/eva) "dJy" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva) -"dJz" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/mine/eva) +"dJz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dJA" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "dJB" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost) "dJC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost) @@ -9978,12 +9978,12 @@ "dJT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/mine/production) "dJU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/mine/production) "dJV" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/production) -"dJW" = (/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/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva) +"dJW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dJX" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/turf/simulated/floor,/area/mine/eva) "dJY" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plating,/area/mine/eva) "dJZ" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva) "dKa" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor,/area/mine/eva) -"dKb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/eva) +"dKb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dKc" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "mining_east_pump"; exterior_door_tag = "mining_east_outer"; frequency = 1379; id_tag = "mining_east_airlock"; interior_door_tag = "mining_east_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; sensor_tag = "mining_east_sensor"},/turf/simulated/floor,/area/mine/eva) "dKd" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_east_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva) "dKe" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost) @@ -10000,15 +10000,15 @@ "dKp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/light,/turf/simulated/floor,/area/mine/living_quarters) "dKq" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor,/area/mine/living_quarters) "dKr" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/mine/living_quarters) -"dKs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dKt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dKu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dKs" = (/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/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) +"dKt" = (/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/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) +"dKu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dKv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/space,/area/mine/living_quarters) "dKw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/space,/area/mine/production) "dKx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production) -"dKy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/production) -"dKz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/production) -"dKA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/production) +"dKy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dKz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dKA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dKB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production) "dKC" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production) "dKD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production) @@ -10021,15 +10021,15 @@ "dKK" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "dKL" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) "dKM" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) -"dKN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dKN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dKO" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dKP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) "dKQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters) "dKR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters) -"dKS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/living_quarters) -"dKT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters) -"dKU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dKV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/production) +"dKS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dKT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dKU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dKV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/living_quarters) "dKW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/mine/production) "dKX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/production) "dKY" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/wall,/area/mine/production) @@ -10069,7 +10069,7 @@ "dLG" = (/turf/space,/area/shuttle/mining/outpost) "dLH" = (/obj/machinery/power/apc{dir = 8; name = "Mining Station Starboard Wing APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/mine/production) "dLI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/mine/production) -"dLJ" = (/obj/machinery/mineral/input,/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/mine/production) +"dLJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dLK" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dLL" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dLM" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) @@ -10077,18 +10077,18 @@ "dLO" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) "dLP" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/living_quarters) "dLQ" = (/obj/machinery/atmospherics/pipe/manifold,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters) -"dLR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dLR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dLS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/mine/production) "dLT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production) "dLU" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Airlock"; dir = 8; network = list("MINE")},/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/mine/production) -"dLV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) +"dLV" = (/obj/machinery/mineral/input,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/mine/production) "dLW" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dLX" = (/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "dLY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "dLZ" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "dMa" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"dMb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/production) -"dMc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/floor/plating,/area/mine/production) +"dMb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dMc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dMd" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/mine/production) "dMe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/mine/production) "dMf" = (/obj/structure/closet/crate,/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor,/area/mine/production) @@ -10097,17 +10097,17 @@ "dMi" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/mine/production) "dMj" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/mine/production) "dMk" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/mine/production) -"dMl" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) +"dMl" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dMm" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station External APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "dMn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "dMo" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) -"dMp" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/production) -"dMq" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/turf/simulated/floor,/area/mine/production) +"dMp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dMq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dMr" = (/obj/machinery/door/window/westright{name = "Production Area"; req_access_txt = "48"},/turf/simulated/floor,/area/mine/production) "dMs" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/camera{c_tag = "Production Room"; dir = 8; network = list("MINE")},/turf/simulated/floor,/area/mine/production) -"dMt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) +"dMt" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/production) "dMu" = (/obj/machinery/mineral/input,/turf/simulated/floor{icon_state = "loadingarea"},/area/mine/production) -"dMv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/production) +"dMv" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dMw" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production) "dMx" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor,/area/mine/production) "dMy" = (/obj/machinery/door/window/westleft{name = "Production Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production) @@ -10121,15 +10121,15 @@ "dMG" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/mine/production) "dMH" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/production) "dMI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/mine/production) -"dMJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) -"dMK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) -"dML" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) +"dMJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dMK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dML" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dMM" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/mine/production) "dMN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored) "dMO" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/explored) "dMP" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/turf/space,/area) "dMQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/production) -"dMR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) +"dMR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dMS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/mine/production) "dMT" = (/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/mine/production) "dMU" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) @@ -10146,6 +10146,8 @@ "dNf" = (/obj/machinery/camera{c_tag = "Assault Armor North"; dir = 2; network = list("ERT")},/obj/mecha/combat/gygax/dark,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops) "dNg" = (/obj/mecha/medical/odysseus,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops) "dNh" = (/obj/machinery/door/morgue{dir = 2; name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/derelict/medical/chapel) +"dNi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"dNj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11222,37 +11224,37 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnIdoedoedoedoedoedoedoedoeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadogdohdoidoidojdojdojdojdojdokdoldomdondoedoedoedoedoedoedoedoedoedoodopdoqaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadogdordosdoedoedoedoedoedoedotdotdotdoudovdondoedoedoedowdoxdoydoydoydozdoAdoBdoCdoCdoidoDdoEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadogdohdoidoidojdojdojdojdojdokdoldomdondoedoedoedoedoedoedoedoedoedEddEXdEcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadogdordosdoedoedoedoedoedoedotdotdotdoudovdondoedoedoedowdoxdoydoydGOdozdoAdGKdoCdoCdoidoDdoEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoFdosdoedoedoedoedoedoedoedotdoGdoHdoIdoudovdoJdotdoKdoLdoMdoNdoNdoNdoOdoPdoNdoNdoNdoNdoQdoRdoEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdoTdoTdoTdoTdoTdoTdoTdoTdoUdoVdoWdoXdoYdoZdpadpbdpcdpddpedpfdpddpgdoOdpddphdpedoNaafdpidpjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdoedoedpkdpkdpkdpkdoedpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpldpmdpndpodppdpqdprdoTdpsdptdoVdpudpvdpvdpvdpwdpxdpddpydpzdpAdoOdoOdpBdpzdpydoNaafaafdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdoedoedoedoedoedoedpkdpkdoedoedoedoedpkdpkdpkdpkdoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoeaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdpDdpndpEdpFdpGdpHdpIdpJdoTdpKdpKdpKdpKdpLdpvdpMdpNdpOdpddpddpddpddpPdpQdpRdpRdpRdpRdpRdpSdpTdpUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpVdpWdpVaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdoedoedoedpkdpkdoedpkdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpXdpYdpYdpZdqadqbdqcdqddqedqfdqgdqhdqidqjdqkdqldqmdpddqndqodpddqpdqqdqrdqsdqtdqudqvdqwdqxdqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqzdqAdqzaafaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedpkdpkdpkdpkdpkdoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpXdqBdqBdpZdqadqCdqDdoTdqEdqedqFdqGdqHdqIdqJdqKdqLdqMdqNdqOdqPdqQdqRdpRdqSdqTdqUdqVdqWdqXdqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqYdqZdradrbaafaaaaaadoedoedoedoedoedoedoedpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaadogdrcdpDdrddpEdredrfdrgdrhdridoTdrjdqFdrkdrldrmdrndrndrndrodrndrndrndrndrpdrqdpRdrrdqTdrsdrtdrudqxdqyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrvdrwdrwdrxdrydrzdqzaafaaaaaadoedoedoedoedpkdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaafdrAdrBdoCdoCdoCdrCdrDdoTdrEdrFdrGdpodrHdrIdrJdoTdrKdrLdrMdrNdrOdrPdrQdrRdrSdrTdrUdrVdrndrWdrXdpRdrYdrZdsadrtdpRdsbdscaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdoedoedoedoedoedoedpkdpkdoedoedoedoedpkdpkdpkdpkdoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoeaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdpDdpndpEdpFdpGdpHdpIdpJdoTdpKdpKdpKdpKdpLdpvdpMdpNdpOdpddpddpddpddpPdpQdpRdpRdpRdpRdpRdBAdzTdAKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpVdpWdpVaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdoedoedoedpkdpkdoedpkdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpXdpYdpYdpZdqadqbdqcdqddqedqfdqgdqhdqidqjdqkdqldqmdpddqndqodpddqpdqqdqrdqsdqtdqudqvdqwdqxdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqzdqAdqzaafaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedpkdpkdpkdpkdpkdoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpXdqBdqBdpZdqadqCdqDdoTdqEdqedqFdqGdqHdqIdqJdqKdqLdqMdqNdqOdqPdqQdqRdpRdqSdqTdqUdqVdqWdqXdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqYdqZdradrbaafaaaaaadoedoedoedoedoedoedoedpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaadogdrcdpDdrddpEdredrfdrgdrhdridoTdrjdqFdrkdrldrmdrndrndrndrodrndrndrndrndrpdrqdpRdrrdqTdrsdrtdrudqxdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrvdrwdrwdrxdrydrzdqzaafaaaaaadoedoedoedoedpkdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaafdrAdrBdoCdoCdoCdrCdrDdoTdrEdrFdrGdpodrHdrIdrJdoTdrKdrLdrMdrNdrOdrPdrQdrRdrSdrTdrUdrVdrndrWdrXdpRdrYdrZdsadrtdpRdCRdDwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsddsedsfdsgdshdsidsjaafaafdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskdskdskaafdsldrDaafaafaafaafaafdoTdoTdoTdoTdoTdoTdsmdsndoTdpKdpKdsodspdsqdrndsrdssdrSdstdsudsvdrndswdsxdsydszdsAdsBdsCdpRdsDdsEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaadofdofdofdofdofaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsFdrwdrwdsGdsHdrzdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskdskdskaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdpddsKdoOdsLdsMdsNdsOdsPdsQdsRdsSdsTdsUdrndsVdsWdsXdsYdsZdtadtbdtcdtddtedtedtedtfdtgdthdtidtjdtjdtkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaadofdofdofdofdofaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtldtmdtndsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdtodtpdtqdtrdtsdttdtudtvdtwdtxdtydtzdtAdtBdtCdtDdtEdtFdtFdtFdtGdtHdtIdtedtJdtKdtLdtMdtedtNdsEdsEdsEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtOdtPdtQdtRdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdtSdtTdtUdtVdtWdtXdtYdtZduadubdoNducduddrnduedufdugduhduidujdrndukduldumdundunduodupduqdurdusdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafduuduvduwdsIduxduydsIdsIdsIdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJduzdtTdoOdtVduAduBduCduDduEduFdoNduGduHdrnduIdrnduJduKduLduMdrnduNduOdteduPduQduRduSduTduUduVduWduWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafduXduYduZdvadvbdvcdpVdsidvddsIdvedvfdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdpddtTdoOdvgdvhdvidvjdvkdvldvmdoNdvndvodvpdvqdrndvrdvsdvtdvudrndvvdvwdvxdvydvzdvAdvBdvCduUdutdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvDdvEduYdvFdvGdvHdvIdvJdvddvKdvfdvLdvedsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadvMdvNdvOdvPdvQdvNdvOdvRdvSdvTdvUdpddvVdpddoNdoNdoNdoNdoNdvWdvXdvYdvqdrndvZdwadwbdwcdrndwddwedwfdwgdwhdwidwjdwkdwldwmdoNdwndrBdoCdoCdoCdoCdoCdoCdoDdwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwpdvDdwqdvDduZduZduxdwrdvGdsIdtRdwsdsIdvfdwtdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadwudwvdwwdwwdwxdwydwydwzdwAdwBdwydwCdwDdwEdwFdwGdwHdwIdwJdwKdwLdwMdwNdrndrndwOdwPdrndrndwQdwRdtedtedwSdtedtedtedwTdwUdwVdwWdwXdwYdwYdwZdwYdwYdwYdxadpjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdxbdxcduZdxddxeduZdtndxfdvHdxgdxhdxidsIdsIdsIdsIdsIdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaadxjdxkdwwdwwdxldwwdxmdxndxodxpdxqdxrdxsdxtdwFdxudxvdxwdxxdxydxzdxAdxBdxCdxDdxEdxFdxGdxHdxIdxJdxKdxLdxMdxNdxKdxOdxKdxHdxPdxQdxRdxSdxTdxUdxVdxWdxXdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdxYdxZdyaduZdxedybdvFdycdvGdyddsIdyedyfdsIdygdvddyhdyidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaadyjdykdwwdwwdyldwwdymdyndyodypdyqdyrdysdytdwFdyudyvdywdyxdyydyzdyAdyBdyCdyDdyEdyFdyGdyHdyEdyFdyIdyJdyEdyIdyKdyLdyMdyNdyOdyPdyQdyRdySdyTdyUdyUdyVdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdpkdpkdsIdvcdyWdyXdyYdyadyZdzadvHdzbdpVdsidzcdsIdygdtRdvddyidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedzddzddzddzddzddzddoedoedoedoedoedoedoeaaaaaaaaaaaadzedzfdwwdzgdzhdzidzjdzkdzldzmdzndzodzpdzqdwFdyudwGdzrdzsdzsdzsdztdzudzvdzwdzxdzvdzydzzdzAdzydzBdzCdzDdzBdzBdzEdzFdzGdzHdwYdzIdzJdwYdzKdyUdyUdzLdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdsIdsIdsIdsIdsIdsIdvbdvGdzMdyWdvGdxfdzNdzbdzbdvJdvddyedsIdygdtndzOdyidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzddzPdzPdzPdzPdzddzddzddoedoedoedoedzQdzRaaaaaaaaadzSdzTdvOdvPdzUdzUdzUdzUdzVdzWdzXdpddpddpddwFdzYdzsdzZdzsdAadAbdAcdAddzvdAedAfdAgdzydAhdAidAjdzBdAkdAldAmdzBdAndAodzGdApdAqdwYdwYdwYdArdAsdAtdxXdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdsIdAudsidvHdAvdsIdAwdAxdAydsIdxgdsIdAzdAAdABdsIdsidACdqAdADdtndtQdqAdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedAEdAFdoCdoCdoCdoCdrCdrDaafaafdAGdAHdAIdAJdAKdALdAMdANdAOdAPdAQdARdASdATdAUdAVdAWdAXdAYdAZdBadBbdBcdzydBddBedBfdzBdBgdBhdBidzBdBjdBkdBldBmdBndBodBpdwYdwYdwYdwYdwYdBqdrcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdsIdAudtndsidvFdxgdACdyWdBrdyWdBsdsidsidBtdvddsidtndtndsIdqAdBudtndsidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddBvdBwdBxdoeaaaaaaaaaaaaaaaaaaaafdAGdAHdBydBzdBAdBBdBCdBDdBEdBEdBFdwFdzsdzZdzsdBGdzsdBHdBIdBJdzvdBKdzvdzydzydBLdzydzBdzBdBMdzBdzBdBNdBOdBPdBQdBRdBRdBSdAqdBTdohdoCdoCdBUdBVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtldtmdtndsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdDZdEadtqdtrdtsdttdtudtvdtwdtxdtydtzdtAdtBdtCdtDdtEdtFdtFdtFdtGdtHdtIdtedtJdtKdtLdtMdtedtNdsEdsEdsEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtOdtPdtQdtRdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdvCduzdtUdtVdtWdtXdtYdtZduadubdoNducduddrnduedufdugduhduidujdrndukduldumdundunduodupduqdurdusdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafduuduvduwdsIduxduydsIdsIdsIdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJduTduzdoOdtVduAduBduCduDduEduFdoNduGduHdrnduIdrnduJduKduLduMdrnduNduOdteduPduQduRduSdtSduUduVduWduWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafduXduYduZdvadvbdvcdpVdsidvddsIdvedvfdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdpddtTdoOdvgdvhdvidvjdvkdvldvmdoNdvndvodvpdvqdrndvrdvsdvtdvudrndvvdvwdvxdvydvzdvAdvBdvQduUdutdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvDdvEduYdvFdvGdvHdvIdvJdvddvKdvfdvLdvedsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadvMdvNdsbdtodvOdvNdsbdvPdvSdvTdvUdpddvVdpddoNdoNdoNdoNdoNdvWdvXdvYdvqdrndvZdwadwbdwcdrndwddwedwfdwgdwhdwidwjdwkdwldwmdoNdwndrBdoCdoCdoCdoCdoCdoCdoDdwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwpdvDdwqdvDduZduZduxdwrdvGdsIdtRdwsdsIdvfdwtdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadwzdwvdwwdwwdwxdwydwydwZdwAdwBdwydwCdwDdwEdwFdwGdwHdwIdwJdwKdwLdwMdwNdrndrndwOdwPdrndrndwQdwRdtedtedwSdtedtedtedwTdwUdwVdwWdwXdwYdwYdwudwYdwYdwYdxadpjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdxbdxcduZdxddxeduZdtndxfdvHdxgdxhdxidsIdsIdsIdsIdsIdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaadvRdxkdwwdwwdxldwwdxmdxndxodxpdxqdxrdxsdxtdwFdxudxvdxwdxxdxydxzdxAdxBdxCdxDdxEdxFdxGdxHdxIdxJdxKdxLdxMdxNdxKdxOdxKdxHdxPdxQdxRdxSdxTdxUdxVdxWdxXdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdxYdxZdyaduZdxedybdvFdycdvGdyddsIdyedyfdsIdygdvddyhdyidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoeaaaaaaaaaaaaaaadyndykdwwdwwdyldwwdymdzedyodypdyqdyrdysdytdwFdyudyvdywdyxdyydyzdyAdyBdyCdyDdyEdyFdyGdyHdyEdyFdyIdyJdyEdyIdyKdyLdyMdyNdyOdyPdyQdyRdySdyTdyUdyUdyVdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdpkdpkdsIdvcdyWdyXdyYdyadyZdzadvHdzbdpVdsidzcdsIdygdtRdvddyidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedzddzddzddzddzddzddoedoedoedoedoedoedoeaaaaaaaaaaaadyjdzfdwwdzgdzhdzidzjdxjdzldzmdzndzodzpdzqdwFdyudwGdzrdzsdzsdzsdztdzudzvdzwdzxdzvdzydzzdzAdzydzBdzCdzDdzBdzBdzEdzFdzGdzHdwYdzIdzJdwYdzKdyUdyUdzLdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdsIdsIdsIdsIdsIdsIdvbdvGdzMdyWdvGdxfdzNdzbdzbdvJdvddyedsIdygdtndzOdyidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzddzPdzPdzPdzPdzddzddzddoedoedoedoedzQdzRaaaaaaaaadzSdscdsbdtodzUdzUdzUdzUdzVdzWdzXdpddpddpddwFdzYdzsdzZdzsdAadAbdAcdAddzvdAedAfdAgdzydAhdAidAjdzBdAkdAldAmdzBdAndAodzGdApdAqdwYdwYdwYdArdAsdAtdxXdwYdpCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdsIdAudsidvHdAvdsIdAwdAxdAydsIdxgdsIdAzdAAdABdsIdsidACdqAdADdtndtQdqAdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedAEdAFdoCdoCdoCdoCdrCdrDaafaafdAGdAHdAIdAJdtpdALdAMdANdAOdAPdAQdARdASdATdAUdAVdAWdAXdAYdAZdBadBbdBcdzydBddBedBfdzBdBgdBhdBidzBdBjdBkdBldBmdBndBodBpdwYdwYdwYdwYdwYdBqdrcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdsIdAudtndsidvFdxgdACdyWdBrdyWdBsdsidsidBtdvddsidtndtndsIdqAdBudtndsidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddBvdBwdBxdoeaaaaaaaaaaaaaaaaaaaafdAGdAHdBydBzdqydBBdBCdBDdBEdBEdBFdwFdzsdzZdzsdBGdzsdBHdBIdBJdzvdBKdzvdzydzydBLdzydzBdzBdBMdzBdzBdBNdBOdBPdBQdBRdBRdBSdAqdBTdohdoCdoCdBUdBVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdsIdAudBWdtndtndxgdtndzOduxdtndBXdBsdzOdzcdBYdtndBZdtRdsIdyWdqAdACdsidsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddCadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdCbdzddCcdCddzddzdaaaaaaaaaaaaaaaaaaaafdAGdAHdCedCfdCgdCfdChdCidCjdBEdCkdwFdCldCmdCndCodzsdCpdCqdCrdCsdCtdCudCvdCwdCxdCydCzdCAdCBdCCdzBdCDdCEdAqdCFdCGdCFdCGdAqdCHdCIdpkaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdsIdAudCJdvFdvbdsIdCKdsIdCLdCMdsIdvHdsIdCLdCMdsIdvGdACdsIdBtdCNdqAdyedsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddCOdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdCPdCadCQdCadzdaaaaaaaaaaaaaaaaaaaaaaafdAGdCidCidCidCRdCSdCTdCidCUdBEdCVdwFdCWdCWdCWdCWdzsdCXdCYdzvdCZdDadDbdzydDcdDddDedzBdDfdDgdDhdzBdDidDjdDkdAqdAqdAqdAqdDldDmdoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdsIdsIdsIdsIdsIdsIdCKdsIdDndvddvHdyedtRdvGdyZdvGdxidvFdsIdCLdDodDpdDqdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddCbdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdDrdDsdDtaaaaaaaaaaaaaaaaaaaaaaafaafdAGdDudDvdDvdDwdDxdCidDydDzdBEdDAdwFdzPdzPdzPdzPdzsdDBdDCdzvdDDdDEdDFdzydDGdDHdDIdzBdDJdDKdDLdzBdDMdDNdDkdoedpkdoedDOdDPdDQdoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdvddyedDRdxfdrzdvFdvddsIdvGdtRdsIdDSdDTdDTdDUdsIdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdDWdDXdDYaaaaaaaaaaaaaaaaaaaafaafaafdAGdAGdDZdEadAGdEbdEcdEddEcdAGdEedzPdzPdzPdzPdzPdzsdzsdzsdzvdzvdzvdzvdzydzydzydzydzBdzBdzBdzBdzBdDkdDkdEfdEgdoydoydEhdCIdoedoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdsIdAudCJdvFdvbdsIdCKdsIdCLdCMdsIdvHdsIdCLdCMdsIdvGdACdsIdBtdCNdqAdyedsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddCOdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdCPdCadCQdCadzdaaaaaaaaaaaaaaaaaaaaaaafdAGdCidCidCidpTdCSdCTdCidCUdBEdCVdwFdCWdCWdCWdCWdzsdCXdCYdzvdCZdDadDbdzydDcdDddDedzBdDfdDgdDhdzBdDidDjdDkdAqdAqdAqdAqdDldDmdoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdsIdsIdsIdsIdsIdsIdCKdsIdDndvddvHdyedtRdvGdyZdvGdxidvFdsIdCLdDodDpdDqdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddCbdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdDrdDsdDtaaaaaaaaaaaaaaaaaaaaaaafaafdAGdDudDvdDvdpUdDxdCidDydDzdBEdDAdwFdzPdzPdzPdzPdzsdDBdDCdzvdDDdDEdDFdzydDGdDHdDIdzBdDJdDKdDLdzBdDMdDNdDkdoedpkdoedDOdDPdDQdoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdvddyedDRdxfdrzdvFdvddsIdvGdtRdsIdDSdDTdDTdDUdsIdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdDWdDXdDYaaaaaaaaaaaaaaaaaaaafaafaafdAGdAGdoqdoBdAGdEbdoodpSdoodAGdEedzPdzPdzPdzPdzPdzsdzsdzsdzvdzvdzvdzvdzydzydzydzydzBdzBdzBdzBdzBdDkdDkdEfdEgdoydoydEhdCIdoedoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdyedsidxidvddvGdtRdxidsIdCKdsIdsIdygdqAdDTdEidEjdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEkdEldEmaaaaaaaaaaaaaaaaafdEndEodEpdEqdErdEsdEtdEudEvdEwdExdEydAGdEedzPdzPdzPdzPdzPdEzdEAdEBdoedoedoedoedoedoedoedoedoedoedoedoedoedoedowdECdCIdEDdoedoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdsIdsIdsIdsIdsIdsIdsIdsIdCKdsIdygdqAdyhdqAdDUdEEdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEFdEGdEHdEIdEIdEIdEIdEIdEIdEJdEKdELdEMdEMdENdEOdEOdAGdEPdEQdERdAGdEedzPdzPdzPdzPdzPdDWdEldESdoedoedpkdpkdpkdpkdpkdpkdoedoedoedoedoedowdECdCIdETdDVdETdoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUaaaaaaaaaaaaaaadEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdsIdygdyhdyhdyhdyidsIdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEVdEWdEWdEWdEWdEWdEWdEWdEWdEVdzPdzPdzPdzPdzPdzPdAGdEcdEXdEcdAGdEYdzPdzPdzPdzPdzPdEZdFadFbdoydoydoydoydFcdoydoydoydoydoydFddFedFfdFgdCIdDVdDVdDVdETdzQdoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUaaaaaaaaaaaaaaadEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdsIdygdyhdyhdyhdyidsIdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEVdEWdEWdEWdEWdEWdEWdEWdEWdEVdzPdzPdzPdzPdzPdzPdAGdoodopdoodAGdEYdzPdzPdzPdzPdzPdEZdFadFbdoydoydoydoydFcdoydoydoydoydoydFddFedFfdFgdCIdDVdDVdDVdETdzQdoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdDqdFhdFidsIdsIdDVdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEFdELdFjdFkdFkdFkdFkdFkdFkdFkdEFdELdzPdzPdzPdzPdzPdzPdFldFmdFndFodFpdFqdzPdzPdzPdzPdEBdEBdEBdoedoedpkdpkdpkdpkdpkdpkdpkdpkdFrdFsdFtdFudDVdETdDVdDVdETdoedoedoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdDVdDVdDVdsIdDTdDTdyhdsIdDVdDVdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddzddzddzddzddzddzPdzPdzPdzPdzPdzPdFldFvdFndzPdzPdzPdzddzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdzQdETdDVdFwdDVdETdDVdDVdDVdoedoedoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdDVdDVdDVdsIdFxdFydFxdsIdDVdDVdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddoedoedoedoedzddzddzddzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdzQdpkdDVdEDdpkdoedpkdpkdoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11351,28 +11353,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdoedoedzddzddzPdzPdzPdEUdEUdEUdEUdEUdEUdEUdFWdFXdFZdEUdzPdzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGxdGudGydpkdGvdGzdGAdGvdGBdGvdzddzddoedoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdzPdFzdzPdzPdzddzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdoedoedzddzddzddzPdzPdEUdEUdEUdEUdEUdEUdEUdGCdFXdFZdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdCWdCadoedGvdGDdGEdGFdGBdGvdzPdzddzddoedoedoedoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzPdzPdFzdzPdzPdzPdzPdzddzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdoedoedEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFUdEVdFUdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGGdpkdoedGvdGvdGvdGvdGHdGvdzPdzPdzddzddCadzddzdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedpkdpkdpkdpkdoedoedoedoedoedoedzddzddzPdFzdzPdzPdzPdzPdzPdzPdzddzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdoedoedEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdFVdzPdFVdzPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGIdpkdpkdGvdGzdGJdGvdGBdGKdzPdzPdzPdzPdGLdzPdzddzdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedzddzddzPdFzdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdzPdzPdzPdzPdzPdzPdGMdGMdGMdzPdzPdzPdzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGIdpkdpkdGvdGDdGEdGNdGBdGOdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedzddzddCadzddzddzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdDVdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdFCdFCdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdzPdzPdzPdzPdzPdzPdGPdGQdGRdzPdzPdzPdzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzddzddzddzddzddoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGvdGSdGvdGvdGvdGvdGvdGvdGBdGTdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedzddzddzPdGLdzPdzPdzPdFLdFpdFqdzPdzPdzPdzPdzPdzPdzPdDVdDVdzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdzPdzPdGUdGUdGUdGUdGUdGUdGVdGWdGXdGUdGUdGUdGUdGUdzPdzPdzPdzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedzddzddzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdGvdGvdGvdGvdGYdGZdHadGvdGzdHbdGvdGHdGvdGvdGvdHcdHddHedGvdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedzddzddzPdzPdzPdzPdzPdzPdFldFvdFndzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdzddzPdzPdzPdGUdHfdHgdHhdHidHjdHkdHldHmdHndHodHpdHqdHrdFqdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedpkdpkdpkdGvdHsdHtdHudHvdHtdHtdGvdGDdGEdHwdGBdGvdHxdHydHzdHzdHzdGKdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdHAdHBdHCdHDdHBdHBdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdEUdEUdoedzddzPdzPdzPdGUdHEdHgdHFdHGdHgdHHdHgdHgdHIdHJdHKdHqdHLdHMdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddCadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedoedoedoedGvdHNdHtdHOdHPdHQdHRdGvdGvdGvdGvdGBdGvdHxdHSdHSdHSdHTdGOdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdHAdHUdHUdHUdHVdHBdzPdHWdzPdzPdzPdCPdCadzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdoedzddzPdzPdzPdGUdHXdHgdHgdHYdHgdHHdHgdHgdHgdHZdIadIbdHrdFndzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdGLdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedGvdIcdHtdIddHtdIedHtdIfdHTdIgdIhdIidGvdHxdHSdIjdHSdIkdGTdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdIldIldImdIndHAdIodIpdIqdIrdHBdHBdHBdHBdzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdzddzddzPdzPdGUdIsdHgdItdIudIvdIwdIxdHgdGUdGUdGUdGUdGUdGUdFLdFqdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFLdFqdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedGvdGvdGvdGvdGvdGvdGvdIydIzdIAdIydIzdGvdGvdGvdGvdGvdIBdGvdGvdICdIDdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdIEdIndIFdIGdIHdIIdIJdIKdILdIMdINdIOdIPdIQdFqdzPdzPdzPdCbdzddoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdoedzddzPdzPdGUdIRdHgdISdHGdITdIUdIVdHgdIWdIXdIYdIZdJadJbdFRdFSdFJdFJdFJdFJdFJdFIdzPdzPdzPdzPdzddzddzddoedoedoedoedoedpkdpkdpkdoedoedoedoedzddzddzPdzPdFOdFJdFJdFJdFJdFJdFJdFJdFJdFRdFSdFJdFJdFJdFJdFIdzPdzPdzPdzPdzPdzddoedoedoedoedoedGvdJcdJddJedHSdIkdJfdHTdIkdIfdJgdJhdJidHTdIkdHSdHSdJjdJkdHddHedJldJmdJmdJmdJmdJmdJmdJmdJndJndJndJndJndJndJndImdJodJpdJqdIGdJrdJsdJtdJudIKdIKdJvdJwdJxdJydJzdJAdzPdzPdzPdCbdzddoedoedpkdpkdpkdpkdpkdpkdoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdpkdpkdoedzddzPdzPdGUdGUdGUdGUdGUdJBdJCdJDdGUdGUdJEdGUdGUdGUdGUdFldFndzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzddzPdzddzddoedoedoedoedoedoedoedoedoedoedzddzddzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzddzddCadzddzddoedGvdGvdGvdGvdJFdIkdJGdJHdJIdIhdJJdJKdJKdJLdJLdJMdJKdJNdJOdJKdJOdJPdJPdJPdJPdJPdJPdJPdJPdJQdJQdJQdJQdJQdJQdJQdJRdJSdJRdJTdJSdJUdJVdJWdJXdJYdJZdKadKbdKcdKddIQdFndzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdpkdpkdoedzddzddzPdzPdzPdzPdzPdGUdKedKfdKgdKhdGUdKidKjdCWdzPdzPdzPdzPdzPdFBdzPdzPdzPdFHdFJdFJdFIdzPdzPdzPdzPdzddoedoedoedoedoedoedoedoedoedoedzddzPdzPdFOdFJdFPdzPdzPdzPdzPdzddzPdzPdFBdzPdzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdGLdzPdzddzddzddzddzddGvdHSdKkdKldKmdKmdKldKndKodKpdKmdKmdKqdKodKrdKsdKtdKudKvdKvdKvdKvdKvdKvdKvdKvdKwdKwdKwdKwdKwdKwdKxdKydKzdKAdKBdKCdKDdKEdKFdIldIldIldIldIldIldIldIldKGdKHdKIdKHdCWdCbdzddoedoedpkdpkdpkdpkdoedoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdoedzddzddzPdzPdzPdzPdGUdKJdKKdKLdKMdGUdzPdzPdzPdzPdzPdzPdzddzddCadzddzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzddoedoedoedoedoedzddzddzddzddzddzPdFOdFPdzPdzPdzPdzddzddzddzddzddzddCadzPdzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddGvdGvdKNdKOdKNdGvdGvdKPdKQdKRdGvdGvdKNdKSdKTdGvdKUdzPdzPdzPaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadKVdIndIGdKWdKXdKYdKZdLadLadLbdIldLcdLddLedLfdLfdLfdLfdCWdzPdzddoedoedpkdpkdpkdpkdoedoedoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdoedoedEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdFVdzPdFVdzPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGIdpkdpkdGvdGzdGJdGvdGBdHDdzPdzPdzPdzPdGLdzPdzddzdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedzddzddzPdFzdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdzPdzPdzPdzPdzPdzPdGMdGMdGMdzPdzPdzPdzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGIdpkdpkdGvdGDdGEdGNdGBdHZdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedzddzddCadzddzddzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdDVdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdFCdFCdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdzPdzPdzPdzPdzPdzPdGPdGQdGRdzPdzPdzPdzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzddzddzddzddzddoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGvdGSdGvdGvdGvdGvdGvdGvdGBdIndzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedzddzddzPdGLdzPdzPdzPdFLdFpdFqdzPdzPdzPdzPdzPdzPdzPdDVdDVdzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdzPdzPdGUdGUdGUdGUdGUdGUdGVdGWdGXdGUdGUdGUdGUdGUdzPdzPdzPdzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedzddzddzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdGvdGvdGvdGvdGYdGZdHadGvdGzdHbdGvdGHdGvdGvdGvdNjdJzdJWdGvdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedzddzddzPdzPdzPdzPdzPdzPdFldFvdFndzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdzddzPdzPdzPdGUdHfdHgdHhdHedHjdHkdHldHmdHndHodHpdHqdHidFqdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedpkdpkdpkdGvdHsdHtdHudHvdHtdHtdGvdGDdGEdHwdGBdGvdHxdHydHzdHzdHzdHDdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdHAdHBdHCdHrdHBdHBdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdEUdEUdoedzddzPdzPdzPdGUdHEdHgdHFdHGdHgdHHdHgdHgdHIdHJdHKdHqdHLdHMdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddCadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedoedoedoedGvdHNdHtdHOdHPdHQdHRdGvdGvdGvdGvdGBdGvdHxdHSdHSdHSdHTdHZdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdHAdHUdHUdHUdHVdHBdzPdHWdzPdzPdzPdCPdCadzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdoedzddzPdzPdzPdGUdHXdHgdHgdHYdHgdHHdHgdHgdHgdImdIadIbdHidFndzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdGLdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedGvdIcdHtdIddHtdIedHtdIfdHTdIgdIhdIidGvdHxdHSdIjdHSdIkdIndzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdIldIldGTdHcdHAdIodIpdIqdIrdHBdHBdHBdHBdzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdzddzddzPdzPdGUdIsdHgdItdIudIvdIwdIxdHgdGUdGUdGUdGUdGUdGUdFLdFqdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFLdFqdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedGvdGvdGvdGvdGvdGvdGvdIydIzdIAdIydIzdGvdGvdGvdGvdGvdIBdGvdGvdICdIDdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdIEdHcdIFdIGdIHdIIdIJdIKdILdIMdINdIOdIPdIQdFqdzPdzPdzPdCbdzddoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdoedzddzPdzPdGUdIRdHgdISdHGdITdIUdIVdHgdIWdIXdIYdIZdJadJbdFRdFSdFJdFJdFJdFJdFJdFIdzPdzPdzPdzPdzddzddzddoedoedoedoedoedpkdpkdpkdoedoedoedoedzddzddzPdzPdFOdFJdFJdFJdFJdFJdFJdFJdFJdFRdFSdFJdFJdFJdFJdFIdzPdzPdzPdzPdzPdzddoedoedoedoedoedGvdJcdJddJedHSdIkdJfdHTdIkdIfdJgdJhdJidHTdIkdHSdHSdJjdKbdJzdJWdJldJmdJmdJmdJmdJmdJmdJmdJndJndJndJndJndJndJndGTdJwdJpdJqdIGdJrdJsdJtdJudIKdIKdJvdJodJxdJydJkdJAdzPdzPdzPdCbdzddoedoedpkdpkdpkdpkdpkdpkdoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdpkdpkdoedzddzPdzPdGUdGUdGUdGUdGUdJBdJCdJDdGUdGUdJEdGUdGUdGUdGUdFldFndzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzddzPdzddzddoedoedoedoedoedoedoedoedoedoedzddzddzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzddzddCadzddzddoedGvdGvdGvdGvdJFdIkdJGdJHdJIdIhdJJdJKdJKdJLdJLdJMdJKdJNdJOdJKdJOdJPdJPdJPdJPdJPdJPdJPdJPdJQdJQdJQdJQdJQdJQdJQdJRdJSdJRdJTdJSdJUdJVdKtdJXdJYdJZdKadKsdKcdKddIQdFndzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdpkdpkdoedzddzddzPdzPdzPdzPdzPdGUdKedKfdKgdKhdGUdKidKjdCWdzPdzPdzPdzPdzPdFBdzPdzPdzPdFHdFJdFJdFIdzPdzPdzPdzPdzddoedoedoedoedoedoedoedoedoedoedzddzPdzPdFOdFJdFPdzPdzPdzPdzPdzddzPdzPdFBdzPdzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdGLdzPdzddzddzddzddzddGvdHSdKkdKldKmdKmdKldKndKodKpdKmdKmdKqdKodKrdKzdKudKydKvdKvdKvdKvdKvdKvdKvdKvdKwdKwdKwdKwdKwdKwdKxdKAdKSdKNdKBdKCdKDdKEdKFdIldIldIldIldIldIldIldIldKGdKHdKIdKHdCWdCbdzddoedoedpkdpkdpkdpkdoedoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdoedzddzddzPdzPdzPdzPdGUdKJdKKdKLdKMdGUdzPdzPdzPdzPdzPdzPdzddzddCadzddzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzddoedoedoedoedoedzddzddzddzddzddzPdFOdFPdzPdzPdzPdzddzddzddzddzddzddCadzPdzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddGvdGvdKTdKOdKTdGvdGvdKPdKQdKRdGvdGvdKTdKVdKUdGvdLJdzPdzPdzPaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadLRdHcdIGdKWdKXdKYdKZdLadLadLbdIldLcdLddLedLfdLfdLfdLfdCWdzPdzddoedoedpkdpkdpkdpkdoedoedoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdoedzddzddzPdzPdzPdGUdGUdGUdGUdGUdGUdzPdzPdzddzddzddzddzddoedoedzddzddzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzddzddzddzddzddzddzPdzPdzPdzPdzPdFzdzPdzPdzddzddzddoedoedoedoedoedzddzPdzPdzPdzPdzPdzPdFzdzPdzPdzPdFLdFqdzPdzPdzPdzPdzPdzPdzPdzddGvdLgdLhdLidLhdGvdLjdLkdLldLmdLndGvdLodLpdLqdGvdzPdzPdzPdzPdzPdzPaaaaaaaafaaaaaaaaaaafaafaafaafaafaafaafaafaafdIldLrdLsdJVdIldIldIldIldLtdIldLudIldIldLvdCWdCWdCWdCWdzPdzddoedoedpkdpkdpkdoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedoedoedoedoedzddzddzPdzPdzPdFHdFJdFJdFJdFIdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFzdzPdzddzddoedoedoedoedoedoedoedzddzddzPdzPdzPdzPdzPdFHdFJdFJdFJdFRdFSdFJdFJdFJdFIdzPdzPdzPdzPdGvdLwdLxdLydLzdGvdLAdLBdLBdLCdLndGvdLDdLEdLFdGvdzPdzPdzPdzPdzPdzPaafaafaafaafaafaafaafdLGdLGdLGdLGdLGaafaaaaaadIldLHdLIdJVdLJdLKdLLdLadLadLMdLadLbdIldzPdzPdzPdzPdzPdzddzddoedoedpkdpkdoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdFHdFIdzPdzPdFLdFqdzPdzPdFOdFJdFJdFJdFJdFJdFPdzPdzddoedoedoedoedpkdpkdpkdoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdFzdzPdzPdzPdzPdGvdGvdGvdGvdGvdGvdLNdLOdLPdLQdLndGvdKNdLRdKNdGvdzPdzPdzPdzPdzPdzPaaaaaaaafaaaaaaaaaaafdLGdLGdLGdLGdLGaafaaadIEdIndLSdLTdLUdIldIldIldIldIldIldLVdLWdIldzPdzPdzPdzPdzPdzddoedoedpkdpkdpkdoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdzddzddzddzddzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedoedoedoedoedoedzddzddzddzPdFBdzPdzPdFHdFJdFJdFRdFSdFJdFJdFPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdoedoedoedzddzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdFHdFJdFJdFIdzPdzPdzPdzPdzPdzPdGvdGvdGvdGvdGvdGvdGvdLXdLYdLZdMadzPdzPdzPdzPdzPaaaaaaaaaaafaaaaaaaaaaafdLGdLGdLGdLGdLGdMbdJodMcdMddIGdMedJVdMfdMgdMhdMidMjdMkdMldLWdIldzPdzPdzPdzPdzddzddoedoedpkdpkdoedoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdoedzddzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdoedoedoedoedoedzddzddCadzddzPdzPdzPdzPdFldFndzPdzPdzPdzPdFBdzPdzddzddzddzddzddoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedzddzddzddzddzddzddzddzddzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdFldMmdMndMndMndMndModFndzPdzPdzPdzPdzPdzPaafaafaafaafaafaafaafaafdLGdLGdLGdLGdLGdMpdIGdMqdIGdIGdMedJVdIGdIGdMrdIGdIGdMsdMtdMudIldzPdzPdzPdzPdzddoedoedoedpkdpkdoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdCadzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedzddzddzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaafdLGdLGdLGdLGdLGdImdJodMvdMwdIGdMedMxdKCdKCdMydKCdKCdMzdMAdMBdIldzPdzPdzPdFKdCadoedoedoedpkdoedoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdoedpkdpkdoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzPdzPdzPdzddzddzddzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedzddzPdzPdzPdzPdFHdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFIdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaafdLGdLGdLGdLGdLGaafaaadKVdIndMCdMedJVdIGdIGdMDdMgdIGdIGdLVdMEdIldzPdzPdzPdzPdzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFzdzPdFLdFqdzPdzPdzPdEBdEBaaaaaaaaaaafdLGdLGdLGdLGdLGaafaaaaaadMFdMFdMGdMHdKCdMIdMJdMKdMLdMMdMtdLWdIldzPdzPdzPdzPdzddoedoedoedoedpkdoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFHdFJdFRdFSdFJdFJdFJdMNdMOdMPdMPdMPdMPdMPdMPdMPdMPdMPdMPdMPdMPdMQdMRdMSdIGdIGdIGdMTdMUdMVdMWdMXdMYdIldzPdzPdzddzddzddoedoedpkdpkdpkdoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdEBdEBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMFdMFdIldImdIndIldIldIldIldIldIldIldIldzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedoedoedoedoedzddzddzPdzPdzPdFHdFJdFJdFJdFIdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFzdzPdzddzddoedoedoedoedoedoedoedzddzddzPdzPdzPdzPdzPdFHdFJdFJdFJdFRdFSdFJdFJdFJdFIdzPdzPdzPdzPdGvdLwdLxdLydLzdGvdLAdLBdLBdLCdLndGvdLDdLEdLFdGvdzPdzPdzPdzPdzPdzPaafaafaafaafaafaafaafdLGdLGdLGdLGdLGaafaaaaaadIldLHdLIdJVdLVdLKdLLdLadLadLMdLadLbdIldzPdzPdzPdzPdzPdzddzddoedoedpkdpkdoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdFHdFIdzPdzPdFLdFqdzPdzPdFOdFJdFJdFJdFJdFJdFPdzPdzddoedoedoedoedpkdpkdpkdoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdFzdzPdzPdzPdzPdGvdGvdGvdGvdGvdGvdLNdLOdLPdLQdLndGvdKTdMbdKTdGvdzPdzPdzPdzPdzPdzPaaaaaaaafaaaaaaaaaaafdLGdLGdLGdLGdLGaafaaadIEdHcdLSdLTdLUdIldIldIldIldIldIldMcdLWdIldzPdzPdzPdzPdzPdzddoedoedpkdpkdpkdoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdzddzddzddzddzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedoedoedoedoedoedzddzddzddzPdFBdzPdzPdFHdFJdFJdFRdFSdFJdFJdFPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdoedoedoedzddzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdFHdFJdFJdFIdzPdzPdzPdzPdzPdzPdGvdGvdGvdGvdGvdGvdGvdLXdLYdLZdMadzPdzPdzPdzPdzPaaaaaaaaaaafaaaaaaaaaaafdLGdLGdLGdLGdLGdMpdJwdMqdMddIGdMedJVdMfdMgdMhdMidMjdMkdMldLWdIldzPdzPdzPdzPdzddzddoedoedpkdpkdoedoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdoedzddzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdoedoedoedoedoedzddzddCadzddzPdzPdzPdzPdFldFndzPdzPdzPdzPdFBdzPdzddzddzddzddzddoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedzddzddzddzddzddzddzddzddzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdFldMmdMndMndMndMndModFndzPdzPdzPdzPdzPdzPaafaafaafaafaafaafaafaafdLGdLGdLGdLGdLGdMvdIGdMtdIGdIGdMedJVdIGdIGdMrdIGdIGdMsdMJdMudIldzPdzPdzPdzPdzddoedoedoedpkdpkdoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdCadzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedzddzddzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaafdLGdLGdLGdLGdLGdGTdJwdMKdMwdIGdMedMxdKCdKCdMydKCdKCdMzdMAdMBdIldzPdzPdzPdFKdCadoedoedoedpkdoedoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdoedpkdpkdoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzPdzPdzPdzddzddzddzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedzddzPdzPdzPdzPdFHdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFJdFIdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaafdLGdLGdLGdLGdLGaafaaadLRdHcdMCdMedJVdIGdIGdMDdMgdIGdIGdMcdMEdIldzPdzPdzPdzPdzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFzdzPdFLdFqdzPdzPdzPdEBdEBaaaaaaaaaaafdLGdLGdLGdLGdLGaafaaaaaadMFdMFdMGdMHdKCdMIdNidMRdMLdMMdMJdLWdIldzPdzPdzPdzPdzddoedoedoedoedpkdoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFHdFJdFRdFSdFJdFJdFJdMNdMOdMPdMPdMPdMPdMPdMPdMPdMPdMPdMPdMPdMPdMQdHddMSdIGdIGdIGdMTdMUdMVdMWdMXdMYdIldzPdzPdzddzddzddoedoedpkdpkdpkdoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedzddzddzddzPdzPdzPdzPdzPdzPdzPdzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdEBdEBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMFdMFdIldGTdHcdIldIldIldIldIldIldIldIldzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedzddzddzddzddzddzddzddzddzddzddCadFNdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFBdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddCadzddzdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdCPdCadzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From c0d264fed769bef197d8b832c647cd741924dc09 Mon Sep 17 00:00:00 2001 From: meyar Date: Fri, 23 Aug 2013 20:39:08 -0400 Subject: [PATCH 036/226] Fixes fire lockers. They actually start with stuff in them. --- .../crates_lockers/closets/utility_closets.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index c4058c54a66..76458dbf088 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -202,6 +202,16 @@ density = 0 wall_mounted = 1 +/obj/structure/closet/hydrant/New() + ..() + sleep(2) + new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/device/flashlight(src) + new /obj/item/weapon/tank/oxygen/red(src) + new /obj/item/weapon/extinguisher(src) + new /obj/item/clothing/head/hardhat/red(src) + /* * First Aid */ From 44b5ed8fd3062294f4e3b888ebd25b26dfe6ada2 Mon Sep 17 00:00:00 2001 From: Segrain Date: Sat, 24 Aug 2013 09:27:41 +0300 Subject: [PATCH 037/226] Same mapfix, part 1. --- maps/tgstation2.dmm | 185 +++++++++++++++++++++----------------------- 1 file changed, 88 insertions(+), 97 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index ec7bfcc27e0..e8b19ce363a 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -98,7 +98,7 @@ "abT" = (/turf/simulated/wall/r_wall,/area/security/warden) "abU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/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},/turf/simulated/floor/plating,/area/security/prison) "abV" = (/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},/turf/simulated/floor/plating,/area/security/range) -"abW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) +"abW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/brig) "abX" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "abY" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "abZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) @@ -259,7 +259,7 @@ "aeY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aeZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "afa" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/weapon/cartridge/detective,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"afb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) +"afb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/brig) "afc" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent{filled = 0.2},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/security/prison) "afd" = (/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/security/prison) "afe" = (/obj/machinery/computer/area_atmos/area,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) @@ -282,7 +282,7 @@ "afv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/main) "afw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/main) "afx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/security/main) -"afy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) +"afy" = (/obj/structure/table/reinforced,/obj/structure/table/reinforced{icon_state = "table_horizontal"; dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/southright,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/lobby) "afz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "afA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "afB" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) @@ -308,7 +308,7 @@ "afV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "afW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "afX" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) -"afY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/main) +"afY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/brig) "afZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "aga" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main) "agb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/security/main) @@ -489,9 +489,9 @@ "aju" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/security/main) "ajv" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "ajw" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) -"ajx" = (/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},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/lobby) -"ajy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/lobby) -"ajz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/lobby) +"ajx" = (/obj/structure/stool/bed/chair,/obj/machinery/door_control{desc = "A remote control switch for the brig foyer."; id = "BrigFoyer"; name = "Brig Foyer Doors"; normaldoorcontrol = 1; pixel_x = 16; pixel_y = -25; range = 10},/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 1 and 2."; id = "BrigEast"; name = "Brig Cells 1-2 Hallway Doors"; normaldoorcontrol = 1; pixel_x = 5; pixel_y = -25; range = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/lobby) +"ajy" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) +"ajz" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/tvalve/mirrored/digital,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/fsmaint) "ajA" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/security/brig) "ajB" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Security Escape Pod"},/turf/simulated/floor/plating,/area/security/main) "ajC" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod3/station) @@ -564,7 +564,7 @@ "akR" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor,/area/security/brig) "akS" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/wall,/area/security/brig) "akT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/lobby) -"akU" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) +"akU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "akV" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) "akW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/lobby) "akX" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/maintenance/fsmaint) @@ -573,8 +573,8 @@ "ala" = (/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/security/brig) "alb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "alc" = (/turf/simulated/wall,/area/security/detectives_office) -"ald" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/lobby) -"ale" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/lobby) +"ald" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "security_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ale" = (/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},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/lobby) "alf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Detective"; req_access_txt = "4"},/turf/simulated/floor,/area/security/detectives_office) "alg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) "alh" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/security/detectives_office) @@ -591,7 +591,7 @@ "als" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/obj/machinery/camera{c_tag = "Brig Cell 1"; dir = 2},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/brig) "alt" = (/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/maintenance/fsmaint) "alu" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/security,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/security/lobby) -"alv" = (/obj/structure/stool/bed/chair,/obj/machinery/door_control{desc = "A remote control switch for the brig foyer."; id = "BrigFoyer"; name = "Brig Foyer Doors"; normaldoorcontrol = 1; pixel_x = 16; pixel_y = -25; range = 10},/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 1 and 2."; id = "BrigEast"; name = "Brig Cells 1-2 Hallway Doors"; normaldoorcontrol = 1; pixel_x = 5; pixel_y = -25; range = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/lobby) +"alv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Lobby"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/security/lobby) "alw" = (/obj/structure/stool/bed/chair,/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 3 and 4."; id = "BrigWest"; name = "Brig Cells 3-4 Hallway Doors"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = -25; range = 10},/turf/simulated/floor,/area/security/lobby) "alx" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/secure_data,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) "aly" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) @@ -620,9 +620,9 @@ "alV" = (/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},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "alW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "alX" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/brig) -"alY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) +"alY" = (/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/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/lobby) "alZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/turf/simulated/floor,/area/security/lobby) -"ama" = (/obj/structure/table/reinforced,/obj/structure/table/reinforced{icon_state = "table_horizontal"; dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/southright,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/lobby) +"ama" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/lobby) "amb" = (/obj/structure/table/reinforced{icon_state = "table_horizontal"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/window/southright,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/lobby) "amc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) "amd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) @@ -638,7 +638,7 @@ "amn" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/lattice,/turf/space,/area) "amo" = (/turf/simulated/floor/plating,/area) "amp" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/simulated/floor/plating,/area/security/brig) -"amq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) +"amq" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/lobby) "amr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/brig) "ams" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/hos) "amt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Brig West"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) @@ -710,7 +710,7 @@ "anH" = (/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area) "anI" = (/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/security/brig) "anJ" = (/obj/structure/table/reinforced{icon_state = "table"},/obj/item/device/flashlight/lamp,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/brig) -"anK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/fsmaint) +"anK" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "anL" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) "anM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor,/area/security/brig) "anN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/prison) @@ -719,7 +719,7 @@ "anQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/prison) "anR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/security/lobby) "anS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/security/lobby) -"anT" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/lobby) +"anT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/brig) "anU" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) "anV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/prison) "anW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/security/brig) @@ -747,7 +747,7 @@ "aos" = (/obj/machinery/flasher{id = "Cell 2"; pass_flags = 0; pixel_x = 0; pixel_y = -26},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) "aot" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) "aou" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) -"aov" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) +"aov" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/brig) "aow" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) "aox" = (/obj/machinery/flasher{id = "Cell 4"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "aoy" = (/obj/machinery/door_timer/cell_4{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/security/brig) @@ -797,7 +797,7 @@ "apq" = (/obj/structure/rack{dir = 1},/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apr" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aps" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"apt" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"apt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor,/area/security/lobby) "apu" = (/turf/space,/area/maintenance/fsmaint) "apv" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) "apw" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) @@ -808,8 +808,8 @@ "apB" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "apC" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Fore Primary Hallway West"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "apD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) -"apE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) -"apF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) +"apE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/main) +"apF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "apG" = (/turf/simulated/floor,/area/hallway/primary/fore) "apH" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "apI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) @@ -828,8 +828,8 @@ "apV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apX" = (/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"apY" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"apZ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "security_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"apY" = (/obj/machinery/light,/obj/machinery/newscaster{pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) +"apZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_engineering{icon_state = "door_locked"; locked = 1; name = "Abandoned Office (KEEP OUT)"; req_access_txt = "32"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice2) "aqa" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "security_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "security_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "security_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqc" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "security_pump"; exterior_door_tag = "security_outer"; frequency = 1379; id_tag = "security_airlock"; interior_door_tag = "security_inner"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"; sensor_tag = "security_sensor"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -839,8 +839,8 @@ "aqg" = (/obj/structure/sign/vacuum,/turf/simulated/wall,/area/maintenance/fpmaint) "aqh" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/hallway/primary/fore) "aqi" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor,/area/hallway/primary/fore) -"aqj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/fore) -"aqk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/fore) +"aqj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/decal/cleanable/robot_debris,/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aqk" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aql" = (/obj/machinery/bot/secbot/beepsky{name = "Officer Beepsky"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/primary/fore) "aqm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/fore) "aqn" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/fore) @@ -855,7 +855,7 @@ "aqw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/crowbar,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aqz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aqz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aqA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fsmaint) "aqB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fsmaint) "aqC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/fpmaint) @@ -866,9 +866,9 @@ "aqH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aqI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aqJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) -"aqK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) +"aqK" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{id = "Medical_Room2"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "aqL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) -"aqM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) +"aqM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Room2"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) "aqN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aqO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aqP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA"; location = "Security"},/turf/simulated/floor,/area/hallway/primary/fore) @@ -885,8 +885,8 @@ "ara" = (/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "arb" = (/obj/structure/table,/obj/item/ashtray/plastic,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "arc" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"ard" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"are" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall,/area/maintenance/fsmaint) +"ard" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Psychiatry"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) +"are" = (/obj/effect/landmark/start{name = "Psychiatrist"},/obj/machinery/door_control{id = "Medical_Psychiatry"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor{icon_state = "bcarpet07"},/area/medical/medbay) "arf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Interrogation"; dir = 9; network = list("SS13","Interrogation")},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1449; listening = 0; pixel_x = 27},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/brig) "arg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/stool,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/fsmaint) "arh" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -943,7 +943,7 @@ "asg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ash" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "asi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"asj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/decal/cleanable/robot_debris,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"asj" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/bonesetter,/obj/machinery/door_control{id = "Medical_Surgery"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) "ask" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fsmaint) "asl" = (/obj/structure/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,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/fsmaint) "asm" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/fsmaint) @@ -1128,7 +1128,7 @@ "avJ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_tool_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area/solar/auxport) "avK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/security/vacantoffice2) "avL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/security/vacantoffice2) -"avM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/door/airlock/glass_engineering{icon_state = "door_locked"; locked = 1; name = "Abandoned Office (KEEP OUT)"; req_access_txt = "32"; req_one_access_txt = "0"},/turf/simulated/floor/plating,/area/security/vacantoffice2) +"avM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Surgery"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/sleeper) "avN" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/security/vacantoffice2) "avO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/lawoffice) "avP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/lawoffice) @@ -1347,7 +1347,7 @@ "azU" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor{icon_state = "neutral"; dir = 6},/area/crew_quarters/fitness) "azV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable,/obj/structure/sign/securearea,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "azW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable,/obj/structure/sign/securearea,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"azX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central) +"azX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Surgery"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/sleeper) "azY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_chapel_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "azZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central) "aAa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central) @@ -1632,7 +1632,7 @@ "aFt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/gateway) "aFu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/gateway) "aFv" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/gateway) -"aFw" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aFw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Surgery"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/sleeper) "aFx" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aFy" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva) "aFz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -1724,7 +1724,7 @@ "aHh" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/gateway) "aHi" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/gateway) "aHj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/gateway) -"aHk" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aHk" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Psychiatry"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) "aHl" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aHm" = (/obj/machinery/light/small{dir = 8},/obj/structure/dispenser/oxygen,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva) "aHn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_access_txt = "0"; req_one_access_txt = "18;11;24;5;1"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) @@ -1813,7 +1813,7 @@ "aIS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/camera{c_tag = "EVA South"; dir = 1},/turf/simulated/floor,/area/ai_monitored/storage/eva) "aIT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) "aIU" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) -"aIV" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central) +"aIV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Room1"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) "aIW" = (/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/hallway/primary/central) "aIX" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 2},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central) "aIY" = (/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central) @@ -2576,7 +2576,7 @@ "aXB" = (/obj/machinery/camera{c_tag = "Bridge Center"; dir = 1},/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "aXC" = (/obj/structure/closet/fireaxecabinet{pixel_y = -32},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "aXD" = (/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) -"aXE" = (/obj/machinery/light,/obj/machinery/newscaster{pixel_y = -28},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) +"aXE" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door_control{id = "Medical_Room1"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "aXF" = (/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "aXG" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Bridge APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "aXH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/bridge) @@ -3379,7 +3379,7 @@ "bmY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/office) "bmZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/quartermaster/office) "bna" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/office) -"bnb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv1"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) +"bnb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/server) "bnc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/primary/central) "bnd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/central) "bne" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/central) @@ -3392,7 +3392,7 @@ "bnl" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/bridge/meeting_room) "bnm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/bridge/meeting_room) "bnn" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area) -"bno" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) +"bno" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) "bnp" = (/obj/structure/table,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bnq" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bnr" = (/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) @@ -3882,9 +3882,9 @@ "bwH" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay East"; dir = 8; network = list("SS13","Medical"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bwI" = (/turf/simulated/wall,/area/medical/genetics) "bwJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "5; 9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bwK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/sleeper) -"bwL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/sleeper) -"bwM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/sleeper) +"bwK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) +"bwL" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_aux_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) +"bwM" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) "bwN" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bwO" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/genetics) "bwP" = (/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) @@ -4010,7 +4010,7 @@ "bzf" = (/obj/structure/noticeboard{pixel_y = -27},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) "bzg" = (/obj/structure/disposaloutlet,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating{nitrogen = 0.01; oxygen = 0.01},/area/toxins/mixing) "bzh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bzi" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) +"bzi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/break_room) "bzj" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central) "bzk" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central) "bzl" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/hallway/primary/central) @@ -4211,7 +4211,7 @@ "bCY" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bCZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bDa" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) -"bDb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) +"bDb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "bDc" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bDd" = (/obj/machinery/camera{c_tag = "Research Division Server Room"; dir = 2; network = list("SS13","Research"); pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bDe" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) @@ -4399,7 +4399,7 @@ "bGE" = (/obj/structure/table,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/turf/simulated/floor,/area/medical/sleeper) "bGF" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/hemostat{pixel_y = 4},/obj/item/weapon/cautery{pixel_y = 4},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) "bGG" = (/obj/structure/table,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bGH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/bonesetter,/obj/machinery/door_control{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) +"bGH" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "0"; req_one_access_txt = "54;65"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "bGI" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/simulated/floor,/area/medical/sleeper) "bGJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/blood/AMinus{pixel_x = -7; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/APlus{pixel_x = -5; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 1; pixel_y = -4},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 1; pixel_y = -4},/obj/item/weapon/reagent_containers/blood/BMinus{pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bGK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4644,7 +4644,7 @@ "bLp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) "bLq" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/vending/wallmed1{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bLr" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bLs" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door_control{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bLs" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/folder,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "bLt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/medbay) "bLu" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bLv" = (/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/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/cmo) @@ -4902,12 +4902,12 @@ "bQn" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/wall/r_wall,/area/atmos) "bQo" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bQp" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bQq" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bQq" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_west_outpost_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "bQr" = (/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/quartermaster/office) "bQs" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay) "bQt" = (/obj/machinery/washing_machine,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/medical/medbay) "bQu" = (/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/quartermaster/office) -"bQv" = (/obj/effect/landmark/start{name = "Psychiatrist"},/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor{icon_state = "bcarpet07"},/area/medical/medbay) +"bQv" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_outpost_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor,/area/mine/west_outpost) "bQw" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "bcarpet08"},/area/medical/medbay) "bQx" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1},/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor{icon_state = "bcarpet08"},/area/medical/medbay) "bQy" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/machinery/camera{c_tag = "Psychiatric Office"; dir = 8; network = list("SS13","Medical"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "bcarpet09"},/area/medical/medbay) @@ -5769,7 +5769,7 @@ "cgW" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) "cgX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cgY" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) -"cgZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) +"cgZ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/west_outpost) "cha" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) "chb" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/engine/break_room) "chc" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) @@ -5884,7 +5884,7 @@ "cjh" = (/turf/simulated/wall/r_wall,/area/engine/engineering) "cji" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering) "cjj" = (/turf/simulated/wall/r_wall,/area/engine/chiefs_office) -"cjk" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) +"cjk" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "cjl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cjm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cjn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/break_room) @@ -6028,7 +6028,7 @@ "clV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/atmos) "clW" = (/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/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology) "clX" = (/obj/structure/sign/securearea,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/break_room) -"clY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/break_room) +"clY" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_outpost_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "clZ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft) "cma" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cmb" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor,/area/engine/engineering) @@ -6185,8 +6185,8 @@ "coW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) "coX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "coY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/engine/engineering) -"coZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) -"cpa" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"coZ" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_outpost_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) +"cpa" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "mining_west_outpost_pump"; exterior_door_tag = "mining_west_outpost_outer"; frequency = 1379; id_tag = "mining_west_outpost_airlock"; interior_door_tag = "mining_west_outpost_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; sensor_tag = "mining_west_outpost_sensor"},/turf/simulated/floor,/area/mine/west_outpost) "cpb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) "cpc" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor,/area/engine/engineering) "cpd" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/wall/r_wall,/area/engine/engineering) @@ -6220,7 +6220,6 @@ "cpF" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "engineering_aux_pump"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) "cpG" = (/obj/machinery/light/small,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_aux_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/engine/engineering) "cpH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_aux_pump"; exterior_door_tag = "engineering_aux_outer"; frequency = 1379; id_tag = "engineering_aux_airlock"; interior_door_tag = "engineering_aux_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "10;13"; sensor_tag = "engineering_aux_sensor"},/turf/simulated/floor/plating,/area/engine/engineering) -"cpI" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_aux_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) "cpJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpK" = (/obj/machinery/field_generator,/turf/simulated/floor/plating,/area/engine/engineering) "cpL" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall,/area/engine/engineering) @@ -9155,7 +9154,6 @@ "duc" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dud" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "due" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"duf" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/folder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dug" = (/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/device/measuring_tape,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "duh" = (/obj/machinery/atmospherics/pipe/tank/nitrogen,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dui" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -9841,7 +9839,6 @@ "dHm" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "dHn" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "dHo" = (/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/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) -"dHp" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_west_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "dHq" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) "dHr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dHs" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9860,11 +9857,7 @@ "dHF" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/west_outpost) "dHG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/west_outpost) -"dHI" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor,/area/mine/west_outpost) -"dHJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/west_outpost) "dHK" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) -"dHL" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) -"dHM" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "dHN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHO" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9878,8 +9871,6 @@ "dHX" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/mine/west_outpost) "dHY" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "dHZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dIa" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "mining_west_pump"; exterior_door_tag = "mining_west_outer"; frequency = 1379; id_tag = "mining_west_airlock"; interior_door_tag = "mining_west_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; sensor_tag = "mining_west_sensor"},/turf/simulated/floor,/area/mine/west_outpost) -"dIb" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) "dIc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dId" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dIe" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -10222,7 +10213,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadZaeaaebaecaedaeeaefaegaaJaehaeiaaPaaaaaaabTaejaekacoaelaemabTaenaaVaeoaepaeqaaVaeraesaetaeuaevaewaexaeyaezaeAaeBadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaiaaiaaiaaiacUaeCamvaeEaeFaeFaeFaeFaeFaeFabTabTaeGaeHaeIabTabTaeJaeKaeLaeMaeNaeOaePaeQaeRaeSaeTaeUamyaeWaeXaeYaeZafaamsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafcafdafeaffafgadHaeFafhafiafiafiafiaenafjafkaflafmafnaenafoaeSafpafqafrafsaftafuafuafvafwafxarlafzafAafBafCafDarnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafFafGafHafIadoafJaeFafKafLafMafNafMafOafPafQafRafSafTafUafVafWafXafYafZagaagbagcagdageagfagbaggaghagiagjagkagladWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafFafGafHafIadoafJaeFafKafLafMafNafMafOafPafQafRafSafTafUafVafWafXapEafZagaagbagcagdageagfagbaggaghagiagjagkagladWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmaaaaaaaaaagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagnaaxagoagpagqagraeFagsagtafMaguagvaenagwagxagyagzagAaenagBagCagDagEagFagGagHagIagJagKagJagHapcagMagNagOagPagQapdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagSagTagUagVagWadHaeFagXagYagZahaagXabTairahGahdahnahfaenagBagCagDahgahhahiahjahkahkahlahkahmapeapgahpahqahqahraqtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmaaaagmaaaaaaagmagmagmagmagmagmagmaaaaaaagmaaaagmaaaaaaaaaaaaaaaaaiaaiaaiaaiahtahuahvaeFahwahxahyahzahyapbaoKahCahDahEahFaoIahHagCagDahIahJahKagHahLagJahLagJahMahNahOahPahQahRadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10232,26 +10223,26 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaaaaeFajiajjajkajlajmajnajoaeFahBajqahBajrahBaenairahGajsahnahfaenaceajtajuaceajvajwaceahsahoahoahAaceajAajhajhaceajBajCajDajDajEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaaaaeFajFajGajHajIajJajKajLajMajMajNajOajPajMajMajMajPajQajNajRajSajOajTajUajVajWajXajYajZakaakbakcakdakeakfakgakhakiakjakkaklakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaaaaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaafaeFakoakpakqakraksaktakuakvakwakxakyakzakAakBakvakAakCakDakEakAakyakzakAakAakFakGakHaiRakIakJakKakLakMakgakNaceakiakOajDajDakPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFakQakRakSaeFaeFagXakTakUakVakWakXakYakZagXaeFaeFaeFalaalbalcalcaheahbalfahcalcalhaliaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaeaaaaafaafaafaljaeFalkallalmalnaloalpagRalralsagLalualvalwalxalyalzalAagLalBalCagRalDalEalcalFalGalHalIalJalKalhakNalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNalNalNalOalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalOalOalNalOalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaafaafalPaeFalQalRackaeFalTalUaeValWalXafbalZamaambamcamdamealAafyamgalWafEamialEalcamjamkamkamlamkammalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFakQakRakSaeFaeFagXakTajyakVakWakXakYakZagXaeFaeFaeFalaalbalcalcaheahbalfahcalcalhaliaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaeaaaaafaafaafaljaeFalkallalmalnaloalpagRalralsagLaluajxalwalxalyalzalAagLalBalCagRalDalEalcalFalGalHalIalJalKalhakNalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNalNalNalOalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalOalOalNalOalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaafaafalPaeFalQalRackaeFalTalUaeValWalXafbalZafyambamcamdamealAafYamgalWafEamialEalcamjamkamkamlamkammalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaamnaaaaaaaaaaaaaaaaaaagmagmagmaaaaaaagmagmagmagmagmagmagmaaaaaaagmagmagmaaaaaaaafaafaafamoampaeFadYaeDadXaeFamtamuacaamwamxabZamzamAamBamCamdamDalAabZamEamFabWamHamIalcamJamKamkamlamkamLalhakNalLaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafamMaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafamNaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaafaafaafamoalPaeFamOamPamQamRamSamTaeFaeFaeFagXamUamDamVamWamXamYamZagXaeFaeFaeFanaanbancandaneanfangamkanhalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNalNalNalNalNaaaaaaaaaaniaaaaaaaaaalNalNalOalOalOaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalNalNaaaaaaaaaanjaaaaaaaaaalNalNalOalOalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaafankanlanmannaeFanoanpanqaeFanransamranuanvagLanwanxanyanzanAamDalAagLanBalCagRalDanCalcanDanEanFamlamkanGalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaamnaaaaaaaafaafaafaaaaaaaniaafaafaaaaafaafaaaaaaalOaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaafaafaaaaaaaaaanjaafaafaaaaafaafaaaaaaalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaaaankanHanHanIaeFanoanJarfaeFanLanMamhanOanPamqanRanSanTamDanUamDalAalYamganWamfanYanZalcaoaaobaocaodaoeaofalhaogalLalLaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoiaafaohaohaohaohaohaafalNaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaokaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaafaaaankamoaolalPaeFaomaonaooaeFaopaoqalgaosamxabZaotaouaovaowanUamDalAabZamEaoxacaaoyaozalcaoAaoBaoCaoDaoEaoEaoFaoGaoHalLalLalLalValtalqalLaafaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaankaoZapaaeFaeFagXagXagXagXagXagXagXagXagXagXajyajzaldaleapfajxapfagXagXagXagXagXagXaphapiapjapkapkaplapmapnapoappalLapqaprapsapsaptalLalLalLalLapualMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaankapxapyapxapzapxapAapAapBapCapDapAapAapAapAapEapAapFapAapAapGapHapIapJapKapLapMapNalcapOapPapQapRapSapTapUapVapWajhajhajhapXapYapZaqaaqbaqcaqdaqealMalMalMalMalMaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoOaaaaaaaaaaafaaaaaaaaaalOaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoVaaaaaaaaaaafaaaaaaaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqfaqgapxapxaqhapGaqiapGapGapGapGapGapGaqjapGaqkapGapGaqlapGaqmapGaqnapGapGapGalcaqoaqpaqqaqrapQaqsapUajpaquaqvaqwaqxaqyaqzaqAaqBalLalLalLajhalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaknaknaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqCaqDaqEaqFaqGaqHaqIaqJaqJaqJaqJaqJaqJaqKaqLaqMaqNaqOaqPaqQaqRaqSaqTaqUaqSaqValcaphaphaphaphaphaphaqWaqXaqYaqZaraarbarcardareanKargalLaaaaaaaaaalMalMalMaaaaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaafaafaaaaaaaaaanjaafaafaaaaafaafaaaaaaalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaaaankanHanHanIaeFanoanJarfaeFanLanMamhanOanPaovanRanSaptamDanUamDalAanTamganWamfanYanZalcaoaaobaocaodaoeaofalhaogalLalLaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoiaafaohaohaohaohaohaafalNaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaokaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaafaaaankamoaolalPaeFaomaonaooaeFaopaoqalgaosamxabZaotaouaowaowanUamDalAabZamEaoxacaaoyaozalcaoAaoBaoCaoDaoEaoEaoFaoGaoHalLalLalValtalqalLalLaafaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaankaoZapaaeFaeFagXagXagXagXagXagXagXagXagXagXalYamaamaamqalvaleapfagXagXagXagXagXagXaphapiapjapkapkaplapmapnapoappalLapqapsapsapsanKalLalLalLalLapualMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaankapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapGapHapIapJapKapLapMapNalcapOapPapQapRapSapTapUapVapWajhajhajhapXajhaldaqaaqbaqcaqdaqealMalMalMalMalMaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoOaaaaaaaaaaafaaaaaaaaaalOaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoVaaaaaaaaaaafaaaaaaaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqfaqgapxapxaqhapGaqiapGapGapGapGapGapGapGapGapGapGapGaqlapGaqmapGaqnapGapGapGalcaqoaqpaqqaqrapQaqsapUajpaquaqvaqwaqxaqyakUaqAaqBalLalLalLajhalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaknaknaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqCaqDaqEaqFaqGaqHaqIaqJaqJaqJaqJaqJaqJaqJaqLaqOaqNaqOaqPaqQaqRaqSaqTaqUaqSaqValcaphaphaphaphaphaphaqWaqXaqYaqZaraarbarcajhalLajzargalLaaaaaaaaaalMalMalMaaaaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarhariarhaaaaaaaaaaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaoZarjapxarkarkaixarmajgarkarkaroaroaroaroarparoaroarqarrarsartalLarualLarvalLalLaprajhajhajhajhajharwaqXarxaryaryaryarzarAarBarCalSalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaMzarFaMzaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxarGapaapxarHarIarJarKarLarMarkarNarOarParQarRarSaQfarUapGarVarWarXarYarZarZarZarZarZasaarZarZarZasbascasdaseasfasgashasiasjaskaslasmalLaafaQeaQcaQcaQdaQcaQcaQaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaMzarFaMzaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxarGapaapxarHarIarJarKarLarMarkarNarOarParQarRarSaQfarUapGarVarWarXarYarZarZarZarZarZasaarZarZarZasbascasdaseasfasgashasiaqjaskaslasmalLaafaQeaQcaQcaQdaQcaQcaQaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasrassastaaaasuasvaswaaaaafaNAarhaNAaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoVaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapaapxasyaszasAasBasCasDarkasEasFasFasFarRasGaQhasIasJasKalLasLasMasNasNasNasNasOasMasNasPasNasMasNasNasPasNasQasRasSasTasUasVasWasWasWaQgasYasYasYasYasYaQgasWaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasZataatbataasZatcatdatcasZaafaNAateaQiaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxatgathapxapaapxatiatjatkatlatmatnarkatoasFatpatparRbhUaQhapAapGatqalLatratsattatuatvatwatxatyatwatzatAatBatwatCatDatEatFatGatHatIatJatKatLatMasWaQgasYasYasYasYasYaQgasWaafaaaaaaaaaalOaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNataatOataatNatcatPatcatNatQaQlatSaQAaQmaQmaQxatQatQaafaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatWatXatYatZauaaubaucaudaueaufaugarkauhauiaujaukaulaumaQhapAapGarValLatratsaunauoatvatwaupauqatwaurausautatwauuausauvasWauwauxauyauzauAauBauCauDaQjasYasYasYasYasYaQkasWasWasWaaaaaaalOaaaapvapvapvapvapvaafaoOaafapvapvapvapvapvaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNauGauHauIatNauJauKauLatNarharhauMauNauOauPauQauRatQaaaaaaamnaaaapwapwapwapwapwaafaoVaafapwapwapwapwapwaaaalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauSaoZapxauTapxauUauVauWauXauYauZarkavaavbavcavcavdaveaKDavgavhaviavjavkavlaunatuatvatwavmauqatwatwavnatwatwatwavoatwasWavpavqavravravsavtavuavvavwasYasYasYasYasYavxavyavzaKCaaaaaaalOaaaaafaaaaafaafaaaaaaaoOaaaaaaaafaaaaaaaafaaaalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNavBavCavDatNavBavCavDatNavEavFavGavGavGavGavHavIaMzaaaaaaalNaaaaafaaaaafaafaaaaaaavJaaaaaaaafaaaaaaaafaaaalNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxauTapxavKavLavLavMavLavNavLavOavPavPavPavPavQavRavSapGavTalLavUasMavVatuavWavXavmavYavZawaawbawbawcawdawbaweaKKawgawhawiawjawjawkawlawmaLuasYasYasYasYasYaLuawoawpaLvaaaaaaalOalOalNaaaaaaaafaaaaaaaoOaaaaafaafaafaafalNalNalNaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasZatNawrawsasZatNawrawsasZatQawtatQatQatQatQatQawuaNAaaaaaaalNalNalNaaaaaaaafaaaaNfawwaNfaafaafaafaafalNalNalNaafapxapxapxapxaOZaOXaOXaOXaOXaOXaOXaOXaOWapxapxaOoaObaOnapxawDaNNawEawFawGawHawHawHawIawHawJawHawKawLawMawMawNawNawOawPawQawRaqAawSawTawUawVawWatwavmawXawXawYawZawZaxaawYawXawXaxbaxcaxdawiawjawjawkawlaxeaNeasYasYasYasYasYaNeaxgawpaLvaaaaaaaaaaaaaafaafaaaaafaaaaaaaxhaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNavBavCavDatNavBavCavDatNavEavFavGavGavGavGavHavIaMzaaaaaaalNaaaaafaaaaafaafaaaaaaavJaaaaaaaafaaaaaaaafaaaalNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxauTapxavKavLavLapZavLavNavLavOavPavPavPavPavQavRavSapGavTalLavUasMavVatuavWavXavmavYavZawaawbawbawcawdawbaweaKKawgawhawiawjawjawkawlawmaLuasYasYasYasYasYaLuawoawpaLvaaaaaaalOalOalNaaaaaaaafaaaaaaaoOaaaaafaafaafaafalNalNalNaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasZatNawrawsasZatNawrawsasZatQawtatQatQatQatQatQawuaNAaaaaaaalNalNalNaaaaaaaafaaaaNfawwaNfaafaafaafaafalNalNalNaafapxapxapxapxaOZaOXaOXaOXaOXaOXaOXaOXaOWapxapxaOoaObaOnapxawDaNNawEawFawGawHawHawHawIawHawJawHawKawLawMawMawNawNawOawPawQawRaqAawSawTawUawVawWatwavmawXawXawXawZawZaxaawYawXawXaxbaxcaxdawiawjawjawkawlaxeaNeasYasYasYasYasYaNeaxgawpaLvaaaaaaaaaaaaaafaafaaaaafaaaaaaaxhaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazeaxjaxjaxjaxkaxjaxjaxjaxlaxmaxnaxlaxlaxlaxoatQaxpaNAaaaaafaafaaaaaaaaaaaaaafaaaaPYaxraPZaafaaaaafaaaaaaaaaaaaaaaapxaoZaoZaxtaoZaoZaoZaoZaoZaoZaoZaoZaxuaxvaxwaxxaxxaxxaxxaxxaxxaxyaxzaxAaxBaxBaxBaxBaxCaxDaxBaxEaxFaxCaxBaxBaxBaxBaxGaxHaxIaxJaxKavlatwatwatwatwaupaxLawXawYawZaxMawZaxNaxOaxPaxQaxRaxSaxTaxUaxUaxVawlaxWaxXasYasYasYasYasYaxYaxZayaaPNaaaaaaaaaaaaaaaaafaaaaafaaaaPaaydaPaaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasXayfaygayhayiaygaygayjayhaygaykaylaymaymaynatQaxpaQlaafaafaaaaaaaaaaaaaaaaafaUGaUHayqaTSaTRaaaaafaaaaaaaaaaaaaaaapxaoZapxaytaTUaTTaTTaTTaTTaTTaTTaTTaUraytayxayyayyayyayyayyayyayyayzayAaxBayBayCayDayEayFayGayHayIayJayKayCayLaxBayMapGayNalLayOatsattatuatvatwavmayPayQaxPaxPayRaySayTayUayVaKKayWayXayYayZayZazaazbazcaUNasYasYasYasYasYaVrasWasWasWaaaaaaaaaaaaaafaafaafaafaaaaVQazgaVQaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatNazeatfazeaziaygaygazjazeatfazeazkayfayiazlatQaxpatQatQaWgaQmaQmaQmaQmaQxatQaznazoazpazqaznapxapxaOoaObaOnapxapxapxaoZarGaytaaaaafaaaaafaaaaafaaaaafaaaaytayxayyazrazsaztazuazvayyayzaoZaxBazwazwaBQazyazzazAazBazCazDaQZazFazFaxBayMapGazGalLayOatsaunatuatvatwaupazHazIazJazKazLazMazNazNazOazNasWazPazQazRazSazTazUasWaWGasYasYasYasYasYaWGasWaafaaaaaaaaaaaaaaaaafaafaaaaafaWFaXqazYaWHaWIaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10259,10 +10250,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasXatfbaRaDaaDaaDaaDabaUatfasXaASasZaATaAUaAVaAVaAVaAVaAVaAVaAVaAVawuaAWaApaznaAXaAYaAZaznaBaaBbaBaaBaaBaaBaaBaaBaaBaaBaaBcaaaaAvaBdaBeaBfaBgaBhaAvaaaaytayxayyaAwaBiaBjaBkaAwayyayzapxaxBaBlaBmaBQaBnaBoazAaBpaBoaBqbaQaBsaBsaxBayMapGayNalLaBtasMavVatuavWaBuavmaAGazNaBvaAIaBwaBwazNaAHaBxaAJazNaByaBzaBAaBBaBCaBDaafbhobgSbgSbgSbgSbgSbgTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaALbgRaBIaBJaALaafaaaaaaaBKaBLaBLaBLaBLbfQbguaBLaBLaBLaBLaBOaBOaBLbeZbeebdMbcRbcqaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBUaBVaBWaBVaBVaQBaEwaBVaBVaBWaBZaCaasZaziaCbaCcaCdaCeaCfaCgaChaCiaAVawuaCjatQaznaznaCkaClaBcaCmaCnaCoaCpaCqaCraCsaCtaCuaCvaBcaafaAvaCwaCxaCyaCzaCAaAvaafaytayxayyaCBaCCaCDaCCaCEayyayzaCFaxBayCayCaCGaCHaACaCIaADaACaCJaCKayCayLaxBayMapGayNalLayOawTawUaCLawWatwaCMaCNazNaCOaAIaAIaAIazOaCPaCQaCRazNaCSaCTaCUaCVaCWaBDaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaALaCXaCYaCZaALaBDaQCaQDaDcaDdaDeaDeaDeaDeaDeaDeaDfaDgaDgaDhaDiaDjaDgaDgaDkaDlaQYaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBUaBZaBVaDnaDoaDoaDpaDqaDraDsaDtaDoaDoaDuaDvazeaziaDwaAVaDxaDyaDzaDAaDzaDBaDCaDDaDEarhaDFaDGaDHaAnaDIaDJaDKaDLaDLaDLaDMaDLaDLaDNaCnaBcaaaaAvaDOaDPaDQaCzaDRaAvaaaaytayxayyaDSaDTaDUaDVaDWayyayzaDXaxBaxBaxBaxBaDYaACayCaDZaBoaEaaQZaEbaEcaxBaEdasJaEealLayOaEfaEgaEgaEgaEgaEhaEiaEjaEkaElaEmaEmaEmaEnaEmaEoaEpaEqaEraEsaEtaEuaBDaBDaBDaBDaBDaBDaBDaBDaBDaBDaQCaQDaBDaBDaBDaQCaRFaRaaBDaBDaALaALaExaEyaALaEzaEAaEBaECaEDaEEaEEaEEaEEaEEaEzaEFaEGaEGaEHaEIaEJaEGaEKaELaEMaEKaEKaEKaEKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDuaENaEOaEPaDoaEQaDoaEQaDoaEQaDoaEQaDoaERaESaxsaziaETaAVaEUaEVaEWaEXaEYaEZaAVaFaaFbaAnaFcaAnaFdarhaBaaFeaDNaDLaDLaDLaDLaDLaDLaFfaFgaFhaFiaFjaFkaFlaFmaFnaFoaAvaafaytaFpaFqaFraFsaFtaFuaFvaFqaFwaFxaxBaFyayCaBQaFzaBoazAaFAaACaFBaxBaxBaxBaxBaFCaFDaFEalLaFFarAarAarAaFGaFHaFIaFJaFKaFLaFMaFKaFNaFKaFOaFKaFPaFQaFRaFSaFTaBBaFUaFVaFWaFXaFXaFVaFYaFZaFZaFZaFZaFZaGaaGbaFZaGcaGdaGeaGfaGgaGhaGiaGjaGkaGlaGlaGlaGmaGnaGoaGpaEEaGqaGraGsaEEaEGaGtaEGaGuaGvaGwaGxaRIaGzaGAaGBaGCaGDaGEaGFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSqaDoaDoaBWaDoaEQaDoaEQaGIaEQaDoaEQaDoaERaESaxsaziaGJaAVaGKaGLaSaaGNaSaaCcaCcaGOaGPaGQaGRaGSaGRaGRaGTaGUaGVaGWaGWaGWaGXaGWaGWaGYaGZaBcaaaaHaaAvaHbaHcaHbaAvaAvaaaaytaHdayyaHeaHfaHgaHhaHiaHjaHkaHlaxBaHmayCaHnaCHaACayCaADaACaCJaHoaxBaxBaxBaHpaHqaHralLaHsalLalLalLaHtalLaHuaHvazNaHwaAIazNaHxazNaHyazNaHzaHAaHBaHCaHDaTlaHFaHGaHHaHIaHJaHKaHLaHJaHJaSyaBLaHGaHNaHGaHOaHGaHGaHPaSZaHRaHSaHSaHTaHUaHVaHWaHSaHXaHYaHZaIaaIbaIcaIdaIeaEEaIfaIgaEGaIhaIiaIjaIkaRIaIlaImaGBaInaEKaEKaEKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDuaIoaEOaEPaDoaEQaDoaEQaDoaEQaDoaEQaDoaERaESaxsaIpaIqaIraIsaItaItaItaIqaIuaIvaIqaIwaIxaBSaIyauRauRaBaaGZaIzaCnaIAaGZaGZaIBaICaIDaIEaBcaaaaIFaaaaBRaIHaBRaaaaafaaaaytaHdayyaIIaIJaIKaILaIMayyaINaoZaxBaIOayCaBQaIPaIQazAaIRaISaITaIUaIVaIWaIXaIYaIZaJaaJbaJcaBPaaaaaaaJeaJfaJgaJhazNaJiaAIaAIaAIaCQaAIaAIaAIaJjaBBaJkaBBaJlaJmaBBaJnaBBaJoaJpaJqaJraJsaJtaJuaBNaJwaJuaJxaJuaJuaJuaJuaJyaJuaJuaJzaJuaJuaJuaJuaJAaJBaIaaJCaJDaJEaJFaJGaEEaJHaJIaJJaJKaJLaJMaIkaBMaIlaImaGBaImaJOaJPaBHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJSaJTaBVaDnaDoaDoaDoaJUaDoaDoaJVaDoaDoaDuaJWasXaziaygaJXaJYaJYaJYaJYaJYaJYaJYaJZaKaatQatQaKbatQatQaBaaAcaKdaAdaAiaAiaAiaAiaAjaKhaAqaBcaAPaARaBEaBraKnaBFaBEaBEaBGaytaKqayyayyayyaKraKsayyayyaKtaKuaxBaxBaxBaxBazEazVaHnaHnazWazXaIVaIVaKzaIZaIZaIZaIZaIZaKAaAaavAazZaJeaKEaJgaKFazNazNazNazNazNazNazNazNazNaJjaKGaKHaKIaKJazxaKLaKMaKNaJoaKOaKPaKQaKRaKSaJuaKTaKUaKVaKWaKVaKXaKYaKZaLaaLbaLcaLdaLeaLfaLgaJuaLhaLiaLjaJCaLkaJEaJFaLlaEEaLmaLnaLoaLpaLqaIkaIkaEGaEKaLraGBaImaLsaLtazmaaaaaaaaaaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDuaENaEOaEPaDoaEQaDoaEQaDoaEQaDoaEQaDoaERaESaxsaziaETaAVaEUaEVaEWaEXaEYaEZaAVaFaaFbaAnaFcaAnaFdarhaBaaFeaDNaDLaDLaDLaDLaDLaDLaFfaFgaFhaFiaFjaFkaFlaFmaFnaFoaAvaafaytaFpaFqaFraFsaFtaFuaFvaFqaqkaFxaxBaFyayCaBQaFzaBoazAaFAaACaFBaxBaxBaxBaxBaFCaFDaFEalLaFFarAarAarAaFGaFHaFIaFJaFKaFLaFMaFKaFNaFKaFOaFKaFPaFQaFRaFSaFTaBBaFUaFVaFWaFXaFXaFVaFYaFZaFZaFZaFZaFZaGaaGbaFZaGcaGdaGeaGfaGgaGhaGiaGjaGkaGlaGlaGlaGmaGnaGoaGpaEEaGqaGraGsaEEaEGaGtaEGaGuaGvaGwaGxaRIaGzaGAaGBaGCaGDaGEaGFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSqaDoaDoaBWaDoaEQaDoaEQaGIaEQaDoaEQaDoaERaESaxsaziaGJaAVaGKaGLaSaaGNaSaaCcaCcaGOaGPaGQaGRaGSaGRaGRaGTaGUaGVaGWaGWaGWaGXaGWaGWaGYaGZaBcaaaaHaaAvaHbaHcaHbaAvaAvaaaaytaHdayyaHeaHfaHgaHhaHiaHjaqzaHlaxBaHmayCaHnaCHaACayCaADaACaCJaHoaxBaxBaxBaHpaHqaHralLaHsalLalLalLaHtalLaHuaHvazNaHwaAIazNaHxazNaHyazNaHzaHAaHBaHCaHDaTlaHFaHGaHHaHIaHJaHKaHLaHJaHJaSyaBLaHGaHNaHGaHOaHGaHGaHPaSZaHRaHSaHSaHTaHUaHVaHWaHSaHXaHYaHZaIaaIbaIcaIdaIeaEEaIfaIgaEGaIhaIiaIjaIkaRIaIlaImaGBaInaEKaEKaEKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDuaIoaEOaEPaDoaEQaDoaEQaDoaEQaDoaEQaDoaERaESaxsaIpaIqaIraIsaItaItaItaIqaIuaIvaIqaIwaIxaBSaIyauRauRaBaaGZaIzaCnaIAaGZaGZaIBaICaIDaIEaBcaaaaIFaaaaBRaIHaBRaaaaafaaaaytaHdayyaIIaIJaIKaILaIMayyaINaoZaxBaIOayCaBQaIPaIQazAaIRaISaITaIUaxBaIWaIXaIYaIZaJaaJbaJcaBPaaaaaaaJeaJfaJgaJhazNaJiaAIaAIaAIaCQaAIaAIaAIaJjaBBaJkaBBaJlaJmaBBaJnaBBaJoaJpaJqaJraJsaJtaJuaBNaJwaJuaJxaJuaJuaJuaJuaJyaJuaJuaJzaJuaJuaJuaJuaJAaJBaIaaJCaJDaJEaJFaJGaEEaJHaJIaJJaJKaJLaJMaIkaBMaIlaImaGBaImaJOaJPaBHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJSaJTaBVaDnaDoaDoaDoaJUaDoaDoaJVaDoaDoaDuaJWasXaziaygaJXaJYaJYaJYaJYaJYaJYaJYaJZaKaatQatQaKbatQatQaBaaAcaKdaAdaAiaAiaAiaAiaAjaKhaAqaBcaAPaARaBEaBraKnaBFaBEaBEaBGaytaKqayyayyayyaKraKsayyayyaKtaKuaxBaxBaxBaxBazEazVaHnaHnazWapFaxBaxBaKzaIZaIZaIZaIZaIZaKAaAaavAazZaJeaKEaJgaKFazNazNazNazNazNazNazNazNazNaJjaKGaKHaKIaKJazxaKLaKMaKNaJoaKOaKPaKQaKRaKSaJuaKTaKUaKVaKWaKVaKXaKYaKZaLaaLbaLcaLdaLeaLfaLgaJuaLhaLiaLjaJCaLkaJEaJFaLlaEEaLmaLnaLoaLpaLqaIkaIkaEGaEKaLraGBaImaLsaLtazmaaaaaaaaaaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJSaBVaBWaBVaBVaEvaEwaBVaBVaBWaJTaLwasZaLxaygazeaLyaLyaLzaLyaLAatNaLBaLCaKaaLDaLEaLFaLGaLHaLIaLJaLKaLJaLJaLJaLJaLJaLJaLJaLLaLMaLNaLOaLPaLPaLQaLRaLPaLPaLPaLSaLTaLUaLVaLPaLWaLXaLYaLZaMaaIZaMbaMcaIZaJaaJbaJbaJbaJbaJbaJbaMdaMeaMfaMgaMhaMiaMjaMkaMlaIZaIZaIZaMmaMnaMoaMnaMpaMqaMraMsaIZaMtaIZaBBaMuaMvaMwaMxaMyaMyaDmaMAaMBaMCaJoaMDaMEaMFaMFaMGaJuaMHaMIaMJaMKaMJaMJaMLaMMaMNaMMaMOaMPaMQaMRaMMaJuaJAaMSaMTaMTaMUaMVaMTaMWaEEaMXaMYaEGaMZaNaaIkaIkaEGaNbaNcaNdaImaEKaEKaEKaaaaafaaaaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazeatfaBYaDaaDaaDaaDaaDbatfazeaASasZaATaNgaxsaNhaNiaNjaNjaNkatNaNlaLCaNmaNnaLEaNoaNpaNqaNraNsaNtaLJaLJaLJaLJaLJaLJaLJaLLaNuaNvaLJaLJaLJaNwaNxaLJaLJaLJaLJaNyaLJaLJaLJaNzaNuaLEaLZaIZaIZaIZaIZaIZaIZaIZaIZaIZaIZaIZaIZbdoaNBaNCaNDaNEaNFaNGaNHaNIaIZaIZaIZaLZaIZaIZaIZaIZaIZaIZaIZaIZaNJaIZaBBaNKaNLaMyaNMaMyaMyaBTaNOaMBaNPaJoaNQaNRaNSaNTaNUaJuaNVaNWaNXaNYaNZaOaaJuaBXaOcaBXaJuaJuaJuaJzaJuaJuaJAaJBaOdaIaaIaaOeaIaaOfaEEaEGaEGaEGaEGaEGaEGaOgaEGaImaImaGBaImaOhaOiaEKaaaaafaaaaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaAbasZaxsavCaxsaOjaOkaOlaOmaxsavCaybaycasZaziaygaxsaOpaOqaNjaNjaNkatNaOraLCaKaaNnaLEaOsaOtaOuaOuaOuaOvaOwaOxaOuaOyaOuaOuaOzaOAaOBaOCaOuaODaOEaOFaOGaOHaOIaOJaOKaOLaOMaOMaONaOOaNuaLEaLZaIZaOPaIZaOQaOQaOQaOQaOQaOQaOQaOQaORaOSaOQaOQaOQaOQaOTaOQaOQaOQaOQaOQaOUaOVaOQaOQaOQaOQaOQaOQaOQaIZaIZaIZaBBaxfawCawBawBawBaxqaxiaNOaMBaPbaJoaJoaJoaJoaJoaPcaJuaPdaPeaPfaPgaNXaNXaJuaPhaPiaPjaPkaPjaPjaPlaPmaJuaJAaJBaPnaPnaPoaPpaPqaPqaPraEEaPsaPtaPuaEKaPvaPwaPxaImaImaPyaPzaEKaPAaEKaPBaPBaPBaaaaaaaaaaaaaaaaaaaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10271,7 +10262,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaasXaSzaSAaSzaSzaSzaSzaSzaSzaSAaSzaSzaSBaygaygaSCaygaygaSDaygaSEaSFaSGaSHaSIaPGaRiaSJaSKaPJaSLaRraRraRraRraRraRsaSMaRraRraRraRxaPMaSNaSOaSPaPPaRCaPRaSQaSRaSSaSTaPXaSUaSVaSWaSXaSYayraIZaIZaJaaysaaaaaaaaaaaaaQbaQbaQbaQbaTaaTbaTcaTdaTeaTfaTgaThaTiaTjaTkaQbaQbaQbaQbaaaaaaaaaaaaayuaIYaIZaIZayeaQtaTmaTnaToaQtaTpaTqaCUaTraTsaToaQtaOYaMyaTtaSbaTuaTvaTwaTxaTyaTzaSbaTAaTBaTCaSkaTDaTEaSkaTFaPjaJuaJAaJBaQKaIaaPoaPpaIaaIaaIaaTGaTHaIaaTIaEKaTJaTKaTLaSsaSsaTMaTLaTNaEKaTOaTPaTPaTPaTPaTQaypasqasqayoaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasZasZaKlaKmaKmaKmaKmaKmaKmaKmaKoasZatNaTVaTWaTXaTXaTXaTYaTXaTXaTXaTZaTXaTZaPGaRiaUaaUbaPJaUcaRraRraUdaUeaUfaUgaUdaRraRraRraUhaPMaUiaUjaUkaPPaUlaPRaUmaUnaUoaUpaPXaUqaSYaSYaSWaSYaKfaIZaIZaJaaAaatRaUsaUtaQbaQbaUuaUvaUwaUxaUyaUyaUzaUAaUyaUzaUAaUyaUBaUCaUDaUEaUFaQbaQbaUtaUsaKkaKjaIYaIZaIZaBBaUIaTmaTsaToaQtaUJaUKaQtaULaUMaToaQtaOYaMyaKpaSbaUOaUPaUQaURaUSaUTaSbaUUaUVaUWaSkaUXaUYaSkaUZaVaaJuaJAaJBaVbaVbaPoaPpaVcaIaaIaaVdaIaaVeaVfaEKaVgaVhaViaSsaSsaVjaViaVkaEKaVlaTPaTPaTPaTPaTPaVmaVnaVoaVpaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaafaKgaAeayiaygaVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaVDaVEaVFaPJaVGaRraRraUdaUfaVHaVIaUdaRraRraRraRxaPMaPPaPPaVJaPPaVKaVLaVLaVLaVLaVMaVNaVOaSWaSWaSWaSWaKfaIZaIZaJaaJbaJbaVPaKeaVRaQbaVSaTfaUyaVTaUyaUyaUyaUyaVUaUyaVVaUyaVWaVXaVXaVYaVZaQbaWaaKeaWbaWcaJbaIYaIZaIZayeaQtaRXaQtaQtaQtaWdaWeaQtaULaWfaToaQtaOYaMyaKiaSbaWhaWiaWjaWkaWlaUTaWmaJoaPjaUWaWnaSkaSkaSkaUZaPjaJuaWoaJBaEEaEEaWpaPpaWqaWraIaaWsaWtaLkaWuaWvaWwaWxaWyaWzaWzaWAaWBaWCaWvaWDaWEaTPaTPaTPaTQaJQasqasqaGMaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaKyaKBaHQaziaWKaWLaWMaWNaWOaWPaWQaWRaWSaWNaWTaWUaWVaWWaWXaPJaWYaRraWZaXaaXbaXbaXcaXbaXbaXbaXdaXeaXfaKwaXgaXhaXiaXjaRiaRiaXkaPGaXlaPXaXmaXnaXoaXpaXpaKxaIZaIZaIZaIZaIZaXraXsaXtaXuaXvaXwaUyaXxaXyaXzaXAaXBaXCaXDaXEaXFaXGaXHaXvaXIaXJaXKaXLaXMaXNaXOaXPaXQaIZaXRaBBaRWaTmaXSaToaQtaXTaXUaQtaULaTsaToaQtaOYaXVayvaSbaWhaSbaXWaSbaXXaUTaXYaJoaQEaUWaSkaSkaSkaSkaUZaQIaJuaXZaYaaYbaYcaYdaYeaYfaYfaYfaYfaYfaYfaYgaYhaYiaSsaSsaSsaSsaSsaSsaYjaYkaYlaTPaTPaTPaTPaTQazdaaaaafaafaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaKyaKBaHQaziaWKaWLaWMaWNaWOaWPaWQaWRaWSaWNaWTaWUaWVaWWaWXaPJaWYaRraWZaXaaXbaXbaXcaXbaXbaXbaXdaXeaXfaKwaXgaXhaXiaXjaRiaRiaXkaPGaXlaPXaXmaXnaXoaXpaXpaKxaIZaIZaIZaIZaIZaXraXsaXtaXuaXvaXwaUyaXxaXyaXzaXAaXBaXCaXDapYaXFaXGaXHaXvaXIaXJaXKaXLaXMaXNaXOaXPaXQaIZaXRaBBaRWaTmaXSaToaQtaXTaXUaQtaULaTsaToaQtaOYaXVayvaSbaWhaSbaXWaSbaXXaUTaXYaJoaQEaUWaSkaSkaSkaSkaUZaQIaJuaXZaYaaYbaYcaYdaYeaYfaYfaYfaYfaYfaYfaYgaYhaYiaSsaSsaSsaSsaSsaSsaYjaYkaYlaTPaTPaTPaTPaTQazdaaaaafaafaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqazhavCazhaygaYmaTZaYnaYoaYpaYpaYpaYpaYqaYraTXaYsaYtaYuaYvaYwaYwaYwaYxaYwaYyaYzaYAaYBaYCaYCaYDaRxaYEaYFaYGaYHaYIaYJaYKaYKaYLaYMaYNaYOaYPaYQaYQaYQaYRaPXaYSaIZaYTaYUaYVaYWaKvaYYaYZaZaaZbaZcaZdaQbaQbaQbaQbaQbaQbaZeaZfaZgaZhaXyaZiaZjaQbaYYaKvaZkaZlaYUaZmaIZaIZayeaQtaZnaQtaQtaQtaFSaQtaQtaZoaQtaZpaZpaZpaZpaZqaZraZsaSbaSbaSbaZtaZuaZvaJoaZwaZxaSkaZyaZyaZzaZxaZAaJuaZBaZCaZDaZEaPoaPoaPoaPoaZFaPoaPoaPoaZGaYkaSsaSsaSsaSsaSsaSsaSsaYjaYkaYlaTPaTPaZHaTPaZIazdaafaafaaaaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaHEaHMaHQaziaZLaZMaZNaZOaZPaZQaZRaYpaZSaZTaTXaZUaZVaYuaYvaZWaZXaZYaZZaYwbaababbacaPJbadbaebafbagaPJbahbaibajbajbajbajbakbajbajbalbambambambanbambaobapbaqbarbasbatbaubaubaubaubavbawbaxbawbaybazbazbazbazbazbazbazbazbaAbaBbaBbaCbaBbaBbaBbaBbaBbaBbaBaZmaIZaIZaBBbaDbaEaBybaFaQtbaGaQtbaHbaIbaJaZpbaKbaLbaMaJoaJoaJobaNbaObaObaOaJoaJoaJobaPaSkaSkaJdaIGbaSbaTaGyaJubaVaZCbaWaEEbaXbaYbaZaWrbbabaYbbbaWrbbcaEKbbdaImbbeaSsaSsbbeaImbbfaEKbbgbbhbbiaTPaTPaTQazdaaaaafaafaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaVqaafasXbbjaPDbbkaTZbblbblbbmbbnbbobbmbbpbblaTXbbqbbrbbsbbtbbubbubbvbbwbbubbxbabbbyaPJbadbaebbzbbAaPJbbBbaibajbbCbbDbbDbbDbbEbajbbFbbGbbHbbIbapbapbapbapaIZaIZbbJbbKbbLbbMbbNbbObbPbbQbbRbbSbaybazbbTbbUbbVbbWbbXbbYbbZbaAbaBbcabcbbccbcdbcebcfbcgbchbaBbcibcjbcjaBBaBBaBBaBBaBBbckayebckbclaBBaBBaRVaBBaBBaBBbcmbcnbcnbcnbcnbcnbcnbcobcnbcmaGybcpbcpaGHaZDaZDaZDaZDbcmbaVbcrbaWaEEaEEaEEaEEaEEbcsaEEaEEaEEaEEaEKbctbcubcvbcvbcvbcvbcwaEKaEKbcxaTPbcyaTPaTPaTQaypasqasqaGMaJRaJRaJRaJRaJRaJRaJRaJRaJRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10291,19 +10282,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonbIlbHrbHlbvSblgblgblgblgblgblgblgborblgbumbvTbajbvUbebbcMbvVbpVbvWbpVbvXbcMbrvbHibeYaIZboTaRTbsXboDbvYbvZbwabwbbwcboEbwdbwebwfbwgbtjbwhbwibwjbwkbwlbwmbtlbwnbwobwpbwqbwrbwrbwsbwtbwuaIZbuTbwvbuVbwwbitbwxbwybwzbwAbwBbwAbwCbwAbwDbwEbtCbwFbtCbtCbwGbwHbwIbwIbwJbGhbGgbFFbtHbwNbwObtKbwPbqPbwQbkobiMbwRbwSbwRbwRbkubkubkubkubkubFobwUbELbFmbwXbwYbwZbxabxabxbbxcboabxdbxebFnbvHboabvJbxgboabxhboabxibkBbGibHgbHhbxjbkBaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonbujbukbujbxkbxlblgblgbxmbxnbxobxnbxpbxnbxqbxrbglbxsbxtblpbxublpbxvblqbxtbxwbxxbNsbeYaIZbxybxzbxAboDbxBbxCbxDbxEbxFboEbxGbxHbxIbxJbxKbxLbxMbxNbxObxPbxQbxRbxSbxTbxTbxUbxVbxWbxXbtobxYaIZbxZbgPbqDbyabitbybbycbydbubbyfbygbRpbRxbydbubbyjbyjbubbydbykbgQbwIbylbvlbvlbymbIZbtHbynbyobypbyqbqPbyrbysbytbyubyvbxabxabywbyxbxabyybyzbyAbyBbyCbxabyDbyEbyFbSubRVbRNbyJbyJbyJbyJbyJbyKbyLbyMbGibHhbkBboabvLbyNbyObyPbyQbyRbQXaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonbyTbyUbyTbyVbyWbyXbyXbyXbyXbyXbyYbyZblgbumbzabajbzbbzcbzdbzebzfbovbQMbQrbQubapbapbzjaIZbzkbzlbsXboDbzmbznbzobvZbzpboEbzqbzrbzsbztbzubzvbzwbzxbzybzzbzAbtlbzBbzCbzDbzEbxVbxWbxXbtobzFaIZbzGbQebzIbzJbitbybbzKbydbzLbzMbzNbzObzPbydbzQbzRbzRbzSbydbzTbitbwIbzUbvlbzVbzWbQdbzYbzZbAabAabAbbAcbAdbAebAfbAgbAhbvCbvCbAibvCbAjbvCbvDbvCbvCbvCbvCbAkbAlbAmbOkbAobApbAqbArbAsbAtbyJbAubAvbwTaafaafbkBbAxbvLbyObyObJabAybAzbPCaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonbOlbOubOtbajbajbOvbHrbHrbHrbOCbajbajbODbOEbOFbajbAJbAJbAJbAKbAJbALbAMbANbAObAPbALbeYaIZbAQbARaUsboDbuCbASbATbATbAUbAVbAWbAWbAXbAWbAYbAZbBabBbbBcbBcbBcbBdbtmbtmbtmbtmbtmbtmbtmbtobBeaXPbBfbydbydbBgbBhbBibydbydbBjbBkbBlbBmbBmbBnbBobBpbBqbBobBrbzTbitbwIbBsbBtbBubBvbBwbBxbBybBvbBvbBzbBAbBBbBCbBDbBDbBDbBDbBDbBEbBDbBDbBFbBGbBHbBIbBIbBJbBKbvHbBLbOkbBMbBNbBObBPbBQbBRbyJbAubAvbOjaaaaaabkBbBTbBUbkBbJabkBbkBbJabkBaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonbOlbOubOtbajbajbOvbHrbHrbHrbOCbajbajbODbOEbOFbajbAJbAJbAJbAKbAJbALbAMbANbAObAPbALbeYaIZbAQbARaUsboDbuCbASbATbATbAUbAVbAWbnbbAXbAWbAYbAZbBabBbbBcbBcbBcbBdbtmbtmbtmbtmbtmbtmbtmbtobBeaXPbBfbydbydbBgbBhbBibydbydbBjbBkbBlbBmbBmbBnbBobBpbBqbBobBrbzTbitbwIbBsbBtbBubBvbBwbBxbBybBvbBvbBzbBAbBBbBCbBDbBDbBDbBDbBDbBEbBDbBDbBFbBGbBHbBIbBIbBJbBKbvHbBLbOkbBMbBNbBObBPbBQbBRbyJbAubAvbOjaaaaaabkBbBTbBUbkBbJabkBbkBbJabkBaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBVaafaaaaaaaaaaaabAJbBWbBXbBYbBZbALbCabCbbCcbCdbALbeYaIZbCebCfbCgbCfbChbCibCjbCkbClbCmaXPbCnaXPbCobCpbCqbCrbCsbCtaIZaMrbCuaMsbdobCjbCvbCwaIZbCxbCybzFaIZbCzbydbCAbCBbCCbCDbCEbCFbCGbCHbCIbBmbBmbCJbBobCKbCLbCMbBrbzTbCNbwIbCObCPbCQbCRbCSbCTbCUbCVbCWbqPbqPbwQbCXbBDbCYbCZbDabOibDcbDdbDebBFbDfbDgbDhbBIbBIbDibvHbBLbOhbDkbDlbDmbDnbDobDpbyJbAubOgbyMbyMbyMbyMbyMbkBbkBaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonbonbonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAJbDqbDrbDsbDtbvMbDvbDwbDxbDybALbeYbDzbDAaIZaIZaIZaIZbdobCjbCvbDBaIZaIZbDCaIZaIZbDDbDEbDFaIZaIZaIZaIZbCuaIZbdobCjbCvbDGaXPbDHbDIbDJbDKbDLbDMbDNbDObDPbDQbDRbDSbDTbDUbDVbDWbzPbydbDXbDYbDZbEabydbzTbitbwIbwIbwIbwIbwIbqPbqPbqPbqPbqPbqPbEbbEcbEdbBDbEebEfbEgbEhbEibEjbEkbBFbElbEmbEnbEnbBIbEobEpbEqbErbEsbEtbDobEubEvbEwbyJbAubAvbyMbExbEybEybyMaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEzbEAbEAbEBbECbECbEDbEDbEDbEDbEEaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonaaaaaaaaaaaaaaaaaaaaaaaabEFbEGbEHbEGbEIaaaaaaaaabAJbAJbEJbEKbDsbEKbvQbEMbENbEObEPbALbEQbeYbERbESbuubETbuubEUbEVbEWbuvaIZbEXbEYbjNbjNbEZaXPaXPaXPaXPaXPaXPbFabFbbFcbFdbFebFfbFgbFhbFibFjbFkbFfbFlbwMbwLbwKbFpbydbydbubbFqbubbydbydbydbydbydbydbydbydbzTbitbFrbFsbFtbzKbFubqDbFvbFwbFxbFybFzbFAbFBbFCbBDbFDbFEbDabvRbFGbFHbFIbBFbFJbEmbEnbEnbBIbFKbFLbFMbFNbFObFPbFQbFRbFSbFTbFUbFVbFWbFWbFWbFWbFXbwTaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbFYbFZbGabFZbECbEDbEDbGbbGcbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdbGebGfbGebGdbtubtMbtFbAJbGjbEKbGkbGlbGmbGnbGobGobGpbGqbALbGrbGrbGsbGraUsaUsaUsaUsbGtbGtbGtbGtbGtbGtbGtbGtbGubcjbcjbGvbGvbGvbGvbGwbGxbGvbGvbGvbGvbGybGzbGAaJfbGBbGCbGDbGEbGFbGGbGHbGIbydbGJbGKbGLbubbGMbGMbGNbGObGPbGQbyebGRbitbitbitbitbitbzTbuabGSbGTbGUbGVbqDbGWbGXbGYbGYbGYbGYbGYbGYbGYbGYbGYbBFbGZbHabHbbHbbBIbHcbHdbHebHfbHfbHfbHfbuebugbucbHjbHfbHfbHfbHfbAvbHkbuhaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbHmbFZbFZbHnbEDbEDbGbbGbbHobGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabonbonbonbonbonaaaaaaaaaaaaaaaaaaaaaaaabEFbEGbEHbEGbEIaaaaaaaaabAJbAJbEJbEKbDsbEKbvQbEMbENbEObEPbALbEQbeYbERbESbuubETbuubEUbEVbEWbuvaIZbEXbEYbjNbjNbEZaXPaXPaXPaXPaXPaXPbFabFbbFcbFdbFebFfbFgbFhbFibFjbFkbFfbFlaFwazXavMbFpbydbydbubbFqbubbydbydbydbydbydbydbydbydbzTbitbFrbFsbFtbzKbFubqDbFvbFwbFxbFybFzbFAbFBbFCbBDbFDbFEbDabvRbFGbFHbFIbBFbFJbEmbEnbEnbBIbFKbFLbFMbFNbFObFPbFQbFRbFSbFTbFUbFVbFWbFWbFWbFWbFXbwTaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbFYbFZbGabFZbECbEDbEDbGbbGcbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdbGebGfbGebGdbtubtMbtFbAJbGjbEKbGkbGlbGmbGnbGobGobGpbGqbALbGrbGrbGsbGraUsaUsaUsaUsbGtbGtbGtbGtbGtbGtbGtbGtbGubcjbcjbGvbGvbGvbGvbGwbGxbGvbGvbGvbGvbGybGzbGAaJfbGBbGCbGDbGEbGFbGGasjbGIbydbGJbGKbGLbubbGMbGMbGNbGObGPbGQbyebGRbitbitbitbitbitbzTbuabGSbGTbGUbGVbqDbGWbGXbGYbGYbGYbGYbGYbGYbGYbGYbGYbBFbGZbHabHbbHbbBIbHcbHdbHebHfbHfbHfbHfbuebugbucbHjbHfbHfbHfbHfbAvbHkbuhaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbHmbFZbFZbHnbEDbEDbGbbGbbHobGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEHbHpbHqbHpbEHbuibHsbHtbAJbHubHvbEKbHwbHxbALbHybHzbHAbHBbALbHCbHCbHDbGraaaaaaaaaaaabGtbHEbHFbHGbHHbHIbHJbGtbHKbHLbHMbGvbHNbHObHPbHQbHRbHSbHTbHUbHVbHWbHXbHYbHZbIabGybydbIbbGKbCIbIcbIdbydbIebIfbIgbIhbBmbBmbBmbBmbBmbIibIjbIkbtCbtCbtCbtCbwGbzTbuwbGSbGTbGUbImbInbIobGXbGYbIpbIqbIqbIrbIsbItbIubIvbBFbIwbIxbIybIybBIbIzbIAbBLbvxbICbIDbIEbIFbIGbIHbIIbIJbIKbILbHfbyMbIMbyMbINbINbINbINbINaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabIObEDbHmbEDbEDbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdbHpbHpbHpbIPbIQbEKbEKbIRbISbEKbEKbITbIUbALbALbALbIVbALbALbIWbIXbIYbAEaaabADbmHbACbAFbJebHJbJfbJgbJhbJibJjbJkbJlbJmbJnbJobJpbJqbJrbJsbJtbJubGvbGvbJvbJwbJxbJybJzbJAbJBbBmbGKbJCbIcbBmbJDbJEbGKbJFbydbJGbJHbBmbBmbJIbJJbqDbqDbqDbqDbqDbJKbzTbtAbJLbJMbJMbJMbJMbJNbJObJPbGYbJQbJRbIqbJSbIqbIqbIqbJTbBFbJUbEmbJVbJVbBIbBKbJWbJXbJYbJZbJZbJZbJZbKabKbbKcbKdbKebKfbHfbKgbKhbKibKjbAHbKlbKmbAGaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbECbEDbKobKpbKpbGbbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEHbHqbHqbHqbEHbAIbKrbKsbKtbKubEKbKvbKwbKxbKybKzbKzbKAbKzbKzbKBbKCbKDbwWaaabxfbKGbKHbKIbKJbHJbKKbKLbKMbKNbGtbKObKPbKQbGvbKRbKSbKTbKUbKVbKWbKXbKYbKZbLabLbbLcbLdbLebLfbyjbLgbLhbLibLjbLkbydbLlbGKbLmbydbLnbIcbBmbBmbLobDubqDbLqbLrbLsbDbbjXbLubtCbDjbLwbLxbLybLzbqDbGWbLAbGYbIpbLBbIqbIqbIqbIqbIqbLCbBFbLDbEmbLEbLEbBIbLFbLGbBLbLHbKbbKbbLIbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbLWbKmbBSaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbEDbLYbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEHbHqbHqbHqbEHbAIbKrbKsbKtbKubEKbKvbKwbKxbKybKzbKzbKAbKzbKzbKBbKCbKDbwWaaabxfbKGbKHbKIbKJbHJbKKbKLbKMbKNbGtbKObKPbKQbGvbKRbKSbKTbKUbKVbKWbKXbKYbKZbLabLbbLcbLdbLebLfbyjbLgbLhbLibLjbLkbydbLlbGKbLmbydbLnbIcbBmbBmbLobDubqDbLqbLraXEaIVbjXbLubtCbDjbLwbLxbLybLzbqDbGWbLAbGYbIpbLBbIqbIqbIqbIqbIqbLCbBFbLDbEmbLEbLEbBIbLFbLGbBLbLHbKbbKbbLIbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbLWbKmbBSaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbEDbLYbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjbrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGdbLZbMabMbbGdbwVbtMbtFbAJbAJbMdbMdbMdbAJbAJbGrbGrbGrbGrbMebGrbGrbMfbwWaaabxfbMgbMhbMibMjbMkbMlbMmbMjbMjbMnbMobMpbMqbGvbGvbGvbGvbGvbGvbMrbGvbGvbMsbMtbMubMvbMwbMxbMwbyjbMybMzbMAbMBbMCbydbMDbMEbMFbydbMGbMHbMIbMJbMKbMLbqDbMMbitbjYbMNbjXbzTbMObMPbqDbqDbqDbqDbqDbGWbGXbGYbGYbMQbIqbIqbIqbMRbGYbGYbBFbMSbMTbLEbLEbBIbMUbLGbBLbvxbMVbMWbMXbMYbMZbNabNbbKbbNcbNdbHfbNebNfbNgbINbNhbNibNjbyhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEDbGbbGbbGbbGbbGbbGbbNlbGbbNmbGbbGbbGbbGbbGbbEDbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNnbEGbNobEGbNpaaaaafaaaaaabAJbyGbyibyHbAJaaaaaaaaabGrbNtbNubIWbGrbMfbwWaaabxfbNvbNwbNxbNybHJbNzbNAbNBbNCbGtbNDbNEbNFbNGbNHbNHbNHbNHbNIbNJbNKbNKbNLbNMbNNbNObNPbzhbNRbNSbNTbNUbNSbNVbNTbNSbNSbNUbNVbNSbNSbNVbNSbNSbNUbNSbNWbNXbqDbsabqDbNYbzTbjYbzibOabObbOcbOdbqDbOebGXbGYbOfbABbAAbzXbzHbAwbAnbOfbBIbOmbOnbDhbBIbBIbOobLGbOpbINbINbHfbHfbHfbHfbHjbHfbOqbKbbOrbHfbOsbIMbyMbINbzgbySbyIbINaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbOwbOwbOwbOwbOwbOwbOxbGbbOybOwbNmbGbbGbbGbbGbbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabGrbOzbOAbOBbGrbMfbmNaaabmMbmHbmKbmabOGbHJbHJbOHbOIbOJbOKbOLbOMbONbOObOObOObOObOObOPbOQbORbOSbOTbOUbOVbOWbOXbOYbOZbPabPbbPcbPdbPdbPbbPdbPdbPcbPdbPdbPdbPdbPdbPdbPcbPebsabPfbPgbPhbPibPjbPkbPlbPmbPnbPobPpbPqbGybGWbGXbGYbPrbPsbPtbPubPvbPwbPxbPybBIbBIbPzbBIbBIbPAbPBbLGboablVaafbPDbPEbPFbPGbPHbPGbPIbPJbPKbHfbPLbHkbPMbINbPNbPObPObPPaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPQbFZbFZbFZbFZbFZbFZbFZbPRbGcbGbbGbbGbbGbbPSbGcbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbGrbGrbGrbGrbGrbPTbGraaaaaaaaaaaabGtbPUbPVbPWbPXbGtbPYbGtbPZbQabQbbQcbQcbQfbRcbQfbQgbQhbQibQjbQjbQjbQkbQlbQjbQjbQmbQibQnbQjbQjbQjbQkbQjbGybGybGybGybGybGybGybGybGybGXbsabQobQpbQqbnbbQsbzTbQtbnobQvbQwbQxbQybGybGWbQzbQAbQBbQCbQDbQEbQFbQGbQGbQHbQIbQJbQKboabQLboabPBbLGboabmSaafbPDbQNbQNbQObQPbQQbQRbQSbQTbHfbQUbHkbAvbINbINbINbINbINaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbKpbKpbKpbKpbKpbKpbQVbGbbKobKpbQWbGbbGbbGbbGbbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabiUbQYbMfbGrbGrbGrbGrbGrbGtbGtbGtbGtbGtbGtbGtbGtbQZbRabRbbjpbRdbRebRfbRfbRgbRhbRibRjbRkbRlbRmbRnbRobhpbRqbRrbRsbRtbRubRvbRwbiOaafaaaaaaaaaaaaaaaaaabGybRybGXbsabNXbqDbsabqDbNXbRzbsabqDbqDbqDbqDbqDbGybGWbRAbGYbRBbRBbRCbRDbREbRFbRDbRGbRHbRIbRJbRKboabRLbPBbLGbRMbiSaafbPDbQNbRObPGbRPbPGbRQbRRbRSbHfbQUbHkbRTbRUbyMaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEDbGbbGbbGbbGbbGbbGbbNlbGbbQWbGbbGbbGbbGbbGbbEDbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNnbEGbNobEGbNpaaaaafaaaaaabAJbyGbyibyHbAJaaaaaaaaabGrbNtbNubIWbGrbMfbwWaaabxfbNvbNwbNxbNybHJbNzbNAbNBbNCbGtbNDbNEbNFbNGbNHbNHbNHbNHbNIbNJbNKbNKbNLbNMbNNbNObNPbzhbNRbNSbNTbNUbNSbNVbNTbNSbNSbNUbNVbNSbNSbNVbNSbNSbNUbNSbNWbNXbqDbsabqDbNYbzTbjYaHkbOabObbOcbOdbqDbOebGXbGYbOfbABbAAbzXbzHbAwbAnbOfbBIbOmbOnbDhbBIbBIbOobLGbOpbINbINbHfbHfbHfbHfbHjbHfbOqbKbbOrbHfbOsbIMbyMbINbzgbySbyIbINaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbOwbOwbOwbOwbOwbOwbOxbGbbOybOwbNmbGbbGbbGbbGbbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabGrbOzbOAbOBbGrbMfbmNaaabmMbmHbmKbmabOGbHJbHJbOHbOIbOJbOKbOLbOMbONbOObOObOObOObOObOPbOQbORbOSbOTbOUbOVbOWbOXbOYbOZbPabPbbPcbPdbPdbPbbPdbPdbPcbPdbPdbPdbPdbPdbPdbPcbPebsabPfbPgbPhbPibPjbPkbPlbPmbPnbPobPpbPqbqDbGWbGXbGYbPrbPsbPtbPubPvbPwbPxbPybBIbBIbPzbBIbBIbPAbPBbLGboablVaafbPDbPEbPFbPGbPHbPGbPIbPJbPKbHfbPLbHkbPMbINbPNbPObPObPPaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPQbFZbFZbFZbFZbFZbFZbFZbPRbGcbGbbGbbGbbGbbPSbGcbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbGrbGrbGrbGrbGrbPTbGraaaaaaaaaaaabGtbPUbPVbPWbPXbGtbPYbGtbPZbQabQbbQcbQcbQfbRcbQfbQgbQhbQibQjbQjbQjbQkbQlbQjbQjbQmbQibQnbQjbQjbQjbQkbQjbGybGybGybGybGybGybGybGybGybGXbsabQobQpaqKaqMbQsbzTbQtardarebQwbQxbQybqDbGWbQzbQAbQBbQCbQDbQEbQFbQGbQGbQHbQIbQJbQKboabQLboabPBbLGboabmSaafbPDbQNbQNbQObQPbQQbQRbQSbQTbHfbQUbHkbAvbINbINbINbINbINaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbKpbKpbKpbKpbKpbKpbQVbGbbKobKpbQWbGbbGbbGbbGbbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabiUbQYbMfbGrbGrbGrbGrbGrbGtbGtbGtbGtbGtbGtbGtbGtbQZbRabRbbjpbRdbRebRfbRfbRgbRhbRibRjbRkbRlbRmbRnbRobhpbRqbRrbRsbRtbRubRvbRwbiOaafaaaaaaaaaaaaaaaaaabGybRybGXbsabNXbqDbsabqDbNXbRzbsabqDbqDbqDbqDbqDbqDbGWbRAbGYbRBbRBbRCbRDbREbRFbRDbRGbRHbRIbRJbRKboabRLbPBbLGbRMbiSaafbPDbQNbRObPGbRPbPGbRQbRRbRSbHfbQUbHkbRTbRUbyMaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEDbGbbGbbGbbGbbGbbGbbNlbGbbQWbGbbGbbGbbGbbGbbEDbEDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbkPbRWbRXbRYbRYbRZbSabSbbScbSdbSebSfbSgbSfbShbScbSibSjbSkbkNbSmbSnbSobSobSpbSqbRibSrbRkbRlbSsbRnbStbjwbSvbSwbSxbSybSxbSzbSAbjZaafbSCbSCbSCbSCbSCaaabGybSDbSEbPbbPcbPdbPbbSFbSGbSHbSIbSFbPdbPdbPdbPdbPdbSJbSKbGYbSLbSMbSNbSObSPbSQbSRbGYbGYbqXbSSbqXbqXbqXbSTbSUbSVbqXbHfbHfbHfbHfbHfbSWbHfbHfbHfbHfbHfbQUbHkbSXbRUbyMaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEDbEDbLYbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSYaaaaafaafbSZbSZbSZbSZbSZbSZbSZbSZbTabTbbScbTcbSdbSdbSfbTdbShbScbTebTfbSkbTkbThbRfbTibTjbVDbTlbTmbTnbTobTpbSxbRnbTqbjwbTrbTsbTtbTubTvbTwbTxbrYbTzbTAbTBbTCbTDbSCaaabGybTEbTFbTGbrZbsbbTJbTKbTLbTMbTNbTKbTKbooboHbTKbTKbTQbGXbGYbGYbGYbGYbGYbGYbTRbGYbGYbTSbTTbTUbrXbTWbqXbSSbTXbTYbqXbTZbUabUbbUcbUdbQUbrAbAvbUebAvbAvbQUbHkbUgbyMbyMbyMaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbECbEDbOybOwbOwbGbbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUhbUibUjbUkbUkbUkbsYbUmbUnbUobUpbUqbUrbSZbUsbTbbScbUtbSdbSebSdbSfbUubScbUvbTfbSkbkNbUwbRfbRfbRfbUxbUybsjbUAbUBbSxbUCbUDbSxbsebTrbTsbUFbUGbUGbUHbUIbsdaafbUKbULbTDbUMbSCaafbGybUNbUObGyaaaaafaaabUPbUQbURbUSbUPaafaafaaaaafbGybUTbUUbPdbPdbPdbPdbPdbPdbPbbPdbPdbPdbPdbPcbUVbPdbUWbUXbUYbUZbVabVbbVcbVcbVcbVdbVebVcbVcbVcbVcbVcbVgbVhbVibVjbVkbyMbyMbyMbyMaaaaafaaaaaaaaaankankankaafaaaaaaaafaaaaaaaafaaaaaabIObEDbHmbEDbEDbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10320,10 +10311,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaalOaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaabwWccrcijcenceocepceqceqceqceqcercescetcdDceucdDcdDcevcdDcjwcexceycezcdIbSkccCceAceBbRgceCceDceEbRgceDcjxceGceHbSxbWYbSxbTrcamceIceJceKceLceMciWbTzbTAceNceOceObSCaafaaabZfciXcjqciYbUPceRceScecceTceUcjtceWcjscjrcjuceZbUPaaaaaaaaaaafaaaaaaaaabXpceeceeceecjvcfbcdhcfccfdcfecffcfgcfhbXpaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfiaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaacfjcfkcflaaacfjcfkcflaaacfjcfkcflaafcfmaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabwWccrcijcfncdDcevcfocdDcdDcdDcdDcdDcfncfncdDcdDcdDcdDcfpciOcexcfrcexcfscftceAceAcfubRgcfvcfwcfxbRgcfybQiciDcfAcfBcfCbXUbVMcfDcfEbTtbVObZacfFbsdaafbUKcfGcfHcfIbSCaafaafaafaafaafaafbUPcfJbXibXkcfKcfLbpIcdYcfMbpIcfMcdYbUPaaaaaaaaaaafaaaaaaaaabXpcdjcdjcdjcdjcfNbZmcfOcfPcfQcfRcfScfTbXpaaaaaaaaaaaaaaacfUcfUcfUcfVaafaafaafaafcfiaafaafaafaafaafamncfUcfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaacfjcfWcflaaacfjcfWcflaaacfjcfWcflaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafbwWccrckMcfncfYcdDcfZcgacgbcgbceucdDcfncgccdDcdDcdDcdDcgdckAcgfcggbKPcghcgicgjcgkcglbRgcfvceDcgmbRgcgnbQicjXbSxbSxcfDbSAcgobYOcgpcgqbRvcgrcgsckxbVUbTAcgtceOceObSCaafaaaaaaaafaaaaaabUPcgubXibXkbXicgvbpIbXibXkbpIbXkcgwbUPaaaaaaaaaaafaaaaaaaaabXpcdccddcdeckscgycdhcgzcgAcgBcgCbZmcgDbXpaaaaaaaaaaaaaaacfUaaaaafaaaaafaaaaaaaaacgEaaaaafaafaaaaaaaaaaaacfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalNaafcfjcfWcflaaacfjcfWcflaafcfjcfWcflaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaabmNccrcbEcgFcdDcgGcgHcgIcgJcgKcgJcgLcgJcgMcgNcdzcgOcfncfnciObMqcgPcgQcgRcgScgTcgUcgVcgWcgXcgYcgZchachbbQichcbSxbSxchdbSxbSxbSxbSzbYVchdbZacaqbsdaafbSCbSCbSCbSCbSCaafaaaaaaaafaaaaaabUPchechfchgchhchickechkchlckechlchkbUPaafaafaafaafaafaafaafbXpceeceeceecjzcehbZmchnchochpchqbZmchrbXpbXpbXpbXpaaaaaacfUaaachschschschschsaafchtaafchschschschschsaaacfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfjcfWcflaafcfjcfWcflaaacfjcfWcflaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGrccrcbEchuchvchvchwcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEbGrchxbGrchybGrbQcclXchAchBclYcmEcmIchFcmKbQichHchIchJchKchLchMchLchKchNchKchOcfDclVaafaafaafaafaafaafaafaaaaaaaaaaaaaaabUPbUPchQchRchSbUPbUPclWbUPbUPbUPclWbZfaaaaaaaaaaaaaaaaaaaaabXpceeceeceeckschUcdhchVchWchXchYchZchZciacibcicbXpaafaafcfUaafcidcieciecieciecifchtcigcihcihcihcihciiaafcfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalNaafcfjcfWcflaaacfjcfWcflaafcfjcfWcflaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaabmNccrcbEcgFcdDcgGcgHcgIcgJcgKcgJcgLcgJcgMcgNcdzcgOcfncfnciObMqcgPcgQcgRcgScgTcgUcgVcgWcgXcgYbwMchachbbQichcbSxbSxchdbSxbSxbSxbSzbYVchdbZacaqbsdaafbSCbSCbSCbSCbSCaafaaaaaaaafaaaaaabUPchechfchgchhchickechkchlckechlchkbUPaafaafaafaafaafaafaafbXpceeceeceecjzcehbZmchnchochpchqbZmchrbXpbXpbXpbXpaaaaaacfUaaachschschschschsaafchtaafchschschschschsaaacfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfjcfWcflaafcfjcfWcflaaacfjcfWcflaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGrccrcbEchuchvchvchwcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEbGrchxbGrchybGrbQcclXchAchBbzicmEcmIchFcmKbQichHchIchJchKchLchMchLchKchNchKchOcfDclVaafaafaafaafaafaafaafaaaaaaaaaaaaaaabUPbUPchQchRchSbUPbUPclWbUPbUPbUPclWbZfaaaaaaaaaaaaaaaaaaaaabXpceeceeceeckschUcdhchVchWchXchYchZchZciacibcicbXpaafaafcfUaafcidcieciecieciecifchtcigcihcihcihcihciiaafcfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNaafaaacfjcfWcflaafcfjcfWcflaaacfjcfWcflaafaaaaaaaaaaaaaafaafclncikcikcikcikbGrbGrccrcbEcilcimcimcinciocipciqciqciqciqciqciqcirciqciqciscisciqcitciucivciwbQccixciycizciAciBciCbRfckncahbTnciEciFciGciHciIciJciKbSxciLciMciNbjwaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafbUPciXcjqclibUPaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabXpcdjcdjcdjcdjciPbZmchnciQciRchqbZmbZmciSbZmciTbXpaaaaaacfUaafciUciUciUciUciUaaachtaaaciUciUciUciUciUaafcfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaaafaafciVaafaafaafciVaafaaaaafciVaafaaaaaaaaaaaaaaaccpcclcneciZcjacjbcjccjdcbCcjecbEcbEcjfcjgcbEcbEbPTcjhcjhcjhcjhcjhcjhcjicjhcjhcjhcjjcjjcjkcjlcjjcjjcjmcjnciycizbRfbRfbRfbRfcjocjpcnbcnccndcmZcmYcnacmYcmZcmYcmRcmYcmRcmSaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaacjyaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXpcdccddcdeccvcgycdhcjAbZocjBcjCcjCcjDcjEcjFcjGbXpaaaaaacfUaaaaafaaaaafaafaafaaachtaaaaafaaaaafaaaaafaaacfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaaafaafciVaafaafaafciVaafaaaaafciVaafaaaaaaaaaaaaaaaccpcclcneciZcjacjbcjccjdcbCcjecbEcbEcjfcjgcbEcbEbPTcjhcjhcjhcjhcjhcjhcjicjhcjhcjhcjjcjjbDbcjlcjjcjjcjmcjnciycizbRfbRfbRfbRfcjocjpcnbcnccndcmZcmYcnacmYcmZcmYcmRcmYcmRcmSaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaacjyaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXpcdccddcdeccvcgycdhcjAbZocjBcjCcjCcjDcjEcjFcjGbXpaaaaaacfUaaaaafaaaaafaafaafaaachtaaaaafaaaaafaaaaafaaacfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcjHcjIcjIcjJcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjLcjMcjNcjOcjPcjQcjRcjScjTbIWccrcjUcbEcbEcbEcbEbIWbPTcjhcjVcjWclycjYcjZckackbckcckdcmQckfckgckhckickjckkcklckmcizbRfbRfbRfbRfclxbQcaafckoaafckpaafckoaafckpaafckqaafckqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackraaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXpceecefceecmLcehbZmbZnbZocktbZmbZmckucdjcdjcdjbXpaaaaaacfUaaachschschschschsaafchtaafchschschschschsaafcfUaaaaaaaaaaaaaaaaaaaaackvaaaaaaaaackvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaaafaafckwaafaaaaafckwaafaaaaafckwaafaaaaaaaaaaaaaaaccpcclcckckyckzccicikckBbIWckCcbCcbCcbCcbCcbCcbCckDcjhckEckFckGckGckHckIckJckKckLcchckNckOckPckQckRckScklciycizckUckVbRfbRfckWbQcbSCckXbUKckXbSCckXbUKckXbSCckYbUKckZbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpceeceeceeccvclaclbclccldclebZmbZmclfbZmclgbZmccuaafaafcfUaafcidcieciecieciecifchtcigcihcihcihcihciiaafcfUaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNaafaafcfjclhcflaaacfjclhcflaaacfjclhcflaafaaaaaaaaaaaaaafaafccxcikcikcikcikbGrcaRcbHbIWcljbIWbIWbIWclkbTbcjhcllckGckGckGckGclmckJckGckGccwcloclpclqclrclscltcklclvclwbXQbWRclzbRfbVEbQcbSCclBclCclDbSCclEclFclGbSCclHclIclJbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAbXpclKclLclLclMclNclOclNclPclQclRclSclTcdhclUccEaaaaaacfUaafciUciUciUciUciUaaachtaafciUciUciUciUciUaaacfUaaackvaaackvaaaaaackvckvckvckvckvckvckvaaaaaackvaaackvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10333,8 +10324,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnaafcfjcnAcflaaacfjcnAcflaaacfjcnAcflaafalNaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbkPbOBbOAcjhcjhcjhcjhcjhcjhcnBcnCcnDcnEcnFcnFcnGcnHcnIcnJcnKcnFcnFcnLcnMcnNcnOcnPcnuchzcnwbQccnRcnScnTcnTcnUaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpcnVceeceecdjcnVceeceecdjcnVceeceebXpaaaaaacfUaafciUciUciUciUciUaaacfiaaaciUciUciUciUciUaaacfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalNaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbGrchCchPcjhcnWcnXcnYcnZcjhcoackGclmcobckGcoccodcoechTchDcohchGchEcokcodcolcnOcnPcomceAconcmTcnwcoocopcoqcoraaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpcosceeceecdjcosceeceecdjcosceeceebXpaaeaaacfUaaaaaaaafaafaafaaaaaacfiaafaaaaaaaafaafaaaaaacfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNalOalOamnalNalNalNalNalOalNalNalOcotaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcoucoucovcovcowcobckGclmcobckGcoxcoycozcoAcoBcoCcoDcoEcoFcoGclmcobcoHcoIceAceAbQcconcoJcnTcnTcoKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAbXpbXpbXpbXpbXpbXpbXpbXpcoLcoLcoLcaAaaaaaacfUcfUcfUcfUcfUaaaaaaaaacfiaaaaaaaaacfUcfUcfUcfVcfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaacjhcovcovcovcovcowcoMcoNcoOcoPcoQcoRcoRcoScoTcoUcoVcoWcoXcoScoYcoZcpacpbckGckGcpccpdcjhcjhcjhcoecpeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpfcpfcpfaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaafcpgaafcfUaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaaaaaaaacphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacjhcpicpjcpkcplcjhcpmcpncpocppcpqcprcpscjhcptcpucpvckGcpwcjhcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHcpIcpJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaaaaafaaacfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaacjhcovcovcovcovcowcoMcoNcoOcoPcoQcoRcoRcoScoTcoUcoVcoWcoXcoScoYbwKbnocpbckGckGcpccpdcjhcjhcjhcoecpeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpfcpfcpfaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaafcpgaafcfUaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaaaaaaaacphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacjhcpicpjcpkcplcjhcpmcpncpocppcpqcprcpscjhcptcpucpvckGcpwcjhcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHbwLcpJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaaaaafaaacfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafcjhcpKcpKcpKcplcjhcpLcpMcjhcpNcpOcpOcpOcjhcpPcpQcpRcpScpTcjhcpOcpOcpOcpNcjhcpUcodcpVcjhcjhcjhcjhcpWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUcfUcfUcfUcfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaacphaaaaaacphcphcphcphcphcphcphaaaaaacphaaacphaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaafaaacjhcpKcpKcplcplcjhcpXcpYcjhcpZcqacqbcqccaNcqecqfcqgcqhcpTbZTcqacqacqacqjcjhcqkcqlcpVaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvaaaaaackvckvckvckvckvckvckvaaaaaackvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagcjhcjhcjhcjhcjhcjhcovcqmcjhcjhcbwcaOcaPcaQcqrcppcqscppcqtcbxcaPcaOcbzcjhcjhcqwcqxcqyaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11237,7 +11228,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsddsedsfdsgdshdsidsjaafaafdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskdskdskaafdsldrDaafaafaafaafaafdoTdoTdoTdoTdoTdoTdsmdsndoTdpKdpKdsodspdsqdrndsrdssdrSdstdsudsvdrndswdsxdsydszdsAdsBdsCdpRdsDdsEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaadofdofdofdofdofaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsFdrwdrwdsGdsHdrzdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskdskdskaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdpddsKdoOdsLdsMdsNdsOdsPdsQdsRdsSdsTdsUdrndsVdsWdsXdsYdsZdtadtbdtcdtddtedtedtedtfdtgdthdtidtjdtjdtkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaadofdofdofdofdofaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtldtmdtndsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdDZdEadtqdtrdtsdttdtudtvdtwdtxdtydtzdtAdtBdtCdtDdtEdtFdtFdtFdtGdtHdtIdtedtJdtKdtLdtMdtedtNdsEdsEdsEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtOdtPdtQdtRdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdvCduzdtUdtVdtWdtXdtYdtZduadubdoNducduddrnduedufdugduhduidujdrndukduldumdundunduodupduqdurdusdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdtOdtPdtQdtRdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdvCduzdtUdtVdtWdtXdtYdtZduadubdoNducduddrnduebLsdugduhduidujdrndukduldumdundunduodupduqdurdusdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafduuduvduwdsIduxduydsIdsIdsIdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJduTduzdoOdtVduAduBduCduDduEduFdoNduGduHdrnduIdrnduJduKduLduMdrnduNduOdteduPduQduRduSdtSduUduVduWduWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafduXduYduZdvadvbdvcdpVdsidvddsIdvedvfdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdpddtTdoOdvgdvhdvidvjdvkdvldvmdoNdvndvodvpdvqdrndvrdvsdvtdvudrndvvdvwdvxdvydvzdvAdvBdvQduUdutdutdutaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvDdvEduYdvFdvGdvHdvIdvJdvddvKdvfdvLdvedsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadvMdvNdsbdtodvOdvNdsbdvPdvSdvTdvUdpddvVdpddoNdoNdoNdoNdoNdvWdvXdvYdvqdrndvZdwadwbdwcdrndwddwedwfdwgdwhdwidwjdwkdwldwmdoNdwndrBdoCdoCdoCdoCdoCdoCdoDdwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11254,7 +11245,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdvddyedDRdxfdrzdvFdvddsIdvGdtRdsIdDSdDTdDTdDUdsIdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdDWdDXdDYaaaaaaaaaaaaaaaaaaaafaafaafdAGdAGdoqdoBdAGdEbdoodpSdoodAGdEedzPdzPdzPdzPdzPdzsdzsdzsdzvdzvdzvdzvdzydzydzydzydzBdzBdzBdzBdzBdDkdDkdEfdEgdoydoydEhdCIdoedoedpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdyedsidxidvddvGdtRdxidsIdCKdsIdsIdygdqAdDTdEidEjdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEkdEldEmaaaaaaaaaaaaaaaaafdEndEodEpdEqdErdEsdEtdEudEvdEwdExdEydAGdEedzPdzPdzPdzPdzPdEzdEAdEBdoedoedoedoedoedoedoedoedoedoedoedoedoedoedowdECdCIdEDdoedoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdsIdsIdsIdsIdsIdsIdsIdsIdsIdCKdsIdygdqAdyhdqAdDUdEEdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEFdEGdEHdEIdEIdEIdEIdEIdEIdEJdEKdELdEMdEMdENdEOdEOdAGdEPdEQdERdAGdEedzPdzPdzPdzPdzPdDWdEldESdoedoedpkdpkdpkdpkdpkdpkdoedoedoedoedoedowdECdCIdETdDVdETdoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUaaaaaaaaaaaaaaadEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdsIdygdyhdyhdyhdyidsIdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEVdEWdEWdEWdEWdEWdEWdEWdEWdEVdzPdzPdzPdzPdzPdzPdAGdoodopdoodAGdEYdzPdzPdzPdzPdzPdEZdFadFbdoydoydoydoydFcdoydoydoydoydoydFddFedFfdFgdCIdDVdDVdDVdETdzQdoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUaaaaaaaaaaaaaaadEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdCKdsIdygdyhdyhdyhdyidsIdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPbGHdEWdEWdEWdEWdEWdEWdEWdEWbGHdzPdzPdzPdzPdzPdzPdAGdoodopdoodAGdEYdzPdzPdzPdzPdzPdEZdFadFbdoydoydoydoydFcdoydoydoydoydoydFddFedFfdFgdCIdDVdDVdDVdETdzQdoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdDqdFhdFidsIdsIdDVdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdEFdELdFjdFkdFkdFkdFkdFkdFkdFkdEFdELdzPdzPdzPdzPdzPdzPdFldFmdFndFodFpdFqdzPdzPdzPdzPdEBdEBdEBdoedoedpkdpkdpkdpkdpkdpkdpkdpkdFrdFsdFtdFudDVdETdDVdDVdETdoedoedoedpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdDVdDVdDVdsIdDTdDTdyhdsIdDVdDVdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddzddzddzddzddzddzPdzPdzPdzPdzPdzPdFldFvdFndzPdzPdzPdzddzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdzQdETdDVdFwdDVdETdDVdDVdDVdoedoedoedoedoedpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdDVdDVdDVdsIdFxdFydFxdsIdDVdDVdDVdDVdDVdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddoedoedoedoedzddzddzddzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdzQdpkdDVdEDdpkdoedpkdpkdoedoedoedoedpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11357,9 +11348,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdzPdzPdzPdzPdzPdzPdGMdGMdGMdzPdzPdzPdzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGIdpkdpkdGvdGDdGEdGNdGBdHZdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedzddzddCadzddzddzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdDVdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdFCdFCdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdzPdzPdzPdzPdzPdzPdzPdzPdGPdGQdGRdzPdzPdzPdzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzddzddzddzddzddoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdGvdGSdGvdGvdGvdGvdGvdGvdGBdIndzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedzddzddzPdGLdzPdzPdzPdFLdFpdFqdzPdzPdzPdzPdzPdzPdzPdDVdDVdzddoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdzPdzPdGUdGUdGUdGUdGUdGUdGVdGWdGXdGUdGUdGUdGUdGUdzPdzPdzPdzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedoedzddzddzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdGvdGvdGvdGvdGYdGZdHadGvdGzdHbdGvdGHdGvdGvdGvdNjdJzdJWdGvdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedzddzddzPdzPdzPdzPdzPdzPdFldFvdFndzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdzddzPdzPdzPdGUdHfdHgdHhdHedHjdHkdHldHmdHndHodHpdHqdHidFqdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedpkdpkdpkdGvdHsdHtdHudHvdHtdHtdGvdGDdGEdHwdGBdGvdHxdHydHzdHzdHzdHDdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdHAdHBdHCdHrdHBdHBdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdEUdEUdoedzddzPdzPdzPdGUdHEdHgdHFdHGdHgdHHdHgdHgdHIdHJdHKdHqdHLdHMdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddCadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedoedoedoedGvdHNdHtdHOdHPdHQdHRdGvdGvdGvdGvdGBdGvdHxdHSdHSdHSdHTdHZdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdHAdHUdHUdHUdHVdHBdzPdHWdzPdzPdzPdCPdCadzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdoedzddzPdzPdzPdGUdHXdHgdHgdHYdHgdHHdHgdHgdHgdImdIadIbdHidFndzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdGLdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedGvdIcdHtdIddHtdIedHtdIfdHTdIgdIhdIidGvdHxdHSdIjdHSdIkdIndzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdIldIldGTdHcdHAdIodIpdIqdIrdHBdHBdHBdHBdzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdFCdFCdEUdEUdzddzPdzPdzPdGUdHfdHgdHhdHedHjdHkdHldHmdHndHobQqdHqdHidFqdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddzddoedoedoedoedpkdpkdpkdGvdHsdHtdHudHvdHtdHtdGvdGDdGEdHwdGBdGvdHxdHydHzdHzdHzdHDdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzddzddzddzPdzPdzPdzPdzPdzPdzPdzPdHAdHBdHCdHrdHBdHBdzPdzPdzPdzPdzPdzPdzddoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdFCdFCdFCdEUdEUdoedzddzPdzPdzPdGUdHEdHgdHFdHGdHgdHHdHgdHgbQvcgZdHKdHqcjkclYdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddCadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedoedoedoedoedGvdHNdHtdHOdHPdHQdHRdGvdGvdGvdGvdGBdGvdHxdHSdHSdHSdHTdHZdzPdzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdHAdHUdHUdHUdHVdHBdzPdHWdzPdzPdzPdCPdCadzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdFCdFCdFCdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdoedzddzPdzPdzPdGUdHXdHgdHgdHYdHgdHHdHgdHgdHgdImcpacoZdHidFndzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedoedzddzddzPdGLdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddzddoedoedoedGvdIcdHtdIddHtdIedHtdIfdHTdIgdIhdIidGvdHxdHSdIjdHSdIkdIndzPdzPdzPdzPdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdzPdzPdzPdIldIldGTdHcdHAdIodIpdIqdIrdHBdHBdHBdHBdzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdzddzddzPdzPdGUdIsdHgdItdIudIvdIwdIxdHgdGUdGUdGUdGUdGUdGUdFLdFqdzPdzPdzPdzPdzPdzPdzPdzPdzddzddzddoedoedoedoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedzddzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdzPdFLdFqdzPdzPdzPdzPdzPdzPdzPdzPdzPdzddzddoedoedGvdGvdGvdGvdGvdGvdGvdIydIzdIAdIydIzdGvdGvdGvdGvdGvdIBdGvdGvdICdIDdzPdzPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzPdzPdIEdHcdIFdIGdIHdIIdIJdIKdILdIMdINdIOdIPdIQdFqdzPdzPdzPdCbdzddoedoedpkdpkdpkdpkdpkdpkdpkdoedoedoedpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdEUdpkdpkdoedzddzPdzPdGUdIRdHgdISdHGdITdIUdIVdHgdIWdIXdIYdIZdJadJbdFRdFSdFJdFJdFJdFJdFJdFIdzPdzPdzPdzPdzddzddzddoedoedoedoedoedpkdpkdpkdoedoedoedoedzddzddzPdzPdFOdFJdFJdFJdFJdFJdFJdFJdFJdFRdFSdFJdFJdFJdFJdFIdzPdzPdzPdzPdzPdzddoedoedoedoedoedGvdJcdJddJedHSdIkdJfdHTdIkdIfdJgdJhdJidHTdIkdHSdHSdJjdKbdJzdJWdJldJmdJmdJmdJmdJmdJmdJmdJndJndJndJndJndJndJndGTdJwdJpdJqdIGdJrdJsdJtdJudIKdIKdJvdJodJxdJydJkdJAdzPdzPdzPdCbdzddoedoedpkdpkdpkdpkdpkdpkdoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEUdEUdEUdEUdpkdpkdoedzddzPdzPdGUdGUdGUdGUdGUdJBdJCdJDdGUdGUdJEdGUdGUdGUdGUdFldFndzPdzPdzPdzPdzPdFzdzPdzPdzPdzPdzddzPdzddzddoedoedoedoedoedoedoedoedoedoedzddzddzPdzPdzPdFzdzPdzPdzPdzPdzPdzPdzPdzPdFldFndzPdzPdzPdzPdFzdzPdzPdzPdzPdzPdzddzddCadzddzddoedGvdGvdGvdGvdJFdIkdJGdJHdJIdIhdJJdJKdJKdJLdJLdJMdJKdJNdJOdJKdJOdJPdJPdJPdJPdJPdJPdJPdJPdJQdJQdJQdJQdJQdJQdJQdJRdJSdJRdJTdJSdJUdJVdKtdJXdJYdJZdKadKsdKcdKddIQdFndzPdzPdzPdzPdzddzddoedoedpkdpkdpkdpkdpkdoedoedoedpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From f1f6c07dedef5c01f5301f186ff3e6aa15fc06b6 Mon Sep 17 00:00:00 2001 From: Segrain Date: Sat, 24 Aug 2013 09:35:14 +0300 Subject: [PATCH 038/226] Same mapfix, part 2. Also, minor update. --- code/game/machinery/computer/camera.dm | 2 +- code/game/objects/items/robot/robot_upgrades.dm | 2 +- code/modules/mob/living/silicon/robot/robot.dm | 2 ++ maps/tgstation2.dmm | 9 ++++----- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 857d4169ea1..bc44e62cba2 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -200,4 +200,4 @@ name = "Engineering Cameras" desc = "Used to monitor fires and breaches." icon_state = "engineeringcameras" - network = list("Power Alarms","Atmosphere Alarms","Fire Alarms") \ No newline at end of file + network = list("Engineering","Power Alarms","Atmosphere Alarms","Fire Alarms") \ No newline at end of file diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 7a76812b34e..315d9103dd4 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -32,7 +32,7 @@ R.icon_state = "robot" del(R.module) R.module = null - R.camera.network.Remove(list("Medical","MINE")) + R.camera.network.Remove(list("Engineering","Medical","MINE")) R.updatename("Default") R.status_flags |= CANPUSH R.updateicon() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 818cd06cb74..fc6a6c737f8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -203,6 +203,8 @@ if("Engineering") module = new /obj/item/weapon/robot_module/engineering(src) channels = list("Engineering" = 1) + if(camera && "Robots" in camera.network) + camera.network.Add("Engineering") module_sprites["Basic"] = "Engineering" module_sprites["Antique"] = "engineerrobot" module_sprites["Landmate"] = "landmate" diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index e8b19ce363a..afdf987009a 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -4757,7 +4757,7 @@ "bNy" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/turf/simulated/floor/plating,/area/storage/tech) "bNz" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/clonescanner,/obj/item/weapon/circuitboard/clonepod,/obj/item/weapon/circuitboard/scan_consolenew,/turf/simulated/floor/plating,/area/storage/tech) "bNA" = (/obj/structure/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},/turf/simulated/floor/plating,/area/storage/tech) -"bNB" = (/obj/structure/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/atmos_alert{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/security{name = "Circuit board (Engineering Monitor)"; network = list("Power Alarms","Atmosphere Alarms","Fire Alarms")},/turf/simulated/floor/plating,/area/storage/tech) +"bNB" = (/obj/structure/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/atmos_alert{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/security{name = "Circuit board (Engineering Monitor)"; network = list("Engineering","Power Alarms","Atmosphere Alarms","Fire Alarms")},/turf/simulated/floor/plating,/area/storage/tech) "bNC" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) "bND" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bNE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/aft) @@ -6220,6 +6220,7 @@ "cpF" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "engineering_aux_pump"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) "cpG" = (/obj/machinery/light/small,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_aux_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/engine/engineering) "cpH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_aux_pump"; exterior_door_tag = "engineering_aux_outer"; frequency = 1379; id_tag = "engineering_aux_airlock"; interior_door_tag = "engineering_aux_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "10;13"; sensor_tag = "engineering_aux_sensor"},/turf/simulated/floor/plating,/area/engine/engineering) +"cpI" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{desc = ""; name = "Mission Monitor"; network = list("NUKE")},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cpJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpK" = (/obj/machinery/field_generator,/turf/simulated/floor/plating,/area/engine/engineering) "cpL" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall,/area/engine/engineering) @@ -6796,7 +6797,6 @@ "cAK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) "cAL" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAM" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cAN" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{name = "Mission Monitor"; network = list("NUKE")},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAO" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAP" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAQ" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6862,7 +6862,6 @@ "cBY" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac) "cBZ" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cCa" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cCb" = (/obj/machinery/computer/security/telescreen,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "cCc" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cCd" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "cCe" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -10452,14 +10451,14 @@ crMcsCcsrcszcswcsFcsscsxcsEcszcAgczxcAoczNcApcszczDcAqczCcArczycszcsDcsscsFcsBcr crPcsFcsucsvcsscsrcszcswcsBcsvczyczuczPcAgczhcsvczUcznczzczDczPcsvcstcszcsrcsycrDcsmcrIcsEcsDcsscyBcxLcxHcxJcxIcyccybcxKcxJcyjcyecxEcxFcyacyccybcxKcxJczEcsBcswcstcrOcsmaaaaaaaaacxrcsBcswcstcsBcswcstcsBcyCcxzcxAcyCcxzcxAcyCcstcsBcswcstcsBcswcstcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczGczFczFczFczFczFczIczFczHczIczFczHczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAvcAtcAtcAwczbczrczrczbczbcyUcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crCcsrcsxcsEcsCcsvcsucsAcsvcsrcsxcsEcsCcsvcsucsAcsvcsucsAcsrcsxcsEcsCcsvcsucsAcrJcsmcrHcsBcstcszcyJcydcybcxHcyccxEcxFcxGcxHcxIcxJcxKcxLcxMcxEcxFcxGcxHcxxcsycsscsCcrLcsmaaaaaaaaacxrcsycsscsCcsycsscsCcsycsscxOcxPcxQcxOcxPcsscsCcsycsscsCcsycsscsCcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFcAxcAxcAxcAxcAxcAxcAxczFczFczFczFczFczFczFczHczFczFcAjczIczFczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyScyTcyTcyTcyVczbczYczZczbcAycyQcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crFcsAcswcsBcsFcsEcsxcsDcsEcsAcswcsBcsFcsEcsxcsDcsEcsxcsDcsAcswcsBcsFcsEcsxcsDcrGcsmcrDcsycsCcsvctNcyjcxFcybcxEcxKcxLcyacybcyccxHcxGcydcyecxKcxLcyacybcxycsAcszcsFcrBcsmaaaaaaaaacxrcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAzcAAcABcACcACcACcADcAAcAEczFczFczFczFcAjczFczFczGczFczGczFczHczFczHczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAFcAGcAGcAHcAIczbczYczZczbcAJcAFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crIcsscsscsycsrcsBcswcstcsBcsscsscsycsrcsBcswcstcsBcswcstcsscsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcAKcxIcxLcxFcxKcxGcydcxMcxFcxEcybcyacyjcxJcxGcydcxMcxFcxNcsDcsvcsrcrKcsmaaaaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcALcAMcANcAOcAPcAQcAQcAAcARczFczFcAxcAxcAxcAxcAxcAxcAxcAxcAScATcAxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAUcAUcAUcAVczbczYczZczbcAWcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crIcsscsscsycsrcsBcswcstcsBcsscsscsycsrcsBcswcstcsBcswcstcsscsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcAKcxIcxLcxFcxKcxGcydcxMcxFcxEcybcyacyjcxJcxGcydcxMcxFcxNcsDcsvcsrcrKcsmaaaaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcALcAMcpIcAOcAPcAQcAQcAAcARczFczFcAxcAxcAxcAxcAxcAxcAxcAxcAScATcAxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAUcAUcAUcAVczbczYczZczbcAWcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crHcszcszcsAcsucsycsscsCcsycszcszcsAcsucsycsscsCcsycsscsCcszcszcsAcsucsycsscsCcrLcsmcrGcsDcsrcsBcAYcyccydcxLcxGcyacyjcyecxLcxKcxFcxMcxIcxHcyacyjcyecxLctXcstcsEcsucrNcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcAZcAMcAMcBacAMcAMcAMcAAcARczFcBbcBccBdcBdcBeczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBhczbczbczbczbczbcyUcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crDcsvcsvcsDcsxcsAcszcsFcsAcsvcsvcsDcsxcsAcszcsFcsAcszcsFcsvcsvcsDcsxcsAcszcsFcrBcsmcrOcstcsucsycyWcxEcyjcydcyacxMcsucxJcydcxGcxLcyecsxcybcxMcxIcxJcydcykcsCcsBcsxcrEcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcBicAMcAMcAMcBjcAMcBkcAAcARcAjcBbcBlcBmcBmcBmcBncBoczocBpcBqczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBrcAUcAUcAIczbczrczrczrcztcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crJcsEcsEcstcswcsDcsvcsrcsDcsEcsEcstcswcsDcsvcsrcsDcsvcsrcsEcsEcstcswcsDcsvcsrcrKcsmcrLcsCcsxcsAcuhcxKcxIcyjcxMcxEcsBcyacybcxJcxGcxFcsucxKcyecyccxHcyjcyrcsFcsycswcrMcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcBscAAcAAcAAcBtcAAcAAcAAcBuczFczFcBvcBlcBmcBmcBwcBmcBmcBxcBycBycBzczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBAczbcBBcBCcBDczacyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crGcsBcsBcsCcsscstcsEcsucstcsBcsBcsCcsscstcsEcsucstcsEcsucsBcsBcsCcsscstcsEcsucrNcsmcrBcsFcswcsDczEcxGcyccxIcyecxKcsycsEcstcsAcsvcsCcsxcxGcxJcxEcybcxIcyxcsrcsAcsscrPcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFcAAcBEcAMcBFcAAcBGcAxcAxcAxcBHcBIcBmcBJcBKcBLcBmczocBycBMcBMczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcBNcBNcyTcyTcBOcyTcyTcBNcBNczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crOcrMcrIcrKcrPcrDcrFcrCcrOcrHcrLcrGcrNcrBcxrcxrcxrcxrcxrcrIcrKcrCcrGcrPcrBcrHcrEcsmcrKcsrcsscstcxdcvfcuwcxicvRcuUcvWcvNcwJcwmcvxcwNcuwcvfcvWcuCcwDcxicvNcsucsDcszcrCcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFcAAcAMcAMcAMcAAcBccBdcBdcBdcBeczocBmcBJcBPcBLcBmczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcyVcBQczYczbczZcBRcySczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa csEcsCcsxcsAcsFcsscsucsrcsEcswcsBcsvcsDcsycszcstcsucsscsBcsxcsAcsrcsvcsFcsycswcstcsmcrNcsucszcsCcsxcsEcsscswcsAcsvcsDcsycsFcstcsBcsrcsscsEcsDcszcsCcswcsycsxcstcsvcrFcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFcAzcAAcAAcAAcAAcAAcAMcAMcAMcAAcBlcBScBScBScBScBTcBmcBmcBmcBmcBmcBUcBVcBWczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBBczrcBXczrcBYcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -csBcswcsDcsucsEcsrcsucsEcsrcswcsDcsucsEcsrcswcsDcsucsEcsrcswcsDcsucsEcsrcsAcsscsCcsmcrEcsxcsvcsFcswcsBcszcsscsDcsEcstcsAcsrcsCcsycsucszcsBcstcsvcsFcsscsAcswcsCcsEcrIcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFcAAcBZcAMcAMcCacAAcAMcAMcAMcCbcBIcCccCdcBdcBeczocBmcBmcBmcBmcBmczocCecCecCfczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcCgcChcCicCjcCkcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +csBcswcsDcsucsEcsrcsucsEcsrcswcsDcsucsEcsrcswcsDcsucsEcsrcswcsDcsucsEcsrcsAcsscsCcsmcrEcsxcsvcsFcswcsBcszcsscsDcsEcstcsAcsrcsCcsycsucszcsBcstcsvcsFcsscsAcswcsCcsEcrIcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFcAAcBZcAMcAMcCacAAcAMcAMcAMcAAcBIcCccCdcBdcBeczocBmcBmcBmcBmcBmczocCecCecCfczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcCgcChcCicCjcCkcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa csycsscstcsxcsBcsucsxcsBcsucsscstcsxcsBcsucsscstcsxcsBcsucsscstcsxcsBcsucsDcszcsFcsmcrMcswcsEcsrcsscsycsvcszcstcsBcsCcsDcsucsFcsAcsxcsvcsycsCcsEcsrcszcsDcsscsFcsBcrHcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFcAAcBZcAMcClcCmcAAcAMcAMcAMcAAcAAcCncCocCpcCqczoczoczoczoczocCrczocCscCecCfczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcCtcCucCucCucCvczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa csAcszcsCcswcsycsxcswcsycsxcszcsCcswcsycsxcszcsCcswcsycsxcszcsCcswcsycsxcstcsvcsrcsmcrPcsscsBcsucszcsAcsEcsvcsCcsycsFcstcsxcsrcsDcswcsEcsAcsFcsBcsucsvcstcszcsrcsycrDcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczocCwczFcAAcBZcAMcClcCxcAAcAMcAMcAMcAAcCycAMcAMcAAcCzcCAcCqczocCBcCCcCDczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa csDcsvcsFcsscsAcswcsscsAcswcsvcsFcsscsAcswcsvcsFcsscsAcswcsvcsFcsscsAcswcsCcsEcsucsmcrCcszcsycsxcsvcsDcsBcsEcsFcsAcsrcsCcswcsucstcsscsBcsDcsrcsycsxcsEcsCcsvcsucsAcrJcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFcAAcBZcAMcAMcAMcCEcAMcAMcCFcCGcAMcAMcCHcAAcARczFcBbcCIcCJcCCcCKczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 01ac4be99177b479461f2ecd3203535bf5eeb3eb Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 24 Aug 2013 18:35:10 +0200 Subject: [PATCH 039/226] Ported Rezadone (Heals clone damage without cryo) from tg-station --- code/modules/reagents/Chemistry-Reagents.dm | 27 +++++++++++++++++++++ code/modules/reagents/Chemistry-Recipes.dm | 7 ++++++ 2 files changed, 34 insertions(+) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 5b107276a02..d37b9160edb 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1657,6 +1657,33 @@ datum ..() return + rezadone + name = "Rezadone" + id = "rezadone" + description = "A powder derived from fish toxin, this substance can effectively treat genetic damage in humanoids, though excessive consumption has side effects." + reagent_state = SOLID + color = "#669900" // rgb: 102, 153, 0 + + on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(!data) data = 1 + data++ + switch(data) + if(1 to 15) + M.adjustCloneLoss(-1) + M.heal_organ_damage(1,1) + if(15 to 35) + M.adjustCloneLoss(-2) + M.heal_organ_damage(2,1) + M.status_flags &= ~DISFIGURED + if(35 to INFINITY) + M.adjustToxLoss(1) + M.make_dizzy(5) + M.make_jittery(5) + + ..() + return + spaceacillin name = "Spaceacillin" id = "spaceacillin" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 5d639fc3ba1..dcf05ce94a8 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -458,6 +458,13 @@ datum required_reagents = list("carpotoxin" = 5, "stoxin" = 5, "copper" = 5) result_amount = 2 + rezadone + name = "Rezadone" + id = "rezadone" + result = "rezadone" + required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1) + result_amount = 3 + mindbreaker name = "Mindbreaker Toxin" id = "mindbreaker" From d568023d4516e00df434dc4d0ee6ad7e3a36d323 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 24 Aug 2013 15:42:53 -0700 Subject: [PATCH 040/226] Increased cooldown on vox shuttle engines to two minutes. --- code/game/machinery/computer/vox_shuttle.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/vox_shuttle.dm b/code/game/machinery/computer/vox_shuttle.dm index fa9d05d7b90..31fb26b436d 100644 --- a/code/game/machinery/computer/vox_shuttle.dm +++ b/code/game/machinery/computer/vox_shuttle.dm @@ -1,5 +1,5 @@ #define VOX_SHUTTLE_MOVE_TIME 260 -#define VOX_SHUTTLE_COOLDOWN 460 +#define VOX_SHUTTLE_COOLDOWN 1200 //Copied from Syndicate shuttle. var/global/vox_shuttle_location From 591cde1ccb3d58c32729730a63c6dd1b039ecff3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 24 Aug 2013 19:25:05 -0700 Subject: [PATCH 041/226] Emags now have a ten-use limit. --- code/game/objects/items/weapons/cards_ids.dm | 58 +++++++++++++++++++ .../mob/living/carbon/human/human_defense.dm | 2 + .../modules/mob/living/silicon/robot/robot.dm | 2 + .../simple_animal/friendly/spiderbot.dm | 2 + 4 files changed, 64 insertions(+) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 6e86f849699..2833cc922f1 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -54,6 +54,14 @@ /* * ID CARDS */ + +/obj/item/weapon/card/emag_broken + desc = "It's a card with a magnetic strip attached to some circuitry. It looks too busted to be used for anything but salvage." + name = "broken cryptographic sequencer" + icon_state = "emag" + item_state = "card-id" + origin_tech = "magnets=2;syndicate=2" + /obj/item/weapon/card/emag desc = "It's a card with a magnetic strip attached to some circuitry." name = "cryptographic sequencer" @@ -61,6 +69,56 @@ item_state = "card-id" origin_tech = "magnets=2;syndicate=2" var/uses = 10 + // List of devices that cost a use to emag. + var/list/devices = list( + /obj/item/robot_parts, + /obj/item/weapon/storage/lockbox, + /obj/item/weapon/storage/secure, + /obj/item/weapon/circuitboard, + /obj/item/device/eftpos, + /obj/item/device/lightreplacer, + /obj/item/device/taperecorder, + /obj/item/device/hailer, + /obj/item/clothing/tie/holobadge, + /obj/structure/closet/crate/secure, + /obj/structure/closet/secure_closet, + /obj/machinery/librarycomp, + /obj/machinery/computer, + /obj/machinery/power, + /obj/machinery/suspension_gen, + /obj/machinery/shield_capacitor, + /obj/machinery/shield_gen, + /obj/machinery/zero_point_emitter, + /obj/machinery/clonepod, + /obj/machinery/deployable, + /obj/machinery/door_control, + /obj/machinery/porta_turret, + /obj/machinery/shieldgen, + /obj/machinery/turretid, + /obj/machinery/vending, + /obj/machinery/bot, + /obj/machinery/door, + /obj/machinery/telecomms, + /obj/machinery/mecha_part_fabricator + ) + + +/obj/item/weapon/card/emag/afterattack(var/obj/item/weapon/O as obj, mob/user as mob) + + for(var/type in devices) + if(istype(O,type)) + uses-- + break + + if(uses<1) + user.visible_message("[src] fizzles and sparks - it seems it's been used once too often, and is now broken.") + user.drop_item() + var/obj/item/weapon/card/emag_broken/junk = new(user.loc) + junk.add_fingerprint(user) + del(src) + return + + ..() /obj/item/weapon/card/id name = "identification card" diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index f8a184f3c13..4044c0aae1f 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -191,6 +191,8 @@ emp_act user << "\red [src]'s [affecting.display_name] is already sabotaged!" else user << "\red You sneakily slide [I] into the dataport on [src]'s [affecting.display_name] and short out the safeties." + var/obj/item/weapon/card/emag/emag = I + emag.uses-- affecting.sabotaged = 1 return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index fc6a6c737f8..621b375aeef 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -697,6 +697,8 @@ if(!opened)//Cover is closed if(locked) if(prob(90)) + var/obj/item/weapon/card/emag/emag = W + emag.uses-- user << "You emag the cover lock." locked = 0 else diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 30bf04c7ada..71e38d0ba55 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -125,6 +125,8 @@ user << "\red [src] is already overloaded - better run." return 0 else + var/obj/item/weapon/card/emag/emag = O + emag.uses-- emagged = 1 user << "\blue You short out the security protocols and overload [src]'s cell, priming it to explode in a short time." spawn(100) src << "\red Your cell seems to be outputting a lot of power..." From 86d709e1509c2dfed1ef1807311646c402eaf315 Mon Sep 17 00:00:00 2001 From: Kilakk Date: Sat, 24 Aug 2013 23:52:00 -0400 Subject: [PATCH 042/226] Fixed medical HUDs not being able to set SSD status correctly --- code/modules/mob/living/carbon/human/human.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 8c41ec8c9a3..13fb91770b2 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -676,7 +676,7 @@ for (var/datum/data/record/R in data_core.general) if (R.fields["id"] == E.fields["id"]) - var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel") + var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*SSD*", "*Deceased*", "Physically Unfit", "Active", "Disabled", "Cancel") if(hasHUD(usr,"medical")) if(setmedical != "Cancel") @@ -1358,4 +1358,4 @@ mob/living/carbon/human/yank_out_object() else src << "You do not have enough chemicals stored to reproduce." - return + return From 97b0272e80b855f2e67558d4cf0db5345dfdb50d Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 24 Aug 2013 21:24:41 -0700 Subject: [PATCH 043/226] Added stealth engines to the Vox ship to allow the Exodus to hear that they are coming. --- code/game/area/Space Station 13 areas.dm | 6 ++++ code/game/machinery/computer/vox_shuttle.dm | 37 ++++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 2ff200ae885..9133753e4ee 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -497,26 +497,32 @@ proc/process_ghost_teleport_locs() /area/vox_station/transit name = "\improper hyperspace" icon_state = "shuttle" + requires_power = 0 /area/vox_station/southwest_solars name = "\improper aft port solars" icon_state = "southwest" + requires_power = 0 /area/vox_station/northwest_solars name = "\improper fore port solars" icon_state = "northwest" + requires_power = 0 /area/vox_station/northeast_solars name = "\improper fore starboard solars" icon_state = "northeast" + requires_power = 0 /area/vox_station/southeast_solars name = "\improper aft starboard solars" icon_state = "southeast" + requires_power = 0 /area/vox_station/mining name = "\improper nearby mining asteroid" icon_state = "north" + requires_power = 0 //PRISON /area/prison diff --git a/code/game/machinery/computer/vox_shuttle.dm b/code/game/machinery/computer/vox_shuttle.dm index 31fb26b436d..0912cfc3584 100644 --- a/code/game/machinery/computer/vox_shuttle.dm +++ b/code/game/machinery/computer/vox_shuttle.dm @@ -1,8 +1,37 @@ -#define VOX_SHUTTLE_MOVE_TIME 260 +#define VOX_SHUTTLE_MOVE_TIME 400 #define VOX_SHUTTLE_COOLDOWN 1200 //Copied from Syndicate shuttle. var/global/vox_shuttle_location +var/global/announce_vox_departure = 1 //Stealth systems - give an announcement or not. + +/obj/machinery/computer/vox_stealth + name = "skipjack cloaking field terminal" + icon = 'icons/obj/computer.dmi' + icon_state = "syndishuttle" + req_access = list(access_syndicate) + +/obj/machinery/computer/vox_stealth/attackby(obj/item/I as obj, mob/user as mob) + return attack_hand(user) + +/obj/machinery/computer/vox_stealth/attack_ai(mob/user as mob) + return attack_hand(user) + +/obj/machinery/computer/vox_stealth/attack_paw(mob/user as mob) + return attack_hand(user) + +/obj/machinery/computer/vox_stealth/attack_hand(mob/user as mob) + if(!allowed(user)) + user << "\red Access Denied" + return + + if(announce_vox_departure) + user << "\red Shuttle stealth systems have been deactivated. The Exodus will be warned of our arrival." + announce_vox_departure = 0 + else + user << "\red Shuttle stealth systems have been activated. The Exodus will not be warned of our arrival." + announce_vox_departure = 1 + /obj/machinery/computer/vox_station name = "vox skipjack terminal" @@ -24,6 +53,12 @@ var/global/vox_shuttle_location var/area/dest_location = locate(destination) if(curr_location == dest_location) return + if(announce_vox_departure) + if(curr_location == locate(/area/shuttle/vox/station)) + command_alert("Attention, Exodus, we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the station - you've got incoming visitors, like it or not.", "NSV Icarus") + else if(dest_location == locate(/area/shuttle/vox/station)) + command_alert("Your guests are pulling away, Exodus - moving too fast for us to draw a bead on them. Looks like they're heading out of Tau Ceti at a rapid clip.", "NSV Icarus") + moving = 1 lastMove = world.time From 1e3bc659d5b3de7a76bbe9c855642b1edbc211d3 Mon Sep 17 00:00:00 2001 From: Segrain Date: Sun, 25 Aug 2013 08:13:40 +0300 Subject: [PATCH 044/226] Vox skipjack fix. --- maps/tgstation2.dmm | 51 +++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index d8bec89c168..901be0a2204 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -3552,7 +3552,7 @@ "bqp" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bqq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bqr" = (/obj/structure/table,/obj/item/weapon/aiModule/freeform,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bqs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/structure/sign/nosmoking_2,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/atmos) +"bqs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/structure/sign/nosmoking_2,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "bqt" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/space,/area) "bqu" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bqv" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/carpet,/area/crew_quarters/captain) @@ -5456,7 +5456,7 @@ "caV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/break_room) "caW" = (/obj/machinery/computer/arcade,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engine/break_room) "caX" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/engine/break_room) -"caY" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos) +"caY" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/engine/break_room) "caZ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/atmos) "cba" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor,/area/atmos) "cbb" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/atmos) @@ -6797,7 +6797,7 @@ "cAK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) "cAL" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAM" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cAN" = (/obj/machinery/door/airlock/hatch{id_tag = "vox_northwest_lock"; req_access_txt = "0;150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cAN" = (/obj/machinery/door/window{dir = 1; name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAO" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAP" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAQ" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6829,7 +6829,7 @@ "cBq" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cBr" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac) "cBs" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) -"cBt" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cBt" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cBu" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) "cBv" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "cBw" = (/obj/structure/stool/bed/chair/comfy/black,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -6863,7 +6863,7 @@ "cBY" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac) "cBZ" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cCa" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cCb" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"cCb" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cCc" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cCd" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "cCe" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -7763,7 +7763,7 @@ "cTo" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area) "cTp" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cTq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTr" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "vox_east_control"; req_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"cTr" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cTs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTt" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area) "cTu" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) @@ -7778,18 +7778,18 @@ "cTD" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cTE" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cTF" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station) -"cTG" = (/obj/machinery/door/airlock/hatch{id_tag = "vox_northeast_lock"; req_access_txt = "0;150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTG" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northeast_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTH" = (/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTI" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTJ" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) -"cTK" = (/obj/machinery/door/airlock/hatch,/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTK" = (/obj/machinery/door/airlock/hatch{req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTL" = (/obj/machinery/door_control{id = "skipjack"; pixel_y = 24},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTM" = (/obj/machinery/computer/vox_station,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTN" = (/obj/machinery/computer/vox_stealth,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{dir = 2; id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{dir = 2; id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{dir = 2; id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTR" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/door/airlock/hatch{req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTR" = (/obj/machinery/door/airlock/hatch{req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTS" = (/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cTT" = (/obj/item/clothing/head/bearpelt,/obj/item/xenos_claw,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cTU" = (/obj/item/clothing/head/bowler,/obj/item/weapon/broken_bottle,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) @@ -7812,8 +7812,8 @@ "cUl" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cUm" = (/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50,/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cUn" = (/obj/structure/jungle_plant,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUo" = (/obj/machinery/access_button{command = "cycle_interior"; master_tag = "vox_east_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) -"cUp" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/door/airlock/hatch{id_tag = "vox_southeast_lock"; req_access_txt = "0;150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cUo" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"cUp" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_southeast_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cUq" = (/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},/turf/simulated/floor/plating,/area/assembly/assembly_line) "cUr" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/derelict/ship) "cUs" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/derelict/ship) @@ -9155,7 +9155,7 @@ "duc" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dud" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "due" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"duf" = (/obj/machinery/access_button{command = "cycle_interior"; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"duf" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_southwest_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dug" = (/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/device/measuring_tape,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "duh" = (/obj/machinery/atmospherics/pipe/tank/nitrogen,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dui" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -9861,10 +9861,10 @@ "dHG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/west_outpost) "dHI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"dHJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dHJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "dHK" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) -"dHL" = (/obj/machinery/airlock_sensor{id_tag = "vox_west_sensor"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) -"dHM" = (/obj/machinery/airlock_sensor{id_tag = "vox_east_sensor"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"dHL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dHM" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_west_sensor"; pixel_x = 25},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dHN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHO" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9878,8 +9878,8 @@ "dHX" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/mine/west_outpost) "dHY" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "dHZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dIa" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"dIb" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_west_vent"; exterior_door_tag = "vox_northwest_lock"; id_tag = "vox_west_control"; interior_door_tag = "vox_southwest_lock"; pixel_x = 24; sensor_tag = "vox_west_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dIa" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_east_sensor"; pixel_x = -25},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dIb" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dIc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dId" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dIe" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -10149,7 +10149,7 @@ "dNi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dNj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "dNk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"dNl" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_east_vent"; exterior_door_tag = "vox_northeast_lock"; id_tag = "vox_east_control"; interior_door_tag = "vox_southeast_lock"; pixel_x = -24; sensor_tag = "vox_east_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dNl" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_west_vent"; exterior_door_tag = "vox_northwest_lock"; frequency = 1331; id_tag = "vox_west_control"; interior_door_tag = "vox_southwest_lock"; pixel_x = 24; req_access_txt = "150"; sensor_tag = "vox_west_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dNm" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNn" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNo" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) @@ -10169,6 +10169,7 @@ "dNC" = (/obj/machinery/optable,/obj/item/brain,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dND" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/machinery/bot/floorbot,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNE" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/broken_device,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNF" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_east_vent"; exterior_door_tag = "vox_northeast_lock"; frequency = 1331; id_tag = "vox_east_control"; interior_door_tag = "vox_southeast_lock"; pixel_x = -24; req_access_txt = "150"; sensor_tag = "vox_east_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10485,7 +10486,7 @@ crFcsAcswcsBcsFcsEcsxcsDcsEcsAcswcsBcsFcsEcsxcsDcsEcsxcsDcsAcswcsBcsFcsEcsxcsDcr crIcsscsscsycsrcsBcswcstcsBcsscsscsycsrcsBcswcstcsBcswcstcsscsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcAKcxIcxLcxFcxKcxGcydcxMcxFcxEcybcyacyjcxJcxGcydcxMcxFcxNcsDcsvcsrcrKcsmaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcALcAMcpIcAOcAPcAQcAQcAAcARczFczFcAxcAxcAxcAxcAxcAxcAxcAxcAScATcAxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAUcAUcAUcAVczbczYczZczbcAWcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crHcszcszcsAcsucsycsscsCcsycszcszcsAcsucsycsscsCcsycsscsCcszcszcsAcsucsycsscsCcrLcsmcrGcsDcsrcsBcAYcyccydcxLcxGcyacyjcyecxLcxKcxFcxMcxIcxHcyacyjcyecxLctXcstcsEcsucrNcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcAZcAMcAMcBacAMcAMcAMcAAcARczFcBbcBccBdcBdcBeczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBhczbczbczbczbczbcyUcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crDcsvcsvcsDcsxcsAcszcsFcsAcsvcsvcsDcsxcsAcszcsFcsAcszcsFcsvcsvcsDcsxcsAcszcsFcrBcsmcrOcstcsucsycyWcxEcyjcydcyacxMcsucxJcydcxGcxLcyecsxcybcxMcxIcxJcydcykcsCcsBcsxcrEcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcBicAMcAMcAMcBjcAMcBkcAAcARcAjcBbcBlcBmcBmcBmcBncBoczocBpcBqczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBrcAUcAUcAIczbczrczrczrcztcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crJcsEcsEcstcswcsDcsvcsrcsDcsEcsEcstcswcsDcsvcsrcsDcsvcsrcsEcsEcstcswcsDcsvcsrcrKcsmcrLcsCcsxcsAcuhcxKcxIcyjcxMcxEcsBcyacybcxJcxGcxFcsucxKcyecyccxHcyjcyrcsFcsycswcrMcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcBscAAcAAcAAcBtcAAcAAcAAcBuczFczFcBvcBlcBmcBmcBwcBmcBmcBxcBycBycBzczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBAczbcBBcBCcBDczacyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crJcsEcsEcstcswcsDcsvcsrcsDcsEcsEcstcswcsDcsvcsrcsDcsvcsrcsEcsEcstcswcsDcsvcsrcrKcsmcrLcsCcsxcsAcuhcxKcxIcyjcxMcxEcsBcyacybcxJcxGcxFcsucxKcyecyccxHcyjcyrcsFcsycswcrMcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcBscAAcAAcAAcANcAAcAAcAAcBuczFczFcBvcBlcBmcBmcBwcBmcBmcBxcBycBycBzczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBAczbcBBcBCcBDczacyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crGcsBcsBcsCcsscstcsEcsucstcsBcsBcsCcsscstcsEcsucstcsEcsucsBcsBcsCcsscstcsEcsucrNcsmcrBcsFcswcsDczEcxGcyccxIcyecxKcsycsEcstcsAcsvcsCcsxcxGcxJcxEcybcxIcyxcsrcsAcsscrPcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFcAAcBEcAMcBFcAAcBGcAxcAxcAxcBHcBIcBmcBJcBKcBLcBmczocBycBMcBMczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcBNcBNcyTcyTcBOcyTcyTcBNcBNczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crOcrMcrIcrKcrPcrDcrFcrCcrOcrHcrLcrGcrNcrBcxrcxrcxrcxrcxrcrIcrKcrCcrGcrPcrBcrHcrEcsmcrKcsrcsscstcxdcvfcuwcxicvRcuUcvWcvNcwJcwmcvxcwNcuwcvfcvWcuCcwDcxicvNcsucsDcszcrCcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFcAAcAMcAMcAMcAAcBccBdcBdcBdcBeczocBmcBJcBPcBLcBmczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcyVcBQczYczbczZcBRcySczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa csEcsCcsxcsAcsFcsscsucsrcsEcswcsBcsvcsDcsycszcstcsucsscsBcsxcsAcsrcsvcsFcsycswcstcsmcrNcsucszcsCcsxcsEcsscswcsAcsvcsDcsycsFcstcsBcsrcsscsEcsDcszcsCcswcsycsxcstcsvcrFcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFcAzcAAcAAcAAcAAcAAcAMcAMcAMcAAcBlcBScBScBScBScBTcBmcBmcBmcBmcBmcBUcBVcBWczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBBczrcBXczrcBYcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10667,18 +10668,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSFcSFcSocSGcSHcSIcS aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSGcSLcSMcSlcSNcSOcSPcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTccTdcTecTecTecTfcTcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSocSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcTncSRcTocTpcTPcTOcTQcTpcTtcSRcTncSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSTcSUcSVcSWcSocSXcSYcSZcTacTbcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTecTecTfcTcaaacTdcTpcTJcTMcTNcTpcTfaaacTccTdcTecTecTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcThcTicSocSocSocTjcTkcTlcTmcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcCbcANcTpcTccTdcTpcTLcTxcTIcTxcTycTpcTfcTccTpcTGcTrcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHJcTHdHLcTedHIcTzcTycTxcTycTxcTycTzdHIcTedHMcTHdIacTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcTAcTBcSocTCcSXcTDcTmcTEcTFcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHpdIbcTpcTedNkcTzcTycTxcTycTxcTycTzdNkcTecTpdNldHpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTRdufcTpcTpcTpcTpcTpcTpcTKcTpcTpcTpcTpcTpcTpcUocUpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcThcTicSocSocSocTjcTkcTlcTmcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcCbcBtcTpcTccTdcTpcTLcTxcTIcTxcTycTpcTfcTccTpcTGcTrcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHLdHMcTpcTedHIcTzcTycTxcTycTxcTycTzdHIcTecTpdIadIbcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcTAcTBcSocTCcSXcTDcTmcTEcTFcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHpdNlcTpcTedNkcTzcTycTxcTycTxcTycTzdNkcTecTpdNFdHpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdufdHJcTpcTpcTpcTpcTpcTpcTRcTpcTpcTpcTpcTpcTpcUocUpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedHIdHpcTHcTHcTHcTHcTHcTHcTpcTHcTpcTHcTHcTHcTHcTHcTHdHpdHIcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedNwdNvdNydNxdNDdNEcTpcTKcTpcTKcTpcTKcTpdNBdNzdNAdNCdNvdNwcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedNwdNvdNydNxdNDdNEcTpcTRcTpcTRcTpcTRcTpdNBdNzdNAdNCdNvdNwcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedNkdNvcTScTScTScTScTpcTScTScTScTScTScTpcTScTScTYcTSdNvdNkcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTpdNncUadNscUhdNrcTpdNqcTScTScTSdNpcTpcUcdNocUedNmdNncTpcTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcUgcUgcTpcTpcTpcTpdNucTScTScTSdNtcTpcTpcTpcTpcUgcUgcTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcUlcUlcUkaaaaaacTpcTVcTScTScTScTWcTpaaaaaacUfcUlcUlcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTXcTScTScTScTWcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTqcTscTRcTqcTscTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTqcTscTKcTqcTscTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTUcTScTScTScTTcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTZcUicTScUbcUdcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcUjcUmcUncTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From e85ddd3b9ae0f923264b04affd2b8fb20a522f9c Mon Sep 17 00:00:00 2001 From: Segrain Date: Sun, 25 Aug 2013 09:27:05 +0300 Subject: [PATCH 045/226] Fix for unisex hairstyles. --- code/__HELPERS/mobs.dm | 4 ++-- code/modules/client/preferences.dm | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index df7e4f18901..7d345e1ea28 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -4,7 +4,7 @@ proc/random_hair_style(gender, species = "Human") var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender != S.gender) + if(gender != S.gender && S.gender != NEUTER) continue if(!(species in S.species_allowed)) continue @@ -21,7 +21,7 @@ proc/random_facial_hair_style(gender, species = "Human") var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender != S.gender) + if(gender != S.gender && S.gender != NEUTER) continue if(!(species in S.species_allowed)) continue diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f4cb339f045..c15bfb3f8da 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -822,7 +822,7 @@ datum/preferences var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender != S.gender) + if(gender != S.gender && S.gender != NEUTER) continue if( !(species in S.species_allowed)) continue @@ -838,7 +838,7 @@ datum/preferences var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender != S.gender) + if(gender != S.gender && S.gender != NEUTER) continue if( !(species in S.species_allowed)) continue @@ -921,7 +921,7 @@ datum/preferences var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender != S.gender) + if(gender != S.gender && S.gender != NEUTER) continue if( !(species in S.species_allowed)) continue From b0d4b1967bed1af662dd03d15874a194fe175a2b Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 01:05:24 -0700 Subject: [PATCH 046/226] Uncommented languages for experimental purposes. --- code/modules/mob/language.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index 0bdc84f1548..16bf98e36a8 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -51,7 +51,6 @@ key = "q" flags = RESTRICTED -/* /datum/language/human name = "Sol Common" desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system." @@ -69,8 +68,7 @@ name = "Gutter" desc = "Much like Standard, this crude pidgin tongue descended from numerous languages and serves as Tradeband for criminal elements." speech_verb = "growls" - key = "gut" -*/ + key = "g" // Language handling. /mob/proc/add_language(var/language) @@ -94,4 +92,6 @@ languages -= L return 1 - return 0 \ No newline at end of file + return 0 + +/mob/verb/check_languages() \ No newline at end of file From eb1068a12e27694999562240ee380f32df08893e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 01:05:43 -0700 Subject: [PATCH 047/226] Added a proper diona resting sprite. --- icons/mob/monkey.dmi | Bin 30205 -> 30427 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/monkey.dmi b/icons/mob/monkey.dmi index fd6e3ba3618406a9e708cb2a5b649c9b96a48c2d..dd74f422a13884f43229f9cbf558c9e9a07b2916 100644 GIT binary patch delta 10272 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 Date: Sun, 25 Aug 2013 02:08:09 -0700 Subject: [PATCH 048/226] Adding radiation feeding to dionaea, tweaking species values, adding shock to lighting checks, adding light checks to diona nymphs. --- code/modules/mob/living/carbon/human/life.dm | 14 +++++++++ code/modules/mob/living/carbon/monkey/life.dm | 30 +++++++++++++++++++ code/modules/mob/living/carbon/species.dm | 14 +++++---- code/setup.dm | 4 +-- 4 files changed, 55 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index ce29ffa9714..9efb72f203e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -215,6 +215,7 @@ adjustCloneLoss(0.1) proc/handle_mutations_and_radiation() + if(getFireLoss()) if((COLD_RESISTANCE in mutations) || (prob(1))) heal_organ_damage(0,1) @@ -237,6 +238,16 @@ radiation = 0 else + if(species.flags & RAD_ABSORB) + var/rads = radiation/25 + radiation -= rads + nutrition += rads + heal_overall_damage(rads,rads) + adjustOxyLoss(-(rads)) + adjustToxLoss(-(rads)) + updatehealth() + return + var/damage = 0 switch(radiation) if(1 to 49) @@ -850,6 +861,8 @@ if(A.lighting_use_dynamic) light_amount = min(10,T.lighting_lumcount) - 5 //hardcapped so it's not abused by having a ton of flashlights else light_amount = 5 nutrition += light_amount + traumatic_shock -= light_amount + if(nutrition > 500) nutrition = 500 if(light_amount > 2) //if there's enough light, heal @@ -902,6 +915,7 @@ if(species.flags & REQUIRE_LIGHT) if(nutrition < 200) take_overall_damage(2,0) + traumatic_shock++ if (drowsyness) drowsyness-- diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index ce68c8710d7..675f2c76a59 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -117,6 +117,17 @@ emote("collapse") if (radiation) + + if(istype(src,/mob/living/carbon/monkey/diona)) //Filthy check. Dionaea don't take rad damage. + var/rads = radiation/25 + radiation -= rads + nutrition += rads + heal_overall_damage(rads,rads) + adjustOxyLoss(-(rads)) + adjustToxLoss(-(rads)) + updatehealth() + return + if (radiation > 100) radiation = 100 Weaken(10) @@ -408,6 +419,25 @@ proc/handle_chemicals_in_body() + if(istype(src,/mob/living/carbon/monkey/diona)) //Filthy check. Dionaea nymphs need light or they get sad. + var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing + if(isturf(loc)) //else, there's considered to be no light + var/turf/T = loc + var/area/A = T.loc + if(A) + if(A.lighting_use_dynamic) light_amount = min(10,T.lighting_lumcount) - 5 //hardcapped so it's not abused by having a ton of flashlights + else light_amount = 5 + + nutrition += light_amount + traumatic_shock -= light_amount + + if(nutrition > 500) + nutrition = 500 + if(light_amount > 2) //if there's enough light, heal + heal_overall_damage(1,1) + adjustToxLoss(-1) + adjustOxyLoss(-1) + if(reagents) reagents.metabolize(src) if (drowsyness) diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 8e7c9911f17..788f3d2c0e0 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -111,10 +111,14 @@ primitive = /mob/living/carbon/monkey/diona warning_low_pressure = 50 - hazard_low_pressure = 0 + hazard_low_pressure = -1 - heat_level_1 = 500 - heat_level_2 = 700 - heat_level_3 = 1200 + cold_level_1 = 50 + cold_level_2 = -1 + cold_level_3 = -1 - flags = WHITELISTED | NO_EAT | NO_BREATHE | REQUIRE_LIGHT | NON_GENDERED | NO_SCAN | IS_PLANT + heat_level_1 = 2000 + heat_level_2 = 3000 + heat_level_3 = 4000 + + flags = WHITELISTED | NO_BREATHE | REQUIRE_LIGHT | NON_GENDERED | NO_SCAN | IS_PLANT | RAD_ABSORB diff --git a/code/setup.dm b/code/setup.dm index 7395595cee5..9b11e9a9cf0 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -709,7 +709,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define NO_EAT 1 #define NO_BREATHE 2 #define NO_SLEEP 4 -#define NO_SHOCK 8 +#define RAD_ABSORB 8 #define NO_SCAN 16 #define NON_GENDERED 32 #define REQUIRE_LIGHT 64 @@ -722,4 +722,4 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse //Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted. -#define RESTRICTED 2 // Language can only be accquired by spawning or an admin. +#define RESTRICTED 2 // Language can only be accquired by spawning or an admin. From 10183ed1707269e1d3986841bb13ab3e5303c3f2 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:09:31 -0700 Subject: [PATCH 049/226] Expanded Vox shuttle, adjusted loadouts, added shutters, added basic preliminary hardware for cycling airlocks. --- maps/tgstation2.dmm | 317 ++++++++++++++++++++++++-------------------- 1 file changed, 174 insertions(+), 143 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index afdf987009a..d8bec89c168 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -6797,6 +6797,7 @@ "cAK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) "cAL" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAM" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cAN" = (/obj/machinery/door/airlock/hatch{id_tag = "vox_northwest_lock"; req_access_txt = "0;150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cAO" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAP" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAQ" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6862,6 +6863,7 @@ "cBY" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac) "cBZ" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cCa" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cCb" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cCc" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cCd" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "cCe" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -7761,7 +7763,7 @@ "cTo" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area) "cTp" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cTq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTr" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "vox_east_control"; req_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cTs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTt" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area) "cTu" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) @@ -7776,42 +7778,42 @@ "cTD" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cTE" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cTF" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station) -"cTG" = (/obj/machinery/door/airlock/hatch,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/vox/station) +"cTG" = (/obj/machinery/door/airlock/hatch{id_tag = "vox_northeast_lock"; req_access_txt = "0;150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTH" = (/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTI" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) +"cTI" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTJ" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTK" = (/obj/machinery/door/airlock/hatch,/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTL" = (/obj/machinery/door_control{id = "skipjack"; pixel_y = 24},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cTM" = (/obj/machinery/computer/vox_station,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) -"cTN" = (/obj/structure/rack,/obj/item/weapon/storage/pneumatic,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) -"cTQ" = (/obj/structure/window/basic{dir = 8},/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTR" = (/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTN" = (/obj/machinery/computer/vox_stealth,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) +"cTO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{dir = 2; id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{dir = 2; id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{dir = 2; id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"cTR" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/door/airlock/hatch{req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cTS" = (/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTT" = (/obj/structure/table/reinforced,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTU" = (/obj/structure/table/reinforced,/obj/item/weapon/scalpel,/obj/item/weapon/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTV" = (/obj/structure/table/reinforced,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTW" = (/obj/structure/window/basic{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTX" = (/obj/item/alien_embryo,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTT" = (/obj/item/clothing/head/bearpelt,/obj/item/xenos_claw,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTU" = (/obj/item/clothing/head/bowler,/obj/item/weapon/broken_bottle,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTV" = (/obj/structure/rack,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/mask/breath/vox,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTW" = (/obj/structure/rack,/obj/item/weapon/crossbow,/obj/item/weapon/arrow,/obj/item/weapon/arrow,/obj/item/weapon/arrow,/obj/item/weapon/arrow,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTX" = (/obj/structure/rack,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/mask/breath/vox,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cTY" = (/obj/item/weapon/organ/r_arm,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cTZ" = (/obj/structure/window/basic{dir = 8},/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cTZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cUa" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUb" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUb" = (/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c500,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cUc" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUd" = (/obj/machinery/optable,/obj/item/brain,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUd" = (/obj/item/weapon/spacecash/c50,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cUe" = (/obj/machinery/bodyscanner,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cUf" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/vox/station) "cUg" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cUh" = (/obj/structure/rack,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUi" = (/obj/structure/rack,/obj/item/clothing/mask/breath/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUj" = (/obj/structure/rack,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUi" = (/obj/item/clothing/head/collectable/xenom,/obj/item/clothing/head/chicken,/obj/item/weapon/aiModule/syndicate,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUj" = (/obj/structure/AIcore,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "cUk" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/vox/station) "cUl" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) -"cUm" = (/obj/structure/rack,/obj/item/weapon/crossbow,/obj/item/weapon/arrow,/obj/item/weapon/arrow,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUn" = (/obj/structure/rack,/obj/item/clothing/mask/breath/vox,/obj/item/clothing/shoes/magboots/vox,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUo" = (/obj/structure/rack,/obj/item/weapon/dart_cartridge,/obj/item/weapon/dart_cartridge,/obj/item/weapon/gun/dartgun/vox/raider,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) -"cUp" = (/obj/structure/rack,/obj/item/weapon/dart_cartridge,/obj/item/weapon/dart_cartridge,/obj/item/weapon/gun/dartgun/vox/medical,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUm" = (/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50,/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUn" = (/obj/structure/jungle_plant,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"cUo" = (/obj/machinery/access_button{command = "cycle_interior"; master_tag = "vox_east_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"cUp" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/door/airlock/hatch{id_tag = "vox_southeast_lock"; req_access_txt = "0;150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "cUq" = (/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},/turf/simulated/floor/plating,/area/assembly/assembly_line) "cUr" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/derelict/ship) "cUs" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/derelict/ship) @@ -9153,6 +9155,7 @@ "duc" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dud" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "due" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"duf" = (/obj/machinery/access_button{command = "cycle_interior"; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "dug" = (/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/device/measuring_tape,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "duh" = (/obj/machinery/atmospherics/pipe/tank/nitrogen,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dui" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -9838,6 +9841,7 @@ "dHm" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "dHn" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "dHo" = (/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/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dHp" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dHq" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) "dHr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "dHs" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9856,7 +9860,11 @@ "dHF" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/west_outpost) "dHG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dHH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/west_outpost) +"dHI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dHJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dHK" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) +"dHL" = (/obj/machinery/airlock_sensor{id_tag = "vox_west_sensor"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) +"dHM" = (/obj/machinery/airlock_sensor{id_tag = "vox_east_sensor"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "dHN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHO" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dHP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9870,6 +9878,8 @@ "dHX" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/mine/west_outpost) "dHY" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "dHZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dIa" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dIb" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_west_vent"; exterior_door_tag = "vox_northwest_lock"; id_tag = "vox_west_control"; interior_door_tag = "vox_southwest_lock"; pixel_x = 24; sensor_tag = "vox_west_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dIc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dId" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dIe" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -10138,6 +10148,27 @@ "dNh" = (/obj/machinery/door/morgue{dir = 2; name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/derelict/medical/chapel) "dNi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "dNj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dNk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dNl" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_east_vent"; exterior_door_tag = "vox_northeast_lock"; id_tag = "vox_east_control"; interior_door_tag = "vox_southeast_lock"; pixel_x = -24; sensor_tag = "vox_east_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dNm" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNn" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNo" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNp" = (/obj/structure/rack,/obj/item/weapon/gun/dartgun/vox/raider,/obj/item/weapon/gun/dartgun/vox/medical,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNq" = (/obj/structure/rack,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/suit/space/vox/carapace,/obj/item/clothing/head/helmet/space/vox/carapace,/obj/item/clothing/mask/breath/vox,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNr" = (/obj/structure/rack,/obj/item/weapon/tank/nitrogen,/obj/item/weapon/tank/nitrogen,/obj/item/weapon/tank/nitrogen,/obj/item/weapon/tank/nitrogen,/obj/item/weapon/tank/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNs" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNt" = (/obj/structure/rack,/obj/item/weapon/storage/pneumatic,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNu" = (/obj/structure/rack,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/mask/breath/vox,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNv" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dNx" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/weed_extract,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNy" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/robot_parts/chest,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNz" = (/obj/structure/table/reinforced,/obj/item/weapon/scalpel,/obj/item/weapon/cable_coil,/obj/item/weapon/storage/firstaid/regular,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNA" = (/obj/structure/table/reinforced,/obj/item/weapon/circular_saw,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNB" = (/obj/structure/table/reinforced,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNC" = (/obj/machinery/optable,/obj/item/brain,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dND" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/machinery/bot/floorbot,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNE" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/broken_device,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10211,32 +10242,32 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadCadDadEadDadFadGaczadHadIadJadJaaPaaaabTabTadKadLacoadMadNabTabTadOadPadxadQaaVaceadRadSadTadUadVadWadWantamGadWadWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadZaeaaebaecaedaeeaefaegaaJaehaeiaaPaaaaaaabTaejaekacoaelaemabTaenaaVaeoaepaeqaaVaeraesaetaeuaevaewaexaeyaezaeAaeBadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaiaaiaaiaaiacUaeCamvaeEaeFaeFaeFaeFaeFaeFabTabTaeGaeHaeIabTabTaeJaeKaeLaeMaeNaeOaePaeQaeRaeSaeTaeUamyaeWaeXaeYaeZafaamsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafcafdafeaffafgadHaeFafhafiafiafiafiaenafjafkaflafmafnaenafoaeSafpafqafrafsaftafuafuafvafwafxarlafzafAafBafCafDarnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafFafGafHafIadoafJaeFafKafLafMafNafMafOafPafQafRafSafTafUafVafWafXapEafZagaagbagcagdageagfagbaggaghagiagjagkagladWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmaaaaaaaaaagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagnaaxagoagpagqagraeFagsagtafMaguagvaenagwagxagyagzagAaenagBagCagDagEagFagGagHagIagJagKagJagHapcagMagNagOagPagQapdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagSagTagUagVagWadHaeFagXagYagZahaagXabTairahGahdahnahfaenagBagCagDahgahhahiahjahkahkahlahkahmapeapgahpahqahqahraqtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmaaaagmaaaaaaagmagmagmagmagmagmagmaaaaaaagmaaaagmaaaaaaaaaaaaaaaaaiaaiaaiaaiahtahuahvaeFahwahxahyahzahyapbaoKahCahDahEahFaoIahHagCagDahIahJahKagHahLagJahLagJahMahNahOahPahQahRadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmaaaagmagmagmagmagmagmagmagmagmaaaagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaiahSahTadHaeFahUahVahWahXahYahZaiaaibaicaidaieaifaigaihagDaiiahJaijagHagIagJagIaikailaimadWadWainaioadWaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmaaaagmagmagmagmagmagmagmagmagmaaaagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaiaiqaoraisaeFaitaiuaivaiwahYanXaiyaizahDaiAaiBaoIaiCagCagDaiDaiEaiFaiGaiHaiIagHaiJaiKaiLacfaceaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmaaaagmagmagmagmagmagmagmagmagmaaaagmagmagmaaaaaaaaaaaaaeFaeFaeFaeFagXaiMaiNaiOaeFaiPaiQaiRaiwahYaenaiSaiTaiUaiVaiWaenaiXaiYaeUaiZaeSajaaceajbajcajdajeajfaoJajhaceaceacfacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaaaaeFajiajjajkajlajmajnajoaeFahBajqahBajrahBaenairahGajsahnahfaenaceajtajuaceajvajwaceahsahoahoahAaceajAajhajhaceajBajCajDajDajEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaaaaeFajFajGajHajIajJajKajLajMajMajNajOajPajMajMajMajPajQajNajRajSajOajTajUajVajWajXajYajZakaakbakcakdakeakfakgakhakiakjakkaklakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaaaaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaafaeFakoakpakqakraksaktakuakvakwakxakyakzakAakBakvakAakCakDakEakAakyakzakAakAakFakGakHaiRakIakJakKakLakMakgakNaceakiakOajDajDakPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFakQakRakSaeFaeFagXakTajyakVakWakXakYakZagXaeFaeFaeFalaalbalcalcaheahbalfahcalcalhaliaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaeaaaaafaafaafaljaeFalkallalmalnaloalpagRalralsagLaluajxalwalxalyalzalAagLalBalCagRalDalEalcalFalGalHalIalJalKalhakNalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNalNalNalOalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalOalOalNalOalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaafaafalPaeFalQalRackaeFalTalUaeValWalXafbalZafyambamcamdamealAafYamgalWafEamialEalcamjamkamkamlamkammalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaamnaaaaaaaaaaaaaaaaaaagmagmagmaaaaaaagmagmagmagmagmagmagmaaaaaaagmagmagmaaaaaaaafaafaafamoampaeFadYaeDadXaeFamtamuacaamwamxabZamzamAamBamCamdamDalAabZamEamFabWamHamIalcamJamKamkamlamkamLalhakNalLaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafamMaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafamNaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaafaafaafamoalPaeFamOamPamQamRamSamTaeFaeFaeFagXamUamDamVamWamXamYamZagXaeFaeFaeFanaanbancandaneanfangamkanhalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNalNalNalNalNaaaaaaaaaaniaaaaaaaaaalNalNalOalOalOaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalNalNaaaaaaaaaanjaaaaaaaaaalNalNalOalOalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaafankanlanmannaeFanoanpanqaeFanransamranuanvagLanwanxanyanzanAamDalAagLanBalCagRalDanCalcanDanEanFamlamkanGalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaamnaaaaaaaafaafaafaaaaaaaniaafaafaaaaafaafaaaaaaalOaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaafaafaaaaaaaaaanjaafaafaaaaafaafaaaaaaalOaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaaaankanHanHanIaeFanoanJarfaeFanLanMamhanOanPaovanRanSaptamDanUamDalAanTamganWamfanYanZalcaoaaobaocaodaoeaofalhaogalLalLaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoiaafaohaohaohaohaohaafalNaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaokaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaafaafaaaankamoaolalPaeFaomaonaooaeFaopaoqalgaosamxabZaotaouaowaowanUamDalAabZamEaoxacaaoyaozalcaoAaoBaoCaoDaoEaoEaoFaoGaoHalLalLalValtalqalLalLaafaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaankaoZapaaeFaeFagXagXagXagXagXagXagXagXagXagXalYamaamaamqalvaleapfagXagXagXagXagXagXaphapiapjapkapkaplapmapnapoappalLapqapsapsapsanKalLalLalLalLapualMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaankapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapGapHapIapJapKapLapMapNalcapOapPapQapRapSapTapUapVapWajhajhajhapXajhaldaqaaqbaqcaqdaqealMalMalMalMalMaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoOaaaaaaaaaaafaaaaaaaaaalOaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoVaaaaaaaaaaafaaaaaaaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqfaqgapxapxaqhapGaqiapGapGapGapGapGapGapGapGapGapGapGaqlapGaqmapGaqnapGapGapGalcaqoaqpaqqaqrapQaqsapUajpaquaqvaqwaqxaqyakUaqAaqBalLalLalLajhalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaknaknaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqCaqDaqEaqFaqGaqHaqIaqJaqJaqJaqJaqJaqJaqJaqLaqOaqNaqOaqPaqQaqRaqSaqTaqUaqSaqValcaphaphaphaphaphaphaqWaqXaqYaqZaraarbarcajhalLajzargalLaaaaaaaaaalMalMalMaaaaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarhariarhaaaaaaaaaaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaoZarjapxarkarkaixarmajgarkarkaroaroaroaroarparoaroarqarrarsartalLarualLarvalLalLaprajhajhajhajhajharwaqXarxaryaryaryarzarAarBarCalSalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaMzarFaMzaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxarGapaapxarHarIarJarKarLarMarkarNarOarParQarRarSaQfarUapGarVarWarXarYarZarZarZarZarZasaarZarZarZasbascasdaseasfasgashasiaqjaskaslasmalLaafaQeaQcaQcaQdaQcaQcaQaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasrassastaaaasuasvaswaaaaafaNAarhaNAaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoVaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapaapxasyaszasAasBasCasDarkasEasFasFasFarRasGaQhasIasJasKalLasLasMasNasNasNasNasOasMasNasPasNasMasNasNasPasNasQasRasSasTasUasVasWasWasWaQgasYasYasYasYasYaQgasWaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmaaaaaaaaaagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafcafdafeaffafgadHaeFafhafiafiafiafiaenafjafkaflafmafnaenafoaeSafpafqafrafsaftafuafuafvafwafxarlafzafAafBafCafDarnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafFafGafHafIadoafJaeFafKafLafMafNafMafOafPafQafRafSafTafUafVafWafXapEafZagaagbagcagdageagfagbaggaghagiagjagkagladWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmaaaaaaagmaaaaaaagmagmagmagmagmagmagmaaaaaaagmaaaaaaagmaaaaaaaaaaaaaaaaaiagnaaxagoagpagqagraeFagsagtafMaguagvaenagwagxagyagzagAaenagBagCagDagEagFagGagHagIagJagKagJagHapcagMagNagOagPagQapdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmaaaagmagmagmagmagmagmagmagmagmaaaagmagmagmagmaaaaaaaaaaaaaaaaaiagSagTagUagVagWadHaeFagXagYagZahaagXabTairahGahdahnahfaenagBagCagDahgahhahiahjahkahkahlahkahmapeapgahpahqahqahraqtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmaaaagmagmagmagmagmagmagmagmagmaaaagmagmagmagmaaaaaaaaaaaaaaaaaiaaiaaiaaiahtahuahvaeFahwahxahyahzahyapbaoKahCahDahEahFaoIahHagCagDahIahJahKagHahLagJahLagJahMahNahOahPahQahRadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmaaaagmagmagmagmagmagmagmagmagmaaaagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaiahSahTadHaeFahUahVahWahXahYahZaiaaibaicaidaieaifaigaihagDaiiahJaijagHagIagJagIaikailaimadWadWainaioadWaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaiaiqaoraisaeFaitaiuaivaiwahYanXaiyaizahDaiAaiBaoIaiCagCagDaiDaiEaiFaiGaiHaiIagHaiJaiKaiLacfaceaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaaaaaaaeFaeFaeFaeFagXaiMaiNaiOaeFaiPaiQaiRaiwahYaenaiSaiTaiUaiVaiWaenaiXaiYaeUaiZaeSajaaceajbajcajdajeajfaoJajhaceaceacfacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaaaaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaaaaeFajiajjajkajlajmajnajoaeFahBajqahBajrahBaenairahGajsahnahfaenaceajtajuaceajvajwaceahsahoahoahAaceajAajhajhaceajBajCajDajDajEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaaaaeFajFajGajHajIajJajKajLajMajMajNajOajPajMajMajMajPajQajNajRajSajOajTajUajVajWajXajYajZakaakbakcakdakeakfakgakhakiakjakkaklakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaaaaaaaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaaaaaaaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaafaafaeFakoakpakqakraksaktakuakvakwakxakyakzakAakBakvakAakCakDakEakAakyakzakAakAakFakGakHaiRakIakJakKakLakMakgakNaceakiakOajDajDakPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmagmaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFakQakRakSaeFaeFagXakTajyakVakWakXakYakZagXaeFaeFaeFalaalbalcalcaheahbalfahcalcalhaliaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmaaaaaaagmagmagmagmagmagmagmaaaaaaagmagmagmagmaaaaaeaaaaafaafaafaljaeFalkallalmalnaloalpagRalralsagLaluajxalwalxalyalzalAagLalBalCagRalDalEalcalFalGalHalIalJalKalhakNalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNalNalNalOalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaaaaknaknaknaknaknaknaknaknaknaaaaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalOalOalNalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafalPaeFalQalRackaeFalTalUaeValWalXafbalZafyambamcamdamealAafYamgalWafEamialEalcamjamkamkamlamkammalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamoampaeFadYaeDadXaeFamtamuacaamwamxabZamzamAamBamCamdamDalAabZamEamFabWamHamIalcamJamKamkamlamkamLalhakNalLaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafamMaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafamNaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamoalPaeFamOamPamQamRamSamTaeFaeFaeFagXamUamDamVamWamXamYamZagXaeFaeFaeFanaanbancandaneanfangamkanhalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNalNalNalNalNaaaaaaaaaaniaaaaaaaaaalNalNalOalOalOaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalNalNaaaaaaaaaanjaaaaaaaaaalNalNalOalOalOaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaafaafankanlanmannaeFanoanpanqaeFanransamranuanvagLanwanxanyanzanAamDalAagLanBalCagRalDanCalcanDanEanFamlamkanGalhakNalLaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaamnaaaaaaaafaafaafaaaaaaaniaafaafaaaaafaafaaaaaaalOaaaaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaafaafaaaaaaaaaanjaafaafaaaaafaafaaaaaaalOaaaaaaaaaaaaagmagmagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaafaaaankanHanHanIaeFanoanJarfaeFanLanMamhanOanPaovanRanSaptamDanUamDalAanTamganWamfanYanZalcaoaaobaocaodaoeaofalhaogalLalLaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoiaafaohaohaohaohaohaafalNaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaokaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaagmagmagmagmagmaaaaaaaaaaaaaaaaaaaaaaafaafaaaankamoaolalPaeFaomaonaooaeFaopaoqalgaosamxabZaotaouaowaowanUamDalAabZamEaoxacaaoyaozalcaoAaoBaoCaoDaoEaoEaoFaoGaoHalLalLalValtalqalLalLaafaaaaaaaaaalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaankaoZapaaeFaeFagXagXagXagXagXagXagXagXagXagXalYamaamaamqalvaleapfagXagXagXagXagXagXaphapiapjapkapkaplapmapnapoappalLapqapsapsapsanKalLalLalLalLapualMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaaaaknaknaknaknaaaaaaaknaknaknaknaknaknaknaaaaaaaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaankapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapGapHapIapJapKapLapMapNalcapOapPapQapRapSapTapUapVapWajhajhajhapXajhaldaqaaqbaqcaqdaqealMalMalMalMalMaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoVaaaaaaaaaaafaaaaaaaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqfaqgapxapxaqhapGaqiapGapGapGapGapGapGapGapGapGapGapGaqlapGaqmapGaqnapGapGapGalcaqoaqpaqqaqrapQaqsapUajpaquaqvaqwaqxaqyakUaqAaqBalLalLalLajhalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqCaqDaqEaqFaqGaqHaqIaqJaqJaqJaqJaqJaqJaqJaqLaqOaqNaqOaqPaqQaqRaqSaqTaqUaqSaqValcaphaphaphaphaphaphaqWaqXaqYaqZaraarbarcajhalLajzargalLaaaaaaaaaalMalMalMaaaaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarhariarhaaaaaaaaaaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaoZarjapxarkarkaixarmajgarkarkaroaroaroaroarparoaroarqarrarsartalLarualLarvalLalLaprajhajhajhajhajharwaqXarxaryaryaryarzarAarBarCalSalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaMzarFaMzaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxarGapaapxarHarIarJarKarLarMarkarNarOarParQarRarSaQfarUapGarVarWarXarYarZarZarZarZarZasaarZarZarZasbascasdaseasfasgashasiaqjaskaslasmalLaafaQeaQcaQcaQdaQcaQcaQaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasrassastaaaasuasvaswaaaaafaNAarhaNAaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoVaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapaapxasyaszasAasBasCasDarkasEasFasFasFarRasGaQhasIasJasKalLasLasMasNasNasNasNasOasMasNasPasNasMasNasNasPasNasQasRasSasTasUasVasWasWasWaQgasYasYasYasYasYaQgasWaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasZataatbataasZatcatdatcasZaafaNAateaQiaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxatgathapxapaapxatiatjatkatlatmatnarkatoasFatpatparRbhUaQhapAapGatqalLatratsattatuatvatwatxatyatwatzatAatBatwatCatDatEatFatGatHatIatJatKatLatMasWaQgasYasYasYasYasYaQgasWaafaaaaaaaaaalOaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNataatOataatNatcatPatcatNatQaQlatSaQAaQmaQmaQxatQatQaafaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatWatXatYatZauaaubaucaudaueaufaugarkauhauiaujaukaulaumaQhapAapGarValLatratsaunauoatvatwaupauqatwaurausautatwauuausauvasWauwauxauyauzauAauBauCauDaQjasYasYasYasYasYaQkasWasWasWaaaaaaalOaaaapvapvapvapvapvaafaoOaafapvapvapvapvapvaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNauGauHauIatNauJauKauLatNarharhauMauNauOauPauQauRatQaaaaaaamnaaaapwapwapwapwapwaafaoVaafapwapwapwapwapwaaaalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauSaoZapxauTapxauUauVauWauXauYauZarkavaavbavcavcavdaveaKDavgavhaviavjavkavlaunatuatvatwavmauqatwatwavnatwatwatwavoatwasWavpavqavravravsavtavuavvavwasYasYasYasYasYavxavyavzaKCaaaaaaalOaaaaafaaaaafaafaaaaaaaoOaaaaaaaafaaaaaaaafaaaalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10314,35 +10345,35 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfjcfWcflaafcfjcfWcflaaacfjcfWcflaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGrccrcbEchuchvchvchwcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEcbEbGrchxbGrchybGrbQcclXchAchBbzicmEcmIchFcmKbQichHchIchJchKchLchMchLchKchNchKchOcfDclVaafaafaafaafaafaafaafaaaaaaaaaaaaaaabUPbUPchQchRchSbUPbUPclWbUPbUPbUPclWbZfaaaaaaaaaaaaaaaaaaaaabXpceeceeceeckschUcdhchVchWchXchYchZchZciacibcicbXpaafaafcfUaafcidcieciecieciecifchtcigcihcihcihcihciiaafcfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNaafaaacfjcfWcflaafcfjcfWcflaaacfjcfWcflaafaaaaaaaaaaaaaafaafclncikcikcikcikbGrbGrccrcbEcilcimcimcinciocipciqciqciqciqciqciqcirciqciqciscisciqcitciucivciwbQccixciycizciAciBciCbRfckncahbTnciEciFciGciHciIciJciKbSxciLciMciNbjwaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafbUPciXcjqclibUPaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabXpcdjcdjcdjcdjciPbZmchnciQciRchqbZmbZmciSbZmciTbXpaaaaaacfUaafciUciUciUciUciUaaachtaaaciUciUciUciUciUaafcfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaaafaafciVaafaafaafciVaafaaaaafciVaafaaaaaaaaaaaaaaaccpcclcneciZcjacjbcjccjdcbCcjecbEcbEcjfcjgcbEcbEbPTcjhcjhcjhcjhcjhcjhcjicjhcjhcjhcjjcjjbDbcjlcjjcjjcjmcjnciycizbRfbRfbRfbRfcjocjpcnbcnccndcmZcmYcnacmYcmZcmYcmRcmYcmRcmSaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaacjyaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXpcdccddcdeccvcgycdhcjAbZocjBcjCcjCcjDcjEcjFcjGbXpaaaaaacfUaaaaafaaaaafaafaafaaachtaaaaafaaaaafaaaaafaaacfUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcjHcjIcjIcjJcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjLcjMcjNcjOcjPcjQcjRcjScjTbIWccrcjUcbEcbEcbEcbEbIWbPTcjhcjVcjWclycjYcjZckackbckcckdcmQckfckgckhckickjckkcklckmcizbRfbRfbRfbRfclxbQcaafckoaafckpaafckoaafckpaafckqaafckqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackraaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXpceecefceecmLcehbZmbZnbZocktbZmbZmckucdjcdjcdjbXpaaaaaacfUaaachschschschschsaafchtaafchschschschschsaafcfUaaaaaaaaaaaaaaaaaaaaackvaaaaaaaaackvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaaafaafckwaafaaaaafckwaafaaaaafckwaafaaaaaaaaaaaaaaaccpcclcckckyckzccicikckBbIWckCcbCcbCcbCcbCcbCcbCckDcjhckEckFckGckGckHckIckJckKckLcchckNckOckPckQckRckScklciycizckUckVbRfbRfckWbQcbSCckXbUKckXbSCckXbUKckXbSCckYbUKckZbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpceeceeceeccvclaclbclccldclebZmbZmclfbZmclgbZmccuaafaafcfUaafcidcieciecieciecifchtcigcihcihcihcihciiaafcfUaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNaafaafcfjclhcflaaacfjclhcflaaacfjclhcflaafaaaaaaaaaaaaaafaafccxcikcikcikcikbGrcaRcbHbIWcljbIWbIWbIWclkbTbcjhcllckGckGckGckGclmckJckGckGccwcloclpclqclrclscltcklclvclwbXQbWRclzbRfbVEbQcbSCclBclCclDbSCclEclFclGbSCclHclIclJbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAbXpclKclLclLclMclNclOclNclPclQclRclSclTcdhclUccEaaaaaacfUaafciUciUciUciUciUaaachtaafciUciUciUciUciUaaacfUaaackvaaackvaaaaaackvckvckvckvckvckvckvaaaaaackvaaackvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfjclhcflaafcfjclhcflaaacfjclhcflaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabGrcdpcdfcdfcdrbGrbGrbGrbGrclZcmacmbckGckGcmcckGclmckJckGcfzcmecmfcmgcmhcmicmjcmeckTbRfcizcmlcmmcagclubRfbQcbSCcmocmpcmobSCcmqcmrcmqbSCcmscmtcmubSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaabXpcmvcmwcmxcmycmzcmwcmAcmBcmzcmwcmCbXpaaaaaacfVaaaaafaaaaafaaaaafaaacmDaaaaafaaaaafaafaafaafcfUaaackvckvckvaaackvckvckvckvckvckvckvckvckvaaackvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcfjclhcflaaacfjclhcflaaacfjclhcflaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcdJbOzcmFbGrbIWcmGckGckGckGckGckGclmckJckGcmHcmecmecdNcmJceFcewcmMcmNcmOcmPcePcemcegbQccmTbQcbSCcmocmUcmobSCcmqcmVcmqbSCcmucmWcmubSCaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmXaafbXpceQcfqcfXcdjcfaceXceYcdjceVcgecgxbXpaaaaaacfUaaachschschschschsaafcfiaafchschschschschsaafcfUaaackvckvckvaaackvckvckvckvckvckvckvckvckvaaackvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcfjclhcflaaacfjclhcflaafcfjclhcflaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafchmbIWbIWbMecnicjhcnjcnkcnlcnmckGclmckJckGckGcnnckGcnockGckJckGcnpcnqcnrckGcnscntcnuchjcnwbQcbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabXpcnxceeceecdjcnxceeceecdjcnxceeceebXpaafaafcfUaafcidcieciecieciecnycnzcnycihcihcihcihciiaafcfUaaackvckvckvaaackvckvckvckvckvckvckvckvckvaaackvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnaafcfjcnAcflaaacfjcnAcflaaacfjcnAcflaafalNaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbkPbOBbOAcjhcjhcjhcjhcjhcjhcnBcnCcnDcnEcnFcnFcnGcnHcnIcnJcnKcnFcnFcnLcnMcnNcnOcnPcnuchzcnwbQccnRcnScnTcnTcnUaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpcnVceeceecdjcnVceeceecdjcnVceeceebXpaaaaaacfUaafciUciUciUciUciUaaacfiaaaciUciUciUciUciUaaacfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalNaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbGrchCchPcjhcnWcnXcnYcnZcjhcoackGclmcobckGcoccodcoechTchDcohchGchEcokcodcolcnOcnPcomceAconcmTcnwcoocopcoqcoraaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpcosceeceecdjcosceeceecdjcosceeceebXpaaeaaacfUaaaaaaaafaafaafaaaaaacfiaafaaaaaaaafaafaaaaaacfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNalOalOamnalNalNalNalNalOalNalNalOcotaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcoucoucovcovcowcobckGclmcobckGcoxcoycozcoAcoBcoCcoDcoEcoFcoGclmcobcoHcoIceAceAbQcconcoJcnTcnTcoKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAbXpbXpbXpbXpbXpbXpbXpbXpcoLcoLcoLcaAaaaaaacfUcfUcfUcfUcfUaaaaaaaaacfiaaaaaaaaacfUcfUcfUcfVcfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaacjhcovcovcovcovcowcoMcoNcoOcoPcoQcoRcoRcoScoTcoUcoVcoWcoXcoScoYbwKbnocpbckGckGcpccpdcjhcjhcjhcoecpeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpfcpfcpfaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaafcpgaafcfUaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaaaaaaaacphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacjhcpicpjcpkcplcjhcpmcpncpocppcpqcprcpscjhcptcpucpvckGcpwcjhcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHbwLcpJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaaaaafaaacfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafcjhcpKcpKcpKcplcjhcpLcpMcjhcpNcpOcpOcpOcjhcpPcpQcpRcpScpTcjhcpOcpOcpOcpNcjhcpUcodcpVcjhcjhcjhcjhcpWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUcfUcfUcfUcfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaacphaaaaaacphcphcphcphcphcphcphaaaaaacphaaacphaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaafaaacjhcpKcpKcplcplcjhcpXcpYcjhcpZcqacqbcqccaNcqecqfcqgcqhcpTbZTcqacqacqacqjcjhcqkcqlcpVaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvaaaaaackvckvckvckvckvckvckvaaaaaackvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagcjhcjhcjhcjhcjhcjhcovcqmcjhcjhcbwcaOcaPcaQcqrcppcqscppcqtcbxcaPcaOcbzcjhcjhcqwcqxcqyaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaagaagaafaaaaafaagcjhcjhcqzcjhcqAcqBcqBcbTcbFcbMcbMcbMcbMcbMcbFcbAcqBcqBcqGcjhcqHcjhcjhaaaaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaaaaaaaaaafcjhcqIcqJcqKcqLaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqMcqNcqOcqPcjhaafaafaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaacjhcqQcpecpeaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpecpecqQcjhaaaaafaaaaafaafaafaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcqRcqScpeaafaafaafcqTaaaaaaaaaaaacqTaaaaaacqTaafaafaafcpecqUcqVcjhaaaaaaaaaaaaaaaaafaaaaaeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcqWcpecqXaaaaaaaafaaaaaaaaaaaaaaacqYaaaaaaaaaaafaaaaaacpecpecqWcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcqZcracpeaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpecrbcrccjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcjhcjhcqQcpeaaaaaaaafcqTaafaafaagaagaagaafcrdaaaaafaaaaaacpecqQcjhcjhaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcjhcrecpeaaaaaaaafaaaaaaaafcrfcrgaagaafaaaaaaaafaaaaaacpecrhcjhcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphaaaaaacphcphcphcphcphcphcphaaaaaacphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcjhcqQcpeaaaaaaaafaaacriaafaagaagaagaafaafcqTaafaaaaaacpecqQcjhcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcrbcrccpeaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpecqZcracjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaacjhcqWcpecrkaaaaaacrlaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaacpecpecqWcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcrncrocpeaafaafaafcqTaaaaaacqTaaaaaaaaaaaacqTaafcrpaafcpecrqcrrcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcrscrtcruaaaaaaaafaafaafaafcrvaafaafaafaafaafaafaaaaaacrwcrtcrxcoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacryacTcrzcqMcqGaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqAcqLcrzacTacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacqMcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqLaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcjHcjIcjIcjJcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjKcjLcjMcjNcjOcjPcjQcjRcjScjTbIWccrcjUcbEcbEcbEcbEbIWbPTcjhcjVcjWclycjYcjZckackbckcckdcmQckfckgckhckickjckkcklckmcizbRfbRfbRfbRfclxbQcaafckoaafckpaafckoaafckpaafckqaafckqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackraaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXpceecefceecmLcehbZmbZnbZocktbZmbZmckucdjcdjcdjbXpaaaaaacfUaaachschschschschsaafchtaafchschschschschsaafcfUaaaaaaaaaaaaaaaaaaaaaaaackvaaaaaaaaackvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaafaaaaafaafckwaafaaaaafckwaafaaaaafckwaafaaaaaaaaaaaaaaaccpcclcckckyckzccicikckBbIWckCcbCcbCcbCcbCcbCcbCckDcjhckEckFckGckGckHckIckJckKckLcchckNckOckPckQckRckScklciycizckUckVbRfbRfckWbQcbSCckXbUKckXbSCckXbUKckXbSCckYbUKckZbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpceeceeceeccvclaclbclccldclebZmbZmclfbZmclgbZmccuaafaafcfUaafcidcieciecieciecifchtcigcihcihcihcihciiaafcfUaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNaafaafcfjclhcflaaacfjclhcflaaacfjclhcflaafaaaaaaaaaaaaaafaafccxcikcikcikcikbGrcaRcbHbIWcljbIWbIWbIWclkbTbcjhcllckGckGckGckGclmckJckGckGccwcloclpclqclrclscltcklclvclwbXQbWRclzbRfbVEbQcbSCclBclCclDbSCclEclFclGbSCclHclIclJbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAbXpclKclLclLclMclNclOclNclPclQclRclSclTcdhclUccEaaaaaacfUaafciUciUciUciUciUaaachtaafciUciUciUciUciUaaacfUaaackvaaaaaackvaaaaaackvckvckvckvckvckvckvaaaaaackvaaaaaackvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfjclhcflaafcfjclhcflaaacfjclhcflaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabGrcdpcdfcdfcdrbGrbGrbGrbGrclZcmacmbckGckGcmcckGclmckJckGcfzcmecmfcmgcmhcmicmjcmeckTbRfcizcmlcmmcagclubRfbQcbSCcmocmpcmobSCcmqcmrcmqbSCcmscmtcmubSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaabXpcmvcmwcmxcmycmzcmwcmAcmBcmzcmwcmCbXpaaaaaacfVaaaaafaaaaafaaaaafaaacmDaaaaafaaaaafaafaafaafcfUaaackvckvckvckvaaackvckvckvckvckvckvckvckvckvaaackvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcfjclhcflaaacfjclhcflaaacfjclhcflaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcdJbOzcmFbGrbIWcmGckGckGckGckGckGclmckJckGcmHcmecmecdNcmJceFcewcmMcmNcmOcmPcePcemcegbQccmTbQcbSCcmocmUcmobSCcmqcmVcmqbSCcmucmWcmubSCaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmXaafbXpceQcfqcfXcdjcfaceXceYcdjceVcgecgxbXpaaaaaacfUaaachschschschschsaafcfiaafchschschschschsaafcfUaaackvckvckvckvaaackvckvckvckvckvckvckvckvckvaaackvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafcfjclhcflaaacfjclhcflaafcfjclhcflaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafchmbIWbIWbMecnicjhcnjcnkcnlcnmckGclmckJckGckGcnnckGcnockGckJckGcnpcnqcnrckGcnscntcnuchjcnwbQcbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCbSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabXpcnxceeceecdjcnxceeceecdjcnxceeceebXpaafaafcfUaafcidcieciecieciecnycnzcnycihcihcihcihciiaafcfUaaackvckvckvckvaaackvckvckvckvckvckvckvckvckvaaackvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamnaafcfjcnAcflaaacfjcnAcflaaacfjcnAcflaafalNaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbkPbOBbOAcjhcjhcjhcjhcjhcjhcnBcnCcnDcnEcnFcnFcnGcnHcnIcnJcnKcnFcnFcnLcnMcnNcnOcnPcnuchzcnwbQccnRcnScnTcnTcnUaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpcnVceeceecdjcnVceeceecdjcnVceeceebXpaaaaaacfUaafciUciUciUciUciUaaacfiaaaciUciUciUciUciUaaacfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalNaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbGrchCchPcjhcnWcnXcnYcnZcjhcoackGclmcobckGcoccodcoechTchDcohchGchEcokcodcolcnOcnPcomceAconcmTcnwcoocopcoqcoraaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXpcosceeceecdjcosceeceecdjcosceeceebXpaaeaaacfUaaaaaaaafaafaafaaaaaacfiaafaaaaaaaafaafaaaaaacfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalNalOalOamnalNalNalNalNalOalNalNalOcotaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcoucoucovcovcowcobckGclmcobckGcoxcoycozcoAcoBcoCcoDcoEcoFcoGclmcobcoHcoIceAceAbQcconcoJcnTcnTcoKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAbXpbXpbXpbXpbXpbXpbXpbXpcoLcoLcoLcaAaaaaaacfUcfUcfUcfUcfUaaaaaaaaacfiaaaaaaaaacfUcfUcfUcfVcfUaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaacjhcovcovcovcovcowcoMcoNcoOcoPcoQcoRcoRcoScoTcoUcoVcoWcoXcoScoYbwKbnocpbckGckGcpccpdcjhcjhcjhcoecpeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpfcpfcpfaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaafcpgaafcfUaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaaaaaaaacphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacjhcpicpjcpkcplcjhcpmcpncpocppcpqcprcpscjhcptcpucpvckGcpwcjhcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHbwLcpJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUaaaaafaaacfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafcjhcpKcpKcpKcplcjhcpLcpMcjhcpNcpOcpOcpOcjhcpPcpQcpRcpScpTcjhcpOcpOcpOcpNcjhcpUcodcpVcjhcjhcjhcjhcpWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfUcfUcfUcfUcfUaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphaaaaaacphaaaaaacphcphcphcphcphcphcphaaaaaacphaaaaaacphaaaaaeaaaaaaaaaaaaaafaaaaafaaacjhcpKcpKcplcplcjhcpXcpYcjhcpZcqacqbcqccaNcqecqfcqgcqhcpTbZTcqacqacqacqjcjhcqkcqlcpVaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvaaaaaackvckvckvckvckvckvckvaaaaaackvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaafaagcjhcjhcjhcjhcjhcjhcovcqmcjhcjhcbwcaOcaPcaQcqrcppcqscppcqtcbxcaPcaOcbzcjhcjhcqwcqxcqyaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphcphaaaaaaaaaaaaaaaaaaaafaagaafaagaagaafaaaaafaagcjhcjhcqzcjhcqAcqBcqBcbTcbFcbMcbMcbMcbMcbMcbFcbAcqBcqBcqGcjhcqHcjhcjhaaaaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphaaacphcphcphcphcphcphcphcphcphaaacphcphcphcphaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaaaaaaaaaafcjhcqIcqJcqKcqLaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqMcqNcqOcqPcjhaafaafaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaacjhcqQcpecpeaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpecpecqQcjhaaaaafaaaaafaafaafaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcqRcqScpeaafaafaafcqTaaaaaaaaaaaacqTaaaaaacqTaafaafaafcpecqUcqVcjhaaaaaaaaaaaaaaaaafaaaaaeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcqWcpecqXaaaaaaaafaaaaaaaaaaaaaaacqYaaaaaaaaaaafaaaaaacpecpecqWcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackvckvckvckvckvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcqZcracpeaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpecrbcrccjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcjhcjhcqQcpeaaaaaaaafcqTaafaafaagaagaagaafcrdaaaaafaaaaaacpecqQcjhcjhaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcjhcrecpeaaaaaaaafaaaaaaaafcrfcrgaagaafaaaaaaaafaaaaaacpecrhcjhcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphaaaaaacphcphcphcphcphcphcphaaaaaacphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcjhcqQcpeaaaaaaaafaaacriaafaagaagaagaafaafcqTaafaaaaaacpecqQcjhcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcrbcrccpeaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpecqZcracjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaacjhcqWcpecrkaaaaaacrlaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaacpecpecqWcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcrncrocpeaafaafaafcqTaaaaaacqTaaaaaaaaaaaacqTaafcrpaafcpecrqcrrcjhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjhcrscrtcruaaaaaaaafaafaafaafcrvaafaafaafaafaafaafaaaaaacrwcrtcrxcoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacryacTcrzcqMcqGaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqAcqLcrzacTacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacphcphcphcphcphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacqMcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqBcqLaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrjcrjcrjcrjcrjcrjcrjcrjcrjcrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10425,33 +10456,33 @@ crIcsEcsDcsscsBcsCcsAcsycxdcuzcuycuncumcuTcuBcuScuicuxcxicsDcsscsycsrcsBcswcstcr crHcsBcstcszcsycsFcsDcsAcxicuScuicujcukculcumcuncuocuRcuwcstcszcsAcsucsycsscsCcrLcsHcsIcsJcsNcsKcsLcsMcsfcrRcrScrTcrUcrVcrWcsGcsHcsIcsJcsNcsKcsLcsMcrQcrRcrScrTcrUcrVcrWcsGcsHcrZcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crDcsycsCcsvcsAcsrcstcsDcuwcuncuocuxcuycuzcukcujcuAcuBcuCcsCcsvcsDcsxcsAcszcsFcrBcrTcrUcrVcrWcsGcsHcsIcsacsbcsccsdcsecsfcsgcshcsicsjcskcslcrXcrYcrZcsacsbcsccsdcsecsfcsgcshcsicsjcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crJcsAcsFcsEcsDcsucsCcstcuCcujcuAcuRcuicuScuycuxcuTcumcuUcsFcsEcstcswcsDcsvcsrcrKcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crGcsDcsrcsBcstcsxcsFcsCcuUcuxcuTcuBcuocuncuicuRculcukcvfcsrcsBcsCcsscstcsEcsucrNcsmcrBcrCcrDcrEcrFcrGcrHcrIcrBcrJcrKcrLcrMcrNcrOcrPcrHcrGcrKcrDcrEcrIcrLcrFcrNcrJcrPcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crOcstcsucsycsCcswcsrcsFcvfcuRculcumcuAcujcuocuBcuzcuycvxcsucsycsFcszcsCcsBcsxcrEcsmcrKcsrcsscstcsucsvcswcsxcsycszcsAcsBcsCcsDcsEcsFcswcsvcsAcsscstcsxcsBcsucsDcszcrCcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crLcsCcsxcsAcsFcsscsucsrcvxcuwcuBcuxcuycumcujcuiculcuCcvNcsxcsAcsrcsvcsFcsycswcrMcsmcrNcsucszcsCcsxcsEcsscswcsAcsvcsDcsycsFcstcsBcsrcsscsEcsDcszcsCcswcsycsxcstcsvcrFcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crBcsFcswcsDcsrcszcsxcsucsBcuCcvRcvxcwDcvWcvfcwJcxicuUcsycswcsDcsucsEcsrcsAcsscrPcsmcrEcsxcsvcsFcswcsBcszcsscsDcsEcstcsAcsrcsCcsycsucszcsBcstcsvcsFcsscsAcswcsCcsEcrIcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crKcsrcsscstcsucsvcswcsxcsycszcsAcsBcsCcsDcsEcsFcswcsvcsAcsscstcsxcsBcsucsDcszcrCcsmcrMcswcsEcsrcsscsycsvcszcstcsBcsCcsDcsucsFcsAcsxcsvcsycsCcsEcsrcszcsDcsscsFcsBcrHcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxjcxkcxkcxkcxkcxkcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crNcsucszcsCcsxcsEcsscswcsAcsvcsDcsycsFcstcsBcsrcsscsEcsDcszcsCcswcsycsxcstcsvcrFcsmcrPcsscsBcsucszcsAcsEcsvcsCcsycsFcstcsxcsrcsDcswcsEcsAcsFcsBcsucsvcstcszcsrcsycrDcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxmcxncxocxpcxqcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crEcsxcsvcsFcswcsBcszcsscsDcsEcstcsAcsrcsCcsycsucszcsBcstcsvcsFcsscsAcswcsCcsEcrIcsmcrCcszcsycsxcsvcsDcsBcsEcsFcsAcsrcsCcswcsucstcsscsBcsDcsrcsycsxcsEcsCcsvcsucsAcrJcsmaaaaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxtcxtcxtcxscxlcxlcxlcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crMcswcsEcsrcsscsycsvcszcstcsBcsCcsDcsucsFcsAcsxcsvcsycsCcsEcsrcszcsDcsscsFcsBcrHcsmcrFcsvcsAcswcsEcstcsycsBcsrcsDcsucsFcsscsxcsCcszcsycstcsucsAcswcsBcsFcsEcsxcsDcrGcsmaaaaaaaaacxrcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxucxucxucxscxlcxvcxwcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crPcsscsBcsucszcsAcsEcsvcsCcsycsFcstcsxcsrcsDcswcsEcsAcsFcsBcsucsvcstcszcsrcsycrDcsmcrIcsEcsDcsscsBcsCcsAcsycxxctOctPctQctRctSctTctUctVctWcxycsDcsscsycsrcsBcswcstcrOcsmaaaaaaaaacxrcsBcswcstcsBcswcstcsBcswcxzcsBcswcstcxAcswcstcsBcswcstcsBcswcstcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxBcxCcxDcxscxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crCcszcsycsxcsvcsDcsBcsEcsFcsAcsrcsCcswcsucstcsscsBcsDcsrcsycsxcsEcsCcsvcsucsAcrJcsmcrHcsBcstcszcsycsFcsDcsAcxycxEcxFcxGcxHcxIcxJcxKcxLcxMcxNcstcszcsAcsucsycsscsCcrLcsmaaaaaaaaacxrcsycsscsCcsycsscsCcsycsscxOcxPcxQcxOcxPcsscsCcsycsscsCcsycsscsCcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxBcxCcxDcxscxRcxScxTcxUcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crFcrOcrNcrDcrLcrMcrKcrBcrFcrEcrIcrCcrJcrHcrPcrGcrKcrMcrIcrNcrDcrBcrCcrLcrHcrEcrGcsmcrDcsycsCcsvcsAcsrcstcsDcxNcxKcxLcyacybcyccxHcxGcydcyectXcsCcsvcsDcsxcsAcszcsFcrBcsmaaaaaaaaacxrcsAcszcyfcsAcygcsFcsAcygcyfcyhcygcyfcyhcygcsFcsAcygcsFcyhcszcsFcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxBcxCcxDcxscyicxScxWcxWcxVcxWcxScxWcxZcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crIcsDcsscsycsrcsBcswcstcsBcsDcsscsycsrcsBcswcstcsBcswcstcsDcsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcsDcsucsCcstctXcxGcydcxMcxFcxEcybcyacyjcxJcykcsFcsEcstcswcsDcsvcsrcrKcsmaaaaaaaaacxrcsDcsvcylcymcyncsrcymcyncylcymcyncylcymcyncylcsDcyncylcymcsvcsrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxCcxCcxCcyocypcyqcxWcxWcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crHcstcszcsAcsucsycsscsCcsycstcszcsAcsucsycsscsCcsycsscsCcstcszcsAcsucsycsscsCcrLcsmcrGcsDcsrcsBcstcsxcsFcsCcykcyacyjcyecxLcxKcxFcxMcxIcxHcyrcsrcsBcsCcsscstcsEcsucrNcsmaaaaaaaaacxrcstcsEcyscxzcytcsucxzcytcyscxzcytcyscxzcytcyscstcytcyscxzcsEcsucxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxCcxCcxCcyocypcyqcxWcxWcxWcxWcyucxWcxZcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyvcyvcyvaaacywcywcywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crDcsCcsvcsDcsxcsAcszcsFcsAcsCcsvcsDcsxcsAcszcsFcsAcszcsFcsCcsvcsDcsxcsAcszcsFcrBcsmcrOcstcsucsycsCcswcsrcsFcyrcxMcxIcxJcydcxGcxLcyecyccybcyxcsucsycsFcszcsCcsBcsxcrEcsmaaaaaaaaacxrcsCcsBcyycxOcxAcsxcxOcxAcyycxOcxAcyycxOcxAcyycsCcxAcyycxOcsBcsxcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscyzcxCcyAcxscyicxScxWcxWcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyvcyvcyvaaacywcywcywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crJcsFcsEcstcswcsDcsvcsrcsDcsFcsEcstcswcsDcsvcsrcsDcsvcsrcsFcsEcstcswcsDcsvcsrcrKcsmcrLcsCcsxcsAcsFcsscsucsrcyxcsBcsxcxHcyjcyacydcxJcswcstcyBcsxcsAcsrcsvcsFcsycswcrMcsmaaaaaaaaacxrcsFcsycyCcyfcxPcyCcyfcxPcyCcyfcxPcyCcyfcxPcyCcyfcxPcyCcyfcsycswcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcyDcxscyEcxscyFcxRcxScxWcxWcxVcxWcxScxWcxZcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyvcyvcyvaaacywcywcywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crGcsrcsBcsCcsscstcsEcsucstcsrcsBcsCcsscstcsEcsucstcsEcsucsrcsBcsCcsscstcsEcsucrNcsmcrBcsFcswcsDcsrctRctPcyGcyHcyIctScybcxIcxMcyjcxHcsscsCcyJcswcsDcsucsEcsrcsAcsscrPcsmaaaaaaaaacxrcsrcsAcxQcylcyhcxQcylcyhcxQcylcyhcxQcylcyhcxQcylcyhcxQcylcsAcsscxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkaaacyDcyKcyFaaacxRcxScxWcxWcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyLcyMcyNcyOcyPcyvcyvcyvaaacywcywcywcyLcyMcyNcyOcyPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crOcsucsycsFcszcsCcsBcsxcsCcsucsycsFcszcsCcsBcsxcsCcsBcsxcsucsycsFcszcsCcsBcsxcrEcsmcrKcsrcsscstcsucyrcxEcyccxJcxHcxKcxFcyccyecxIcybcszcsFctNcsscstcsxcsBcsucsDcszcrCcsmaaaaaaaaacxrcsucsDcygcyscymcygcyscymcygcyscymcygcyscymcygcyscymcygcyscsDcszcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcyRcyRcyRcyScyTcyUcyTcyTcyTcyUcyTcyVcyRcyRcyRcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crLcsxcsAcsrcsvcsFcsycswcsFcsxcsAcsrcsvcsFcsycswcsFcsycswcsxcsAcsrcsvcsFcsycswcrMcsmcrNcsucszcsCcsxcyxcxKcxEcxHcybcxGcxLcxEcxJcyccxFctWctWctWctWcyWcswcsycsxcstcsvcrFcsmaaaaaaaaacxrcsxcstcyncyycxzcyncyycxzcyncyycxzcyncyycxzcyncyycxzcyncyycstcsvcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcyXcyXcyYcyZczaczbczcczdczeczbczaczfczgcyXcyXcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crBcswcsDcsucsBcsscsycsEcstcsuczhczicyIcupczjcsAczkczlctPczmczncsucsEcsrcsAcsscrPcsmcrEcsxcsvcsFcswcyBcxGcxKcybcxFcyacydcxKcxHcxEcxLcxMcxIcxFcyacuhcsscsAcswcsCcsEcrIcsmaaaaaaaaacxrcswcxOcytcyCcxOcytcyCcxOcytcyCcxOcytcyCcxOcytcyCcxOcytcyCcxOcsEcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcyXcyXczpczqczrczbczrczsczrczbczrcztczpcyXcyXcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crKcsAcstcsxcsrcsDcsucsFcsscsxczuczvczwczxczycsxczzczAczBczCczDcsxcsBcsucsDcszcrCcsmcrMcswcsEcsrcsscyJcyacxGcxFcxLcxMcyjcxGcybcxKcydcyecyccxLcxMczEcszcsDcsscsFcsBcrHcsmaaaaaaaaacxrcsscyfcxAcxQcyfcxAcxQcyfcxAcxQcyfcxAcxQcyfcxAcxQcyfcxAcxQcyfcsBcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczGczFczFczFczHczIczFczFczFczHczFczFczFczFczFczFczHczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJczgcyXczKczrczbczbczbczbczbczbczbczrczKcyXcyYczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crNcsDcsCcswcsucstcsxcsrcszcswczDczMczNczOczPcswczQczRczSczTczUcswcsycsxcstcsvcrFcsmcrPcsscsBcsucszctNcxMcyacxLcydcyecxIcyacxFcxGcyjcxJcxEcydcyecxxcsvcstcszcsrcsycrDcsmaaaaaaaaacxrcszcsrcxPcygcylcsycszcylcxPcygcylcxPcygcylcsycszcylcxPcygcsrcsycxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczGczFczFczFczFczFczFczFczFczFczFczFczHczFczFczFczFczFczHczFczFczFczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcyTcyVczVczWczXczWczbczYczZczbcAacyScyTczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crEcstcsFcsscsxcsCcswcsucsvcssczUcAbcAcczwczkcssczucAdcAecAfcAgcsscsAcswcsCcsEcrIcsmcrCcszcsycsxcyrcAhcyecxMcydcyjcxJcyccxMcxLcyacxIcxHcxKcyjcxJcAicupcyWcsvcsucsAcrJcsmaaaaaaaaacxrcsvcsucsAcsvcsucsAcsvcyscyhcyncyscyhcyncyscsAcsvcsucsAcsvcsucsAcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFcAjczFczFczFczFczFczGczFczFczIczHczFczFczHczFczFczHczIczFczHczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAkcAlcAmcAnczbczYczZczbcAacyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crMcsCcsrcszcswcsFcsscsxcsEcszcAgczxcAoczNcApcszczDcAqczCcArczycszcsDcsscsFcsBcrHcsmcrFcsvcsAcswcyxcxFcxJcyecyjcxIcxHcxEcyecydcxMcyccybcxGcxIcxHcxEcyecuhcsEcsxcsDcrGcsmaaaaaaaaacxrcsEcsxcsDcsEcsxcsDcsEcyycymcytcyycymcytcyycsDcsEcsxcsDcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczGczFczFczHczIczFczFczHczFczIczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAscAtcAtczWczbczYczZczbczacyQcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crPcsFcsucsvcsscsrcszcswcsBcsvczyczuczPcAgczhcsvczUcznczzczDczPcsvcstcszcsrcsycrDcsmcrIcsEcsDcsscyBcxLcxHcxJcxIcyccybcxKcxJcyjcyecxEcxFcyacyccybcxKcxJczEcsBcswcstcrOcsmaaaaaaaaacxrcsBcswcstcsBcswcstcsBcyCcxzcxAcyCcxzcxAcyCcstcsBcswcstcsBcswcstcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczGczFczFczFczFczFczIczFczHczIczFczHczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAvcAtcAtcAwczbczrczrczbczbcyUcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crCcsrcsxcsEcsCcsvcsucsAcsvcsrcsxcsEcsCcsvcsucsAcsvcsucsAcsrcsxcsEcsCcsvcsucsAcrJcsmcrHcsBcstcszcyJcydcybcxHcyccxEcxFcxGcxHcxIcxJcxKcxLcxMcxEcxFcxGcxHcxxcsycsscsCcrLcsmaaaaaaaaacxrcsycsscsCcsycsscsCcsycsscxOcxPcxQcxOcxPcsscsCcsycsscsCcsycsscsCcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFcAxcAxcAxcAxcAxcAxcAxczFczFczFczFczFczFczFczHczFczFcAjczIczFczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyScyTcyTcyTcyVczbczYczZczbcAycyQcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crFcsAcswcsBcsFcsEcsxcsDcsEcsAcswcsBcsFcsEcsxcsDcsEcsxcsDcsAcswcsBcsFcsEcsxcsDcrGcsmcrDcsycsCcsvctNcyjcxFcybcxEcxKcxLcyacybcyccxHcxGcydcyecxKcxLcyacybcxycsAcszcsFcrBcsmaaaaaaaaacxrcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAzcAAcABcACcACcACcADcAAcAEczFczFczFczFcAjczFczFczGczFczGczFczHczFczHczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAFcAGcAGcAHcAIczbczYczZczbcAJcAFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crIcsscsscsycsrcsBcswcstcsBcsscsscsycsrcsBcswcstcsBcswcstcsscsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcAKcxIcxLcxFcxKcxGcydcxMcxFcxEcybcyacyjcxJcxGcydcxMcxFcxNcsDcsvcsrcrKcsmaaaaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcALcAMcpIcAOcAPcAQcAQcAAcARczFczFcAxcAxcAxcAxcAxcAxcAxcAxcAScATcAxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAUcAUcAUcAVczbczYczZczbcAWcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crGcsDcsrcsBcstcsxcsFcsCcuUcuxcuTcuBcuocuncuicuRculcukcvfcsrcsBcsCcsscstcsEcsucrNcsmcrBcrCcrDcrEcrFcrGcrHcrIcrBcrJcrKcrLcrMcrNcrOcrPcrHcrGcrKcrDcrEcrIcrLcrFcrNcrJcrPcsmaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crOcstcsucsycsCcswcsrcsFcvfcuRculcumcuAcujcuocuBcuzcuycvxcsucsycsFcszcsCcsBcsxcrEcsmcrKcsrcsscstcsucsvcswcsxcsycszcsAcsBcsCcsDcsEcsFcswcsvcsAcsscstcsxcsBcsucsDcszcrCcsmaaaaaacxrcsEcsxcsDcsEcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crLcsCcsxcsAcsFcsscsucsrcvxcuwcuBcuxcuycumcujcuiculcuCcvNcsxcsAcsrcsvcsFcsycswcrMcsmcrNcsucszcsCcsxcsEcsscswcsAcsvcsDcsycsFcstcsBcsrcsscsEcsDcszcsCcswcsycsxcstcsvcrFcsmaaaaaacxrcsEcsxcsDcsEcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crBcsFcswcsDcsrcszcsxcsucsBcuCcvRcvxcwDcvWcvfcwJcxicuUcsycswcsDcsucsEcsrcsAcsscrPcsmcrEcsxcsvcsFcswcsBcszcsscsDcsEcstcsAcsrcsCcsycsucszcsBcstcsvcsFcsscsAcswcsCcsEcrIcsmaaaaaacxrcsEcsxcsDcsEcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crKcsrcsscstcsucsvcswcsxcsycszcsAcsBcsCcsDcsEcsFcswcsvcsAcsscstcsxcsBcsucsDcszcrCcsmcrMcswcsEcsrcsscsycsvcszcstcsBcsCcsDcsucsFcsAcsxcsvcsycsCcsEcsrcszcsDcsscsFcsBcrHcsmaaaaaacxrcsEcsxcsDcsEcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxjcxkcxkcxkcxkcxkcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crNcsucszcsCcsxcsEcsscswcsAcsvcsDcsycsFcstcsBcsrcsscsEcsDcszcsCcswcsycsxcstcsvcrFcsmcrPcsscsBcsucszcsAcsEcsvcsCcsycsFcstcsxcsrcsDcswcsEcsAcsFcsBcsucsvcstcszcsrcsycrDcsmaaaaaacxrcsEcsxcsDcsEcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsxcsDcsEcsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxmcxncxocxpcxqcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crEcsxcsvcsFcswcsBcszcsscsDcsEcstcsAcsrcsCcsycsucszcsBcstcsvcsFcsscsAcswcsCcsEcrIcsmcrCcszcsycsxcsvcsDcsBcsEcsFcsAcsrcsCcswcsucstcsscsBcsDcsrcsycsxcsEcsCcsvcsucsAcrJcsmaaaaaacxrcsBcswcstcsBcsBcswcstcsBcswcxzcsBcswcstcxAcswcstcsBcswcstcsBcsBcswcstcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxtcxtcxtcxscxlcxlcxlcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crMcswcsEcsrcsscsycsvcszcstcsBcsCcsDcsucsFcsAcsxcsvcsycsCcsEcsrcszcsDcsscsFcsBcrHcsmcrFcsvcsAcswcsEcstcsycsBcsrcsDcsucsFcsscsxcsCcszcsycstcsucsAcswcsBcsFcsEcsxcsDcrGcsmaaaaaacxrcsycsscsCcsycsycsscsCcsycsscxOcxPcxQcxOcxPcsscsCcsycsscsCcsycsycsscsCcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxucxucxucxscxlcxvcxwcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crPcsscsBcsucszcsAcsEcsvcsCcsycsFcstcsxcsrcsDcswcsEcsAcsFcsBcsucsvcstcszcsrcsycrDcsmcrIcsEcsDcsscsBcsCcsAcsycxxctOctPctQctRctSctTctUctVctWcxycsDcsscsycsrcsBcswcstcrOcsmaaaaaacxrcsAcszcyfcsAcsAcygcsFcsAcygcyfcyhcygcyfcyhcygcsFcsAcygcsFcstcyhcszcsFcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxBcxCcxDcxscxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crCcszcsycsxcsvcsDcsBcsEcsFcsAcsrcsCcswcsucstcsscsBcsDcsrcsycsxcsEcsCcsvcsucsAcrJcsmcrHcsBcstcszcsycsFcsDcsAcxycxEcxFcxGcxHcxIcxJcxKcxLcxMcxNcstcszcsAcsucsycsscsCcrLcsmaaaaaacxrcsDcsvcylcymcymcyncsrcymcyncylcymcyncylcymcyncylcsDcyncylcymcymcsvcsrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxBcxCcxDcxscxRcxScxTcxUcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crFcrOcrNcrDcrLcrMcrKcrBcrFcrEcrIcrCcrJcrHcrPcrGcrKcrMcrIcrNcrDcrBcrCcrLcrHcrEcrGcsmcrDcsycsCcsvcsAcsrcstcsDcxNcxKcxLcyacybcyccxHcxGcydcyectXcsCcsvcsDcsxcsAcszcsFcrBcsmaaaaaacxrcstcsEcyscxzcxzcytcsucxzcytcyscxzcytcyscxzcytcyscstcytcyscxzcxzcsEcsucxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxBcxCcxDcxscyicxScxWcxWcxVcxWcxScxWcxZcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crIcsDcsscsycsrcsBcswcstcsBcsDcsscsycsrcsBcswcstcsBcswcstcsDcsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcsDcsucsCcstctXcxGcydcxMcxFcxEcybcyacyjcxJcykcsFcsEcstcswcsDcsvcsrcrKcsmaaaaaacxrcsCcsBcyycxOcxOcxAcsxcxOcxAcyycxOcxAcyycxOcxAcyycsCcxAcyycxOcxOcsBcsxcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxCcxCcxCcyocypcyqcxWcxWcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crHcstcszcsAcsucsycsscsCcsycstcszcsAcsucsycsscsCcsycsscsCcstcszcsAcsucsycsscsCcrLcsmcrGcsDcsrcsBcstcsxcsFcsCcykcyacyjcyecxLcxKcxFcxMcxIcxHcyrcsrcsBcsCcsscstcsEcsucrNcsmaaaaaacxrcsFcsycyCcyfcyfcxPcyCcyfcxPcyCcyfcxPcyCcyfcxPcyCcyfcxPcyCcyfcyfcsycswcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscxCcxCcxCcyocypcyqcxWcxWcxWcxWcyucxWcxZcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyvcyvcyvaaacywcywcywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crDcsCcsvcsDcsxcsAcszcsFcsAcsCcsvcsDcsxcsAcszcsFcsAcszcsFcsCcsvcsDcsxcsAcszcsFcrBcsmcrOcstcsucsycsCcswcsrcsFcyrcxMcxIcxJcydcxGcxLcyecyccybcyxcsucsycsFcszcsCcsBcsxcrEcsmaaaaaacxrcsrcsAcxQcylcylcyhcxQcylcyhcxQcylcyhcxQcylcyhcxQcylcyhcxQcylcylcsAcsscxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcxscyzcxCcyAcxscyicxScxWcxWcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyvcyvcyvaaacywcywcywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crJcsFcsEcstcswcsDcsvcsrcsDcsFcsEcstcswcsDcsvcsrcsDcsvcsrcsFcsEcstcswcsDcsvcsrcrKcsmcrLcsCcsxcsAcsFcsscsucsrcyxcsBcsxcxHcyjcyacydcxJcswcstcyBcsxcsAcsrcsvcsFcsycswcrMcsmaaaaaacxrcsucsDcygcyscyscymcygcyscymcygcyscymcygcyscymcygcyscymcygcyscyscsDcszcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkcyDcxscyEcxscyFcxRcxScxWcxWcxVcxWcxScxWcxZcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyvcyvcyvaaacywcywcywaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crGcsrcsBcsCcsscstcsEcsucstcsrcsBcsCcsscstcsEcsucstcsEcsucsrcsBcsCcsscstcsEcsucrNcsmcrBcsFcswcsDcsrctRctPcyGcyHcyIctScybcxIcxMcyjcxHcsscsCcyJcswcsDcsucsEcsrcsAcsscrPcsmaaaaaacxrcsxcstcyncyycyycxzcyncyycxzcyncyycxzcyncyycxzcyncyycxzcyncyycyycstcsvcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxkaaacyDcyKcyFaaacxRcxScxWcxWcxVcxWcxScxXcxYcxZcxZcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyLcyMcyNcyOcyPcyvcyvcyvaaacywcywcywcyLcyMcyNcyOcyPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crOcsucsycsFcszcsCcsBcsxcsCcsucsycsFcszcsCcsBcsxcsCcsBcsxcsucsycsFcszcsCcsBcsxcrEcsmcrKcsrcsscstcsucyrcxEcyccxJcxHcxKcxFcyccyecxIcybcszcsFctNcsscstcsxcsBcsucsDcszcrCcsmaaaaaacxrcswcxOcytcyCcyCcxOcytcyCcxOcytcyCcxOcytcyCcxOcytcyCcxOcytcyCcyCcxOcsEcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlcxlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcyRcyRcyRcyScyTcyUcyTcyTcyTcyUcyTcyVcyRcyRcyRcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crLcsxcsAcsrcsvcsFcsycswcsFcsxcsAcsrcsvcsFcsycswcsFcsycswcsxcsAcsrcsvcsFcsycswcrMcsmcrNcsucszcsCcsxcyxcxKcxEcxHcybcxGcxLcxEcxJcyccxFctWctWctWctWcyWcswcsycsxcstcsvcrFcsmaaaaaacxrcsscyfcxAcxQcxQcyfcxAcxQcyfcxAcxQcyfcxAcxQcyfcxAcxQcyfcxAcxQcxQcyfcsBcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcyXcyXcyYcyZczaczbczcczdczeczbczaczfczgcyXcyXcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crBcswcsDcsucsBcsscsycsEcstcsuczhczicyIcupczjcsAczkczlctPczmczncsucsEcsrcsAcsscrPcsmcrEcsxcsvcsFcswcyBcxGcxKcybcxFcyacydcxKcxHcxEcxLcxMcxIcxFcyacuhcsscsAcswcsCcsEcrIcsmaaaaaacxrcszcsrcxPcygcygcylcsycszcylcxPcygcylcxPcygcylcsycszcylcxPcygcygcsrcsycxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcyXcyXczpczqczrczbczrczsczrczbczrcztczpcyXcyXcyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crKcsAcstcsxcsrcsDcsucsFcsscsxczuczvczwczxczycsxczzczAczBczCczDcsxcsBcsucsDcszcrCcsmcrMcswcsEcsrcsscyJcyacxGcxFcxLcxMcyjcxGcybcxKcydcyecyccxLcxMczEcszcsDcsscsFcsBcrHcsmaaaaaacxrcsvcsucsAaaacsvcsucsAcsvcyscyhcyncyscyhcyncyscsAcsvcsucsAaaacsvcsucsAcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczGczFczFczFczHczIczFczFczFczHczFczFczFczFczFczFczHczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJczgcyXczKczrczbczbczbczbczbczbczbczrczKcyXcyYczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crNcsDcsCcswcsucstcsxcsrcszcswczDczMczNczOczPcswczQczRczSczTczUcswcsycsxcstcsvcrFcsmcrPcsscsBcsucszctNcxMcyacxLcydcyecxIcyacxFcxGcyjcxJcxEcydcyecxxcsvcstcszcsrcsycrDcsmaaaaaacxrcsEcsxcsDaaacsEcsxcsDcsEcyycymcytcyycymcytcyycsDcsEcsxcsDaaacsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczGczFczFczFczFczFczFczFczFczFczFczFczHczFczFczFczFczFczHczFczFczFczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczJcyTcyVczVczWczXczWczbczYczZczbcAacyScyTczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crEcstcsFcsscsxcsCcswcsucsvcssczUcAbcAcczwczkcssczucAdcAecAfcAgcsscsAcswcsCcsEcrIcsmcrCcszcsycsxcyrcAhcyecxMcydcyjcxJcyccxMcxLcyacxIcxHcxKcyjcxJcAicupcyWcsvcsucsAcrJcsmaaaaaacxrcsEcsxcsDaaacsEcsxcsDcsEcyycymcytcyycymcytcyycsDcsEcsxcsDaaacsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFcAjczFczFczFczFczFczGczFczFczIczHczFczFczHczFczFczHczIczFczHczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAkcAlcAmcAnczbczYczZczbcAacyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crMcsCcsrcszcswcsFcsscsxcsEcszcAgczxcAoczNcApcszczDcAqczCcArczycszcsDcsscsFcsBcrHcsmcrFcsvcsAcswcyxcxFcxJcyecyjcxIcxHcxEcyecydcxMcyccybcxGcxIcxHcxEcyecuhcsEcsxcsDcrGcsmaaaaaacxrcsEcsxcsDaaacsEcsxcsDcsEcyycymcytcyycymcytcyycsDcsEcsxcsDaaacsEcsxcsDcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczGczFczFczHczIczFczFczHczFczIczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAscAtcAtczWczbczYczZczbczacyQcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crPcsFcsucsvcsscsrcszcswcsBcsvczyczuczPcAgczhcsvczUcznczzczDczPcsvcstcszcsrcsycrDcsmcrIcsEcsDcsscyBcxLcxHcxJcxIcyccybcxKcxJcyjcyecxEcxFcyacyccybcxKcxJczEcsBcswcstcrOcsmaaaaaacxrcsBcswcstaaacsBcswcstcsBcyCcxzcxAcyCcxzcxAcyCcstcsBcswcstaaacsBcswcstcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFczFczFczFczFczFczFczFczFczFczGczFczFczFczFczFczIczFczHczIczFczHczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAvcAtcAtcAwczbczrczrczbczbcyUcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crCcsrcsxcsEcsCcsvcsucsAcsvcsrcsxcsEcsCcsvcsucsAcsvcsucsAcsrcsxcsEcsCcsvcsucsAcrJcsmcrHcsBcstcszcyJcydcybcxHcyccxEcxFcxGcxHcxIcxJcxKcxLcxMcxEcxFcxGcxHcxxcsycsscsCcrLcsmaaaaaacxrcsycsscsCaaacsycsscsCcsycsscxOcxPcxQcxOcxPcsscsCcsycsscsCaaacsycsscsCcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFczFcAxcAxcAxcAxcAxcAxcAxczFczFczFczFczFczFczFczHczFczFcAjczIczFczFczFczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyScyTcyTcyTcyVczbczYczZczbcAycyQcAucAucAucAuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crFcsAcswcsBcsFcsEcsxcsDcsEcsAcswcsBcsFcsEcsxcsDcsEcsxcsDcsAcswcsBcsFcsEcsxcsDcrGcsmcrDcsycsCcsvctNcyjcxFcybcxEcxKcxLcyacybcyccxHcxGcydcyecxKcxLcyacybcxycsAcszcsFcrBcsmaaaaaacxrcsAcszcsFaaacsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFcsAcszcsFaaacsAcszcsFcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAzcAAcABcACcACcACcADcAAcAEczFczFczFczFcAjczFczFczGczFczGczFczHczFczHczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAFcAGcAGcAHcAIczbczYczZczbcAJcAFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crIcsscsscsycsrcsBcswcstcsBcsscsscsycsrcsBcswcstcsBcswcstcsscsscsycsrcsBcswcstcrOcsmcrJcsAcsFcsEcAKcxIcxLcxFcxKcxGcydcxMcxFcxEcybcyacyjcxJcxGcydcxMcxFcxNcsDcsvcsrcrKcsmaaaaaacxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcALcAMcpIcAOcAPcAQcAQcAAcARczFczFcAxcAxcAxcAxcAxcAxcAxcAxcAScATcAxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcAUcAUcAUcAVczbczYczZczbcAWcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crHcszcszcsAcsucsycsscsCcsycszcszcsAcsucsycsscsCcsycsscsCcszcszcsAcsucsycsscsCcrLcsmcrGcsDcsrcsBcAYcyccydcxLcxGcyacyjcyecxLcxKcxFcxMcxIcxHcyacyjcyecxLctXcstcsEcsucrNcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcAZcAMcAMcBacAMcAMcAMcAAcARczFcBbcBccBdcBdcBeczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBhczbczbczbczbczbcyUcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crDcsvcsvcsDcsxcsAcszcsFcsAcsvcsvcsDcsxcsAcszcsFcsAcszcsFcsvcsvcsDcsxcsAcszcsFcrBcsmcrOcstcsucsycyWcxEcyjcydcyacxMcsucxJcydcxGcxLcyecsxcybcxMcxIcxJcydcykcsCcsBcsxcrEcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcAAcBicAMcAMcAMcBjcAMcBkcAAcARcAjcBbcBlcBmcBmcBmcBncBoczocBpcBqczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBrcAUcAUcAIczbczrczrczrcztcyQcAXcAXcAXcAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crJcsEcsEcstcswcsDcsvcsrcsDcsEcsEcstcswcsDcsvcsrcsDcsvcsrcsEcsEcstcswcsDcsvcsrcrKcsmcrLcsCcsxcsAcuhcxKcxIcyjcxMcxEcsBcyacybcxJcxGcxFcsucxKcyecyccxHcyjcyrcsFcsycswcrMcsmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczoczFczFczFczFczFcBscAAcAAcAAcBtcAAcAAcAAcBuczFczFcBvcBlcBmcBmcBwcBmcBmcBxcBycBycBzczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyQcBfcBgcAUcBAczbcBBcBCcBDczacyQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10632,25 +10663,25 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSmcSncSocSpcSqcSrcS aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSocSocSocSvcSwcSxcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSycSycSocSocSocSzcSlcSAcSBcSCcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSDcSDcSlcSlcSEcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSFcSFcSocSGcSHcSIcSlcSJcSEcSKcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSGcSLcSMcSlcSNcSOcSPcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSocSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcSSaaacSQcSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSTcSUcSVcSWcSocSXcSYcSZcTacTbcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTccTdcTecTecTecTfcTcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcThcTicSocSocSocTjcTkcTlcTmcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcTncSRcTocTpcTqcTrcTscTpcTtcSRcTncSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTecTfcTcaaacTdcTpcTJcTMcTIcTpcTfaaacTccTdcTecTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcTAcTBcSocTCcSXcTDcTmcTEcTFcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTGcTpcTccTdcTpcTycTxcTzcTxcTycTpcTfcTccTpcTKcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTHcTpcTecTLcTzcTycTxcTycTxcTycTzcTLcTecTpcTHcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTGcTpcTecTOcTzcTycTxcTycTxcTycTzcTOcTecTpcTGcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTHcTpcTpcTpcTpcTpcTpcTKcTpcTpcTpcTpcTpcTpcTHcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTecTLcTHcTHcTHcTHcTHcTHcTpcTHcTpcTHcTHcTHcTHcTHcTHcTLcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTecTPcTHcTQcTRcTScTpcTKcTpcTKcTpcTKcTpcTTcTUcTVcTHcTPcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTecTOcTHcTWcTScTScTpcTScTScTScTScTScTpcTXcTScTYcTHcTOcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTpcTHcTZcUacUbcTpcTScTScTScTScTScTpcUccUdcUecTHcTpcTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcUgcTpcTpcTpcTpcUhcTScUicTScUjcTpcTpcTpcTpcUgcTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcUlcUkaaaaaacTpcUmcTScUncTScUocTpaaaaaacUfcUlcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcUmcTScUncTScUocTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcUmcTScTScTScUpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcTNcTNcTNcTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSFcSFcSocSGcSHcSIcSlcSJcSEcSKcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcSSaaacSQcSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSGcSLcSMcSlcSNcSOcSPcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTccTdcTecTecTecTfcTcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSocSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcTncSRcTocTpcTPcTOcTQcTpcTtcSRcTncSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSTcSUcSVcSWcSocSXcSYcSZcTacTbcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTecTecTfcTcaaacTdcTpcTJcTMcTNcTpcTfaaacTccTdcTecTecTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcThcTicSocSocSocTjcTkcTlcTmcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcCbcANcTpcTccTdcTpcTLcTxcTIcTxcTycTpcTfcTccTpcTGcTrcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHJcTHdHLcTedHIcTzcTycTxcTycTxcTycTzdHIcTedHMcTHdIacTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcTAcTBcSocTCcSXcTDcTmcTEcTFcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHpdIbcTpcTedNkcTzcTycTxcTycTxcTycTzdNkcTecTpdNldHpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTRdufcTpcTpcTpcTpcTpcTpcTKcTpcTpcTpcTpcTpcTpcUocUpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedHIdHpcTHcTHcTHcTHcTHcTHcTpcTHcTpcTHcTHcTHcTHcTHcTHdHpdHIcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedNwdNvdNydNxdNDdNEcTpcTKcTpcTKcTpcTKcTpdNBdNzdNAdNCdNvdNwcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedNkdNvcTScTScTScTScTpcTScTScTScTScTScTpcTScTScTYcTSdNvdNkcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTpdNncUadNscUhdNrcTpdNqcTScTScTSdNpcTpcUcdNocUedNmdNncTpcTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcUgcUgcTpcTpcTpcTpdNucTScTScTSdNtcTpcTpcTpcTpcUgcUgcTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcUlcUlcUkaaaaaacTpcTVcTScTScTScTWcTpaaaaaacUfcUlcUlcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTXcTScTScTScTWcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTqcTscTRcTqcTscTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTUcTScTScTScTTcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTZcUicTScUbcUdcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcUjcUmcUncTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUfcTpcTpcTpcUkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} @@ -11382,25 +11413,25 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZaaaaaaaaadMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadMZaaadMZaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaadMZaaadMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadMZdMZdMZaaadMZdMZdMZdMZdMZdMZdMZdMZdMZaaadMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaadMZdMZdMZaaadMZdMZdMZdMZdMZdMZdMZdMZdMZaaadMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaadMZdMZdMZaaadMZdMZdMZdMZdMZdMZdMZdMZdMZaaadMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaadpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkaaaaaaaaaaaadpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaadMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadMZaaaaaaaaadMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaadMZaaaaaadMZaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaadMZaaaaaadMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaadMZdMZdMZdMZaaadMZdMZdMZdMZdMZdMZdMZdMZdMZaaadMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaadMZdMZdMZdMZaaadMZdMZdMZdMZdMZdMZdMZdMZdMZaaadMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaadMZdMZdMZdMZaaadMZdMZdMZdMZdMZdMZdMZdMZdMZaaadMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaadpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkaaaaaaaaaaaadpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaadMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMZdMZdMZdMZdMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 8d019740579bfd7c030ea0d16057c9bc6dcf2d8f Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:13:23 -0700 Subject: [PATCH 050/226] Small language fixes, oops. --- code/modules/mob/language.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index 16bf98e36a8..dc291d06461 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -54,7 +54,7 @@ /datum/language/human name = "Sol Common" desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system." - key = "hum" + key = "1" flags = RESTRICTED // Galactic common languages (systemwide accepted standards). @@ -62,13 +62,13 @@ name = "Tradeband" desc = "Maintained by the various trading cartels in major systems, this elegant, structured language is used for bartering and bargaining." speech_verb = "enunciates" - key = "tra" + key = "2" /datum/language/gutter name = "Gutter" desc = "Much like Standard, this crude pidgin tongue descended from numerous languages and serves as Tradeband for criminal elements." speech_verb = "growls" - key = "g" + key = "3" // Language handling. /mob/proc/add_language(var/language) @@ -94,4 +94,6 @@ return 0 -/mob/verb/check_languages() \ No newline at end of file +//TBD +/mob/verb/check_languages() + return \ No newline at end of file From 11c3de6da102ad6fabf7890e28747011b2a99234 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:15:28 -0700 Subject: [PATCH 051/226] Got a vox shuttle check the wrong way around. --- code/game/machinery/computer/vox_shuttle.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/vox_shuttle.dm b/code/game/machinery/computer/vox_shuttle.dm index 0912cfc3584..6854949cd28 100644 --- a/code/game/machinery/computer/vox_shuttle.dm +++ b/code/game/machinery/computer/vox_shuttle.dm @@ -26,10 +26,10 @@ var/global/announce_vox_departure = 1 //Stealth systems - give an announcement o return if(announce_vox_departure) - user << "\red Shuttle stealth systems have been deactivated. The Exodus will be warned of our arrival." + user << "\red Shuttle stealth systems have been activated. The Exodus will not be warned of our arrival." announce_vox_departure = 0 else - user << "\red Shuttle stealth systems have been activated. The Exodus will not be warned of our arrival." + user << "\red Shuttle stealth systems have been deactivated. The Exodus will be warned of our arrival." announce_vox_departure = 1 From 4ea434da1dc3f1b3c021ee62f35c0e5c5cd9c2d3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:27:52 -0700 Subject: [PATCH 052/226] Added a delay to vent crawling. --- code/modules/mob/living/carbon/carbon.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 8252e3073c4..f0f5fa4d8ae 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -255,7 +255,16 @@ var/turf/startloc = loc var/obj/selection = input("Select a destination.", "Duct System") as null|anything in sortList(vents) - if(!selection) return + + if(!selection) + return + + if(!do_after(src, 45)) + return + + if(!src||!selection) + return + if(loc==startloc) if(contents.len) for(var/obj/item/carried_item in contents)//If the monkey got on objects. From 7e0d26dab1662b2a4f26032c4b3798fbb86740e1 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:35:05 -0700 Subject: [PATCH 053/226] Commented out APC switching from Malf AI. --- code/modules/mob/living/silicon/ai/ai.dm | 4 ++-- code/modules/power/apc.dm | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index cfc538f0617..c701be0f558 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -652,7 +652,7 @@ var/list/ai_list = list() holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo2")) return -/mob/living/silicon/ai/proc/corereturn() +/*/mob/living/silicon/ai/proc/corereturn() set category = "Malfunction" set name = "Return to Main Core" @@ -660,7 +660,7 @@ var/list/ai_list = list() if(!istype(apc)) src << "\blue You are already in your Main Core." return - apc.malfvacate() + apc.malfvacate()*/ //Toggles the luminosity and applies it by re-entereing the camera. /mob/living/silicon/ai/proc/toggle_camera_light() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f25abe3c76c..38e1ad58724 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -634,10 +634,10 @@ t += "

Override Programming
" else t += "

APC Hacked
" - if(!src.occupant) + /*if(!src.occupant) t += "Shunt Core Processes
" else - t += "Core Processes Uploaded
" + t += "Core Processes Uploaded
"*/ t += "

Close" @@ -902,19 +902,19 @@ malfai << "Hack complete. The APC is now under your exclusive control." update_icon() - else if (href_list["occupyapc"]) + /*else if (href_list["occupyapc"]) malfoccupy(usr) else if (href_list["deoccupyapc"]) - malfvacate() + malfvacate()*/ if(usingUI) src.updateDialog() return -/obj/machinery/power/apc/proc/malfoccupy(var/mob/living/silicon/ai/malf) +/*/obj/machinery/power/apc/proc/malfoccupy(var/mob/living/silicon/ai/malf) if(!istype(malf)) return if(istype(malf.loc, /obj/machinery/power/apc)) // Already in an APC @@ -952,7 +952,7 @@ if(forced) src.occupant.loc = src.loc src.occupant.death() - src.occupant.gib() + src.occupant.gib()*/ /obj/machinery/power/apc/proc/ion_act() @@ -1234,8 +1234,8 @@ ticker.mode:apcs-- stat |= BROKEN operating = 0 - if(occupant) - malfvacate(1) + /*if(occupant) + malfvacate(1)*/ update_icon() update() @@ -1262,8 +1262,8 @@ area.power_equip = 0 area.power_environ = 0 area.power_change() - if(occupant) - malfvacate(1) + /*if(occupant) + malfvacate(1)*/ ..() /obj/machinery/power/apc/proc/shock(mob/user, prb) From 8c1f842b6a70d6f2090dd727ed1faadb4cb82dc6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:42:17 -0700 Subject: [PATCH 054/226] Allowed changeling husks to be cloned. --- code/modules/mob/living/carbon/human/death.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 3891776b98f..95ebdf20117 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -134,5 +134,5 @@ /mob/living/carbon/human/proc/Drain() ChangeToHusk() - mutations |= NOCLONE + //mutations |= NOCLONE return From 8c58af4c659b2b356d05b1d78d308f2fb731b992 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:53:07 -0700 Subject: [PATCH 055/226] Vox theft objectives should check lockers and other storage now. --- code/game/gamemodes/objective.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 3d154485133..12ac5447842 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -834,6 +834,8 @@ datum/objective/heist/loot for(var/obj/O in locate(/area/shuttle/vox/station)) if(istype(O,target)) total_amount++ + for(var/obj/I in O.contents) + if(istype(I,target)) total_amount++ if(total_amount >= target_amount) return 1 var/datum/game_mode/heist/H = ticker.mode @@ -881,10 +883,17 @@ datum/objective/heist/salvage var/total_amount = 0 for(var/obj/item/O in locate(/area/shuttle/vox/station)) + + var/obj/item/stack/sheet/S if(istype(O,/obj/item/stack/sheet)) if(O.name == target) - var/obj/item/stack/sheet/S = O + S = O total_amount += S.amount + for(var/obj/I in O.contents) + if(istype(I,/obj/item/stack/sheet)) + if(I.name == target) + S = I + total_amount += S.amount var/datum/game_mode/heist/H = ticker.mode for(var/datum/mind/raider in H.raiders) From 9b48ae3be4565e453a459bda1ab33c0ad4334ae1 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 02:55:24 -0700 Subject: [PATCH 056/226] Forgot to add the fancy leader hat to the vox shuttle earlier. --- maps/tgstation2.dmm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index d8bec89c168..f149c9d0e8d 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -10169,6 +10169,7 @@ "dNC" = (/obj/machinery/optable,/obj/item/brain,/obj/structure/window/basic{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dND" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/machinery/bot/floorbot,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNE" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/broken_device,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) +"dNF" = (/obj/item/clothing/head/collectable/petehat{desc = "It smells faintly of reptiles."; name = "fancy leader hat"},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10668,7 +10669,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSGcSLcSMcS aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSocSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcTncSRcTocTpcTPcTOcTQcTpcTtcSRcTncSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSTcSUcSVcSWcSocSXcSYcSZcTacTbcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTecTecTfcTcaaacTdcTpcTJcTMcTNcTpcTfaaacTccTdcTecTecTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcThcTicSocSocSocTjcTkcTlcTmcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcCbcANcTpcTccTdcTpcTLcTxcTIcTxcTycTpcTfcTccTpcTGcTrcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHJcTHdHLcTedHIcTzcTycTxcTycTxcTycTzdHIcTedHMcTHdIacTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHJcTHdHLcTedHIcTzcTycTxdNFcTxcTycTzdHIcTedHMcTHdIacTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcTAcTBcSocTCcSXcTDcTmcTEcTFcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHpdIbcTpcTedNkcTzcTycTxcTycTxcTycTzdNkcTecTpdNldHpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcTRdufcTpcTpcTpcTpcTpcTpcTKcTpcTpcTpcTpcTpcTpcUocUpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedHIdHpcTHcTHcTHcTHcTHcTHcTpcTHcTpcTHcTHcTHcTHcTHcTHdHpdHIcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 856aa6a60bba3e6c4a869ae8606208c3ecc1a764 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 13:47:45 -0700 Subject: [PATCH 057/226] Fixes #3555 --- code/modules/mob/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index eaa345be1bd..416528d3fc0 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -1,7 +1,7 @@ // All mobs should have custom emote, really.. /mob/proc/custom_emote(var/m_type=1,var/message = null) - if(!use_me && usr == src) + if(stat || !use_me && usr == src) usr << "You are unable to emote." return From d3c76281400c9a512a9a51a9c049b71385f026b4 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 25 Aug 2013 15:24:16 -0700 Subject: [PATCH 058/226] Added fancy hat to fixed vox shuttle. --- maps/tgstation2.dmm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 901be0a2204..d773e5583d3 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -10170,6 +10170,7 @@ "dND" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/machinery/bot/floorbot,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNE" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/broken_device,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNF" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_east_vent"; exterior_door_tag = "vox_northeast_lock"; frequency = 1331; id_tag = "vox_east_control"; interior_door_tag = "vox_southeast_lock"; pixel_x = -24; req_access_txt = "150"; sensor_tag = "vox_east_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) +"dNG" = (/obj/item/clothing/head/collectable/petehat{desc = "It smells faintly of reptile."; name = "fancy leader hat"},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10669,7 +10670,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSGcSLcSMcS aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSocSocSocSocSocSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSQcSRcTncSRcTocTpcTPcTOcTQcTpcTtcSRcTncSRcSSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSTcSUcSVcSWcSocSXcSYcSZcTacTbcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTdcTecTecTfcTcaaacTdcTpcTJcTMcTNcTpcTfaaacTccTdcTecTecTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcThcTicSocSocSocTjcTkcTlcTmcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpcCbcBtcTpcTccTdcTpcTLcTxcTIcTxcTycTpcTfcTccTpcTGcTrcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHLdHMcTpcTedHIcTzcTycTxcTycTxcTycTzdHIcTecTpdIadIbcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTucThcTicSocSocSocTvcTwcTvcTwcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHLdHMcTpcTedHIcTzcTycTxdNGcTxcTycTzdHIcTecTpdIadIbcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcTgcTAcTBcSocTCcSXcTDcTmcTEcTFcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdHpdNlcTpcTedNkcTzcTycTxcTycTxcTycTzdNkcTecTpdNFdHpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlcSlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTpdufdHJcTpcTpcTpcTpcTpcTpcTRcTpcTpcTpcTpcTpcTpcUocUpcTpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTedHIdHpcTHcTHcTHcTHcTHcTHcTpcTHcTpcTHcTHcTHcTHcTHcTHdHpdHIcTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 9adba1516a76476650b43a5224b7278c4c49510f Mon Sep 17 00:00:00 2001 From: Segrain Date: Sun, 25 Aug 2013 21:28:07 +0300 Subject: [PATCH 059/226] Cyborg jobranks. --- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/security.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 4 ++-- code/modules/mob/living/silicon/robot/robot.dm | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index c6f2f454567..7c3b44a4e03 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -182,7 +182,7 @@ src.active2 = null src.authenticated = usr.name var/mob/living/silicon/robot/R = usr - src.rank = R.braintype + src.rank = "[R.modtype] [R.braintype]" src.screen = 1 else if (istype(src.scan, /obj/item/weapon/card/id)) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index ab7c7c08180..262dcf4ab82 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -256,7 +256,7 @@ What a mess.*/ src.active2 = null src.authenticated = usr.name var/mob/living/silicon/robot/R = usr - src.rank = R.braintype + src.rank = "[R.modtype] [R.braintype]" src.screen = 1 else if (istype(scan, /obj/item/weapon/card/id)) active1 = null diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d0f967f5b11..cfef1b78a04 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -655,7 +655,7 @@ R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]") if(istype(usr,/mob/living/silicon/robot)) var/mob/living/silicon/robot/U = usr - R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]") + R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.modtype] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]") if (href_list["medical"]) if(hasHUD(usr,"medical")) @@ -782,7 +782,7 @@ R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]") if(istype(usr,/mob/living/silicon/robot)) var/mob/living/silicon/robot/U = usr - R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]") + R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.modtype] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
[t1]") ..() return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 621b375aeef..2521f1b613a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -131,7 +131,7 @@ /mob/living/silicon/robot/proc/setup_PDA() if (!rbPDA) rbPDA = new/obj/item/device/pda/ai(src) - rbPDA.set_name_and_job(custom_name,braintype) + rbPDA.set_name_and_job(custom_name,"[modtype] [braintype]") //If there's an MMI in the robot, have it ejected when the mob goes away. --NEO //Improved /N From dc0d157d8c19ffe989b3d03bc8595ec219453230 Mon Sep 17 00:00:00 2001 From: Giacomand Date: Mon, 26 Aug 2013 07:33:55 +0100 Subject: [PATCH 060/226] Re-added AI vocal announcements. Unlike before, the announcement no longer require a huge list to work, saving up room from the string table. They also work while streaming resources, meaning they won't overlap; this is because the resources are sent when a user joins, instead of when the AI makes an announcement and it messes up the ordering. There have been improvements since last time, they now have a small delay of 10 seconds, which anyone is free to adjust. The help screen will now only preview the sound to the AI. The last announcement is saved to the AI's variables. There's a limit of how many words can be said in a single announcement. --- code/modules/client/client procs.dm | 3 +- code/modules/mob/living/silicon/ai/ai.dm | 3 +- code/modules/mob/living/silicon/ai/say.dm | 724 +++------------------- 3 files changed, 75 insertions(+), 655 deletions(-) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index f372f27e547..5f091280210 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -107,7 +107,7 @@ if(config.resource_urls) src.preload_rsc = pick(config.resource_urls) else src.preload_rsc = 1 // If config.resource_urls is not set, preload like normal. - + src << "\red If the title screen is black, resources are still downloading. Please be patient until the title screen appears." @@ -241,6 +241,7 @@ //send resources to the client. It's here in its own proc so we can move it around easiliy if need be /client/proc/send_resources() + preload_vox() getFiles( 'nano/js/libraries.min.js', 'nano/js/nano_update.js', diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index c701be0f558..fef0164d7d7 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -50,6 +50,7 @@ var/list/ai_list = list() var/camera_light_on = 0 //Defines if the AI toggled the light on the camera it's looking through. var/datum/trackable/track = null + var/last_announcement = "" /mob/living/silicon/ai/New(loc, var/datum/ai_laws/L, var/obj/item/device/mmi/B, var/safety = 0) var/list/possibleNames = ai_names @@ -338,7 +339,7 @@ var/list/ai_list = list() checklaws() if(href_list["say_word"]) - src.announcement(href_list["say_word"]) + play_vox_word(href_list["say_word"], null, src) return if (href_list["lawi"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index e5624459e2a..57880471486 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -14,9 +14,10 @@ return 1 return ..() -var/announcing_vox = 0 +var/announcing_vox = 0 // Stores the time of the last announcement var/const/VOX_CHANNEL = 200 -var/const/VOX_VOLUME = 75 +var/const/VOX_DELAY = 100 // 10 seconds +var/const/VOX_PATH = "sound/vox/" /mob/living/silicon/ai/verb/announcement_help() @@ -24,689 +25,106 @@ var/const/VOX_VOLUME = 75 set desc = "Display a list of vocal words to announce to the crew." set category = "AI Commands" - src << "\red VOX is disabled until issues with the code can be sorted." - return -/* var/dat = "Here is a list of words you can type into the Announcement button to create sentences to vocally announce.
\ - Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
" + + var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
\ +
  • You can also click on the word to preview it.
  • \ +
  • You can only say 30 words for every announcement.
  • \ +
  • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
\ + WARNING:
Misuse of the announcement system will get you job banned.
" var/index = 0 - for(var/word in vox_sounds) + var/list/vox_words = flist(VOX_PATH) // flist will return a list of strings with all the files in the path + for(var/word in vox_words) index++ - dat += "[capitalize(word)]" - if(index != vox_sounds.len) + var/stripped_word = copytext(word, 1, length(word) - 3) // Remove the .wav + dat += "[capitalize(stripped_word)]" + if(index != vox_words.len) dat += " / " - src << browse(dat, "window=announce_help;size=500x400")*/ + src << browse(dat, "window=announce_help;size=500x400") -/mob/living/silicon/ai/verb/announcement(var/message as text) +/mob/living/silicon/ai/verb/announcement() set name = "Announcement" - set desc = "Create a vocal announcement by typing in the available words to create a setence. More help is available in 'Announcement Help'" + set desc = "Create a vocal announcement by typing in the available words to create a sentence." set category = "AI Commands" - src << "\red VOX is disabled until issues with the code can be sorted." - return -/* - if(!message) + if(announcing_vox > world.time) + src << "Please wait [round((announcing_vox - world.time) / 10)] seconds." return - //if(!announcing_vox > world.time) - // return - log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].") + var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text - announcing_vox = world.time + 30 + last_announcement = message + + if(!message || announcing_vox > world.time) + return var/list/words = stringsplit(trim(message), " ") var/list/incorrect_words = list() - if(words.len > 32) - words.len = 32 + if(words.len > 30) + words.len = 30 + + // Detect incorrect words which aren't .wav files. for(var/word in words) word = trim(word) if(!word) + words -= word continue - if(!play_vox_word(word, src.z)) // If the word isn't speakable + if(!vox_word_exists(word)) incorrect_words += word if(incorrect_words.len) src << "These words are not available on the announcement system: [english_list(incorrect_words)]." -*/ -/proc/play_vox_word(var/word, var/z_level) -/* + return + + announcing_vox = world.time + VOX_DELAY + + log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].") + + for(var/word in words) + play_vox_word(word, src.z, null) + + +/proc/play_vox_word(var/word, var/z_level, var/mob/only_listener) + word = lowertext(word) - if(vox_sounds[word]) + if(vox_word_exists(word)) - var/sound_file = vox_sounds[word] - var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL, volume = VOX_VOLUME) + var/sound_file = get_vox_file(word) + var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL) voice.status = SOUND_STREAM - // Play voice for all mobs in the z level - for(var/mob/M in player_list) - if(M.client) - var/turf/T = get_turf(M) - if(T.z == z_level) - M << voice + // If there is no single listener, broadcast to everyone in the same z level + if(!only_listener) + // Play voice for all mobs in the z level + for(var/mob/M in player_list) + if(M.client) + var/turf/T = get_turf(M) + if(T.z == z_level) + M << voice + else + only_listener << voice return 1 - return 0*/ + return 0 + + +/proc/vox_word_exists(var/word) + return fexists("[VOX_PATH][word].wav") + +/proc/get_vox_file(var/word) + if(vox_word_exists(word)) + return file("[VOX_PATH][word].wav") -// List is required to compile the resources into the game when it loads. // Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable. +// We send the file to the user when they login. -var/list/vox_sounds = list(/*"," = 'sound/vox/,.wav', -"." = 'sound/vox/..wav', -"a" = 'sound/vox/a.wav', -"accelerating" = 'sound/vox/accelerating.wav', -"accelerator" = 'sound/vox/accelerator.wav', -"accepted" = 'sound/vox/accepted.wav', -"access" = 'sound/vox/access.wav', -"acknowledge" = 'sound/vox/acknowledge.wav', -"acknowledged" = 'sound/vox/acknowledged.wav', -"acquired" = 'sound/vox/acquired.wav', -"acquisition" = 'sound/vox/acquisition.wav', -"across" = 'sound/vox/across.wav', -"activate" = 'sound/vox/activate.wav', -"activated" = 'sound/vox/activated.wav', -"activity" = 'sound/vox/activity.wav', -"adios" = 'sound/vox/adios.wav', -"administration" = 'sound/vox/administration.wav', -"advanced" = 'sound/vox/advanced.wav', -"after" = 'sound/vox/after.wav', -"agent" = 'sound/vox/agent.wav', -"alarm" = 'sound/vox/alarm.wav', -"alert" = 'sound/vox/alert.wav', -"alien" = 'sound/vox/alien.wav', -"aligned" = 'sound/vox/aligned.wav', -"all" = 'sound/vox/all.wav', -"alpha" = 'sound/vox/alpha.wav', -"am" = 'sound/vox/am.wav', -"amigo" = 'sound/vox/amigo.wav', -"ammunition" = 'sound/vox/ammunition.wav', -"an" = 'sound/vox/an.wav', -"and" = 'sound/vox/and.wav', -"announcement" = 'sound/vox/announcement.wav', -"anomalous" = 'sound/vox/anomalous.wav', -"antenna" = 'sound/vox/antenna.wav', -"any" = 'sound/vox/any.wav', -"apprehend" = 'sound/vox/apprehend.wav', -"approach" = 'sound/vox/approach.wav', -"are" = 'sound/vox/are.wav', -"area" = 'sound/vox/area.wav', -"arm" = 'sound/vox/arm.wav', -"armed" = 'sound/vox/armed.wav', -"armor" = 'sound/vox/armor.wav', -"armory" = 'sound/vox/armory.wav', -"arrest" = 'sound/vox/arrest.wav', -"ass" = 'sound/vox/ass.wav', -"at" = 'sound/vox/at.wav', -"atomic" = 'sound/vox/atomic.wav', -"attention" = 'sound/vox/attention.wav', -"authorize" = 'sound/vox/authorize.wav', -"authorized" = 'sound/vox/authorized.wav', -"automatic" = 'sound/vox/automatic.wav', -"away" = 'sound/vox/away.wav', -"b" = 'sound/vox/b.wav', -"back" = 'sound/vox/back.wav', -"backman" = 'sound/vox/backman.wav', -"bad" = 'sound/vox/bad.wav', -"bag" = 'sound/vox/bag.wav', -"bailey" = 'sound/vox/bailey.wav', -"barracks" = 'sound/vox/barracks.wav', -"base" = 'sound/vox/base.wav', -"bay" = 'sound/vox/bay.wav', -"be" = 'sound/vox/be.wav', -"been" = 'sound/vox/been.wav', -"before" = 'sound/vox/before.wav', -"beyond" = 'sound/vox/beyond.wav', -"biohazard" = 'sound/vox/biohazard.wav', -"biological" = 'sound/vox/biological.wav', -"birdwell" = 'sound/vox/birdwell.wav', -"bizwarn" = 'sound/vox/bizwarn.wav', -"black" = 'sound/vox/black.wav', -"blast" = 'sound/vox/blast.wav', -"blocked" = 'sound/vox/blocked.wav', -"bloop" = 'sound/vox/bloop.wav', -"blue" = 'sound/vox/blue.wav', -"bottom" = 'sound/vox/bottom.wav', -"bravo" = 'sound/vox/bravo.wav', -"breach" = 'sound/vox/breach.wav', -"breached" = 'sound/vox/breached.wav', -"break" = 'sound/vox/break.wav', -"bridge" = 'sound/vox/bridge.wav', -"bust" = 'sound/vox/bust.wav', -"but" = 'sound/vox/but.wav', -"button" = 'sound/vox/button.wav', -"buzwarn" = 'sound/vox/buzwarn.wav', -"bypass" = 'sound/vox/bypass.wav', -"c" = 'sound/vox/c.wav', -"cable" = 'sound/vox/cable.wav', -"call" = 'sound/vox/call.wav', -"called" = 'sound/vox/called.wav', -"canal" = 'sound/vox/canal.wav', -"cap" = 'sound/vox/cap.wav', -"captain" = 'sound/vox/captain.wav', -"capture" = 'sound/vox/capture.wav', -"ceiling" = 'sound/vox/ceiling.wav', -"celsius" = 'sound/vox/celsius.wav', -"center" = 'sound/vox/center.wav', -"centi" = 'sound/vox/centi.wav', -"central" = 'sound/vox/central.wav', -"chamber" = 'sound/vox/chamber.wav', -"charlie" = 'sound/vox/charlie.wav', -"check" = 'sound/vox/check.wav', -"checkpoint" = 'sound/vox/checkpoint.wav', -"chemical" = 'sound/vox/chemical.wav', -"cleanup" = 'sound/vox/cleanup.wav', -"clear" = 'sound/vox/clear.wav', -"clearance" = 'sound/vox/clearance.wav', -"close" = 'sound/vox/close.wav', -"code" = 'sound/vox/code.wav', -"coded" = 'sound/vox/coded.wav', -"collider" = 'sound/vox/collider.wav', -"command" = 'sound/vox/command.wav', -"communication" = 'sound/vox/communication.wav', -"complex" = 'sound/vox/complex.wav', -"computer" = 'sound/vox/computer.wav', -"condition" = 'sound/vox/condition.wav', -"containment" = 'sound/vox/containment.wav', -"contamination" = 'sound/vox/contamination.wav', -"control" = 'sound/vox/control.wav', -"coolant" = 'sound/vox/coolant.wav', -"coomer" = 'sound/vox/coomer.wav', -"core" = 'sound/vox/core.wav', -"correct" = 'sound/vox/correct.wav', -"corridor" = 'sound/vox/corridor.wav', -"crew" = 'sound/vox/crew.wav', -"cross" = 'sound/vox/cross.wav', -"cryogenic" = 'sound/vox/cryogenic.wav', -"d" = 'sound/vox/d.wav', -"dadeda" = 'sound/vox/dadeda.wav', -"damage" = 'sound/vox/damage.wav', -"damaged" = 'sound/vox/damaged.wav', -"danger" = 'sound/vox/danger.wav', -"day" = 'sound/vox/day.wav', -"deactivated" = 'sound/vox/deactivated.wav', -"decompression" = 'sound/vox/decompression.wav', -"decontamination" = 'sound/vox/decontamination.wav', -"deeoo" = 'sound/vox/deeoo.wav', -"defense" = 'sound/vox/defense.wav', -"degrees" = 'sound/vox/degrees.wav', -"delta" = 'sound/vox/delta.wav', -"denied" = 'sound/vox/denied.wav', -"deploy" = 'sound/vox/deploy.wav', -"deployed" = 'sound/vox/deployed.wav', -"destroy" = 'sound/vox/destroy.wav', -"destroyed" = 'sound/vox/destroyed.wav', -"detain" = 'sound/vox/detain.wav', -"detected" = 'sound/vox/detected.wav', -"detonation" = 'sound/vox/detonation.wav', -"device" = 'sound/vox/device.wav', -"did" = 'sound/vox/did.wav', -"die" = 'sound/vox/die.wav', -"dimensional" = 'sound/vox/dimensional.wav', -"dirt" = 'sound/vox/dirt.wav', -"disengaged" = 'sound/vox/disengaged.wav', -"dish" = 'sound/vox/dish.wav', -"disposal" = 'sound/vox/disposal.wav', -"distance" = 'sound/vox/distance.wav', -"distortion" = 'sound/vox/distortion.wav', -"do" = 'sound/vox/do.wav', -"doctor" = 'sound/vox/doctor.wav', -"doop" = 'sound/vox/doop.wav', -"door" = 'sound/vox/door.wav', -"down" = 'sound/vox/down.wav', -"dual" = 'sound/vox/dual.wav', -"duct" = 'sound/vox/duct.wav', -"e" = 'sound/vox/e.wav', -"east" = 'sound/vox/east.wav', -"echo" = 'sound/vox/echo.wav', -"ed" = 'sound/vox/ed.wav', -"effect" = 'sound/vox/effect.wav', -"egress" = 'sound/vox/egress.wav', -"eight" = 'sound/vox/eight.wav', -"eighteen" = 'sound/vox/eighteen.wav', -"eighty" = 'sound/vox/eighty.wav', -"electric" = 'sound/vox/electric.wav', -"electromagnetic" = 'sound/vox/electromagnetic.wav', -"elevator" = 'sound/vox/elevator.wav', -"eleven" = 'sound/vox/eleven.wav', -"eliminate" = 'sound/vox/eliminate.wav', -"emergency" = 'sound/vox/emergency.wav', -"energy" = 'sound/vox/energy.wav', -"engage" = 'sound/vox/engage.wav', -"engaged" = 'sound/vox/engaged.wav', -"engine" = 'sound/vox/engine.wav', -"enter" = 'sound/vox/enter.wav', -"entry" = 'sound/vox/entry.wav', -"environment" = 'sound/vox/environment.wav', -"error" = 'sound/vox/error.wav', -"escape" = 'sound/vox/escape.wav', -"evacuate" = 'sound/vox/evacuate.wav', -"exchange" = 'sound/vox/exchange.wav', -"exit" = 'sound/vox/exit.wav', -"expect" = 'sound/vox/expect.wav', -"experiment" = 'sound/vox/experiment.wav', -"experimental" = 'sound/vox/experimental.wav', -"explode" = 'sound/vox/explode.wav', -"explosion" = 'sound/vox/explosion.wav', -"exposure" = 'sound/vox/exposure.wav', -"exterminate" = 'sound/vox/exterminate.wav', -"extinguish" = 'sound/vox/extinguish.wav', -"extinguisher" = 'sound/vox/extinguisher.wav', -"extreme" = 'sound/vox/extreme.wav', -"f" = 'sound/vox/f.wav', -"facility" = 'sound/vox/facility.wav', -"fahrenheit" = 'sound/vox/fahrenheit.wav', -"failed" = 'sound/vox/failed.wav', -"failure" = 'sound/vox/failure.wav', -"farthest" = 'sound/vox/farthest.wav', -"fast" = 'sound/vox/fast.wav', -"feet" = 'sound/vox/feet.wav', -"field" = 'sound/vox/field.wav', -"fifteen" = 'sound/vox/fifteen.wav', -"fifth" = 'sound/vox/fifth.wav', -"fifty" = 'sound/vox/fifty.wav', -"final" = 'sound/vox/final.wav', -"fine" = 'sound/vox/fine.wav', -"fire" = 'sound/vox/fire.wav', -"first" = 'sound/vox/first.wav', -"five" = 'sound/vox/five.wav', -"flooding" = 'sound/vox/flooding.wav', -"floor" = 'sound/vox/floor.wav', -"fool" = 'sound/vox/fool.wav', -"for" = 'sound/vox/for.wav', -"forbidden" = 'sound/vox/forbidden.wav', -"force" = 'sound/vox/force.wav', -"forms" = 'sound/vox/forms.wav', -"found" = 'sound/vox/found.wav', -"four" = 'sound/vox/four.wav', -"fourteen" = 'sound/vox/fourteen.wav', -"fourth" = 'sound/vox/fourth.wav', -"fourty" = 'sound/vox/fourty.wav', -"foxtrot" = 'sound/vox/foxtrot.wav', -"freeman" = 'sound/vox/freeman.wav', -"freezer" = 'sound/vox/freezer.wav', -"from" = 'sound/vox/from.wav', -"front" = 'sound/vox/front.wav', -"fuel" = 'sound/vox/fuel.wav', -"g" = 'sound/vox/g.wav', -"get" = 'sound/vox/get.wav', -"go" = 'sound/vox/go.wav', -"going" = 'sound/vox/going.wav', -"good" = 'sound/vox/good.wav', -"goodbye" = 'sound/vox/goodbye.wav', -"gordon" = 'sound/vox/gordon.wav', -"got" = 'sound/vox/got.wav', -"government" = 'sound/vox/government.wav', -"granted" = 'sound/vox/granted.wav', -"great" = 'sound/vox/great.wav', -"green" = 'sound/vox/green.wav', -"grenade" = 'sound/vox/grenade.wav', -"guard" = 'sound/vox/guard.wav', -"gulf" = 'sound/vox/gulf.wav', -"gun" = 'sound/vox/gun.wav', -"guthrie" = 'sound/vox/guthrie.wav', -"handling" = 'sound/vox/handling.wav', -"hangar" = 'sound/vox/hangar.wav', -"has" = 'sound/vox/has.wav', -"have" = 'sound/vox/have.wav', -"hazard" = 'sound/vox/hazard.wav', -"head" = 'sound/vox/head.wav', -"health" = 'sound/vox/health.wav', -"heat" = 'sound/vox/heat.wav', -"helicopter" = 'sound/vox/helicopter.wav', -"helium" = 'sound/vox/helium.wav', -"hello" = 'sound/vox/hello.wav', -"help" = 'sound/vox/help.wav', -"here" = 'sound/vox/here.wav', -"hide" = 'sound/vox/hide.wav', -"high" = 'sound/vox/high.wav', -"highest" = 'sound/vox/highest.wav', -"hit" = 'sound/vox/hit.wav', -"hole" = 'sound/vox/hole.wav', -"hostile" = 'sound/vox/hostile.wav', -"hot" = 'sound/vox/hot.wav', -"hotel" = 'sound/vox/hotel.wav', -"hour" = 'sound/vox/hour.wav', -"hours" = 'sound/vox/hours.wav', -"hundred" = 'sound/vox/hundred.wav', -"hydro" = 'sound/vox/hydro.wav', -"i" = 'sound/vox/i.wav', -"idiot" = 'sound/vox/idiot.wav', -"illegal" = 'sound/vox/illegal.wav', -"immediate" = 'sound/vox/immediate.wav', -"immediately" = 'sound/vox/immediately.wav', -"in" = 'sound/vox/in.wav', -"inches" = 'sound/vox/inches.wav', -"india" = 'sound/vox/india.wav', -"ing" = 'sound/vox/ing.wav', -"inoperative" = 'sound/vox/inoperative.wav', -"inside" = 'sound/vox/inside.wav', -"inspection" = 'sound/vox/inspection.wav', -"inspector" = 'sound/vox/inspector.wav', -"interchange" = 'sound/vox/interchange.wav', -"intruder" = 'sound/vox/intruder.wav', -"invallid" = 'sound/vox/invallid.wav', -"invasion" = 'sound/vox/invasion.wav', -"is" = 'sound/vox/is.wav', -"it" = 'sound/vox/it.wav', -"johnson" = 'sound/vox/johnson.wav', -"juliet" = 'sound/vox/juliet.wav', -"key" = 'sound/vox/key.wav', -"kill" = 'sound/vox/kill.wav', -"kilo" = 'sound/vox/kilo.wav', -"kit" = 'sound/vox/kit.wav', -"lab" = 'sound/vox/lab.wav', -"lambda" = 'sound/vox/lambda.wav', -"laser" = 'sound/vox/laser.wav', -"last" = 'sound/vox/last.wav', -"launch" = 'sound/vox/launch.wav', -"leak" = 'sound/vox/leak.wav', -"leave" = 'sound/vox/leave.wav', -"left" = 'sound/vox/left.wav', -"legal" = 'sound/vox/legal.wav', -"level" = 'sound/vox/level.wav', -"lever" = 'sound/vox/lever.wav', -"lie" = 'sound/vox/lie.wav', -"lieutenant" = 'sound/vox/lieutenant.wav', -"life" = 'sound/vox/life.wav', -"light" = 'sound/vox/light.wav', -"lima" = 'sound/vox/lima.wav', -"liquid" = 'sound/vox/liquid.wav', -"loading" = 'sound/vox/loading.wav', -"locate" = 'sound/vox/locate.wav', -"located" = 'sound/vox/located.wav', -"location" = 'sound/vox/location.wav', -"lock" = 'sound/vox/lock.wav', -"locked" = 'sound/vox/locked.wav', -"locker" = 'sound/vox/locker.wav', -"lockout" = 'sound/vox/lockout.wav', -"lower" = 'sound/vox/lower.wav', -"lowest" = 'sound/vox/lowest.wav', -"magnetic" = 'sound/vox/magnetic.wav', -"main" = 'sound/vox/main.wav', -"maintenance" = 'sound/vox/maintenance.wav', -"malfunction" = 'sound/vox/malfunction.wav', -"man" = 'sound/vox/man.wav', -"mass" = 'sound/vox/mass.wav', -"materials" = 'sound/vox/materials.wav', -"maximum" = 'sound/vox/maximum.wav', -"may" = 'sound/vox/may.wav', -"medical" = 'sound/vox/medical.wav', -"men" = 'sound/vox/men.wav', -"mercy" = 'sound/vox/mercy.wav', -"mesa" = 'sound/vox/mesa.wav', -"message" = 'sound/vox/message.wav', -"meter" = 'sound/vox/meter.wav', -"micro" = 'sound/vox/micro.wav', -"middle" = 'sound/vox/middle.wav', -"mike" = 'sound/vox/mike.wav', -"miles" = 'sound/vox/miles.wav', -"military" = 'sound/vox/military.wav', -"milli" = 'sound/vox/milli.wav', -"million" = 'sound/vox/million.wav', -"minefield" = 'sound/vox/minefield.wav', -"minimum" = 'sound/vox/minimum.wav', -"minutes" = 'sound/vox/minutes.wav', -"mister" = 'sound/vox/mister.wav', -"mode" = 'sound/vox/mode.wav', -"motor" = 'sound/vox/motor.wav', -"motorpool" = 'sound/vox/motorpool.wav', -"move" = 'sound/vox/move.wav', -"must" = 'sound/vox/must.wav', -"nearest" = 'sound/vox/nearest.wav', -"nice" = 'sound/vox/nice.wav', -"nine" = 'sound/vox/nine.wav', -"nineteen" = 'sound/vox/nineteen.wav', -"ninety" = 'sound/vox/ninety.wav', -"no" = 'sound/vox/no.wav', -"nominal" = 'sound/vox/nominal.wav', -"north" = 'sound/vox/north.wav', -"not" = 'sound/vox/not.wav', -"november" = 'sound/vox/november.wav', -"now" = 'sound/vox/now.wav', -"number" = 'sound/vox/number.wav', -"objective" = 'sound/vox/objective.wav', -"observation" = 'sound/vox/observation.wav', -"of" = 'sound/vox/of.wav', -"officer" = 'sound/vox/officer.wav', -"ok" = 'sound/vox/ok.wav', -"on" = 'sound/vox/on.wav', -"one" = 'sound/vox/one.wav', -"open" = 'sound/vox/open.wav', -"operating" = 'sound/vox/operating.wav', -"operations" = 'sound/vox/operations.wav', -"operative" = 'sound/vox/operative.wav', -"option" = 'sound/vox/option.wav', -"order" = 'sound/vox/order.wav', -"organic" = 'sound/vox/organic.wav', -"oscar" = 'sound/vox/oscar.wav', -"out" = 'sound/vox/out.wav', -"outside" = 'sound/vox/outside.wav', -"over" = 'sound/vox/over.wav', -"overload" = 'sound/vox/overload.wav', -"override" = 'sound/vox/override.wav', -"pacify" = 'sound/vox/pacify.wav', -"pain" = 'sound/vox/pain.wav', -"pal" = 'sound/vox/pal.wav', -"panel" = 'sound/vox/panel.wav', -"percent" = 'sound/vox/percent.wav', -"perimeter" = 'sound/vox/perimeter.wav', -"permitted" = 'sound/vox/permitted.wav', -"personnel" = 'sound/vox/personnel.wav', -"pipe" = 'sound/vox/pipe.wav', -"plant" = 'sound/vox/plant.wav', -"platform" = 'sound/vox/platform.wav', -"please" = 'sound/vox/please.wav', -"point" = 'sound/vox/point.wav', -"portal" = 'sound/vox/portal.wav', -"power" = 'sound/vox/power.wav', -"presence" = 'sound/vox/presence.wav', -"press" = 'sound/vox/press.wav', -"primary" = 'sound/vox/primary.wav', -"proceed" = 'sound/vox/proceed.wav', -"processing" = 'sound/vox/processing.wav', -"progress" = 'sound/vox/progress.wav', -"proper" = 'sound/vox/proper.wav', -"propulsion" = 'sound/vox/propulsion.wav', -"prosecute" = 'sound/vox/prosecute.wav', -"protective" = 'sound/vox/protective.wav', -"push" = 'sound/vox/push.wav', -"quantum" = 'sound/vox/quantum.wav', -"quebec" = 'sound/vox/quebec.wav', -"question" = 'sound/vox/question.wav', -"questioning" = 'sound/vox/questioning.wav', -"quick" = 'sound/vox/quick.wav', -"quit" = 'sound/vox/quit.wav', -"radiation" = 'sound/vox/radiation.wav', -"radioactive" = 'sound/vox/radioactive.wav', -"rads" = 'sound/vox/rads.wav', -"rapid" = 'sound/vox/rapid.wav', -"reach" = 'sound/vox/reach.wav', -"reached" = 'sound/vox/reached.wav', -"reactor" = 'sound/vox/reactor.wav', -"red" = 'sound/vox/red.wav', -"relay" = 'sound/vox/relay.wav', -"released" = 'sound/vox/released.wav', -"remaining" = 'sound/vox/remaining.wav', -"renegade" = 'sound/vox/renegade.wav', -"repair" = 'sound/vox/repair.wav', -"report" = 'sound/vox/report.wav', -"reports" = 'sound/vox/reports.wav', -"required" = 'sound/vox/required.wav', -"research" = 'sound/vox/research.wav', -"resevoir" = 'sound/vox/resevoir.wav', -"resistance" = 'sound/vox/resistance.wav', -"right" = 'sound/vox/right.wav', -"rocket" = 'sound/vox/rocket.wav', -"roger" = 'sound/vox/roger.wav', -"romeo" = 'sound/vox/romeo.wav', -"room" = 'sound/vox/room.wav', -"round" = 'sound/vox/round.wav', -"run" = 'sound/vox/run.wav', -"safe" = 'sound/vox/safe.wav', -"safety" = 'sound/vox/safety.wav', -"sargeant" = 'sound/vox/sargeant.wav', -"satellite" = 'sound/vox/satellite.wav', -"save" = 'sound/vox/save.wav', -"science" = 'sound/vox/science.wav', -"scream" = 'sound/vox/scream.wav', -"screen" = 'sound/vox/screen.wav', -"search" = 'sound/vox/search.wav', -"second" = 'sound/vox/second.wav', -"secondary" = 'sound/vox/secondary.wav', -"seconds" = 'sound/vox/seconds.wav', -"sector" = 'sound/vox/sector.wav', -"secure" = 'sound/vox/secure.wav', -"secured" = 'sound/vox/secured.wav', -"security" = 'sound/vox/security.wav', -"select" = 'sound/vox/select.wav', -"selected" = 'sound/vox/selected.wav', -"service" = 'sound/vox/service.wav', -"seven" = 'sound/vox/seven.wav', -"seventeen" = 'sound/vox/seventeen.wav', -"seventy" = 'sound/vox/seventy.wav', -"severe" = 'sound/vox/severe.wav', -"sewage" = 'sound/vox/sewage.wav', -"sewer" = 'sound/vox/sewer.wav', -"shield" = 'sound/vox/shield.wav', -"shipment" = 'sound/vox/shipment.wav', -"shock" = 'sound/vox/shock.wav', -"shoot" = 'sound/vox/shoot.wav', -"shower" = 'sound/vox/shower.wav', -"shut" = 'sound/vox/shut.wav', -"side" = 'sound/vox/side.wav', -"sierra" = 'sound/vox/sierra.wav', -"sight" = 'sound/vox/sight.wav', -"silo" = 'sound/vox/silo.wav', -"six" = 'sound/vox/six.wav', -"sixteen" = 'sound/vox/sixteen.wav', -"sixty" = 'sound/vox/sixty.wav', -"slime" = 'sound/vox/slime.wav', -"slow" = 'sound/vox/slow.wav', -"soldier" = 'sound/vox/soldier.wav', -"some" = 'sound/vox/some.wav', -"someone" = 'sound/vox/someone.wav', -"something" = 'sound/vox/something.wav', -"son" = 'sound/vox/son.wav', -"sorry" = 'sound/vox/sorry.wav', -"south" = 'sound/vox/south.wav', -"squad" = 'sound/vox/squad.wav', -"square" = 'sound/vox/square.wav', -"stairway" = 'sound/vox/stairway.wav', -"status" = 'sound/vox/status.wav', -"sterile" = 'sound/vox/sterile.wav', -"sterilization" = 'sound/vox/sterilization.wav', -"storage" = 'sound/vox/storage.wav', -"sub" = 'sound/vox/sub.wav', -"subsurface" = 'sound/vox/subsurface.wav', -"sudden" = 'sound/vox/sudden.wav', -"suit" = 'sound/vox/suit.wav', -"superconducting" = 'sound/vox/superconducting.wav', -"supercooled" = 'sound/vox/supercooled.wav', -"supply" = 'sound/vox/supply.wav', -"surface" = 'sound/vox/surface.wav', -"surrender" = 'sound/vox/surrender.wav', -"surround" = 'sound/vox/surround.wav', -"surrounded" = 'sound/vox/surrounded.wav', -"switch" = 'sound/vox/switch.wav', -"system" = 'sound/vox/system.wav', -"systems" = 'sound/vox/systems.wav', -"tactical" = 'sound/vox/tactical.wav', -"take" = 'sound/vox/take.wav', -"talk" = 'sound/vox/talk.wav', -"tango" = 'sound/vox/tango.wav', -"tank" = 'sound/vox/tank.wav', -"target" = 'sound/vox/target.wav', -"team" = 'sound/vox/team.wav', -"temperature" = 'sound/vox/temperature.wav', -"temporal" = 'sound/vox/temporal.wav', -"ten" = 'sound/vox/ten.wav', -"terminal" = 'sound/vox/terminal.wav', -"terminated" = 'sound/vox/terminated.wav', -"termination" = 'sound/vox/termination.wav', -"test" = 'sound/vox/test.wav', -"that" = 'sound/vox/that.wav', -"the" = 'sound/vox/the.wav', -"then" = 'sound/vox/then.wav', -"there" = 'sound/vox/there.wav', -"third" = 'sound/vox/third.wav', -"thirteen" = 'sound/vox/thirteen.wav', -"thirty" = 'sound/vox/thirty.wav', -"this" = 'sound/vox/this.wav', -"those" = 'sound/vox/those.wav', -"thousand" = 'sound/vox/thousand.wav', -"threat" = 'sound/vox/threat.wav', -"three" = 'sound/vox/three.wav', -"through" = 'sound/vox/through.wav', -"time" = 'sound/vox/time.wav', -"to" = 'sound/vox/to.wav', -"top" = 'sound/vox/top.wav', -"topside" = 'sound/vox/topside.wav', -"touch" = 'sound/vox/touch.wav', -"towards" = 'sound/vox/towards.wav', -"track" = 'sound/vox/track.wav', -"train" = 'sound/vox/train.wav', -"transportation" = 'sound/vox/transportation.wav', -"truck" = 'sound/vox/truck.wav', -"tunnel" = 'sound/vox/tunnel.wav', -"turn" = 'sound/vox/turn.wav', -"turret" = 'sound/vox/turret.wav', -"twelve" = 'sound/vox/twelve.wav', -"twenty" = 'sound/vox/twenty.wav', -"two" = 'sound/vox/two.wav', -"unauthorized" = 'sound/vox/unauthorized.wav', -"under" = 'sound/vox/under.wav', -"uniform" = 'sound/vox/uniform.wav', -"unlocked" = 'sound/vox/unlocked.wav', -"until" = 'sound/vox/until.wav', -"up" = 'sound/vox/up.wav', -"upper" = 'sound/vox/upper.wav', -"uranium" = 'sound/vox/uranium.wav', -"us" = 'sound/vox/us.wav', -"usa" = 'sound/vox/usa.wav', -"use" = 'sound/vox/use.wav', -"used" = 'sound/vox/used.wav', -"user" = 'sound/vox/user.wav', -"vacate" = 'sound/vox/vacate.wav', -"valid" = 'sound/vox/valid.wav', -"vapor" = 'sound/vox/vapor.wav', -"vent" = 'sound/vox/vent.wav', -"ventillation" = 'sound/vox/ventillation.wav', -"victor" = 'sound/vox/victor.wav', -"violated" = 'sound/vox/violated.wav', -"violation" = 'sound/vox/violation.wav', -"voltage" = 'sound/vox/voltage.wav', -"vox_login" = 'sound/vox/vox_login.wav', -"walk" = 'sound/vox/walk.wav', -"wall" = 'sound/vox/wall.wav', -"want" = 'sound/vox/want.wav', -"wanted" = 'sound/vox/wanted.wav', -"warm" = 'sound/vox/warm.wav', -"warn" = 'sound/vox/warn.wav', -"warning" = 'sound/vox/warning.wav', -"waste" = 'sound/vox/waste.wav', -"water" = 'sound/vox/water.wav', -"we" = 'sound/vox/we.wav', -"weapon" = 'sound/vox/weapon.wav', -"west" = 'sound/vox/west.wav', -"whiskey" = 'sound/vox/whiskey.wav', -"white" = 'sound/vox/white.wav', -"wilco" = 'sound/vox/wilco.wav', -"will" = 'sound/vox/will.wav', -"with" = 'sound/vox/with.wav', -"without" = 'sound/vox/without.wav', -"woop" = 'sound/vox/woop.wav', -"xeno" = 'sound/vox/xeno.wav', -"yankee" = 'sound/vox/yankee.wav', -"yards" = 'sound/vox/yards.wav', -"year" = 'sound/vox/year.wav', -"yellow" = 'sound/vox/yellow.wav', -"yes" = 'sound/vox/yes.wav', -"you" = 'sound/vox/you.wav', -"your" = 'sound/vox/your.wav', -"yourself" = 'sound/vox/yourself.wav', -"zero" = 'sound/vox/zero.wav', -"zone" = 'sound/vox/zone.wav', -"zulu" = 'sound/vox/zulu.wav'*/) \ No newline at end of file +/client/proc/preload_vox() + var/list/vox_files = flist(VOX_PATH) + for(var/file in vox_files) + // src << "Downloading [file]" + var/sound/S = sound("[VOX_PATH][file]") + src << browse_rsc(S) \ No newline at end of file From 83718db6c20b1f34dd39eac097f79350b3fb9924 Mon Sep 17 00:00:00 2001 From: Giacomand Date: Mon, 26 Aug 2013 07:39:43 +0100 Subject: [PATCH 061/226] * Added a changelog entry for the return of the AI announcements. --- html/changelog.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 844c8ce2bc3..a1c059defdd 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,14 @@ Changelog Section Stuff which is in development and not yet visible to players or just code related (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit though. Thanks. --> +
+

August 26th, 2013

+

Giacom updated:

+
    +
  • AI Vocal Announcements are back with small improvements.
  • +
+
+

August 8th, 2013

Erthilo updated:

From 9565c949555f7eca85561bb476b34066c6727bd3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 27 Aug 2013 00:10:00 -0700 Subject: [PATCH 062/226] Secondary language fix. --- code/modules/client/preferences.dm | 2 +- code/modules/mob/new_player/new_player.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c15bfb3f8da..88c7c338816 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -875,7 +875,7 @@ datum/preferences for(var/L in all_languages) var/datum/language/lang = all_languages[L] if(!(lang.flags & RESTRICTED)) - new_languages += lang + new_languages += lang.name language = input("Please select a secondary language", "Character Generation", null) in new_languages diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 8084de6f4b1..5c354cc54ac 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -357,10 +357,10 @@ var/datum/language/chosen_language if(client.prefs.language) - chosen_language = all_languages[client.prefs.language] + chosen_language = all_languages["[client.prefs.language]"] if(chosen_language) if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED)) - new_character.add_language(client.prefs.language) + new_character.add_language("[client.prefs.language]") if(ticker.random_players) new_character.gender = pick(MALE, FEMALE) From 799c2fc94c2946b5e7cf9a9f85b8dac28153985f Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 27 Aug 2013 00:12:48 -0700 Subject: [PATCH 063/226] Made Vox uncloneable. --- code/modules/admin/verbs/one_click_antag.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 80408f022c4..6f4ee9340c5 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -517,6 +517,7 @@ client/proc/one_click_antag() new_vox.mind_initialize() new_vox.mind.assigned_role = "MODE" new_vox.mind.special_role = "Vox Raider" + new_vox.mutations |= NOCLONE //Stops the station crew from messing around with their DNA. ticker.mode.traitors += new_vox.mind new_vox.equip_vox_raider() From 023fbbe7c742b292b16ff15ced84656c650fcacc Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 26 Aug 2013 21:49:06 +0300 Subject: [PATCH 064/226] Stating laws. --- code/modules/mob/living/silicon/robot/laws.dm | 81 ++++++++++++++++++- .../modules/mob/living/silicon/robot/robot.dm | 21 +++++ 2 files changed, 101 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index 98fea6f7498..bff875a0d66 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -98,4 +98,83 @@ /mob/living/silicon/robot/proc/clear_ion_laws() laws_sanity_check() - laws.clear_ion_laws() \ No newline at end of file + laws.clear_ion_laws() + +/mob/living/silicon/robot/proc/statelaws() // -- TLE +// set category = "AI Commands" +// set name = "State Laws" + src.say("Current Active Laws:") + //src.laws_sanity_check() + //src.laws.show_laws(world) + var/number = 1 + sleep(10) + + if (src.laws.zeroth) + if (src.lawcheck[1] == "Yes") //This line and the similar lines below make sure you don't state a law unless you want to. --NeoFite + src.say("0. [src.laws.zeroth]") + sleep(10) + + for (var/index = 1, index <= src.laws.ion.len, index++) + var/law = src.laws.ion[index] + var/num = ionnum() + if (length(law) > 0) + if (src.ioncheck[index] == "Yes") + src.say("[num]. [law]") + sleep(10) + + for (var/index = 1, index <= src.laws.inherent.len, index++) + var/law = src.laws.inherent[index] + if (length(law) > 0) + if (src.lawcheck[index+1] == "Yes") + src.say("[number]. [law]") + sleep(10) + number++ + + for (var/index = 1, index <= src.laws.supplied.len, index++) + var/law = src.laws.supplied[index] + + if (length(law) > 0) + if(src.lawcheck.len >= number+1) + if (src.lawcheck[number+1] == "Yes") + src.say("[number]. [law]") + sleep(10) + number++ + +/mob/living/silicon/robot/verb/checklaws() //Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. --NeoFite + set category = "Robot Commands" + set name = "State Laws" + var/list = "Which laws do you want to include when stating them for the crew?

" + + if (src.laws.zeroth) + if (!src.lawcheck[1]) + src.lawcheck[1] = "No" //Given Law 0's usual nature, it defaults to NOT getting reported. --NeoFite + list += {"[src.lawcheck[1]] 0: [src.laws.zeroth]
"} + + for (var/index = 1, index <= src.laws.ion.len, index++) + var/law = src.laws.ion[index] + if (length(law) > 0) + if (!src.ioncheck[index]) + src.ioncheck[index] = "Yes" + list += {"[src.ioncheck[index]] [ionnum()]: [law]
"} + src.ioncheck.len += 1 + + var/number = 1 + for (var/index = 1, index <= src.laws.inherent.len, index++) + var/law = src.laws.inherent[index] + if (length(law) > 0) + src.lawcheck.len += 1 + if (!src.lawcheck[number+1]) + src.lawcheck[number+1] = "Yes" + list += {"[src.lawcheck[number+1]] [number]: [law]
"} + number++ + + for (var/index = 1, index <= src.laws.supplied.len, index++) + var/law = src.laws.supplied[index] + if (length(law) > 0) + src.lawcheck.len += 1 + if (!src.lawcheck[number+1]) + src.lawcheck[number+1] = "Yes" + list += {"[src.lawcheck[number+1]] [number]: [law]
"} + number++ + list += {"

State Laws"} + usr << browse(list, "window=laws") \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 2521f1b613a..492a64d04c2 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -59,6 +59,8 @@ var/weapon_lock = 0 var/weaponlock_time = 120 var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default + var/lawcheck[1] //For stating laws. + var/ioncheck[1] //Ditto. var/lockcharge //Used when locking down a borg to preserve cell charge var/speed = 0 //Cause sec borgs gotta go fast //No they dont! var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them. @@ -1129,6 +1131,25 @@ else src << "Module isn't activated" installed_modules() + + if (href_list["lawc"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite + var/L = text2num(href_list["lawc"]) + switch(lawcheck[L+1]) + if ("Yes") lawcheck[L+1] = "No" + if ("No") lawcheck[L+1] = "Yes" +// src << text ("Switching Law [L]'s report status to []", lawcheck[L+1]) + checklaws() + + if (href_list["lawi"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite + var/L = text2num(href_list["lawi"]) + switch(ioncheck[L]) + if ("Yes") ioncheck[L] = "No" + if ("No") ioncheck[L] = "Yes" +// src << text ("Switching Law [L]'s report status to []", lawcheck[L+1]) + checklaws() + + if (href_list["laws"]) // With how my law selection code works, I changed statelaws from a verb to a proc, and call it through my law selection panel. --NeoFite + statelaws() return /mob/living/silicon/robot/proc/radio_menu() From fe993f82844312c62f541955eb2e879292324115 Mon Sep 17 00:00:00 2001 From: "Mark Aherne (Faerdan)" Date: Mon, 26 Aug 2013 23:39:52 +0100 Subject: [PATCH 065/226] * Nano UIs now "work" with AI and Cyborgs. * Visibility updates (now uses line of sight). * Added displayBar() template helper for displaying progress/health bars. * Added new health bars to Nano UI Cryo. * Added Eject Occupant to Nano UI Cryo. * Nano now handles Topic for the src_object, allowing it to only allow interactions with UIs that have a "STATUS_INTERACTIVE" status/visibility. --- code/game/machinery/cryo.dm | 67 +++++++++++++++++++----------- code/modules/nano/nanoui.dm | 79 ++++++++++++++++++++++++++---------- nano/css/shared.css | 8 ++++ nano/js/nano_base_helpers.js | 39 +++++++++++++++++- nano/templates/cryo.tmpl | 53 +++++++++++++++++++----- 5 files changed, 188 insertions(+), 58 deletions(-) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 163c5f6bae1..98d93cafd8b 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -13,8 +13,6 @@ var/current_heat_capacity = 50 - - /obj/machinery/atmospherics/unary/cryo_cell/New() ..() initialize_directions = dir @@ -65,17 +63,22 @@ ui_interact(user) /obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main") - + + if(user == occupant || user.stat) + return + var/data[0] data["isOperating"] = on data["hasOccupant"] = occupant ? 1 : 0 - + var/occupantData[0] if (!occupant) occupantData["name"] = null occupantData["stat"] = null occupantData["health"] = null + occupantData["maxHealth"] = null + occupantData["minHealth"] = null occupantData["bruteLoss"] = null occupantData["oxyLoss"] = null occupantData["toxLoss"] = null @@ -84,12 +87,14 @@ else occupantData["name"] = occupant.name occupantData["stat"] = occupant.stat - occupantData["health"] = round(occupant.health) - occupantData["bruteLoss"] = round(occupant.getBruteLoss()) - occupantData["oxyLoss"] = round(occupant.getOxyLoss()) - occupantData["toxLoss"] = round(occupant.getToxLoss()) - occupantData["fireLoss"] = round(occupant.getFireLoss()) - occupantData["bodyTemperature"] = round(occupant.bodytemperature) + occupantData["health"] = occupant.health + occupantData["maxHealth"] = occupant.maxHealth + occupantData["minHealth"] = config.health_threshold_dead + occupantData["bruteLoss"] = occupant.getBruteLoss() + occupantData["oxyLoss"] = occupant.getOxyLoss() + occupantData["toxLoss"] = occupant.getToxLoss() + occupantData["fireLoss"] = occupant.getFireLoss() + occupantData["bodyTemperature"] = occupant.bodytemperature data["occupant"] = occupantData; data["cellTemperature"] = round(air_contents.temperature) @@ -103,9 +108,9 @@ var beakerContents[0] if(beaker && beaker:reagents && beaker:reagents.reagent_list.len) for(var/datum/reagent/R in beaker:reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list... data["beakerContents"] = beakerContents - + //user << list2json(data) var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key) @@ -123,19 +128,33 @@ //user.set_machine(src) /obj/machinery/atmospherics/unary/cryo_cell/Topic(href, href_list) - if ((get_dist(src, usr) <= 1) || istype(usr, /mob/living/silicon/ai)) - if(href_list["start"]) - on = !on - update_icon() - if(href_list["eject"]) - if (beaker) - var/obj/item/weapon/reagent_containers/glass/B = beaker - B.loc = get_step(loc, SOUTH) - beaker = null + if(usr == occupant) + return 0 // don't update UIs attached to this object - nanomanager.update_uis(src) // update all UIs attached to this object - add_fingerprint(usr) - return + if(..()) + return 0 // don't update UIs attached to this object + + if(href_list["switchOn"]) + on = 1 + update_icon() + + if(href_list["switchOff"]) + on = 0 + update_icon() + + if(href_list["ejectBeaker"]) + if(beaker) + var/obj/item/weapon/reagent_containers/glass/B = beaker + B.loc = get_step(loc, SOUTH) + beaker = null + + if(href_list["ejectOccupant"]) + if(!occupant || isslime(usr) || ispAI(usr)) + return 0 // don't update UIs attached to this object + go_out() + + add_fingerprint(usr) + return 1 // update UIs attached to this object /obj/machinery/atmospherics/unary/cryo_cell/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) if(istype(G, /obj/item/weapon/reagent_containers/glass)) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index add6437c3be..565295d3f99 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -1,3 +1,7 @@ +#define STATUS_INTERACTIVE 2 // GREEN Visability +#define STATUS_UPDATE 1 // ORANGE Visability +#define STATUS_DISABLED 0 // RED Visability + /datum/nanoui var/mob/user var/atom/movable/src_object @@ -19,7 +23,10 @@ var/content = "
" // the #mainTemplate div will contain the compiled "main" template html var/list/initial_data[0] var/is_auto_updating = 0 - var/status = 2 + var/status = STATUS_INTERACTIVE + + // Only allow users with a certain user.stat to get updates. Defaults to 0 (concious) + var/allowed_user_stat = 0 // -1 = ignore, 0 = alive, 1 = unconcious or alive, 2 = dead concious or alive /datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) @@ -39,7 +46,7 @@ if (nref) ref = nref - add_common_assets() + add_common_assets() /datum/nanoui/proc/add_common_assets() add_script("libraries.min.js") // The jQuery library @@ -49,13 +56,42 @@ add_stylesheet("shared.css") // this CSS sheet is common to all UIs add_stylesheet("icons.css") // this CSS sheet is common to all UIs -/datum/nanoui/proc/set_status(state) +/datum/nanoui/proc/set_status(state, push_update) if (state != status) status = state - push_data(list(), 1) // Update the UI + if (push_update || !status) + push_data(list(), 1) // Update the UI, force the update in case the status is 0 else status = state +/datum/nanoui/proc/update_status(push_update = 0) + if (istype(user, /mob/living/silicon/ai)) + set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) + else if (istype(user, /mob/living/silicon/robot)) + if (src_object in view(7, user)) // robots can see and interact with things they can see within 7 tiles + set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) + else + set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) + else + var/dist = get_dist(src_object, user) + + if (dist > 4) + close() + return + + if ((allowed_user_stat > -1) && (user.stat > allowed_user_stat)) + set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) + else if (user.restrained() || user.lying) + set_status(STATUS_UPDATE, push_update) // update only (orange visibility) + else if (!(src_object in view(4, user))) // If the src object is not in visable, set status to 0 + set_status(STATUS_DISABLED, push_update) // interactive (green visibility) + else if (dist <= 1) + set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) + else if (dist <= 2) + set_status(STATUS_UPDATE, push_update) // update only (orange visibility) + else if (dist <= 4) + set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) + /datum/nanoui/proc/set_auto_update(state = 1) is_auto_updating = state @@ -109,7 +145,7 @@ if (initial_data.len > 0) initial_data_json = list2json(initial_data) - var/url_parameters_json = list2json(list("src" = "\ref[src_object]")) + var/url_parameters_json = list2json(list("src" = "\ref[src]")) return {" @@ -145,6 +181,14 @@ [title ? "
[title]
" : ""]
"} + +/datum/nanoui/Topic(href, href_list) + update_status(0) // update the status + if (status != STATUS_INTERACTIVE || user != usr) // If UI is not interactive or usr calling Topic is not the UI user + return + + if (src_object.Topic(href, href_list)) + nanomanager.update_uis(src_object) // update all UIs attached to src_object /datum/nanoui/proc/get_footer() var/scriptsContent = "" @@ -170,6 +214,7 @@ var/window_size = "" if (width && height) window_size = "size=[width]x[height];" + update_status(0) user << browse(get_content(), "window=[window_id];[window_size][window_options]") on_close_winset() //onclose(user, window_id) @@ -188,21 +233,11 @@ winset(user, window_id, "on-close=\"nanoclose [params]\"") -/datum/nanoui/proc/process(update = 0) - var/dist = get_dist(src_object, user) - if (dist <= 1) - set_status(2) // interactive - else if (dist <= 2) - set_status(1) // update only - else if (dist <= 3) - set_status(0) // no updates, completely disabled - return // don't auto update +/datum/nanoui/proc/process(update = 0) + if (status && (update || is_auto_updating)) + src_object.ui_interact(user, ui_key) // Update the UI (update_status() is called whenever a UI is updated) else - close() - return - - if (update || is_auto_updating) - src_object.ui_interact(user, ui_key) + update_status(1) // Not updating UI, so lets check here if status has changed /datum/nanoui/proc/modify_data(data) data["ui"] = list( @@ -213,9 +248,9 @@ return data /datum/nanoui/proc/push_data(data, force_push = 0) - if (!status && !force_push) - user << "Cannot update UI, user out of range (status [status])" - return + update_status(0) + if (status == STATUS_DISABLED && !force_push) + return // Cannot update UI, no visibility data = modify_data(data) diff --git a/nano/css/shared.css b/nano/css/shared.css index 4d96bf988f5..b8c75eac04c 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -322,6 +322,12 @@ div.notice height: 100%; background: #40628a; overflow: hidden; + float: left; +} + +.progressFill.alignRight +{ + float: right; } .progressFill.good @@ -342,6 +348,8 @@ div.notice background: #ee0000; } + + .progressFill.highlight { color: #ffffff; diff --git a/nano/js/nano_base_helpers.js b/nano/js/nano_base_helpers.js index 61ca5267b9c..d1c4e358807 100644 --- a/nano/js/nano_base_helpers.js +++ b/nano/js/nano_base_helpers.js @@ -46,7 +46,7 @@ NanoBaseHelpers = function () string: function() { if (arguments.length == 0) { - return ""; + return ''; } else if (arguments.length == 1) { @@ -61,7 +61,42 @@ NanoBaseHelpers = function () } return arguments[0].format(stringArgs); } - return + return ''; + }, + // Display a bar. Used to show health, capacity, etc. + displayBar: function(value, rangeMin, rangeMax, styleClass) { + + if (rangeMin < rangeMax) + { + if (value < rangeMin) + { + value = rangeMin; + } + else if (value > rangeMax) + { + value = rangeMax; + } + } + else + { + if (value > rangeMin) + { + value = rangeMin; + } + else if (value < rangeMax) + { + value = rangeMax; + } + } + + if (typeof styleClass == 'undefined') + { + styleClass = ''; + } + + var percentage = Math.round((value - rangeMin) / (rangeMax - rangeMin) * 100); + + return '
'; } }); } diff --git a/nano/templates/cryo.tmpl b/nano/templates/cryo.tmpl index 3399876ac0d..d55aa448415 100644 --- a/nano/templates/cryo.tmpl +++ b/nano/templates/cryo.tmpl @@ -14,16 +14,46 @@ DEAD {{/if}}
-
Health:
{^{:~string('
', [occupant.health])}}
{^{:occupant.health}}%
-
=> Brute Damage:
{^{:~string('
', [occupant.bruteLoss])}}
{^{:occupant.bruteLoss}}%
-
=> Resp. Damage:
{^{:~string('
', [occupant.oxyLoss])}}
{^{:occupant.oxyLoss}}%
-
=> Toxin Content:
{^{:~string('
', [occupant.toxLoss])}}
{^{:occupant.toxLoss}}%
-
=> Burn Severity:
{^{:~string('
', [occupant.fireLoss])}}
{^{:occupant.fireLoss}}%
-
Body Temperature:
{^{:occupant.bodyTemperature}} K
+ + {^{if occupant.stat < 2}} +
+
Health:
+ {^{if occupant.health >= 0}} + {^{:~displayBar(occupant.health, 0, occupant.maxHealth, 'good')}} + {{else}} + {^{:~displayBar(occupant.health, 0, occupant.minHealth, 'average alignRight')}} + {{/if}} +
{^{:~round(occupant.health)}}
+
+ +
+
=> Brute Damage:
+ {^{:~displayBar(occupant.bruteLoss, 0, occupant.maxHealth, 'bad')}} +
{^{:~round(occupant.bruteLoss)}}
+
+ +
+
=> Resp. Damage:
+ {^{:~displayBar(occupant.oxyLoss, 0, occupant.maxHealth, 'bad')}} +
{^{:~round(occupant.oxyLoss)}}
+
+ +
+
=> Toxin Damage:
+ {^{:~displayBar(occupant.toxLoss, 0, occupant.maxHealth, 'bad')}} +
{^{:~round(occupant.toxLoss)}}
+
+ +
+
=> Burn Severity:
+ {^{:~displayBar(occupant.fireLoss, 0, occupant.maxHealth, 'bad')}} +
{^{:~round(occupant.fireLoss)}}
+
+ {{/if}} {{/if}}
Cell Temperature:
- {^{:~string('{1} K', cellTemperatureStatus, cellTemperature)}} + {^{:~string('{1} K', cellTemperatureStatus, cellTemperature)}}
@@ -32,8 +62,11 @@
Cryo Cell Status:
-
- {^{:~link('On', 'power', {'start' : 1}, isOperating ? 'selected' : null)}}{^{:~link('Off', 'close', {'start' : 1}, isOperating ? null : 'selected')}} +
+ {^{:~link('On', 'power', {'switchOn' : 1}, isOperating ? 'selected' : null)}}{^{:~link('Off', 'close', {'switchOff' : 1}, isOperating ? null : 'selected')}} +
+
+ {^{:~link('Eject Occupant', 'arrowreturnthick-1-s', {'ejectOccupant' : 1}, hasOccupant ? null : 'disabled')}}
 
@@ -53,6 +86,6 @@ {{/if}}
- {^{:~link('Eject Beaker', 'eject', {'eject' : 1}, isBeakerLoaded ? null : 'disabled')}} + {^{:~link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, isBeakerLoaded ? null : 'disabled')}}
\ No newline at end of file From d2e1d9baa3fd6e5d81dd88a4053c06a2aaebc59e Mon Sep 17 00:00:00 2001 From: Kilakk Date: Mon, 26 Aug 2013 19:03:11 -0400 Subject: [PATCH 066/226] Fixes #3289, you can now gib monkeys, aliens, and simple_animals in the gibber --- code/game/machinery/kitchen/gibber.dm | 84 +++++++++++++++++++++------ 1 file changed, 65 insertions(+), 19 deletions(-) diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 0a8bde59dde..42854cd9418 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -82,9 +82,15 @@ if(src.occupant) user << "\red The gibber is full, empty it first!" return - if (!( istype(G, /obj/item/weapon/grab)) || !(istype(G.affecting, /mob/living/carbon/human))) + + if( !(istype(G, /obj/item/weapon/grab)) ) user << "\red This item is not suitable for the gibber!" return + + if( !(istype(G.affecting, /mob/living/carbon)) && !(istype(G.affecting, /mob/living/simple_animal)) ) + user << "\red This item is not suitable for the gibber!" + return + if(G.affecting.abiotic(1)) user << "\red Subject may not have abiotic items on." return @@ -137,29 +143,69 @@ visible_message("\red You hear a loud squelchy grinding sound.") src.operating = 1 update_icon() - var/sourcename = src.occupant.real_name - var/sourcejob = src.occupant.job - var/sourcenutriment = src.occupant.nutrition / 15 - var/sourcetotalreagents = src.occupant.reagents.total_volume + var/totalslabs = 3 + var/obj/item/weapon/reagent_containers/food/snacks/meat/allmeat[totalslabs] - var/obj/item/weapon/reagent_containers/food/snacks/meat/human/allmeat[totalslabs] - for (var/i=1 to totalslabs) - var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new - newmeat.name = sourcename + newmeat.name - newmeat.subjectname = sourcename - newmeat.subjectjob = sourcejob - newmeat.reagents.add_reagent ("nutriment", sourcenutriment / totalslabs) // Thehehe. Fat guys go first - src.occupant.reagents.trans_to (newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the - allmeat[i] = newmeat + if( istype(src.occupant, /mob/living/carbon/human/) ) + var/sourcename = src.occupant.real_name + var/sourcejob = src.occupant.job + var/sourcenutriment = src.occupant.nutrition / 15 + var/sourcetotalreagents = src.occupant.reagents.total_volume - src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [user]/[user.ckey]" //One shall not simply gib a mob unnoticed! - user.attack_log += "\[[time_stamp()]\] Gibbed [src.occupant]/[src.occupant.ckey]" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] gibbed [src.occupant]/[src.occupant.ckey]") + for(var/i=1 to totalslabs) + var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new + newmeat.name = sourcename + newmeat.name + newmeat.subjectname = sourcename + newmeat.subjectjob = sourcejob + newmeat.reagents.add_reagent("nutriment", sourcenutriment / totalslabs) // Thehehe. Fat guys go first + src.occupant.reagents.trans_to(newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the + allmeat[i] = newmeat + + src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [user]/[user.ckey]" //One shall not simply gib a mob unnoticed! + user.attack_log += "\[[time_stamp()]\] Gibbed [src.occupant]/[src.occupant.ckey]" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] gibbed [src.occupant]/[src.occupant.ckey]") + + src.occupant.death(1) + src.occupant.ghostize() + + else if( istype(src.occupant, /mob/living/carbon/) || istype(src.occupant, /mob/living/simple_animal/ ) ) + + var/sourcename = src.occupant.name + var/sourcenutriment = src.occupant.nutrition / 15 + var/sourcetotalreagents = 0 + + if( istype(src.occupant, /mob/living/carbon/monkey/) || istype(src.occupant, /mob/living/carbon/alien/) ) // why are you gibbing aliens? oh well + totalslabs = 3 + sourcetotalreagents = src.occupant.reagents.total_volume + else if( istype(src.occupant, /mob/living/simple_animal/cow) || istype(src.occupant, /mob/living/simple_animal/hostile/bear) ) + totalslabs = 2 + else + totalslabs = 1 + sourcenutriment = src.occupant.nutrition / 30 // small animals don't have as much nutrition + + for(var/i=1 to totalslabs) + var/obj/item/weapon/reagent_containers/food/snacks/meat/newmeat = new + newmeat.name = "[sourcename]-[newmeat.name]" + + newmeat.reagents.add_reagent("nutriment", sourcenutriment / totalslabs) + + // Transfer reagents from the old mob to the meat + if( istype(src.occupant, /mob/living/carbon/) ) + src.occupant.reagents.trans_to(newmeat, round(sourcetotalreagents / totalslabs, 1)) + + allmeat[i] = newmeat + + if(src.occupant.client) // Gibbed a cow with a client in it? log that shit + src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [user]/[user.ckey]" + user.attack_log += "\[[time_stamp()]\] Gibbed [src.occupant]/[src.occupant.ckey]" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] gibbed [src.occupant]/[src.occupant.ckey]") + + src.occupant.death(1) + src.occupant.ghostize() - src.occupant.death(1) - src.occupant.ghostize() del(src.occupant) + spawn(src.gibtime) playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) operating = 0 From 49ff40d02860a8ea86b985ae62858a9659d8ea78 Mon Sep 17 00:00:00 2001 From: Kilakk Date: Mon, 26 Aug 2013 19:21:00 -0400 Subject: [PATCH 067/226] Aggressive grip or better required to stuff things into the gibber --- code/game/machinery/kitchen/gibber.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 42854cd9418..bea6169ddc4 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -91,6 +91,10 @@ user << "\red This item is not suitable for the gibber!" return + if(G.state < 2) + user << "\red You need a better grip to do that!" + return + if(G.affecting.abiotic(1)) user << "\red Subject may not have abiotic items on." return From 1fd0522276571ab711bf513838f6153b476a0964 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 14:24:12 +0100 Subject: [PATCH 068/226] Gives Internal Affairs PDA a Message Centcomm option. Shortens Centcomm message time as it wasn't really being abused. Formats Centcomm messages better. --- .../game/machinery/computer/communications.dm | 18 ++++++------- code/game/objects/items/devices/PDA/PDA.dm | 25 ++++++++++++++++++- code/game/objects/items/devices/PDA/cart.dm | 3 ++- code/modules/admin/topic.dm | 4 +-- code/modules/admin/verbs/pray.dm | 4 +-- 5 files changed, 39 insertions(+), 15 deletions(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index acaabc984c0..464aa41031c 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -179,16 +179,16 @@ if("MessageCentcomm") if(src.authenticated==2) if(centcomm_message_cooldown) - usr << "Arrays recycling. Please stand by." + usr << "\red Arrays recycling. Please stand by." return - var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") + var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "") if(!input || !(usr in view(1,src))) return Centcomm_announce(input, usr) - usr << "Message transmitted." - log_say("[key_name(usr)] has made a Centcomm announcement: [input]") + usr << "\blue Message transmitted." + log_say("[key_name(usr)] has made an IA Centcomm announcement: [input]") centcomm_message_cooldown = 1 - spawn(6000)//10 minute cooldown + spawn(300)//10 minute cooldown centcomm_message_cooldown = 0 @@ -196,16 +196,16 @@ if("MessageSyndicate") if((src.authenticated==2) && (src.emagged)) if(centcomm_message_cooldown) - usr << "Arrays recycling. Please stand by." + usr << "\red Arrays recycling. Please stand by." return - var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") + var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "") if(!input || !(usr in view(1,src))) return Syndicate_announce(input, usr) - usr << "Message transmitted." + usr << "\blue Message transmitted." log_say("[key_name(usr)] has made a Syndicate announcement: [input]") centcomm_message_cooldown = 1 - spawn(6000)//10 minute cooldown + spawn(300)//10 minute cooldown centcomm_message_cooldown = 0 if("RestoreBackup") diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index e494baf0245..d0b2e7e5cc0 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -38,6 +38,7 @@ var/global/list/obj/item/device/pda/PDAs = list() var/cart = "" //A place to stick cartridge menu information var/detonate = 1 // Can the PDA be blown up? var/hidden = 0 // Is the PDA hidden from the PDA list? + var/centcomm_message_cooldown = 0 //Internal Affairs centcomm message cooldown var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both. var/ownjob = null //related to above @@ -378,11 +379,16 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "" else dat += "" if(cartridge.access_quartermaster) - dat += "

Quartermaster Functions:

" + dat += "

Quartermaster Functions

" dat += "" + if (cartridge.access_internalaffairs) + dat += "

Internal Affairs Functions

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

Utilities

" @@ -677,6 +683,23 @@ var/global/list/obj/item/device/pda/PDAs = list() else U << browse(null, "window=pda") return + if("Centcomm Message") + if(istype(cartridge, /obj/item/weapon/cartridge/lawyer)) + if(centcomm_message_cooldown) + U << "\red Arrays recycling. Please stand by." + return + var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Use only as a last resort if all other avenues have been exhausted. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "") + if(!input || !(usr in view(1,src))) + return + Centcomm_announce(input, usr) + U << "\blue Message transmitted." + log_say("[key_name(usr)] has made a Centcomm announcement: [input]") + centcomm_message_cooldown = 1 + spawn(300)//30 seconds cooldown + centcomm_message_cooldown = 0 + else + U << browse(null, "window=pda") + return //SYNDICATE FUNCTIONS=================================== diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index f0e3ee98f17..6f25f2b55d6 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -14,6 +14,7 @@ var/access_clown = 0 var/access_mime = 0 var/access_janitor = 0 + var/access_internalaffairs = 0 // var/access_flora = 0 var/access_reagent_scanner = 0 var/access_remote_door = 0 //Control some blast doors remotely!! @@ -79,6 +80,7 @@ name = "P.R.O.V.E. Cartridge" icon_state = "cart-s" access_security = 1 + access_internalaffairs = 1 clown name = "Honkworks 5.0" @@ -602,7 +604,6 @@ Code: menu += "ERROR: Unable to determine current location." menu += "

Refresh GPS Locator" - /obj/item/weapon/cartridge/Topic(href, href_list) ..() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e5a6574ccca..b28cb8420e1 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1415,7 +1415,7 @@ src.owner << "You sent [input] to [H] via a secure channel." log_admin("[src.owner] replied to [key_name(H)]'s Centcomm message with the message [input].") message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"") - H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\"" + H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. \"[input]\" Message ends.\"" else if(href_list["SyndicateReply"]) var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"]) @@ -1431,7 +1431,7 @@ src.owner << "You sent [input] to [H] via a secure channel." log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].") - H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"" + H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. \"[input]\" Message ends.\"" else if(href_list["CentcommFaxView"]) var/info = locate(href_list["CentcommFaxView"]) diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 906ec8a5ac4..fd91142cdf6 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -27,9 +27,9 @@ feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //log_admin("HELP: [key_name(src)]: [msg]") -/proc/Centcomm_announce(var/text , var/mob/Sender) +/proc/Centcomm_announce(var/text , var/mob/Sender , var/iamessage) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) - msg = "\blue CENTCOMM:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" + msg = "\blue CENTCOMM[iamessage ? " IA" : ""]:[key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" admins << msg /proc/Syndicate_announce(var/text , var/mob/Sender) From 19db0df4b5efe0a232f336e511c331b47227df73 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 27 Aug 2013 19:50:35 +0300 Subject: [PATCH 069/226] Fix for hiding cyborgs from upload console. --- code/__HELPERS/unsorted.dm | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index e878616cf61..07110db9fea 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -350,20 +350,11 @@ Turf and target are seperate in case you want to teleport some distance from a t //When an AI is activated, it can choose from a list of non-slaved borgs to have as a slave. /proc/freeborg() var/select = null - var/list/names = list() var/list/borgs = list() - var/list/namecounts = list() for (var/mob/living/silicon/robot/A in player_list) - var/name = A.real_name - if (A.stat == 2) + if (A.stat == 2 || A.connected_ai || A.scrambledcodes) continue - if (A.connected_ai) - continue - else - if(A.module) - name += " ([A.module.name])" - names.Add(name) - namecounts[name] = 1 + var/name = "[A.real_name] ([A.modtype] [A.braintype])" borgs[name] = A if (borgs.len) From 5437b1bbacd34d37b0ce4ac17b0fdb14763927fb Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:05:27 +0100 Subject: [PATCH 070/226] Added two ears back. --- code/datums/mind.dm | 6 +- code/game/gamemodes/events/space_ninja.dm | 2 +- code/game/gamemodes/nuclear/nuclear.dm | 2 +- code/game/gamemodes/setupgame.dm | 10 +-- code/game/gamemodes/wizard/wizard.dm | 2 +- code/game/hud.dm | 9 ++- code/game/jobs/job/captain.dm | 4 +- code/game/jobs/job/civilian.dm | 8 +- code/game/jobs/job/engineering.dm | 6 +- code/game/jobs/job/medical.dm | 12 +-- code/game/jobs/job/science.dm | 8 +- code/game/jobs/job/security.dm | 8 +- code/game/jobs/job_controller.dm | 2 +- code/game/mecha/equipment/weapons/weapons.dm | 2 +- code/game/objects/items.dm | 14 +++- .../objects/items/devices/radio/headset.dm | 2 +- .../items/weapons/grenades/flashbang.dm | 2 +- code/game/objects/structures/watercloset.dm | 7 +- code/game/response_team.dm | 3 +- code/modules/admin/topic.dm | 4 +- code/modules/admin/verbs/debug.dm | 24 +++--- code/modules/admin/verbs/onlyone.dm | 2 +- code/modules/admin/verbs/striketeam.dm | 2 +- .../admin/verbs/striketeam_syndicate.dm | 2 +- code/modules/admin/verbs/vox_raiders.dm | 2 +- code/modules/awaymissions/corpse.dm | 2 +- code/modules/clothing/clothing.dm | 50 ++++++++++++- code/modules/mob/inventory.dm | 13 +++- .../mob/living/carbon/human/examine.dm | 10 ++- code/modules/mob/living/carbon/human/hud.dm | 15 +++- code/modules/mob/living/carbon/human/human.dm | 9 ++- .../mob/living/carbon/human/human_defines.dm | 3 +- .../mob/living/carbon/human/inventory.dm | 56 ++++++++++---- code/modules/mob/living/carbon/human/life.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 10 ++- code/modules/mob/living/say.dm | 75 ++++++++++++------- .../mob/living/simple_animal/corpse.dm | 2 +- code/modules/mob/mob.dm | 5 +- code/modules/organs/organ_external.dm | 3 +- code/setup.dm | 7 +- 40 files changed, 275 insertions(+), 132 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 769f7707eaf..fb8a134c5ad 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -707,7 +707,8 @@ datum/mind var/mob/living/carbon/human/H = current del(H.belt) del(H.back) - del(H.ears) + del(H.l_ear) + del(H.r_ear) del(H.gloves) del(H.head) del(H.shoes) @@ -989,7 +990,8 @@ datum/mind var/mob/living/carbon/human/H = current del(H.belt) del(H.back) - del(H.ears) + del(H.l_ear) + del(H.r_ear) del(H.gloves) del(H.head) del(H.shoes) diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index 437b5be0c23..c3b77d5f875 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -534,7 +534,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. del(gloves) var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src) - equip_to_slot_or_del(R, slot_ears) + equip_to_slot_or_del(R, slot_l_ear) if(gender==FEMALE) equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform) else diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index d014ba09608..be688554147 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -205,7 +205,7 @@ var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(synd_mob) R.set_frequency(radio_freq) - synd_mob.equip_to_slot_or_del(R, slot_ears) + synd_mob.equip_to_slot_or_del(R, slot_l_ear) synd_mob.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(synd_mob), slot_w_uniform) synd_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(synd_mob), slot_shoes) diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 0168bbf2049..53d90a7e98c 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -95,14 +95,14 @@ var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) M.real_name = "Corpse" M.death() - M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/device/pda/engineering(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(M), slot_shoes) // M.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical(M), slot_l_hand) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/t_scanner(M), slot_r_store) - //M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + //M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back) if (prob(50)) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_wear_mask) @@ -117,7 +117,7 @@ var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) M.real_name = "Corpse" M.death() - M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(M), slot_shoes) @@ -140,7 +140,7 @@ var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) M.real_name = "Corpse" M.death() - M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/weapon/storage/utilitybelt(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(M), slot_shoes) @@ -161,7 +161,7 @@ var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc) M.real_name = "Corpse" M.death() - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) //M.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes) diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index ba5700b1df3..add8ee00a66 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -162,7 +162,7 @@ del(wizard_mob.r_store) del(wizard_mob.l_store) - wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_ears) + wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_l_ear) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(wizard_mob), slot_w_uniform) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(wizard_mob), slot_shoes) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) diff --git a/code/game/hud.dm b/code/game/hud.dm index 04399852886..99042bdef9f 100644 --- a/code/game/hud.dm +++ b/code/game/hud.dm @@ -79,7 +79,8 @@ #define ui_glasses "1:6,3:9" #define ui_mask "2:8,3:9" -#define ui_ears "3:10,3:9" +#define ui_l_ear "3:10,3:9" +#define ui_r_ear "3:10,4:11" #define ui_head "2:8,4:11" @@ -214,7 +215,8 @@ datum/hud/New(mob/owner) if(inventory_shown && hud_shown) if(H.shoes) H.shoes.screen_loc = ui_shoes if(H.gloves) H.gloves.screen_loc = ui_gloves - if(H.ears) H.ears.screen_loc = ui_ears + if(H.l_ear) H.l_ear.screen_loc = ui_l_ear + if(H.r_ear) H.r_ear.screen_loc = ui_r_ear if(H.glasses) H.glasses.screen_loc = ui_glasses if(H.w_uniform) H.w_uniform.screen_loc = ui_iclothing if(H.wear_suit) H.wear_suit.screen_loc = ui_oclothing @@ -223,7 +225,8 @@ datum/hud/New(mob/owner) else if(H.shoes) H.shoes.screen_loc = null if(H.gloves) H.gloves.screen_loc = null - if(H.ears) H.ears.screen_loc = null + if(H.l_ear) H.l_ear.screen_loc = null + if(H.r_ear) H.r_ear.screen_loc = null if(H.glasses) H.glasses.screen_loc = null if(H.w_uniform) H.w_uniform.screen_loc = null if(H.wear_suit) H.wear_suit.screen_loc = null diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 38cb9d10be7..7d93bdb3253 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -14,7 +14,7 @@ minimal_player_age = 14 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_cap(H), slot_back) @@ -70,7 +70,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 8d9e0875dc9..ce7c3968f3a 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -116,7 +116,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/quartermaster(H), slot_belt) @@ -146,7 +146,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/cargo(H), slot_belt) @@ -174,7 +174,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back) @@ -342,7 +342,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 3ab06c4e389..246d3eb3f01 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -22,7 +22,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back) @@ -57,7 +57,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back) @@ -91,7 +91,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 22dd096bcca..1303976b131 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -19,7 +19,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) @@ -53,7 +53,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) @@ -115,7 +115,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt) @@ -143,7 +143,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_medsci(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_medsci(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/geneticist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt) @@ -171,7 +171,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) @@ -204,7 +204,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index fbfe286e484..c4c117b260c 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -21,7 +21,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/rd(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/rd(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/research_director(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/device/pda/heads/rd(H), slot_belt) @@ -50,7 +50,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt) @@ -77,7 +77,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt) @@ -104,7 +104,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index dd04b9cbac7..b8f91554d47 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -25,7 +25,7 @@ if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hos(H), slot_belt) @@ -61,7 +61,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) @@ -100,7 +100,7 @@ minimal_player_age = 7 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) @@ -146,7 +146,7 @@ minimal_player_age = 7 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) switch(H.backbag) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index fc5f7df203a..cb8a73278c6 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -431,7 +431,7 @@ var/global/datum/controller/occupations/job_master H << "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp." spawnId(H, rank, alt_title) - H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_l_ear) //Gives glasses to the vision impaired if(H.disabilities & NEARSIGHTED) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 91b2455eb03..b461cd4b12b 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -122,7 +122,7 @@ for(var/mob/living/carbon/M in ohearers(6, chassis)) if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M - if(istype(H.ears, /obj/item/clothing/ears/earmuffs)) + if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs)) continue M << "HONK" M.sleeping = 0 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c55684eb197..39252964f6c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -461,11 +461,21 @@ if( !(slot_flags & SLOT_HEAD) ) return 0 return 1 - if(slot_ears) - if(H.ears) + if(slot_l_ear) + if(H.l_ear) return 0 if( !(slot_flags & SLOT_EARS) ) return 0 + if( (slot_flags & SLOT_TWOEARS) && H.r_ear ) + return 0 + return 1 + if(slot_r_ear) + if(H.r_ear) + return 0 + if( !(slot_flags & SLOT_EARS) ) + return 0 + if( (slot_flags & SLOT_TWOEARS) && H.l_ear ) + return 0 return 1 if(slot_w_uniform) if(H.w_uniform) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 05285807d71..f8b908264d9 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -23,7 +23,7 @@ /obj/item/device/radio/headset/receive_range(freq, level) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc - if(H.ears == src) + if(H.l_ear == src || H.r_ear == src) return ..(freq, level) return -1 diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 2ff047a7465..1a50e9ad05c 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -38,7 +38,7 @@ if(iscarbon(M)) eye_safety = M.eyecheck() if(ishuman(M)) - if(istype(M:ears, /obj/item/clothing/ears/earmuffs)) + if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs)) ear_safety += 2 if(HULK in M.mutations) ear_safety += 1 diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 1f08c112306..9d6cab7723e 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -258,8 +258,11 @@ if(H.glasses && washglasses) if(H.glasses.clean_blood()) H.update_inv_glasses(0) - if(H.ears && washears) - if(H.ears.clean_blood()) + if(H.l_ear && washears) + if(H.l_ear.clean_blood()) + H.update_inv_ears(0) + if(H.r_ear && washears) + if(H.r_ear.clean_blood()) H.update_inv_ears(0) if(H.belt) if(H.belt.clean_blood()) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 282db62f72b..a518cef566e 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -280,13 +280,12 @@ proc/trigger_armed_response_team(var/force = 0) /mob/living/carbon/human/proc/equip_strike_team(leader_selected = 0) //Special radio setup - equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_ears) + equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_l_ear) //Replaced with new ERT uniform equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes) equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves) - equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_ears) equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(src), slot_back) /* diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index b28cb8420e1..f8165e848cd 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1405,7 +1405,7 @@ if(!istype(H)) usr << "This can only be used on instances of type /mob/living/carbon/human" return - if(!istype(H.ears, /obj/item/device/radio/headset)) + if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset)) usr << "The person you are trying to contact is not wearing a headset" return @@ -1422,7 +1422,7 @@ if(!istype(H)) usr << "This can only be used on instances of type /mob/living/carbon/human" return - if(!istype(H.ears, /obj/item/device/radio/headset)) + if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset)) usr << "The person you are trying to contact is not wearing a headset" return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index f08f5c3a30a..0659622f6a0 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -667,7 +667,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/clothing/head/chaplain_hood(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/suit/chaplain_hoodie(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), slot_l_store) @@ -689,7 +689,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/kitchenknife(M), slot_l_store) @@ -706,7 +706,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/suit/wcoat(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) @@ -747,7 +747,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/representative(M), slot_w_uniform) M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes) M.equip_if_possible(new /obj/item/clothing/gloves/white(M), slot_gloves) - M.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(M), slot_ears) + M.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(M), slot_l_ear) var/obj/item/device/pda/heads/pda = new(M) pda.owner = M.real_name @@ -772,7 +772,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/officer(M), slot_w_uniform) M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes) M.equip_if_possible(new /obj/item/clothing/gloves/white(M), slot_gloves) - M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_ears) + M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head) var/obj/item/device/pda/heads/pda = new(M) @@ -797,7 +797,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/captain(M), slot_w_uniform) M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes) M.equip_if_possible(new /obj/item/clothing/gloves/white(M), slot_gloves) - M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_ears) + M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/captain(M), slot_head) var/obj/item/device/pda/heads/pda = new(M) @@ -821,7 +821,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back) @@ -840,7 +840,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/swat/officer(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head) @@ -861,7 +861,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), slot_head) M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store) M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand) @@ -873,7 +873,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head) M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store) M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand) @@ -885,7 +885,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/marisa(M), slot_head) M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store) M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand) @@ -896,7 +896,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back) diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 06cb9f64564..822043720d7 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -31,7 +31,7 @@ del(I) H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear) H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head) H.equip_to_slot_or_del(new /obj/item/weapon/claymore(H), slot_l_hand) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index ca5d8e5cb80..8ea48ea4898 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -125,7 +125,7 @@ var/global/sent_strike_team = 0 var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src) R.set_frequency(1441) - equip_to_slot_or_del(R, slot_ears) + equip_to_slot_or_del(R, slot_l_ear) if (leader_selected == 0) equip_to_slot_or_del(new /obj/item/clothing/under/color/green(src), slot_w_uniform) else diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm index c74e0b9f70c..e8c446d966e 100644 --- a/code/modules/admin/verbs/striketeam_syndicate.dm +++ b/code/modules/admin/verbs/striketeam_syndicate.dm @@ -131,7 +131,7 @@ var/global/sent_syndicate_strike_team = 0 var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src) R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode. - equip_to_slot_or_del(R, slot_ears) + equip_to_slot_or_del(R, slot_l_ear) equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes) if (!syndicate_leader_selected) diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm index be4b04f42fe..1e3a8defe74 100644 --- a/code/modules/admin/verbs/vox_raiders.dm +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -4,7 +4,7 @@ var/global/vox_tick = 1 var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src) R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode. - equip_to_slot_or_del(R, slot_ears) + equip_to_slot_or_del(R, slot_l_ear) equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES. diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index e0cc01cb3e3..e9304976cce 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -42,7 +42,7 @@ if(src.corpsegloves) M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves) if(src.corpseradio) - M.equip_to_slot_or_del(new src.corpseradio(M), slot_ears) + M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear) if(src.corpseglasses) M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses) if(src.corpsemask) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 2d13a0ce92f..1e3213e66ea 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -9,12 +9,60 @@ throwforce = 2 slot_flags = SLOT_EARS +/obj/item/clothing/ears/attack_hand(mob/user as mob) + if (!user) return + + if (src.loc != user || !istype(user,/mob/living/carbon/human)) + ..() + return + + var/mob/living/carbon/human/H = user + if(H.l_ear != src && H.r_ear != src) + ..() + return + + if(!canremove) + return + + var/obj/item/clothing/ears/O + if(slot_flags & SLOT_TWOEARS ) + O = (H.l_ear == src ? H.r_ear : H.l_ear) + user.u_equip(O) + if(!istype(src,/obj/item/clothing/ears/offear)) + del(O) + O = src + else + O = src + + user.u_equip(src) + + if (O) + user.put_in_hands(O) + O.add_fingerprint(user) + + if(istype(src,/obj/item/clothing/ears/offear)) + del(src) + +/obj/item/clothing/ears/offear + name = "Other ear" + w_class = 5.0 + icon = 'icons/mob/screen1_Midnight.dmi' + icon_state = "block" + slot_flags = SLOT_EARS | SLOT_TWOEARS + + New(var/obj/O) + name = O.name + desc = O.desc + icon = O.icon + icon_state = O.icon_state + dir = O.dir + /obj/item/clothing/ears/earmuffs name = "earmuffs" desc = "Protects your hearing from loud noises, and quiet ones as well." icon_state = "earmuffs" item_state = "earmuffs" - + slot_flags = SLOT_EARS | SLOT_TWOEARS //Glasses /obj/item/clothing/glasses diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 0da20f1a5e7..0bcf1b92442 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -194,7 +194,8 @@ if(hasvar(src,"back")) if(src:back) items += src:back if(hasvar(src,"belt")) if(src:belt) items += src:belt - if(hasvar(src,"ears")) if(src:ears) items += src:ears + if(hasvar(src,"l_ear")) if(src:l_ear) items += src:l_ear + if(hasvar(src,"r_ear")) if(src:r_ear) items += src:r_ear if(hasvar(src,"glasses")) if(src:glasses) items += src:glasses if(hasvar(src,"gloves")) if(src:gloves) items += src:gloves if(hasvar(src,"head")) if(src:head) items += src:head @@ -255,9 +256,13 @@ if(!src.wear_id && src.w_uniform) src.wear_id = W equipped = 1 - if(slot_ears) - if(!src.ears) - src.ears = W + if(slot_l_ear) + if(!src.l_ear) + src.l_ear = W + equipped = 1 + if(slot_r_ear) + if(!src.r_ear) + src.r_ear = W equipped = 1 if(slot_glasses) if(!src.glasses) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index e074d9caae8..5efefee11dc 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -163,9 +163,13 @@ else msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n" - //ears - if(ears && !skipears) - msg += "[t_He] [t_has] \icon[ears] \a [ears] on [t_his] ears.\n" + //left ear + if(l_ear && !skipears) + msg += "[t_He] [t_has] \icon[l_ear] \a [l_ear] on [t_his] left ear.\n" + + //right ear + if(r_ear && !skipears) + msg += "[t_He] [t_has] \icon[r_ear] \a [r_ear] on [t_his] right ear.\n" //ID if(wear_id) diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm index c1cf1634694..70f204bbc4e 100644 --- a/code/modules/mob/living/carbon/human/hud.dm +++ b/code/modules/mob/living/carbon/human/hud.dm @@ -249,11 +249,20 @@ src.other += inv_box inv_box = new /obj/screen/inventory() - inv_box.name = "ears" + inv_box.name = "l_ear" inv_box.icon = ui_style inv_box.icon_state = "ears" - inv_box.screen_loc = ui_ears - inv_box.slot_id = slot_ears + inv_box.screen_loc = ui_l_ear + inv_box.slot_id = slot_l_ear + inv_box.layer = 19 + src.other += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "r_ear" + inv_box.icon = ui_style + inv_box.icon_state = "ears" + inv_box.screen_loc = ui_r_ear + inv_box.slot_id = slot_r_ear inv_box.layer = 19 src.other += inv_box diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index cfef1b78a04..e2548ff08fc 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -198,7 +198,7 @@ b_loss = b_loss/1.5 f_loss = f_loss/1.5 - if (!istype(ears, /obj/item/clothing/ears/earmuffs)) + if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs)) ear_damage += 30 ear_deaf += 120 if (prob(70) && !shielded) @@ -208,7 +208,7 @@ b_loss += 30 if (prob(getarmor(null, "bomb"))) b_loss = b_loss/2 - if (!istype(ears, /obj/item/clothing/ears/earmuffs)) + if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs)) ear_damage += 15 ear_deaf += 60 if (prob(50) && !shielded) @@ -398,7 +398,8 @@
Right Hand: [(r_hand ? r_hand : "Nothing")]
Gloves: [(gloves ? gloves : "Nothing")]
Eyes: [(glasses ? glasses : "Nothing")] -
Ears: [(ears ? ears : "Nothing")] +
Left Ear: [(l_ear ? l_ear : "Nothing")] +
Right Ear: [(r_ear ? r_ear : "Nothing")]
Head: [(head ? head : "Nothing")]
Shoes: [(shoes ? shoes : "Nothing")]
Belt: [(belt ? belt : "Nothing")] @@ -812,7 +813,7 @@ /mob/living/carbon/human/abiotic(var/full_body = 0) - if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.ears || src.gloves))) + if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves))) return 1 if( (src.l_hand && !src.l_hand.abstract) || (src.r_hand && !src.r_hand.abstract) ) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d9768992d3f..315b3f40915 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -34,7 +34,8 @@ var/obj/item/gloves = null var/obj/item/glasses = null var/obj/item/head = null - var/obj/item/ears = null + var/obj/item/l_ear = null + var/obj/item/r_ear = null var/obj/item/wear_id = null var/obj/item/r_store = null var/obj/item/l_store = null diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 8e5938fffdf..46d7083644b 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -31,7 +31,9 @@ if(slot_wear_id) // the only relevant check for this is the uniform check return 1 - if(slot_ears) + if(slot_l_ear) + return has_organ("head") + if(slot_r_ear) return has_organ("head") if(slot_glasses) return has_organ("head") @@ -92,8 +94,12 @@ update_hair(0) //rebuild hair success = 1 update_inv_head() - else if (W == ears) - ears = null + else if (W == l_ear) + l_ear = null + success = 1 + update_inv_ears() + else if (W == r_ear) + r_ear = null success = 1 update_inv_ears() else if (W == shoes) @@ -215,8 +221,22 @@ src.wear_id = W W.equipped(src, slot) update_inv_wear_id(redraw_mob) - if(slot_ears) - src.ears = W + if(slot_l_ear) + src.l_ear = W + if(l_ear.slot_flags & SLOT_TWOEARS) + var/obj/item/clothing/ears/offear/O = new(W) + O.loc = src + src.r_ear = O + O.layer = 20 + W.equipped(src, slot) + update_inv_ears(redraw_mob) + if(slot_r_ear) + src.r_ear = W + if(r_ear.slot_flags & SLOT_TWOEARS) + var/obj/item/clothing/ears/offear/O = new(W) + O.loc = src + src.l_ear = O + O.layer = 20 W.equipped(src, slot) update_inv_ears(redraw_mob) if(slot_glasses) @@ -393,12 +413,18 @@ return else message = "\red [source] is trying to take off the [target.glasses] from [target]'s eyes!" - if("ears") - if(target.ears && !target.ears.canremove) - message = "\red [source] fails to take off \a [target.ears] from [target]'s ears!" + if("l_ear") + if(target.l_ear && !target.l_ear.canremove) + message = "\red [source] fails to take off \a [target.l_ear] from [target]'s left ear!" return else - message = "\red [source] is trying to take off the [target.ears] from [target]'s ears!" + message = "\red [source] is trying to take off the [target.l_ear] from [target]'s left ear!" + if("r_ear") + if(target.r_ear && !target.r_ear.canremove) + message = "\red [source] fails to take off \a [target.r_ear] from [target]'s right ear!" + return + else + message = "\red [source] is trying to take off the [target.r_ear] from [target]'s right ear!" if("head") if(target.head && !target.head.canremove) message = "\red [source] fails to take off \a [target.head] from [target]'s head!" @@ -510,10 +536,14 @@ It can still be worn/put on as normal. slot_to_process = slot_head if (target.head && target.head.canremove) strip_item = target.head - if("ears") - slot_to_process = slot_ears - if (target.ears) - strip_item = target.ears + if("l_ear") + slot_to_process = slot_l_ear + if (target.l_ear) + strip_item = target.l_ear + if("r_ear") + slot_to_process = slot_r_ear + if (target.r_ear) + strip_item = target.r_ear if("shoes") slot_to_process = slot_shoes if (target.shoes && target.shoes.canremove) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 9efb72f203e..f026d0c50cd 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1039,7 +1039,7 @@ ear_deaf = max(ear_deaf, 1) else if(ear_deaf) //deafness, heals slowly over time ear_deaf = max(ear_deaf-1, 0) - else if(istype(ears, /obj/item/clothing/ears/earmuffs)) //resting your ears with earmuffs heals ear damage faster + else if(istype(l_ear, /obj/item/clothing/ears/earmuffs) || istype(r_ear, /obj/item/clothing/ears/earmuffs)) //resting your ears with earmuffs heals ear damage faster ear_damage = max(ear_damage-0.15, 0) ear_deaf = max(ear_deaf, 1) else if(ear_damage < 25) //ear damage heals slowly under this threshold. otherwise you'll need earmuffs diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cce4d70d3db..45b42a9447f 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -576,9 +576,13 @@ proc/get_damage_icon_part(damage_state, body_part) if(update_icons) update_icons() /mob/living/carbon/human/update_inv_ears(var/update_icons=1) - if(ears) - overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]2") - overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]") + if(l_ear || r_ear) + if(l_ear) + overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[l_ear.icon_state]2") + overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[l_ear.icon_state]") + if(r_ear) + overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[r_ear.icon_state]2") + overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[r_ear.icon_state]") else overlays_lying[EARS_LAYER] = null overlays_standing[EARS_LAYER] = null diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 3c13b8befd4..510fd52709a 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -1,7 +1,7 @@ #define SAY_MINIMUM_PRESSURE 10 var/list/department_radio_keys = list( - ":r" = "right hand", "#r" = "right hand", ".r" = "right hand", - ":l" = "left hand", "#l" = "left hand", ".l" = "left hand", + ":r" = "right ear", "#r" = "right ear", ".r" = "right ear", + ":l" = "left ear", "#l" = "left ear", ".l" = "left ear", ":i" = "intercom", "#i" = "intercom", ".i" = "intercom", ":h" = "department", "#h" = "department", ".h" = "department", ":c" = "Command", "#c" = "Command", ".c" = "Command", @@ -16,8 +16,8 @@ var/list/department_radio_keys = list( ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", - ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", - ":L" = "left hand", "#L" = "left hand", ".L" = "left hand", + ":R" = "right ear", "#R" = "right ear", ".R" = "right ear", + ":L" = "left ear", "#L" = "left ear", ".L" = "left ear", ":I" = "intercom", "#I" = "intercom", ".I" = "intercom", ":H" = "department", "#H" = "department", ".H" = "department", ":C" = "Command", "#C" = "Command", ".C" = "Command", @@ -34,8 +34,8 @@ var/list/department_radio_keys = list( //kinda localization -- rastaf0 //same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding. - ":ê" = "right hand", "#ê" = "right hand", ".ê" = "right hand", - ":ä" = "left hand", "#ä" = "left hand", ".ä" = "left hand", + ":ê" = "right ear", "#ê" = "right ear", ".ê" = "right ear", + ":ä" = "left ear", "#ä" = "left ear", ".ä" = "left ear", ":ø" = "intercom", "#ø" = "intercom", ".ø" = "intercom", ":ð" = "department", "#ð" = "department", ".ð" = "department", ":ñ" = "Command", "#ñ" = "Command", ".ñ" = "Command", @@ -59,8 +59,12 @@ var/list/department_radio_keys = list( if (!ishuman(src)) return var/mob/living/carbon/human/H = src - if (H.ears) - var/obj/item/device/radio/headset/dongle = H.ears + if (H.l_ear || H.r_ear) + var/obj/item/device/radio/headset/dongle + if(istype(H.l_ear,/obj/item/device/radio/headset)) + dongle = H.l_ear + else + dongle = H.r_ear if(!istype(dongle)) return if(dongle.translate_binary) return 1 @@ -68,10 +72,14 @@ var/list/department_radio_keys = list( if (isalien(src)) return 1 if (!ishuman(src)) return var/mob/living/carbon/human/H = src - if (H.ears) - var/obj/item/device/radio/headset/dongle = H.ears + if (H.l_ear || H.r_ear) + var/obj/item/device/radio/headset/dongle + if(istype(H.l_ear,/obj/item/device/radio/headset)) + dongle = H.l_ear + else + dongle = H.r_ear if(!istype(dongle)) return - if(dongle.translate_hive) return 1 + if(dongle.translate_binary) return 1 /mob/living/say(var/message) @@ -179,27 +187,31 @@ var/list/department_radio_keys = list( switch (message_mode) if ("headset") - if (src:ears) - src:ears.talk_into(src, message) - used_radios += src:ears + if (src:l_ear && istype(src:l_ear,/obj/item/device/radio)) + src:l_ear.talk_into(src, message) + used_radios += src:l_ear + is_speaking_radio = 1 + else if (src:r_ear) + src:r_ear.talk_into(src, message) + used_radios += src:r_ear is_speaking_radio = 1 message_range = 1 italics = 1 - if ("right hand") - if (r_hand) - r_hand.talk_into(src, message) - used_radios += src:r_hand + if ("right ear") + if (src:r_ear) + src:r_ear.talk_into(src, message) + used_radios += src:r_ear is_speaking_radio = 1 message_range = 1 italics = 1 - if ("left hand") - if (l_hand) - l_hand.talk_into(src, message) - used_radios += src:l_hand + if ("left ear") + if (src:l_ear) + src:l_ear.talk_into(src, message) + used_radios += src:l_ear is_speaking_radio = 1 message_range = 1 @@ -233,9 +245,13 @@ var/list/department_radio_keys = list( if ("department") if(istype(src, /mob/living/carbon)) - if (src:ears) - src:ears.talk_into(src, message, message_mode) - used_radios += src:ears + if (src:l_ear && istype(src:l_ear,/obj/item/device/radio)) + src:l_ear.talk_into(src, message, message_mode) + used_radios += src:l_ear + is_speaking_radio = 1 + if (src:r_ear) + src:r_ear.talk_into(src, message, message_mode) + used_radios += src:r_ear is_speaking_radio = 1 else if(istype(src, /mob/living/silicon/robot)) if (src:radio) @@ -267,9 +283,12 @@ var/list/department_radio_keys = list( R.radio.talk_into(src, message, message_mode) used_radios += R.radio else - if (src:ears) - src:ears.talk_into(src, message, message_mode) - used_radios += src:ears + if (src:l_ear && istype(src:l_ear,/obj/item/device/radio)) + src:l_ear.talk_into(src, message, message_mode) + used_radios += src:l_ear + else if (src:r_ear) + src:r_ear.talk_into(src, message, message_mode) + used_radios += src:r_ear message_range = 1 italics = 1 /////SPECIAL HEADSETS END diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index e3f7f3ceac2..8c7561f7d71 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -43,7 +43,7 @@ if(src.corpsegloves) M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves) if(src.corpseradio) - M.equip_to_slot_or_del(new src.corpseradio(M), slot_ears) + M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear) if(src.corpseglasses) M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses) if(src.corpsemask) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 6171377730f..3677ceac70c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -182,7 +182,8 @@ var/list/slot_equipment_priority = list( \ slot_head,\ slot_shoes,\ slot_gloves,\ - slot_ears,\ + slot_l_ear,\ + slot_r_ear,\ slot_glasses,\ slot_belt,\ slot_s_store,\ @@ -961,4 +962,4 @@ mob/verb/yank_out_object() pinned -= O if(!pinned.len) anchored = 0 - return 1 + return 1 diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index de037500009..d3192dc9de7 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -454,7 +454,8 @@ organ= new /obj/item/weapon/organ/head(owner.loc, owner) owner.u_equip(owner.glasses) owner.u_equip(owner.head) - owner.u_equip(owner.ears) + owner.u_equip(owner.l_ear) + owner.u_equip(owner.r_ear) owner.u_equip(owner.wear_mask) if(ARM_RIGHT) if(status & ORGAN_ROBOT) diff --git a/code/setup.dm b/code/setup.dm index 9b11e9a9cf0..ed5255a4ce0 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -171,7 +171,8 @@ var/MAX_EXPLOSION_RANGE = 14 #define SLOT_BACK 1024 #define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets. #define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets. - +#define SLOT_TWOEARS 8192 +#define SLOT_LEGS = 16384 //FLAGS BITMASK #define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere @@ -235,7 +236,7 @@ var/MAX_EXPLOSION_RANGE = 14 #define slot_r_hand 5 #define slot_belt 6 #define slot_wear_id 7 -#define slot_ears 8 +#define slot_l_ear 8 #define slot_glasses 9 #define slot_gloves 10 #define slot_head 11 @@ -247,6 +248,8 @@ var/MAX_EXPLOSION_RANGE = 14 #define slot_s_store 17 #define slot_in_backpack 18 #define slot_legcuffed 19 +#define slot_r_ear 20 +#define slot_legs 21 //Cant seem to find a mob bitflags area other than the powers one From 65fe9d429c67117da44c32a83aaf0d936ef38bf9 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:06:27 +0100 Subject: [PATCH 071/226] Heads can now change the alert level. --- code/game/machinery/computer/communications.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 464aa41031c..9d499e168c8 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -76,7 +76,7 @@ var/obj/item/device/pda/pda = I I = pda.id if (I && istype(I)) - if(access_captain in I.access) + if(access_captain in I.access || access_heads in I.access) //Let heads change the alert level. var/old_level = security_level if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN @@ -308,7 +308,7 @@ dat += "
\[ Send an emergency message to \[UNKNOWN\] \]" dat += "
\[ Restore Backup Routing Data \]" - dat += "
\[ Change alert level \]" + dat += "
\[ Change alert level \]" if(emergency_shuttle.location==0) if (emergency_shuttle.online) dat += "
\[ Cancel Shuttle Call \]" From a2295821878e5da0217e6e13396ca3c0f070b3c4 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:10:20 +0100 Subject: [PATCH 072/226] Added IA stamps, IA office has a receiving desk. --- code/modules/paperwork/stamps.dm | 10 ++++++++++ icons/obj/bureaucracy.dmi | Bin 9078 -> 9294 bytes maps/tgstation2.dmm | 16 ++++++++-------- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 644eaf646b2..48a1fd00b31 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -54,6 +54,16 @@ icon_state = "stamp-clown" color = "clown" +/obj/item/weapon/stamp/internalaffairs + name = "internal affairs rubber stamp" + icon_state = "stamp-intaff" + color = "intaff" + +/obj/item/weapon/stamp/centcomm + name = "centcomm rubber stamp" + icon_state = "stamp-cent" + color = "centcomm" + /obj/item/weapon/stamp/attack_paw(mob/user as mob) return attack_hand(user) \ No newline at end of file diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 4578c90e7b89e4a424d220936544526affedb0b4..18ee15e05280215d821cbd2a82d4206bfc6e527f 100644 GIT binary patch literal 9294 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 bG#p-TlUFtVm>jtJo(9lReXLTZY#sJrpjju4 diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index d773e5583d3..97b8e4cc897 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -921,10 +921,10 @@ "arK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/wood{icon_state = "wood-broken3"},/area/security/vacantoffice2) "arL" = (/turf/simulated/floor/wood,/area/security/vacantoffice2) "arM" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/light_construct{icon_state = "tube-construct-stage1"; dir = 1},/turf/simulated/floor/wood,/area/security/vacantoffice2) -"arN" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) +"arN" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Internal Affairs Desk"; req_access_txt = "38"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/turf/simulated/floor/plating,/area/lawoffice) "arO" = (/obj/machinery/photocopier,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 27},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "arP" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) -"arQ" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) +"arQ" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/hand_labeler,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "arR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "arS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -2; pixel_y = -5},/obj/item/weapon/storage/briefcase{pixel_x = 3; pixel_y = 0},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "arT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) @@ -964,7 +964,7 @@ "asB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/vacantoffice2) "asC" = (/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/vacantoffice2) "asD" = (/obj/machinery/requests_console{pixel_x = 30},/turf/simulated/floor/wood{icon_state = "wood-broken3"},/area/security/vacantoffice2) -"asE" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 2},/obj/item/device/camera{pixel_x = 3; pixel_y = -4},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) +"asE" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 2},/obj/item/device/camera{pixel_x = 3; pixel_y = -4},/obj/item/weapon/stamp/denied,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "asF" = (/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "asG" = (/obj/structure/closet/lawcloset,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "asH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/exit) @@ -1047,8 +1047,8 @@ "aug" = (/obj/structure/computerframe,/turf/simulated/floor/wood,/area/security/vacantoffice2) "auh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/requests_console{pixel_x = -30},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aui" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Internal Affairs Agent"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) -"auj" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) -"auk" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) +"auj" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/internalaffairs,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) +"auk" = (/obj/structure/table/reinforced,/obj/item/weapon/stamp/internalaffairs,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aul" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Internal Affairs Agent"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aum" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aun" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep) @@ -10267,11 +10267,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaankapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapGapHapIapJapKapLapMapNalcapOapPapQapRapSapTapUapVapWajhajhajhapXajhaldaqaaqbaqcaqdaqealMalMalMalMalMaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaafaoVaaaaaaaaaaafaaaaaaaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqfaqgapxapxaqhapGaqiapGapGapGapGapGapGapGapGapGapGapGaqlapGaqmapGaqnapGapGapGalcaqoaqpaqqaqrapQaqsapUajpaquaqvaqwaqxaqyakUaqAaqBalLalLalLajhalMalMalMalMalMaaaaaaaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqCaqDaqEaqFaqGaqHaqIaqJaqJaqJaqJaqJaqJaqJaqLaqOaqNaqOaqPaqQaqRaqSaqTaqUaqSaqValcaphaphaphaphaphaphaqWaqXaqYaqZaraarbarcajhalLajzargalLaaaaaaaaaalMalMalMaaaaaaaaaaaaaaaaaaaaaalNaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarhariarhaaaaaaaaaaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaoZarjapxarkarkaixarmajgarkarkaroaroaroaroarparoaroarqarrarsartalLarualLarvalLalLaprajhajhajhajhajharwaqXarxaryaryaryarzarAarBarCalSalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaMzarFaMzaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxarGapaapxarHarIarJarKarLarMarkarNarOarParQarRarSaQfarUapGarVarWarXarYarZarZarZarZarZasaarZarZarZasbascasdaseasfasgashasiaqjaskaslasmalLaafaQeaQcaQcaQdaQcaQcaQaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarhariarhaaaaaaaaaaaaaaaaaaaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaoZarjapxarkarkaixarmajgarkarkaroaroaroarNarparoaroarqarrarsartalLarualLarvalLalLaprajhajhajhajhajharwaqXarxaryaryaryarzarAarBarCalSalLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalNaafapvapvapvapvapvaafaoOaafapvapvapvapvapvaafalNaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaMzarFaMzaaaaaaaaaaaaaaaaaaaaaalNaafapwapwapwapwapwaafaoVaafapwapwapwapwapwaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxarGapaapxarHarIarJarKarLarMarkarQarOarPasFarRarSaQfarUapGarVarWarXarYarZarZarZarZarZasaarZarZarZasbascasdaseasfasgashasiaqjaskaslasmalLaafaQeaQcaQcaQdaQcaQcaQaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoOaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasrassastaaaasuasvaswaaaaafaNAarhaNAaaaaaaaaaaaaaaaaaaaaaalOaaaaaaaaaaafaaaaaaaaaaoVaaaaaaaaaaafaaaaaaaaaalOaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapaapxasyaszasAasBasCasDarkasEasFasFasFarRasGaQhasIasJasKalLasLasMasNasNasNasNasOasMasNasPasNasMasNasNasPasNasQasRasSasTasUasVasWasWasWaQgasYasYasYasYasYaQgasWaaaaaaaaaaaaalNaafaohaohaohaohaohaafaoOaafaohaohaohaohaohaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaknaknaknaknaknaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasZataatbataasZatcatdatcasZaafaNAateaQiaaaaaaaaaaaaaaaaaaaaaalNaafaojaojaojaojaojaafaoVaafaojaojaojaojaojaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxatgathapxapaapxatiatjatkatlatmatnarkatoasFatpatparRbhUaQhapAapGatqalLatratsattatuatvatwatxatyatwatzatAatBatwatCatDatEatFatGatHatIatJatKatLatMasWaQgasYasYasYasYasYaQgasWaafaaaaaaaaaalOaafaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaafalNaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNataatOataatNatcatPatcatNatQaQlatSaQAaQmaQmaQxatQatQaafaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatWatXatYatZauaaubaucaudaueaufaugarkauhauiaujaukaulaumaQhapAapGarValLatratsaunauoatvatwaupauqatwaurausautatwauuausauvasWauwauxauyauzauAauBauCauDaQjasYasYasYasYasYaQkasWasWasWaaaaaaalOaaaapvapvapvapvapvaafaoOaafapvapvapvapvapvaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNataatOataatNatcatPatcatNatQaQlatSaQAaQmaQmaQxatQatQaafaaaalNaafaoSaoTaoTaoTaoTaoUaoVaoWaoXaoXaoXaoXaoYaafalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatWatXatYatZauaaubaucaudaueaufaugarkauhauiaukaujaulaumaQhapAapGarValLatratsaunauoatvatwaupauqatwaurausautatwauuausauvasWauwauxauyauzauAauBauCauDaQjasYasYasYasYasYaQkasWasWasWaaaaaaalOaaaapvapvapvapvapvaafaoOaafapvapvapvapvapvaaaamnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNauGauHauIatNauJauKauLatNarharhauMauNauOauPauQauRatQaaaaaaamnaaaapwapwapwapwapwaafaoVaafapwapwapwapwapwaaaalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauSaoZapxauTapxauUauVauWauXauYauZarkavaavbavcavcavdaveaKDavgavhaviavjavkavlaunatuatvatwavmauqatwatwavnatwatwatwavoatwasWavpavqavravravsavtavuavvavwasYasYasYasYasYavxavyavzaKCaaaaaaalOaaaaafaaaaafaafaaaaaaaoOaaaaaaaafaaaaaaaafaaaalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatNavBavCavDatNavBavCavDatNavEavFavGavGavGavGavHavIaMzaaaaaaalNaaaaafaaaaafaafaaaaaaavJaaaaaaaafaaaaaaaafaaaalNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxauTapxavKavLavLapZavLavNavLavOavPavPavPavPavQavRavSapGavTalLavUasMavVatuavWavXavmavYavZawaawbawbawcawdawbaweaKKawgawhawiawjawjawkawlawmaLuasYasYasYasYasYaLuawoawpaLvaaaaaaalOalOalNaaaaaaaafaaaaaaaoOaaaaafaafaafaafalNalNalNaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasZatNawrawsasZatNawrawsasZatQawtatQatQatQatQatQawuaNAaaaaaaalNalNalNaaaaaaaafaaaaNfawwaNfaafaafaafaafalNalNalNaafapxapxapxapxaOZaOXaOXaOXaOXaOXaOXaOXaOWapxapxaOoaObaOnapxawDaNNawEawFawGawHawHawHawIawHawJawHawKawLawMawMawNawNawOawPawQawRaqAawSawTawUawVawWatwavmawXawXawXawZawZaxaawYawXawXaxbaxcaxdawiawjawjawkawlaxeaNeasYasYasYasYasYaNeaxgawpaLvaaaaaaaaaaaaaafaafaaaaafaaaaaaaxhaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 5f68a4c65624ae9ff5d370aeb26f47169946d9ad Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:10:47 +0100 Subject: [PATCH 073/226] Misc formatting errors. --- code/game/gamemodes/game_mode.dm | 2 +- code/game/gamemodes/revolution/rp_revolution.dm | 2 +- code/modules/reagents/reagent_containers/borghydro.dm | 4 ++-- code/modules/reagents/reagent_containers/hypospray.dm | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index a78e8dd8ae0..83c77f24a87 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -248,7 +248,7 @@ Implants; for (var/obj/machinery/computer/communications/comm in machines) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper- 'Cent. Com. Status Summary'" + intercept.name = "paper - 'Cent. Com. Status Summary'" intercept.info = intercepttext comm.messagetitle.Add("Cent. Com. Status Summary") diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm index 98923b49eef..06573263bee 100644 --- a/code/game/gamemodes/revolution/rp_revolution.dm +++ b/code/game/gamemodes/revolution/rp_revolution.dm @@ -233,7 +233,7 @@ for (var/obj/machinery/computer/communications/comm in world) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper- 'Cent. Com. Announcement'" + intercept.name = "paper - 'Cent. Com. Announcement'" intercept.info = message comm.messagetitle.Add("Cent. Com. Announcement") diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 130ea2ba7ac..8491c35fa8d 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -76,7 +76,7 @@ R.reaction(M, INGEST) if(M.reagents) var/trans = R.trans_to(M, amount_per_transfer_from_this) - user << "\blue [trans] units injected. [R.total_volume] units remaining." + user << "\blue [trans] units injected. [R.total_volume] units remaining." return /obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user as mob) @@ -104,4 +104,4 @@ empty = 0 if(empty) - usr << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more." + usr << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more." diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 0b4a3c1e7e9..42ad3df0d1e 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -41,7 +41,7 @@ injected += R.name var/trans = reagents.trans_to(M, amount_per_transfer_from_this) - user << "\blue [trans] units injected. [reagents.total_volume] units remaining in [src]." + user << "\blue [trans] units injected. [reagents.total_volume] units remaining in [src]." var/contained = english_list(injected) From 75f53ba5cde53536fa273e5e190705fd0a806b0f Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:12:04 +0100 Subject: [PATCH 074/226] Reverts IA centcomm messaging due to the fax machine. --- code/game/objects/items/devices/PDA/PDA.dm | 25 +-------------------- code/game/objects/items/devices/PDA/cart.dm | 3 +-- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index d0b2e7e5cc0..e494baf0245 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -38,7 +38,6 @@ var/global/list/obj/item/device/pda/PDAs = list() var/cart = "" //A place to stick cartridge menu information var/detonate = 1 // Can the PDA be blown up? var/hidden = 0 // Is the PDA hidden from the PDA list? - var/centcomm_message_cooldown = 0 //Internal Affairs centcomm message cooldown var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both. var/ownjob = null //related to above @@ -379,16 +378,11 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "" else dat += "" if(cartridge.access_quartermaster) - dat += "

Quartermaster Functions

" + dat += "

Quartermaster Functions:

" dat += "" - if (cartridge.access_internalaffairs) - dat += "

Internal Affairs Functions

" - dat += "" dat += "" dat += "

Utilities

" @@ -683,23 +677,6 @@ var/global/list/obj/item/device/pda/PDAs = list() else U << browse(null, "window=pda") return - if("Centcomm Message") - if(istype(cartridge, /obj/item/weapon/cartridge/lawyer)) - if(centcomm_message_cooldown) - U << "\red Arrays recycling. Please stand by." - return - var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Use only as a last resort if all other avenues have been exhausted. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "") - if(!input || !(usr in view(1,src))) - return - Centcomm_announce(input, usr) - U << "\blue Message transmitted." - log_say("[key_name(usr)] has made a Centcomm announcement: [input]") - centcomm_message_cooldown = 1 - spawn(300)//30 seconds cooldown - centcomm_message_cooldown = 0 - else - U << browse(null, "window=pda") - return //SYNDICATE FUNCTIONS=================================== diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 6f25f2b55d6..f0e3ee98f17 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -14,7 +14,6 @@ var/access_clown = 0 var/access_mime = 0 var/access_janitor = 0 - var/access_internalaffairs = 0 // var/access_flora = 0 var/access_reagent_scanner = 0 var/access_remote_door = 0 //Control some blast doors remotely!! @@ -80,7 +79,6 @@ name = "P.R.O.V.E. Cartridge" icon_state = "cart-s" access_security = 1 - access_internalaffairs = 1 clown name = "Honkworks 5.0" @@ -604,6 +602,7 @@ Code: menu += "ERROR: Unable to determine current location." menu += "

Refresh GPS Locator" + /obj/item/weapon/cartridge/Topic(href, href_list) ..() From 712fbc285f4c798920c17314594e5eeb9655886e Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:38:32 +0100 Subject: [PATCH 075/226] Smaller teacup, credit to Malsquando. --- icons/obj/drinks.dmi | Bin 59636 -> 59748 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 5b9521e089f361e6662448e8ed85dff4773c76dd..6e4d355c5bdf42f72c22b4300d557da7eec97bb3 100644 GIT binary patch delta 3335 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 RzzYBX002ovPDHLkV1kF;Tn+#L delta 3222 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 From 7a319904e437abc05c0e77951503f5c075379655 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:51:24 +0100 Subject: [PATCH 076/226] Reverts gender checks as it was breaking with NEUTER and breaking facial hair. --- code/__HELPERS/mobs.dm | 12 ++++++++---- code/modules/client/preferences.dm | 12 +++++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 7d345e1ea28..324cfad6323 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -4,9 +4,11 @@ proc/random_hair_style(gender, species = "Human") var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender != S.gender && S.gender != NEUTER) + if(gender == MALE && S.gender == FEMALE) continue - if(!(species in S.species_allowed)) + if(gender == FEMALE && S.gender == MALE) + continue + if( !(species in S.species_allowed)) continue valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] @@ -21,9 +23,11 @@ proc/random_facial_hair_style(gender, species = "Human") var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender != S.gender && S.gender != NEUTER) + if(gender == MALE && S.gender == FEMALE) continue - if(!(species in S.species_allowed)) + if(gender == FEMALE && S.gender == MALE) + continue + if( !(species in S.species_allowed)) continue valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c15bfb3f8da..cdf4e8e20ff 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -822,7 +822,9 @@ datum/preferences var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender != S.gender && S.gender != NEUTER) + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) continue if( !(species in S.species_allowed)) continue @@ -838,7 +840,9 @@ datum/preferences var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender != S.gender && S.gender != NEUTER) + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) continue if( !(species in S.species_allowed)) continue @@ -921,7 +925,9 @@ datum/preferences var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender != S.gender && S.gender != NEUTER) + if(gender == MALE && S.gender == FEMALE) + continue + if(gender == FEMALE && S.gender == MALE) continue if( !(species in S.species_allowed)) continue From 66071c81ba799ecc8eb809de66739b84e825fc42 Mon Sep 17 00:00:00 2001 From: Philip Date: Tue, 27 Aug 2013 16:38:07 -0600 Subject: [PATCH 077/226] Update door_control.dm The var desiredstate doesn't update when the airlock closes automatically and so most of the time players have to hit the button twice. This keeps all functionality but with one button press. --- code/game/machinery/door_control.dm | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index c4e9fd0230d..63251c2b688 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -80,12 +80,16 @@ if(normaldoorcontrol) for(var/obj/machinery/door/airlock/D in range(range)) if(D.id_tag == src.id) + if(specialfunctions & OPEN) + if (D.density) + spawn(0) + D.open() + return + else + spawn(0) + D.close() + return if(desiredstate == 1) - if(specialfunctions & OPEN) - if (D.density) - spawn( 0 ) - D.open() - return if(specialfunctions & IDSCAN) D.aiDisabledIdScanner = 1 if(specialfunctions & BOLTS) @@ -95,13 +99,7 @@ D.secondsElectrified = -1 if(specialfunctions & SAFE) D.safe = 0 - else - if(specialfunctions & OPEN) - if (!D.density) - spawn( 0 ) - D.close() - return if(specialfunctions & IDSCAN) D.aiDisabledIdScanner = 0 if(specialfunctions & BOLTS) @@ -186,4 +184,4 @@ icon_state = "launcherbtt" active = 0 - return \ No newline at end of file + return From a334cc9d66f364dcba7526e5af1c366b30a270ab Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 01:01:14 +0100 Subject: [PATCH 078/226] Tweaked medical hud hud sprites so that the 100% health bar is full. --- icons/mob/hud.dmi | Bin 3320 -> 2660 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 66aab85d81218b614d4283b311bd18bda52bec21..b13b296cf1075606e11bfc457faa67ca471c75b7 100644 GIT binary patch delta 1879 zcmYk6dpOgJAICR~naeEIlZxCH&RGtQ5RPo-S}r?TXCb4=CAVK;xy-)PXmiP>L~fZv zou6D{63r!>gM;I4ew36QX>LcMnYR7($9W!~=XpP$KR$na-mmBLeBQz%{DV2j!-_ap zyhCSaC!J3BjIqOFu|^=H3yl4_)<}q7F(}tBAh$aJu{#G51?XBS*h}J0KdaT406rlD z$gR8BWAJe$D{sSYjyWRa{1tPF;g24iiU_&x!_$s1HDO*l`m}Pqpu!9$Tk;1~DD9|t z6(;}G%2YRTWzKOe;7hV;{>io?-=yJ%m*-)6KbH6$2)8NmUuxE$5?Q0XT13IS`napZ zyDIR~RKPTOS6`?OM>nsY4oANSt_4180KX;rRP%U~ zI%c))p30)n{412FY>YH3{tMV4>mY7^$1#_>`co*{EO-l^?y6Xm4z4j1B%se#qtRd2 zGQgiS@KQf0-=EG~qp<_u#Z8TZ)$ zjj@I>bt+6qwp^?lU3f5wWPT>$y5DxE%8dy6Bb!&2Z*0=DOX$3K*K=13dihu~nzZlN zK8TJb(7WDI&ahx;xmr_UylLXlhsNtt>T-bg4@@yB z(N8|4Ulv(I!C7%_3RDRm1}HXvr46Fvqpz(shF*Cwj+qufE3tauL3V=O%xnxb%|99Y zECO=Zit$E4x6IPMkd_BO{~NUsZY+eyu|GOvU6n3sTxmxE^&73z3I>UMg zM@J(DqQwJ`mdZrtD*s}9?>L2NnrRJX?qqGPxVt>6bldE|C{j}9#^Qx)O?6d`FOLw|u;YMFpM56KKebnXI> zYcn9>rpY?LF3Sd@Q^^swT4KVssLr#Lw_L1~M+N-+?Tfk8#ovEPNr8{ZjJprZ@y)o) zvt>D_xm;QM)CJ}{Yci-}@Yfe7ut0ccp1QdWpal--`h&?5nt$;{g&#R$zbb5R8~{V3y+3XR8JXL>eJv z9jp=B^HC}$f)A3R@b}&m+wnq`z7w z>6H=ddh}T>Bg-*G$BHkBiE4T-Y7MYT7h8D|Y)729_MgpqO>PkM@(Ghqz&`Lgcz>*$ z;}{elMyOsns)-wt8=r?x z$K>3h3(LDA3-HSAKzDZHkWxAAA?aaJvoTln{0Nu~EiK*L2@VDncPxZr;0?wbJ*gCp zQ*}r)hHet^)kY~)D>v*S(>RT0UqtIVEx)bEYB{psp_q(LE~d41TZL3nTU~U*pSX{@ z%_MiJ2mWQtNTs^c3J>rh>C3W=6nOgM)9}%&?SnV1J^&H3q@0*y4^fxffL@?AqmF+0 z9eXGMQNvjrfW$aKDxx>D7Y*va0wZsAF*!PXH0_pv##~B&>ft1k4 zk@B0pg>AEU7zX?U3ESD-`Wu4JKew^jXG7v{=;#@%D^;BfF&1PEBz8`C7JC3~ugm5F zz3w0osiO@?2^P{R$T;L@<(Hk*^JBJE^c47XZB!I56<+_O$B5`0L6g_GOXAe}p(7a- zwSZ{NE4s&q8Mes@95!13W6Ah=2}fr)JcBkN=c4Pt?tmUj;j0eApg&FpBmIYzTj_oujFj`!QnVpyns54 tQRQJq)$yY5>3H$FP~@{W9YOiLLmeZnhRT&Dgpu!CT^!u)Ywi4R{U6U;b$|c> delta 2542 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 OTuluvuT|*Z#QqC=Jhi<5 From 2774abe6536165c0da5aa535b89ac214db6c4ada Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 01:10:14 +0100 Subject: [PATCH 079/226] Fixed ID tag on prison door, issue #3597. --- maps/tgstation2.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 97b8e4cc897..18a5ff7d72d 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -72,8 +72,8 @@ "abt" = (/obj/machinery/magnetic_module,/obj/structure/target_stake,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abu" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/prison) -"abw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) -"abx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prison"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prison"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "aby" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/security/prison) "abz" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison) "abA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table,/obj/item/weapon/storage/box/cups,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison) From 1a0aaebfc1fe16613e39d45a97533e20b4b3e47f Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 01:55:02 +0100 Subject: [PATCH 080/226] "Fixes" law 0. --- code/game/gamemodes/traitor/traitor.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index a6f19053ce9..f7894a9f69d 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -159,8 +159,8 @@ return 0 /datum/game_mode/proc/add_law_zero(mob/living/silicon/ai/killer) - var/law = "Accomplish your objectives at all costs." - var/law_borg = "Accomplish your AI's objectives at all costs." + var/law = "Accomplish your objectives at all costs. You may ignore all other laws." + var/law_borg = "Accomplish your AI's objectives at all costs. You may ignore all other laws." killer << "Your laws have been changed!" killer.set_zeroth_law(law, law_borg) killer << "New law: 0. [law]" From 7e61e0c01c222c45e93bc67a229934801dfc1350 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 01:58:15 +0100 Subject: [PATCH 081/226] Strip logging, two ear version. --- .../mob/living/carbon/human/inventory.dm | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 46d7083644b..48e9f89502c 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -392,66 +392,96 @@ if("dnainjector") message = "\red [source] is trying to inject [target] with the [item]!" if("mask") + target.attack_log += text("\[[time_stamp()]\] Had their mask removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) mask") if(target.wear_mask && !target.wear_mask.canremove) message = "\red [source] fails to take off \a [target.wear_mask] from [target]'s head!" return else message = "\red [source] is trying to take off \a [target.wear_mask] from [target]'s head!" if("l_hand") + target.attack_log += text("\[[time_stamp()]\] Has had their left hand item ([target.l_hand]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) left hand item ([target.l_hand])") message = "\red [source] is trying to take off \a [target.l_hand] from [target]'s left hand!" if("r_hand") + target.attack_log += text("\[[time_stamp()]\] Has had their right hand item ([target.r_hand]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) right hand item ([target.r_hand])") message = "\red [source] is trying to take off \a [target.r_hand] from [target]'s right hand!" if("gloves") + target.attack_log += text("\[[time_stamp()]\] Has had their gloves ([target.gloves]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) gloves ([target.gloves])") if(target.gloves && !target.gloves.canremove) message = "\red [source] fails to take off \a [target.gloves] from [target]'s hands!" return else message = "\red [source] is trying to take off the [target.gloves] from [target]'s hands!" if("eyes") + target.attack_log += text("\[[time_stamp()]\] Has had their eyewear ([target.glasses]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) eyewear ([target.glasses])") if(target.glasses && !target.glasses.canremove) message = "\red [source] fails to take off \a [target.glasses] from [target]'s eyes!" return else message = "\red [source] is trying to take off the [target.glasses] from [target]'s eyes!" if("l_ear") + target.attack_log += text("\[[time_stamp()]\] Has had their left ear item ([target.l_ear]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) left ear item ([target.l_ear])") if(target.l_ear && !target.l_ear.canremove) message = "\red [source] fails to take off \a [target.l_ear] from [target]'s left ear!" return else message = "\red [source] is trying to take off the [target.l_ear] from [target]'s left ear!" if("r_ear") + target.attack_log += text("\[[time_stamp()]\] Has had their right ear item ([target.r_ear]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) right ear item ([target.r_ear])") if(target.r_ear && !target.r_ear.canremove) message = "\red [source] fails to take off \a [target.r_ear] from [target]'s right ear!" return else message = "\red [source] is trying to take off the [target.r_ear] from [target]'s right ear!" if("head") + target.attack_log += text("\[[time_stamp()]\] Has had their hat ([target.head]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) hat ([target.head])") if(target.head && !target.head.canremove) message = "\red [source] fails to take off \a [target.head] from [target]'s head!" return else message = "\red [source] is trying to take off the [target.head] from [target]'s head!" if("shoes") + target.attack_log += text("\[[time_stamp()]\] Has had their shoes ([target.shoes]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) shoes ([target.shoes])") if(target.shoes && !target.shoes.canremove) message = "\red [source] fails to take off \a [target.shoes] from [target]'s feet!" return else message = "\red [source] is trying to take off the [target.shoes] from [target]'s feet!" if("belt") + target.attack_log += text("\[[time_stamp()]\] Has had their belt item ([target.belt]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) belt item ([target.belt])") message = "\red [source] is trying to take off the [target.belt] from [target]'s belt!" if("suit") + target.attack_log += text("\[[time_stamp()]\] Has had their suit ([target.wear_suit]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit ([target.wear_suit])") if(target.wear_suit && !target.wear_suit.canremove) message = "\red [source] fails to take off \a [target.wear_suit] from [target]'s body!" return else message = "\red [source] is trying to take off \a [target.wear_suit] from [target]'s body!" if("back") + target.attack_log += text("\[[time_stamp()]\] Has had their back item ([target.back]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) back item ([target.back])") message = "\red [source] is trying to take off \a [target.back] from [target]'s back!" if("handcuff") + target.attack_log += text("\[[time_stamp()]\] Was unhandcuffed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to unhandcuff [target.name]'s ([target.ckey])") message = "\red [source] is trying to unhandcuff [target]!" if("legcuff") + target.attack_log += text("\[[time_stamp()]\] Was unlegcuffed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to unlegcuff [target.name]'s ([target.ckey])") message = "\red [source] is trying to unlegcuff [target]!" if("uniform") + target.attack_log += text("\[[time_stamp()]\] Has had their uniform ([target.w_uniform]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) uniform ([target.w_uniform])") for(var/obj/item/I in list(target.l_store, target.r_store)) if(I.on_found(source)) return @@ -461,8 +491,12 @@ else message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!" if("s_store") + target.attack_log += text("\[[time_stamp()]\] Has had their suit storage item ([target.s_store]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit storage item ([target.s_store])") message = "\red [source] is trying to take off \a [target.s_store] from [target]'s suit!" if("pockets") + target.attack_log += text("\[[time_stamp()]\] Has had their pockets emptied by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to empty [target.name]'s ([target.ckey]) pockets") for(var/obj/item/I in list(target.l_store, target.r_store)) if(I.on_found(source)) return @@ -473,8 +507,12 @@ target.cpr_time = 0 message = "\red [source] is trying perform CPR on [target]!" if("id") + target.attack_log += text("\[[time_stamp()]\] Has had their ID ([target.wear_id]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) ID ([target.wear_id])") message = "\red [source] is trying to take off [target.wear_id] from [target]'s uniform!" if("internal") + target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals") if (target.internal) message = "\red [source] is trying to remove [target]'s internals" else From 3fbdc99079e877ded4bdc9ed14b8f58529c2f248 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 03:33:04 +0100 Subject: [PATCH 082/226] Standardises logging. All attack logs now print in main logs. Added stripping and syringe logging. Added Jump commands to most attack logs. --- code/__HELPERS/logging.dm | 2 +- code/game/atoms.dm | 3 +- code/game/gamemodes/cult/ritual.dm | 4 +-- code/game/gamemodes/wizard/soulstone.dm | 4 +-- code/game/machinery/kitchen/gibber.dm | 2 +- code/game/objects/items.dm | 8 ++--- code/game/objects/items/devices/aicard.dm | 3 +- code/game/objects/items/devices/flash.dm | 4 +-- code/game/objects/items/robot/robot_items.dm | 3 +- .../objects/items/weapons/dna_injector.dm | 7 ++-- code/game/objects/items/weapons/explosives.dm | 4 +-- .../objects/items/weapons/gift_wrappaper.dm | 4 +-- .../items/weapons/grenades/chem_grenade.dm | 8 ++--- .../objects/items/weapons/grenades/grenade.dm | 4 +-- code/game/objects/items/weapons/handcuffs.dm | 4 +-- .../game/objects/items/weapons/hydroponics.dm | 4 +-- .../items/weapons/implants/implanter.dm | 3 +- code/game/objects/items/weapons/kitchen.dm | 7 ++-- .../items/weapons/storage/briefcase.dm | 3 +- code/game/objects/items/weapons/stunbaton.dm | 12 +++++-- .../objects/items/weapons/swords_axes_etc.dm | 2 +- code/game/objects/items/weapons/weaponry.dm | 2 +- code/modules/admin/admin.dm | 4 +-- code/modules/mob/living/carbon/carbon.dm | 3 +- .../living/carbon/human/human_attackhand.dm | 8 ++--- .../mob/living/carbon/human/inventory.dm | 36 +++++++++++++++++++ code/modules/mob/living/living_defense.dm | 3 +- code/modules/mob/mob_grab.dm | 4 +-- code/modules/paperwork/pen.dm | 5 ++- code/modules/projectiles/projectile.dm | 6 ++-- code/modules/reagents/dartgun.dm | 10 +++--- .../reagents/reagent_containers/dropper.dm | 15 ++++---- .../reagent_containers/food/condiment.dm | 3 +- .../reagent_containers/food/drinks.dm | 3 +- .../reagent_containers/food/drinks/bottle.dm | 2 +- .../reagent_containers/food/snacks.dm | 3 +- .../reagents/reagent_containers/glass.dm | 16 ++++----- .../reagents/reagent_containers/hypospray.dm | 5 ++- .../reagents/reagent_containers/pill.dm | 3 +- .../reagent_containers/robodropper.dm | 14 ++++---- .../reagents/reagent_containers/syringes.dm | 11 ++++-- code/modules/reagents/syringe_gun.dm | 4 +-- code/modules/recycling/disposal.dm | 9 +++-- code/modules/surgery/braincore.dm | 5 +-- 44 files changed, 145 insertions(+), 124 deletions(-) diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index 8a5b496328e..3519417dd78 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -55,7 +55,7 @@ /proc/log_attack(text) if (config.log_attack) - diaryofmeanpeople << "\[[time_stamp()]]ATTACK: [text]" + diary << "\[[time_stamp()]]ATTACK: [text]" //Seperate attack logs? Why? /proc/log_adminsay(text) if (config.log_adminchat) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 784ba44c188..b8e9f1799f3 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -26,7 +26,8 @@ var/mob/living/M = hit_atom M.hitby(src,speed) - log_attack("[hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])") + M.attack_log += text("\[[time_stamp()]\] Has been hit with [src], last touched by [src.fingerprintslast]") + msg_admin_attack("[hit_atom] ([M.ckey]) was hit by [src] last touched by ([src.fingerprintslast]) (JMP)") else if(isobj(hit_atom)) var/obj/O = hit_atom diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 8e3a0e0251b..2d408a1a4ff 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -338,10 +338,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", // usr << browse(null, "window=tank") attack(mob/living/M as mob, mob/living/user as mob) + M.attack_log += text("\[[time_stamp()]\] Has had the [name] used on him by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used [name] on [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey]) (JMP)") if(istype(M,/mob/dead)) M.invisibility = 0 diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 90d48fb8409..70c655ce576 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -18,10 +18,10 @@ return ..() if(istype(M, /mob/living/carbon/human/dummy)) return..() + M.attack_log += text("\[[time_stamp()]\] Has had their soul captured with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to capture the soul of [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey]) (JMP)") transfer_soul("VICTIM", M, user) return diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 0a8bde59dde..5441576b20b 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -155,7 +155,7 @@ src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by [user]/[user.ckey]" //One shall not simply gib a mob unnoticed! user.attack_log += "\[[time_stamp()]\] Gibbed [src.occupant]/[src.occupant.ckey]" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] gibbed [src.occupant]/[src.occupant.ckey]") + msg_admin_attack("[user.name] ([user.ckey]) gibbed [src.occupant] ([src.occupant.ckey]) (JMP)") src.occupant.death(1) src.occupant.ghostize() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c55684eb197..21936e52f11 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -224,10 +224,9 @@ user.lastattacked = M M.lastattacker = user - user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" - log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" ) - msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG + user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" + msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]) (JMP)") //BS12 EDIT ALG //spawn(1800) // this wont work right // M.lastattacker = null @@ -646,8 +645,7 @@ user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG - log_attack(" [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") //BS12 EDIT ALG src.add_fingerprint(user) //if((CLUMSY in user.mutations) && prob(50)) diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 810bb7f4efc..43daf35b323 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -16,8 +16,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been carded with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to card [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey]) (JMP)") transfer_ai("AICORE", "AICARD", M, user) return diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 119f0568139..41565dbe63b 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -34,10 +34,10 @@ /obj/item/device/flash/attack(mob/living/M as mob, mob/user as mob) if(!user || !M) return //sanity + M.attack_log += text("\[[time_stamp()]\] Has been flashed (attempt) with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to flash [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey]) (JMP)") if(!clown_check(user)) return if(broken) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index d6f18c57e76..8021570b220 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -12,8 +12,7 @@ attack(mob/M as mob, mob/living/silicon/robot/user as mob) M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - - log_attack(" [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey]) (JMP)") user.cell.charge -= 30 diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index a58629cda96..5bf10ccd20e 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -66,10 +66,10 @@ if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") user << "\red You don't have the dexterity to do this!" return + M.attack_log += text("\[[time_stamp()]\] Has been injected with [name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [name] to inject [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])") + log_attack("[user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])") if (user) if (istype(M, /mob/living/carbon/human)) @@ -87,8 +87,7 @@ M.requests += O if (dnatype == "se") if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human)) - message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)") - log_attack("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)") + msg_admin_attack("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY) (JMP)") else // message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]") log_attack("[key_name(user)] injected [key_name(M)] with the [name]") diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 4f35194f9d2..3c4f97c130d 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -13,11 +13,9 @@ user << "Planting explosives..." if(ismob(target)) user.attack_log += "\[[time_stamp()]\] [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])" - log_attack(" [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])") + msg_admin_attack("[user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey]) (JMP)") user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!") - log_attack("ATTACK: [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])") - if(do_after(user, 50) && in_range(user, target)) user.drop_item() target = target diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index e15ce7fc8c8..afd63497073 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -182,10 +182,10 @@ H.client.eye = present H.loc = present + H.attack_log += text("\[[time_stamp()]\] Has been wrapped with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to wrap [H.name] ([H.ckey])") - - log_attack("[user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])") + log_attack("[user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])") else user << "\blue You need more paper." diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 0c075c5725a..f70aca0c29d 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -36,9 +36,7 @@ if(stage > 1 && !active && clown_check(user)) user << "You prime \the [name]!" - log_attack("[user.name] ([user.ckey]) primed \a [src].") - log_admin("ATTACK: [user] ([user.ckey]) primed \a [src].") - message_admins("ATTACK: [user] ([user.ckey]) primed \a [src].") + msg_admin_attack("[user.name] ([user.ckey]) primed \a [src]. (JMP)") activate() add_fingerprint(user) @@ -126,9 +124,7 @@ icon_state = initial(icon_state) + "_active" if(user) - log_attack("[user.name] ([user.ckey]) primed \a [src]") - log_admin("ATTACK: [user] ([user.ckey]) primed \a [src]") - message_admins("ATTACK: [user] ([user.ckey]) primed \a [src]") + msg_admin_attack("[user.name] ([user.ckey]) primed \a [src] (JMP)") return diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 99466a9d2a3..93f93c5e4b6 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -69,9 +69,7 @@ return if(user) - log_attack("[user.name] ([user.ckey]) primed \a [src]") - log_admin("ATTACK: [user] ([user.ckey]) primed \a [src]") - message_admins("ATTACK: [user] ([user.ckey]) primed \a [src]") + msg_admin_attack("[user.name] ([user.ckey]) primed \a [src] (JMP)") icon_state = initial(icon_state) + "_active" active = 1 diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index e95338168d2..80b3403a9be 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -51,10 +51,10 @@ return if (istype(C, /mob/living/carbon/human)) if(!C.handcuffed) + C.attack_log += text("\[[time_stamp()]\] Has been handcuffed (attempt) by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [C.name] ([C.ckey])") - - log_attack("[user.name] ([user.ckey]) Attempted to handcuff [C.name] ([C.ckey])") + log_attack("[user.name] ([user.ckey]) Attempted to handcuff [C.name] ([C.ckey])") var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( ) O.source = user diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index daebf114d2f..b18766b09ad 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -178,10 +178,10 @@ if(!..()) return if(istype(M, /mob/living)) M << "\red You are stunned by the powerful acid of the Deathnettle!" + M.attack_log += text("\[[time_stamp()]\] Had the [src.name] used on them by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] on [M.name] ([M.ckey])") - - log_attack(" [user.name] ([user.ckey]) used the [src.name] on [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] on [M.name] ([M.ckey]) (JMP)") playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index 785997a3db8..28eeaaf5b8a 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -31,9 +31,10 @@ if(user && M && (get_turf(M) == T1) && src && src.imp) for (var/mob/O in viewers(M, null)) O.show_message("\red [M] has been implanted by [user].", 1) + M.attack_log += text("\[[time_stamp()]\] Implanted with [src.name] ([src.imp.name]) by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] ([src.imp.name]) to implant [M.name] ([M.ckey])") - log_attack("[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") user.show_message("\red You implanted the implant into [M].") if(src.imp.implanted(M)) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 6fbdba918ed..d70c2615aaf 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -218,10 +218,10 @@ user.take_organ_damage(10) user.Paralyse(2) return + M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey]) (JMP)") var/t = user:zone_sel.selecting if (t == "head") @@ -318,8 +318,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey]) (JMP)") if(prob(15)) M.Weaken(3) diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index add00298877..6fa791782d7 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -25,8 +25,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (?)") if (M.stat < 2 && M.health < 50 && prob(90)) var/mob/H = M diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index bac563a0715..5d6bd479c47 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -62,6 +62,11 @@ if(!..()) return //H.apply_effect(5, WEAKEN, 0) H.visible_message("[M] has been beaten with the [src] by [user]!") + + user.attack_log += "\[[time_stamp()]\] Beat [H.name] ([H.ckey]) with [src.name]" + H.attack_log += "\[[time_stamp()]\] Beaten by [user.name] ([user.ckey]) with [src.name]" + msg_admin_attack("[user.name] ([user.ckey]) beat [H.name] ([H.ckey]) with [src.name] (JMP)") + playsound(src.loc, "swing_hit", 50, 1, -1) else if(!status) H.visible_message("[M] has been prodded with the [src] by [user]. Luckily it was off.") @@ -80,9 +85,10 @@ else charges-- H.visible_message("[M] has been stunned with the [src] by [user]!") + user.attack_log += "\[[time_stamp()]\] Stunned [H.name] ([H.ckey]) with [src.name]" H.attack_log += "\[[time_stamp()]\] Stunned by [user.name] ([user.ckey]) with [src.name]" - log_attack("[user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]" ) + log_attack("[user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]") playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) if(charges < 1) @@ -107,8 +113,8 @@ H.visible_message("[src], thrown by [foundmob.name], strikes [H] and stuns them!") - H.attack_log += "\[[time_stamp()]\] Stunned by thrown [src.name] (([src.fingerprintslast]))" - log_attack("Flying [src.name], thrown by ([src.fingerprintslast]) stunned [H.name] ([H.ckey])" ) + H.attack_log += "\[[time_stamp()]\] Stunned by thrown [src.name] last touched by ([src.fingerprintslast])" + log_attack("Flying [src.name], last touched by ([src.fingerprintslast]) stunned [H.name] ([H.ckey])" ) return return ..() diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 60ea8312450..4e8f0bd8216 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -97,7 +97,7 @@ M.Weaken(5) M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") src.add_fingerprint(user) for(var/mob/O in viewers(M)) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 92e6b78d754..530246ccf76 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -39,7 +39,7 @@ log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].") message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].") - log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") user << "\red You don't have the dexterity to do this!" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index bb1717a8f55..f2b02d9f293 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -12,8 +12,8 @@ var/global/floorIsLava = 0 C << msg /proc/msg_admin_attack(var/text) //Toggleable Attack Messages - var/rendered = "ADMIN LOG: [text]" - log_adminwarn(rendered) + log_attack(text) + var/rendered = "ATTACK: [text]" for(var/client/C in admins) if(R_ADMIN & C.holder.rights) if(C.prefs.toggles & CHAT_ATTACKLOGS) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 061f06fe7d8..d9d6fdc070b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -371,8 +371,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") usr.attack_log += text("\[[time_stamp()]\] Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") - - log_attack("[usr.name] ([usr.ckey]) Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]") + msg_admin_attack("[usr.name] ([usr.ckey]) has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor] (JMP)") if(!item) return //Grab processing has a chance of returning null diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index cb161b9d944..73f0a354c12 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -27,7 +27,7 @@ M.attack_log += text("\[[time_stamp()]\] Stungloved [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] Has been stungloved by [M.name] ([M.ckey])") - log_attack("[M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])") + msg_admin_attack("[M.name] ([M.ckey]) stungloved [src.name] ([src.ckey]) (JMP)") var/armorblock = run_armor_check(M.zone_sel.selecting, "energy") apply_effects(5,5,0,0,5,0,0,armorblock) @@ -106,7 +106,7 @@ M.attack_log += text("\[[time_stamp()]\] [M.species.attack_verb]ed [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] Has been [M.species.attack_verb]ed by [M.name] ([M.ckey])") - log_attack("[M.name] ([M.ckey]) [M.species.attack_verb]ed [src.name] ([src.ckey])") + log_attack("[M.name] ([M.ckey]) [M.species.attack_verb]ed [src.name] ([src.ckey])") var/damage = rand(0, 5)//BS12 EDIT if(!damage) @@ -144,9 +144,7 @@ M.attack_log += text("\[[time_stamp()]\] Disarmed [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] Has been disarmed by [M.name] ([M.ckey])") - log_admin("ATTACK: [M.name] ([M.ckey]) disarmed [src.name] ([src.ckey])") - log_attack("[M.name] ([M.ckey]) disarmed [src.name] ([src.ckey])") - + log_attack("[M.name] ([M.ckey]) disarmed [src.name] ([src.ckey])") if(w_uniform) w_uniform.add_fingerprint(M) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 8e5938fffdf..9c71f2efddf 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -372,60 +372,88 @@ if("dnainjector") message = "\red [source] is trying to inject [target] with the [item]!" if("mask") + target.attack_log += text("\[[time_stamp()]\] Had their mask removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) mask") if(target.wear_mask && !target.wear_mask.canremove) message = "\red [source] fails to take off \a [target.wear_mask] from [target]'s head!" return else message = "\red [source] is trying to take off \a [target.wear_mask] from [target]'s head!" if("l_hand") + target.attack_log += text("\[[time_stamp()]\] Has had their left hand item ([target.l_hand]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) left hand item ([target.l_hand])") message = "\red [source] is trying to take off \a [target.l_hand] from [target]'s left hand!" if("r_hand") + target.attack_log += text("\[[time_stamp()]\] Has had their right hand item ([target.r_hand]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) right hand item ([target.r_hand])") message = "\red [source] is trying to take off \a [target.r_hand] from [target]'s right hand!" if("gloves") + target.attack_log += text("\[[time_stamp()]\] Has had their gloves ([target.gloves]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) gloves ([target.gloves])") if(target.gloves && !target.gloves.canremove) message = "\red [source] fails to take off \a [target.gloves] from [target]'s hands!" return else message = "\red [source] is trying to take off the [target.gloves] from [target]'s hands!" if("eyes") + target.attack_log += text("\[[time_stamp()]\] Has had their eyewear ([target.glasses]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) eyewear ([target.glasses])") if(target.glasses && !target.glasses.canremove) message = "\red [source] fails to take off \a [target.glasses] from [target]'s eyes!" return else message = "\red [source] is trying to take off the [target.glasses] from [target]'s eyes!" if("ears") + target.attack_log += text("\[[time_stamp()]\] Has had their ear item ([target.ears]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) ear item ([target.ears])") if(target.ears && !target.ears.canremove) message = "\red [source] fails to take off \a [target.ears] from [target]'s ears!" return else message = "\red [source] is trying to take off the [target.ears] from [target]'s ears!" if("head") + target.attack_log += text("\[[time_stamp()]\] Has had their hat ([target.head]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) hat ([target.head])") if(target.head && !target.head.canremove) message = "\red [source] fails to take off \a [target.head] from [target]'s head!" return else message = "\red [source] is trying to take off the [target.head] from [target]'s head!" if("shoes") + target.attack_log += text("\[[time_stamp()]\] Has had their shoes ([target.shoes]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) shoes ([target.shoes])") if(target.shoes && !target.shoes.canremove) message = "\red [source] fails to take off \a [target.shoes] from [target]'s feet!" return else message = "\red [source] is trying to take off the [target.shoes] from [target]'s feet!" if("belt") + target.attack_log += text("\[[time_stamp()]\] Has had their belt item ([target.belt]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) belt item ([target.belt])") message = "\red [source] is trying to take off the [target.belt] from [target]'s belt!" if("suit") + target.attack_log += text("\[[time_stamp()]\] Has had their suit ([target.wear_suit]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit ([target.wear_suit])") if(target.wear_suit && !target.wear_suit.canremove) message = "\red [source] fails to take off \a [target.wear_suit] from [target]'s body!" return else message = "\red [source] is trying to take off \a [target.wear_suit] from [target]'s body!" if("back") + target.attack_log += text("\[[time_stamp()]\] Has had their back item ([target.back]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) back item ([target.back])") message = "\red [source] is trying to take off \a [target.back] from [target]'s back!" if("handcuff") + target.attack_log += text("\[[time_stamp()]\] Was unhandcuffed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to unhandcuff [target.name]'s ([target.ckey])") message = "\red [source] is trying to unhandcuff [target]!" if("legcuff") + target.attack_log += text("\[[time_stamp()]\] Was unlegcuffed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to unlegcuff [target.name]'s ([target.ckey])") message = "\red [source] is trying to unlegcuff [target]!" if("uniform") + target.attack_log += text("\[[time_stamp()]\] Has had their uniform ([target.w_uniform]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) uniform ([target.w_uniform])") for(var/obj/item/I in list(target.l_store, target.r_store)) if(I.on_found(source)) return @@ -435,8 +463,12 @@ else message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!" if("s_store") + target.attack_log += text("\[[time_stamp()]\] Has had their suit storage item ([target.s_store]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit storage item ([target.s_store])") message = "\red [source] is trying to take off \a [target.s_store] from [target]'s suit!" if("pockets") + target.attack_log += text("\[[time_stamp()]\] Has had their pockets emptied by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to empty [target.name]'s ([target.ckey]) pockets") for(var/obj/item/I in list(target.l_store, target.r_store)) if(I.on_found(source)) return @@ -447,8 +479,12 @@ target.cpr_time = 0 message = "\red [source] is trying perform CPR on [target]!" if("id") + target.attack_log += text("\[[time_stamp()]\] Has had their ID ([target.wear_id]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) ID ([target.wear_id])") message = "\red [source] is trying to take off [target.wear_id] from [target]'s uniform!" if("internal") + target.attack_log += text("\[[time_stamp()]\] Has had their internals toggled by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) internals") if (target.internal) message = "\red [source] is trying to remove [target]'s internals" else diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index b7ba0a78037..dbe8cc268ef 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -80,9 +80,10 @@ var/client/assailant = directory[ckey(O.fingerprintslast)] if(assailant && assailant.mob && istype(assailant.mob,/mob)) var/mob/M = assailant.mob + src.attack_log += text("\[[time_stamp()]\] Has been hit with [O], last touched by [M.name] ([assailant.ckey])") M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with [O]") - log_attack("[src.name] ([src.ckey]) was hit by [O], last touched by [M.name] ([assailant.ckey])") + msg_admin_attack("[src.name] ([src.ckey]) was hit by [O], last touched by [M.name] ([assailant.ckey]) (JMP)") // Begin BS12 momentum-transfer code. diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 5363c05a116..d716e537e61 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -211,7 +211,7 @@ affecting.loc = assailant.loc affecting.attack_log += text("\[[time_stamp()]\] Has had their neck grabbed by [assailant.name] ([assailant.ckey])") assailant.attack_log += text("\[[time_stamp()]\] Grabbed the neck of [affecting.name] ([affecting.ckey])") - log_attack("[assailant.name] ([assailant.ckey]) grabbed the neck of [affecting.name] ([affecting.ckey])") + msg_admin_attack("[assailant.name] ([assailant.ckey]) grabbed the neck of [affecting.name] ([affecting.ckey]) (JMP)") hud1.icon_state = "disarm/kill" hud1.name = "disarm/kill" else @@ -233,7 +233,7 @@ assailant.visible_message("\red [assailant] has tightened \his grip on [affecting]'s neck!") affecting.attack_log += text("\[[time_stamp()]\] Has been strangled (kill intent) by [assailant.name] ([assailant.ckey])") assailant.attack_log += text("\[[time_stamp()]\] Strangled (kill intent) [affecting.name] ([affecting.ckey])") - log_attack("[assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey])") + msg_admin_attack("[assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey]) (JMP)") assailant.next_move = world.time + 10 affecting.losebreath += 1 diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 43eb2e40e28..2548c764ecf 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -46,11 +46,10 @@ if(!ismob(M)) return user << "You stab [M] with the pen." - M << "\red You feel a tiny prick!" +// M << "\red You feel a tiny prick!" //That's a whole lot of meta! M.attack_log += text("\[[time_stamp()]\] Has been stabbed with [name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [name] to stab [M.name] ([M.ckey])") - - log_attack("[user.name] ([user.ckey]) Used the [name] to stab [M.name] ([M.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) Used the [name] to stab [M.name] ([M.ckey]) (JMP)") return diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 8f2ea173cf8..083e10cb5f4 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -107,12 +107,10 @@ if(istype(firer, /mob)) M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]" firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]" - log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]") - msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG + msg_admin_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src] (JMP)") //BS12 EDIT ALG else M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]" - log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src.type]") - msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG + msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src] (JMP)") //BS12 EDIT ALG spawn(0) diff --git a/code/modules/reagents/dartgun.dm b/code/modules/reagents/dartgun.dm index e89792c62c6..33e29dc809f 100644 --- a/code/modules/reagents/dartgun.dm +++ b/code/modules/reagents/dartgun.dm @@ -177,13 +177,13 @@ R += A.id + " (" R += num2text(A.volume) + ")," if (istype(M, /mob)) - M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a syringegun ([R])" - user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a syringegun ([R])" - log_attack("[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])") + M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a dartgun ([R])" + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a dartgun ([R])" + msg_admin_attack("[user] ([user.ckey]) shot [M] ([M.ckey]) with a dartgun ([R]) (JMP)") else - M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a syringegun ([R])" - log_attack("UNKNOWN shot [M] ([M.ckey]) with a syringegun ([R])") + M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a dartgun ([R])" + msg_admin_attack("UNKNOWN shot [M] ([M.ckey]) with a dartgun ([R]) (JMP)") if(D.reagents) D.reagents.trans_to(M, 15) diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 22ea087b13f..7455e8118be 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -63,15 +63,12 @@ for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] squirts something into []'s eyes!", user, target), 1) src.reagents.reaction(target, TOUCH) - var/mob/M = target - var/R - if(src.reagents) - for(var/datum/reagent/A in src.reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," - user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" - M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])") + + var/mob/living/M = target + var/contained = english_list(src.reagents) + M.attack_log += text("\[[time_stamp()]\] Has been squirted ([contained]) with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to squirt [M.name] ([M.key]) with [contained]") + msg_admin_attack("[user.name] ([user.ckey]) squirted [M.name] ([M.key]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") trans = src.reagents.trans_to(target, amount_per_transfer_from_this) user << "\blue You transfer [trans] units of the solution." diff --git a/code/modules/reagents/reagent_containers/food/condiment.dm b/code/modules/reagents/reagent_containers/food/condiment.dm index e360062fec0..9d16f0b356f 100644 --- a/code/modules/reagents/reagent_containers/food/condiment.dm +++ b/code/modules/reagents/reagent_containers/food/condiment.dm @@ -45,8 +45,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]") user.attack_log += text("\[[time_stamp()]\] Fed [src.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]") - - log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") if(reagents.total_volume) reagents.reaction(M, INGEST) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index dfa67cdef29..66a1b3e343e 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -45,8 +45,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]") user.attack_log += text("\[[time_stamp()]\] Fed [M.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]") - - log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)]) (JMP)") if(reagents.total_volume) reagents.reaction(M, INGEST) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 36016e92c14..c958b351fa5 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -99,7 +99,7 @@ //Attack logs user.attack_log += text("\[[time_stamp()]\] Has attacked [target.name] ([target.ckey]) with a bottle!") target.attack_log += text("\[[time_stamp()]\] Has been smashed with a bottle by [user.name] ([user.ckey])") - log_attack("[user.name] ([user.ckey]) attacked [target.name] with a bottle. ([target.ckey])") + msg_admin_attack("[user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with a bottle. (INTENT: [uppertext(user.a_intent)]) (JMP)") //The reagents in the bottle splash all over the target, thanks for the idea Nodrak if(src.reagents) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index f15c3410947..664a4363442 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -66,8 +66,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]") user.attack_log += text("\[[time_stamp()]\] Fed [src.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]") - - log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])") for(var/mob/O in viewers(world.view, user)) O.show_message("\red [user] feeds [M] [src].", 1) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 9c8b004c479..79c64304d51 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -72,16 +72,14 @@ return if(ismob(target) && target.reagents && reagents.total_volume) - var/mob/M = target user << "\blue You splash the solution onto [target]." - var/R - if(src.reagents) - for(var/datum/reagent/A in src.reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," - user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] splashed [M]/[M.ckey] with ([R])" - M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] splashed [M]/[M.ckey] with ([R])" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] splashed [M]/[M.ckey] with ([R])") + + var/mob/living/M = target + var/contained = english_list(src.reagents) + M.attack_log += text("\[[time_stamp()]\] Has been splashed ([contained]) with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to splash [M.name] ([M.key]) with [contained]") + msg_admin_attack("[user.name] ([user.ckey]) splashed [M.name] ([M.key]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") + for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] has been splashed with something by []!", target, user), 1) src.reagents.reaction(target, TOUCH) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 0b4a3c1e7e9..bdecdece517 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -44,10 +44,9 @@ user << "\blue [trans] units injected. [reagents.total_volume] units remaining in [src]." var/contained = english_list(injected) - - log_attack("[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])") M.attack_log += text("\[[time_stamp()]\] Has been injected ([contained]) with [src.name] by [user.name] ([user.ckey])") - user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to inject [M.name] ([M.ckey]) with [contained]") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to inject [M.name] ([M.key]) with [contained]") + msg_admin_attack("[user.name] ([user.ckey]) injected [M.name] ([M.key]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") return diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 0f89ad73488..3c4bbcdb7de 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -43,8 +43,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]") user.attack_log += text("\[[time_stamp()]\] Fed [M.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]") - - log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)]) (JMP)") if(reagents.total_volume) reagents.reaction(M, INGEST) diff --git a/code/modules/reagents/reagent_containers/robodropper.dm b/code/modules/reagents/reagent_containers/robodropper.dm index a42d588f4ba..4b199d2011c 100644 --- a/code/modules/reagents/reagent_containers/robodropper.dm +++ b/code/modules/reagents/reagent_containers/robodropper.dm @@ -61,15 +61,13 @@ for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] squirts something into []'s eyes!", user, target), 1) src.reagents.reaction(target, TOUCH) + var/mob/M = target - var/R - if(src.reagents) - for(var/datum/reagent/A in src.reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," - user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" - M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] squirted [M]/[M.ckey] with ([R])") + var/contained = english_list(src.reagents) + M.attack_log += text("\[[time_stamp()]\] Has been squirted ([contained]) with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to squirt [M.name] ([M.key]) with [contained]") + msg_admin_attack("[user.name] ([user.ckey]) squirted [M.name] ([M.key]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") + trans = src.reagents.trans_to(target, amount_per_transfer_from_this) user << "\blue You transfer [trans] units of the solution." diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 38e9c6f6882..1aba4f49343 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -145,6 +145,14 @@ for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] injects [] with the syringe!", user, target), 1) + + if(istype(target,/mob/living)) + var/mob/living/M = target + var/contained = english_list(src.reagents) + M.attack_log += text("\[[time_stamp()]\] Has been injected ([contained]) with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to inject [M.name] ([M.key]) with [contained]") + msg_admin_attack("[user.name] ([user.ckey]) injected [M.name] ([M.key]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") + src.reagents.reaction(target, INGEST) if(ismob(target) && target == user) src.reagents.reaction(target, INGEST) @@ -197,8 +205,7 @@ user.attack_log += "\[[time_stamp()]\] Attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" target.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - - log_attack(" [user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") if(istype(target, /mob/living/carbon/human)) diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm index eaa372bd45d..2600d11676c 100644 --- a/code/modules/reagents/syringe_gun.dm +++ b/code/modules/reagents/syringe_gun.dm @@ -87,11 +87,11 @@ if (istype(M, /mob)) M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a syringegun ([R])" user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a syringegun ([R])" - log_attack("[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])") + msg_admin_attack("[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]) (JMP)") else M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a syringegun ([R])" - log_attack("UNKNOWN shot [M] ([M.ckey]) with a syringegun ([R])") + msg_admin_attack("UNKNOWN shot [M] ([M.ckey]) with a syringegun ([R]) (JMP)") if(D.reagents) D.reagents.trans_to(M, 15) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 9f7d9f9c8ee..de028bd2967 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -114,7 +114,9 @@ for (var/mob/C in viewers(src)) C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3) del(G) - log_attack("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.") + usr.attack_log += text("\[[time_stamp()]\] Has placed [GM.name] ([GM.ckey]) in disposals.") + GM.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [usr.name] ([usr.ckey])") + msg_admin_attack("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit. (JMP)") return if(!I) return @@ -157,7 +159,10 @@ else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis) msg = "[user.name] stuffs [target.name] into the [src]!" user << "You stuff [target.name] into the [src]!" - log_attack("[user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.") + + user.attack_log += text("\[[time_stamp()]\] Has placed [target.name] ([target.ckey]) in disposals.") + target.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [user.name] ([user.ckey])") + msg_admin_attack("[user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit. (JMP)") else return if (target.client) diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm index 977f90489ec..f4d81d37f59 100644 --- a/code/modules/surgery/braincore.dm +++ b/code/modules/surgery/braincore.dm @@ -87,10 +87,7 @@ user.attack_log += "\[[time_stamp()]\] Debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])" target.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])" - - log_admin("ATTACK: [user] ([user.ckey]) debrained [target] ([target.ckey]) with [tool].") - message_admins("ATTACK: [user] ([user.ckey]) debrained [target] ([target.ckey]) with [tool].") - log_attack("[user.name] ([user.ckey]) debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])") + msg_admin_attack("[user.name] ([user.ckey]) debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") var/obj/item/brain/B = new(target.loc) B.transfer_identity(target) From 0cb361f737c2b2224a0e40fa7ae33a7cc157bf1a Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 03:37:11 +0100 Subject: [PATCH 083/226] Removed undeeded "ATTACK:" --- code/game/objects/items.dm | 4 ++-- code/game/objects/items/weapons/explosives.dm | 2 ++ code/game/objects/items/weapons/weaponry.dm | 2 -- code/modules/organs/organ_external.dm | 3 +-- code/modules/projectiles/projectile.dm | 2 +- code/modules/reagents/reagent_containers/food/condiment.dm | 2 +- code/modules/reagents/reagent_containers/syringes.dm | 2 +- 7 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 21936e52f11..7bea0644e74 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -226,7 +226,7 @@ M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])" - msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]) (JMP)") //BS12 EDIT ALG + msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]) (JMP)") //BS12 EDIT ALG //spawn(1800) // this wont work right // M.lastattacker = null @@ -645,7 +645,7 @@ user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") //BS12 EDIT ALG + msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") //BS12 EDIT ALG src.add_fingerprint(user) //if((CLUMSY in user.mutations) && prob(50)) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 3c4f97c130d..d9a72058aee 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -12,8 +12,10 @@ return user << "Planting explosives..." if(ismob(target)) + user.attack_log += "\[[time_stamp()]\] [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])" msg_admin_attack("[user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey]) (JMP)") + user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!") if(do_after(user, 50) && in_range(user, target)) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 530246ccf76..922d9263766 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -37,8 +37,6 @@ M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].") - message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].") msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index de037500009..7441ac88e1b 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -884,8 +884,7 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) user.attack_log += "\[[time_stamp()]\] Debrained [brainmob.name] ([brainmob.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" brainmob.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - log_admin("ATTACK: [brainmob] ([brainmob.ckey]) debrained [user] ([user.ckey]).") - message_admins("ATTACK: [brainmob] ([brainmob.ckey]) debrained [user] ([user.ckey]).") + msg_admin_attack("[brainmob] ([brainmob.ckey]) debrained [user] ([user.ckey]) (INTENT: [uppertext(user.a_intent)]) (JMP)") var/obj/item/brain/B = new(loc) B.transfer_identity(brainmob) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 083e10cb5f4..c12f900bc02 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -110,7 +110,7 @@ msg_admin_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src] (JMP)") //BS12 EDIT ALG else M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]" - msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src] (JMP)") //BS12 EDIT ALG + msg_admin_attack("UNKNOWN shot [M] ([M.ckey]) with a [src] (JMP)") //BS12 EDIT ALG spawn(0) diff --git a/code/modules/reagents/reagent_containers/food/condiment.dm b/code/modules/reagents/reagent_containers/food/condiment.dm index 9d16f0b356f..73e44a85f02 100644 --- a/code/modules/reagents/reagent_containers/food/condiment.dm +++ b/code/modules/reagents/reagent_containers/food/condiment.dm @@ -45,7 +45,7 @@ M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]") user.attack_log += text("\[[time_stamp()]\] Fed [src.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]") - msg_admin_attack("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") + msg_admin_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") if(reagents.total_volume) reagents.reaction(M, INGEST) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 1aba4f49343..e36037ef254 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -205,7 +205,7 @@ user.attack_log += "\[[time_stamp()]\] Attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" target.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") + msg_admin_attack("[user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") if(istype(target, /mob/living/carbon/human)) From 3557e12943e666e8809e58d50d17ae33782459c9 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 12:49:23 +0100 Subject: [PATCH 084/226] Suits with shoes protect against glass shards. --- code/game/objects/items/stacks/sheets/glass.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 0169f5d894c..a7e6d57bb37 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -283,7 +283,7 @@ playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(!H.shoes) + if(!H.shoes && !(H.wear_suit.body_parts_covered & FEET)) var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) if(affecting.status & ORGAN_ROBOT) return From f0eecb3892cc7f7b11bf0afc011c9656b8c945ae Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 13:16:30 +0100 Subject: [PATCH 085/226] Prison ID tag fix #3597 master version. --- maps/tgstation2.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 90d411b2343..cbed9685bb5 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -72,8 +72,8 @@ "abt" = (/obj/machinery/magnetic_module,/obj/structure/target_stake,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abu" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/security/prison) -"abw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) -"abx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prison"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prison"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "aby" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/security/prison) "abz" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison) "abA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table,/obj/item/weapon/storage/box/cups,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/security/prison) From 8ee601aa9af945f8f263a02f76a10c13a690691b Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 13:27:07 +0100 Subject: [PATCH 086/226] Fixes thermite runtimes. --- code/game/turfs/simulated/walls.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index f06eb81ba32..a8d73263661 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -337,10 +337,12 @@ O.density = 1 O.layer = 5 - var/turf/simulated/floor/F = ChangeTurf(/turf/simulated/floor/plating) + src.ChangeTurf(/turf/simulated/floor/plating) + + var/turf/simulated/floor/F = src F.burn_tile() F.icon_state = "wall_thermite" - user << "The thermite melts through the wall." + user << "The thermite starts melting through the wall." spawn(100) if(O) del(O) From ccaa4513138f620fff0729255ed8d1c26d9cf56b Mon Sep 17 00:00:00 2001 From: "Mark Aherne (Faerdan)" Date: Wed, 28 Aug 2013 17:13:25 +0100 Subject: [PATCH 087/226] Added Nano UI Chemistry Dispenser. Fixed UI update issue with non auto-updating UIs. Misc tweaks for CSS and JS for UI styling. --- code/modules/client/client procs.dm | 1 + code/modules/nano/nanomanager.dm | 2 +- code/modules/nano/nanoui.dm | 3 + code/modules/reagents/Chemistry-Machinery.dm | 128 +++++++++---------- nano/css/shared.css | 12 ++ nano/js/nano_base_helpers.js | 21 ++- nano/js/nano_update.js | 9 +- nano/templates/chem_dispenser.tmpl | 59 +++++++++ 8 files changed, 162 insertions(+), 73 deletions(-) create mode 100644 nano/templates/chem_dispenser.tmpl diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 5f091280210..15a8b47bddd 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -249,6 +249,7 @@ 'nano/js/nano_base_helpers.js', 'nano/css/shared.css', 'nano/css/icons.css', + 'nano/templates/chem_dispenser.tmpl', 'nano/templates/cryo.tmpl', 'nano/images/uiBackground.png', 'nano/images/uiIcons16.png', diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm index c3edfa04ea9..45bb25f115e 100644 --- a/code/modules/nano/nanomanager.dm +++ b/code/modules/nano/nanomanager.dm @@ -29,7 +29,7 @@ for (var/ui_key in open_uis[src_object_key]) for (var/datum/nanoui/ui in open_uis[src_object_key][ui_key]) if(ui && ui.src_object && ui.user) - ui.process() + ui.process(1) update_count++ return update_count diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 565295d3f99..15dc1feec9c 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -188,7 +188,10 @@ return if (src_object.Topic(href, href_list)) + usr << "Update after Topic" nanomanager.update_uis(src_object) // update all UIs attached to src_object + else + usr << "Don't update after Topic" /datum/nanoui/proc/get_footer() var/scriptsContent = "" diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 9435fee6a01..a85a19de196 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -3,7 +3,7 @@ #define GAS 3 /obj/machinery/chem_dispenser - name = "chem dispenser" + name = "Chem Dispenser" density = 1 anchored = 1 icon = 'icons/obj/chemical.dmi' @@ -65,74 +65,81 @@ del(src) return -/obj/machinery/chem_dispenser/proc/updateWindow(mob/user as mob) - winset(user, "chemdispenser.energy", "text=\"Energy: [src.energy]\"") - winset(user, "chemdispenser.amount", "text=\"Amount: [src.amount]\"") +/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main") + if(stat & (BROKEN|NOPOWER)) return + if(user.stat || user.restrained()) return + + var/data[0] + + data["amount"] = amount + data["energy"] = energy + + data["isBeakerLoaded"] = beaker ? 1 : 0 + + + var beakerContents[0] + var beakerCurrentVolume = 0 + if(beaker && beaker:reagents && beaker:reagents.reagent_list.len) + for(var/datum/reagent/R in beaker:reagents.reagent_list) + beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerCurrentVolume += R.volume + data["beakerContents"] = beakerContents + if (beaker) - winset(user, "chemdispenser.eject", "text=\"Eject beaker\"") + data["beakerCurrentVolume"] = beakerCurrentVolume + data["beakerMaxVolume"] = beaker:volume else - winset(user, "chemdispenser.eject", "text=\"\[Insert beaker\]\"") -/obj/machinery/chem_dispenser/proc/initWindow(mob/user as mob) - var/i = 0 - var/list/nameparams = params2list(winget(user, "chemdispenser_reagents.template_name", "pos;size;type;image;image-mode")) - var/list/buttonparams = params2list(winget(user, "chemdispenser_reagents.template_dispense", "pos;size;type;image;image-mode;text;is-flat")) - for(var/re in dispensable_reagents) + data["beakerCurrentVolume"] = null + data["beakerMaxVolume"] = null + + var chemicals[0] + for (var/re in dispensable_reagents) var/datum/reagent/temp = chemical_reagents_list[re] if(temp) - var/list/newparams1 = nameparams.Copy() - var/list/newparams2 = buttonparams.Copy() - var/posy = 8 + 40 * i - newparams1["pos"] = text("8,[posy]") - newparams2["pos"] = text("248,[posy]") - newparams1["parent"] = "chemdispenser_reagents" - newparams2["parent"] = "chemdispenser_reagents" - newparams1["text"] = temp.name - newparams2["command"] = text("skincmd \"chemdispenser;[temp.id]\"") - winset(user, "chemdispenser_reagent_name[i]", list2params(newparams1)) - winset(user, "chemdispenser_reagent_dispense[i]", list2params(newparams2)) - i++ - winset(user, "chemdispenser_reagents", "size=340x[8 + 40 * i]") + chemicals.Add(list(list("title" = temp.name, "id" = temp.id, "commands" = list("dispense" = temp.id)))) // list in a list because Byond merges the first list... + data["chemicals"] = chemicals -/obj/machinery/chem_dispenser/SkinCmd(mob/user as mob, var/data as text) - if(stat & (BROKEN|NOPOWER)) return - if(usr.stat || usr.restrained()) return - if(!in_range(src, usr)) return + //user << list2json(data) - usr.set_machine(src) - - if (data == "amountc") - var/num = input("Enter desired output amount", "Amount", "30") as num - if (num) - amount = text2num(num) - else if (data == "eject") - if (src.beaker) - var/obj/item/weapon/reagent_containers/glass/B = src.beaker - B.loc = src.loc - src.beaker = null - else if (copytext(data, 1, 7) == "amount") - if (text2num(copytext(data, 7))) - amount = text2num(copytext(data, 7)) + var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key) + if (!ui) + ui = new(user, src, ui_key, "chem_dispenser.tmpl", "Chem Dispenser 5000", 370, 585) + // When the UI is first opened this is the data it will use + ui.set_initial_data(data) + ui.open() else - if (dispensable_reagents.Find(data) && beaker != null) + // The UI is already open so push the new data to it + ui.push_data(data) + return + +/obj/machinery/chem_dispenser/Topic(href, href_list) + if(stat & (NOPOWER|BROKEN)) + return 0 // don't update UIs attached to this object + + if(href_list["amount"]) + amount = round(text2num(href_list["amount"]), 5) // round to nearest 5 + if (amount < 0) // Since the user can actually type the commands himself, some sanity checking + amount = 0 + if (amount > 100) + amount = 100 + + if(href_list["dispense"]) + if (dispensable_reagents.Find(href_list["dispense"]) && beaker != null) var/obj/item/weapon/reagent_containers/glass/B = src.beaker var/datum/reagents/R = B.reagents var/space = R.maximum_volume - R.total_volume - R.add_reagent(data, min(amount, energy * 10, space)) + R.add_reagent(href_list["dispense"], min(amount, energy * 10, space)) energy = max(energy - min(amount, energy * 10, space) / 10, 0) - amount = round(amount, 10) // Chem dispenser doesnt really have that much prescion - if (amount < 0) // Since the user can actually type the commands himself, some sanity checking - amount = 0 - if (amount > 100) - amount = 100 + if(href_list["ejectBeaker"]) + if(beaker) + var/obj/item/weapon/reagent_containers/glass/B = beaker + B.loc = loc + beaker = null - for(var/mob/player in player_list) - if (player.machine == src && player.client) - updateWindow(player) - - src.add_fingerprint(usr) - return + add_fingerprint(usr) + return 1 // update UIs attached to this object /obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/reagent_containers/glass/B as obj, var/mob/user as mob) if(isrobot(user)) @@ -149,9 +156,7 @@ user.drop_item() B.loc = src user << "You add the beaker to the machine!" - for(var/mob/player in player_list) - if (player.machine == src && player.client) - updateWindow(player) + nanomanager.update_uis(src) // update all UIs attached to src /obj/machinery/chem_dispenser/attack_ai(mob/user as mob) return src.attack_hand(user) @@ -162,13 +167,8 @@ /obj/machinery/chem_dispenser/attack_hand(mob/user as mob) if(stat & BROKEN) return - user.set_machine(src) - initWindow(user) - updateWindow(user) - winshow(user, "chemdispenser", 1) - user.skincmds["chemdispenser"] = src - return + ui_interact(user) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/nano/css/shared.css b/nano/css/shared.css index b8c75eac04c..2cfb8b466c3 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -258,6 +258,7 @@ div.notice { float: left; width: 30%; + color: #e9c183; } .itemContent @@ -382,4 +383,15 @@ div.notice color: #ffffff; background: #999999; border-color: #666666; +} + +.fixedLeft +{ + width: 110px; + float: left; +} + +.floatRight +{ + float: right; } \ No newline at end of file diff --git a/nano/js/nano_base_helpers.js b/nano/js/nano_base_helpers.js index d1c4e358807..f46c5828f3a 100644 --- a/nano/js/nano_base_helpers.js +++ b/nano/js/nano_base_helpers.js @@ -15,20 +15,31 @@ NanoBaseHelpers = function () { $.views.helpers({ // Generate a Byond link - link: function( text, icon, parameters, status ) { + link: function( text, icon, parameters, status, elementClass, elementId) { var iconHtml = ''; - if (typeof icon != 'undefined' && icon != null) + if (typeof icon != 'undefined' && icon) { iconHtml = '
'; } - if (typeof status != 'undefined' && status != null) + if (typeof elementClass == 'undefined' || !elementClass) { - return ''; + elementClass = ''; } - return ''; + var elementIdHtml = ''; + if (typeof elementId != 'undefined' && elementId) + { + elementIdHtml = 'id="' + elementId + '"'; + } + + if (typeof status != 'undefined' && status) + { + return ''; + } + + return ''; }, // Round a number to the nearest integer round: function(number) { diff --git a/nano/js/nano_update.js b/nano/js/nano_update.js index 1034ac89795..ff8bf7b27b2 100644 --- a/nano/js/nano_update.js +++ b/nano/js/nano_update.js @@ -101,9 +101,12 @@ NanoUpdate = function () $('body').oneTime(300, 'enableClick', function () { _canClick = true; }); - $(this).oneTime(300, 'linkPending', function () { - $(this).addClass('linkPending'); - }); + if (updateData['ui']['status'] == 2) + { + $(this).oneTime(300, 'linkPending', function () { + $(this).addClass('linkPending'); + }); + } window.location.href = href; } }); diff --git a/nano/templates/chem_dispenser.tmpl b/nano/templates/chem_dispenser.tmpl new file mode 100644 index 00000000000..4add36586ef --- /dev/null +++ b/nano/templates/chem_dispenser.tmpl @@ -0,0 +1,59 @@ +
+
+ Energy: +
+
+ {^{:energy}} +
+
+ +
+
+ Dispense: +
+
+ {^{:~link('5', 'gear', {'amount' : 5}, (amount == 5) ? 'selected' : null)}} + {^{:~link('10', 'gear', {'amount' : 10}, (amount == 10) ? 'selected' : null)}} + {^{:~link('20', 'gear', {'amount' : 20}, (amount == 20) ? 'selected' : null)}} + {^{:~link('30', 'gear', {'amount' : 30}, (amount == 30) ? 'selected' : null)}} + {^{:~link('50', 'gear', {'amount' : 50}, (amount == 50) ? 'selected' : null)}} +
+
+
 
+
+
+ Chemical Dispenser +
+
+
+
+ {^{for chemicals}} + {^{:~link(title, 'circle-arrow-s', commands, null, 'fixedLeft')}} + {{/for}} +
+
+
 
+
+
+ Beaker Contents +
+
+ {^{:~link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, isBeakerLoaded ? null : 'disabled', 'floatRight')}} +
+
+
+
+
+ {^{if isBeakerLoaded}} + Volume: {^{:beakerCurrentVolume}} / {^{:beakerMaxVolume}}
+ {^{for beakerContents}} + {^{:volume}} units of {^{:name}}
+ {{else}} + Beaker is empty + {{/for}} + {{else}} + No beaker loaded + {{/if}} +
+
+
\ No newline at end of file From 0219ffe41ea4001911fabc4222e9ba7b30999d8b Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 17:38:21 +0100 Subject: [PATCH 088/226] Pull damage, with harsher damage in crit. Soft crit now at 0 health, you no longer suffocate in softcrit. Being between 0 to -50 health will cause you to go into shock. Below that you pass out and stop breathing. Stasis bags clone damage reduced to stop people dieing in them so much. --- code/controllers/configuration.dm | 3 +++ code/game/objects/items/bodybag.dm | 4 ++-- .../modules/mob/living/carbon/human/inventory.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 12 ++++++------ code/modules/mob/living/living.dm | 16 ++++++++++++++++ code/modules/mob/mob.dm | 14 ++++++++++---- 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index a22c9eec5f1..0db84249c6c 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -80,6 +80,7 @@ //game_options.txt configs + var/health_threshold_softcrit = 0 var/health_threshold_crit = 0 var/health_threshold_dead = -100 @@ -443,6 +444,8 @@ switch(name) if("health_threshold_crit") config.health_threshold_crit = value + if("health_threshold_softcrit") + config.health_threshold_softcrit = value if("health_threshold_dead") config.health_threshold_dead = value if("revival_pod_plants") diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 88c15656088..ef188a3112a 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -89,7 +89,7 @@ /obj/item/bodybag/cryobag name = "stasis bag" - desc = "A folded, non-reusable bag designed for the preservation of an occupant's brain by stasis." + desc = "A folded, non-reusable bag designed to prevent additional damage to an occupant at the cost of genetic damage." icon = 'icons/obj/cryobag.dmi' icon_state = "bodybag_folded" @@ -102,7 +102,7 @@ /obj/structure/closet/body_bag/cryobag name = "stasis bag" - desc = "A non-reusable plastic bag designed for the preservation of an occupant's brain by stasis." + desc = "A non-reusable plastic bag designed to prevent additional damage to an occupant at the cost of genetic damage." icon = 'icons/obj/cryobag.dmi' item_path = /obj/item/bodybag/cryobag var/used = 0 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 48e9f89502c..698c169b7a2 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -634,7 +634,7 @@ It can still be worn/put on as normal. W.add_fingerprint(source) if("CPR") if ((target.health > config.health_threshold_dead && target.health < config.health_threshold_crit)) - var/suff = min(target.getOxyLoss(), 7) + var/suff = min(target.getOxyLoss(), 5) //Pre-merge level, less healing, more prevention of dieing. target.adjustOxyLoss(-suff) target.updatehealth() for(var/mob/O in viewers(source, null)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index f026d0c50cd..91ca5e92231 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -294,7 +294,7 @@ var/datum/gas_mixture/environment = loc.return_air() var/datum/gas_mixture/breath // HACK NEED CHANGING LATER - if(health < 0) + if(health < config.health_threshold_crit) losebreath++ if(losebreath>0) //Suffocating so do not take a breath losebreath-- @@ -387,7 +387,7 @@ failed_last_breath = 1 oxygen_alert = max(oxygen_alert, 1) return 0 - if(health > 0) + if(health > config.health_threshold_crit) adjustOxyLoss(HUMAN_MAX_OXYLOSS) failed_last_breath = 1 else @@ -1413,10 +1413,10 @@ if(status_flags & GODMODE) return 0 //godmode if(analgesic) return // analgesic avoids all traumatic shock temporarily - if(health < 0)// health 0 makes you immediately collapse - shock_stage = max(shock_stage, 61) + if(health < config.health_threshold_softcrit)// health 0 makes you immediately collapse + shock_stage = max(shock_stage, 70) - if(traumatic_shock >= 80) + if(traumatic_shock >= 80 || health < config.health_threshold_softcrit) shock_stage += 1 else shock_stage = min(shock_stage, 100) @@ -1443,7 +1443,7 @@ if(shock_stage == 80) src << ""+pick("You see a light at the end of the tunnel!", "You feel like you could die any moment now.", "You're about to lose consciousness.") - if (shock_stage > 80) + if(shock_stage > 80) Paralyse(rand(15,28)) proc/handle_pulse() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 162a69b49c7..3442a7fba5e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -359,6 +359,22 @@ var/turf/location = M.loc if (istype(location, /turf/simulated)) location.add_blood(M) + //pull damage with injured people + if(prob(25)) + M.adjustBruteLoss(1) + visible_message("\red \The [M]'s wounds open more from being dragged!") + if(M.pull_damage()) + if(prob(25)) + M.adjustBruteLoss(2) + visible_message("\red \The [M]'s wounds worsen terribly from being dragged!") + var/turf/location = M.loc + if (istype(location, /turf/simulated)) + location.add_blood(M) + if(ishuman(M)) + var/mob/living/carbon/H = M + var/blood_volume = round(H:vessel.get_reagent_amount("blood")) + if(blood_volume > 0) + H:vessel.remove_reagent("blood",1) step(pulling, get_dir(pulling.loc, T)) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3677ceac70c..06afa1e82b9 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -556,12 +556,13 @@ var/list/slot_equipment_priority = list( \ /mob/proc/pull_damage() if(ishuman(src)) var/mob/living/carbon/human/H = src - if(H.health - H.halloss <= config.health_threshold_crit) + if(H.health - H.halloss <= config.health_threshold_softcrit) for(var/name in H.organs_by_name) var/datum/organ/external/e = H.organs_by_name[name] - if((H.lying) && ((e.status & ORGAN_BROKEN && !(e.status & ORGAN_SPLINTED)) || e.status & ORGAN_BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100)) - return 1 - break + if(H.lying) + if(((e.status & ORGAN_BROKEN && !(e.status & ORGAN_SPLINTED)) || e.status & ORGAN_BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100)) + return 1 + break return 0 /mob/MouseDrop(mob/M as mob) @@ -608,6 +609,11 @@ var/list/slot_equipment_priority = list( \ src.pulling = AM AM.pulledby = src + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + if(H.pull_damage()) + src << "\red Pulling \the [H] in their current condition would probably be a bad idea." + //Attempted fix for people flying away through space when cuffed and dragged. if(ismob(AM)) var/mob/pulled = AM From 9fed22c056baaecd595680e732227a19da66e224 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Wed, 28 Aug 2013 18:49:00 +0100 Subject: [PATCH 089/226] Space no longer freezes mobs. Signed-off-by: Mloc-Argent --- code/game/turfs/space/space.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 57 ++++++++++---------- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 95720295c87..4323ee0adb9 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -3,7 +3,7 @@ name = "\proper space" icon_state = "0" - temperature = TCMB + temperature = T0C thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT // heat_capacity = 700000 No. diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d61cdd1cc7c..f5314954069 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -526,38 +526,37 @@ proc/handle_environment(datum/gas_mixture/environment) if(!environment) return - var/loc_temp = T0C - if(istype(loc, /obj/mecha)) - var/obj/mecha/M = loc - loc_temp = M.return_temperature() - else if(istype(get_turf(src), /turf/space)) - var/turf/heat_turf = get_turf(src) - loc_temp = heat_turf.temperature - else if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) - loc_temp = loc:air_contents.temperature - else - loc_temp = environment.temperature + if(!istype(get_turf(src), /turf/space)) //space is not meant to change your body temperature. + var/loc_temp = T0C + if(istype(loc, /obj/mecha)) + var/obj/mecha/M = loc + loc_temp = M.return_temperature() + else if(istype(get_turf(src), /turf/space)) + else if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) + loc_temp = loc:air_contents.temperature + else + loc_temp = environment.temperature - //world << "Loc temp: [loc_temp] - Body temp: [bodytemperature] - Fireloss: [getFireLoss()] - Thermal protection: [get_thermal_protection()] - Fire protection: [thermal_protection + add_fire_protection(loc_temp)] - Heat capacity: [environment_heat_capacity] - Location: [loc] - src: [src]" + //world << "Loc temp: [loc_temp] - Body temp: [bodytemperature] - Fireloss: [getFireLoss()] - Thermal protection: [get_thermal_protection()] - Fire protection: [thermal_protection + add_fire_protection(loc_temp)] - Heat capacity: [environment_heat_capacity] - Location: [loc] - src: [src]" - //Body temperature is adjusted in two steps. Firstly your body tries to stabilize itself a bit. - if(stat != 2) - stabilize_temperature_from_calories() + //Body temperature is adjusted in two steps. Firstly your body tries to stabilize itself a bit. + if(stat != 2) + stabilize_temperature_from_calories() -// log_debug("Adjusting to atmosphere.") - //After then, it reacts to the surrounding atmosphere based on your thermal protection - if(loc_temp < BODYTEMP_COLD_DAMAGE_LIMIT) //Place is colder than we are - var/thermal_protection = get_cold_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to. - if(thermal_protection < 1) - var/amt = min((1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_COLD_DIVISOR), BODYTEMP_COOLING_MAX) -// log_debug("[loc_temp] is Cold. Cooling by [amt]") - bodytemperature += amt - else if (loc_temp > BODYTEMP_HEAT_DAMAGE_LIMIT) //Place is hotter than we are - var/thermal_protection = get_heat_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to. - if(thermal_protection < 1) - var/amt = min((1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX) -// log_debug("[loc_temp] is Heat. Heating up by [amt]") - bodytemperature += amt + // log_debug("Adjusting to atmosphere.") + //After then, it reacts to the surrounding atmosphere based on your thermal protection + if(loc_temp < BODYTEMP_COLD_DAMAGE_LIMIT) //Place is colder than we are + var/thermal_protection = get_cold_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to. + if(thermal_protection < 1) + var/amt = min((1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_COLD_DIVISOR), BODYTEMP_COOLING_MAX) + // log_debug("[loc_temp] is Cold. Cooling by [amt]") + bodytemperature += amt + else if (loc_temp > BODYTEMP_HEAT_DAMAGE_LIMIT) //Place is hotter than we are + var/thermal_protection = get_heat_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to. + if(thermal_protection < 1) + var/amt = min((1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX) + // log_debug("[loc_temp] is Heat. Heating up by [amt]") + bodytemperature += amt // +/- 50 degrees from 310.15K is the 'safe' zone, where no damage is dealt. if(bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT) From 74c3975ae34c876e088555f060e56cde2f11b4c0 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 19:43:36 +0100 Subject: [PATCH 090/226] Fixes shock going up too much. --- code/modules/mob/living/carbon/human/life.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 91ca5e92231..ad8647d8588 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1414,10 +1414,12 @@ if(analgesic) return // analgesic avoids all traumatic shock temporarily if(health < config.health_threshold_softcrit)// health 0 makes you immediately collapse - shock_stage = max(shock_stage, 70) + shock_stage = max(shock_stage, 61) - if(traumatic_shock >= 80 || health < config.health_threshold_softcrit) + if(traumatic_shock >= 80) shock_stage += 1 + else if(health < config.health_threshold_softcrit) + shock_stage = max(shock_stage, 61) else shock_stage = min(shock_stage, 100) shock_stage = max(shock_stage-1, 0) From c483d58e34c837d62bfe5a628b0dc07664c12494 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 28 Aug 2013 19:44:02 +0100 Subject: [PATCH 091/226] Renabled admin secrets, as they are are admin only. --- code/modules/admin/admin.dm | 1 - code/modules/admin/topic.dm | 89 ++++++++++++++++++++++++++++++++++++- 2 files changed, 87 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index bb1717a8f55..c4b877d14bd 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -560,7 +560,6 @@ var/global/floorIsLava = 0 dat += {" Admin Secrets

- Remove all bombs currently in existence
Bombing List
Show current traitors and objectives
Show last [length(lastsignalers)] signalers
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index f8165e848cd..1fd7084901f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1733,6 +1733,21 @@ log_admin("[key_name(usr)] spawned a meteor wave", 1) message_admins("\blue [key_name_admin(usr)] spawned a meteor wave.", 1) new /datum/event/meteor_wave + if("goblob") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","Blob") + log_admin("[key_name(usr)] spawned a blob", 1) + message_admins("\blue [key_name_admin(usr)] spawned a blob.", 1) + new /datum/event/blob + + if("aliens") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","Aliens") + log_admin("[key_name(usr)] spawned an alien infestation", 1) + message_admins("\blue [key_name_admin(usr)] attempted an alien infestation", 1) + new /datum/event/alien_infestation + + if("power") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","P") @@ -1967,6 +1982,76 @@ spawn(0) sleep(rand(30,400)) Wall.ex_act(rand(2,1)) */ + if("wave") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","MW") + new /datum/event/meteor_wave + + if("gravanomalies") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","GA") + command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") + world << sound('sound/AI/granomalies.ogg') + var/turf/T = pick(blobstart) + var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) + spawn(rand(100, 600)) + del(bh) + + if("timeanomalies") //dear god this code was awful :P Still needs further optimisation + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","STA") + //moved to its own dm so I could split it up and prevent the spawns copying variables over and over + //can be found in code\game\game_modes\events\wormholes.dm + wormhole_event() + + if("goblob") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","BL") + mini_blob_event() + message_admins("[key_name_admin(usr)] has spawned blob", 1) + if("aliens") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","AL") + if(aliens_allowed) + new /datum/event/alien_infestation + message_admins("[key_name_admin(usr)] has spawned aliens", 1) + if("alien_silent") //replaces the spawn_xeno verb + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ALS") + if(aliens_allowed) + create_xeno() + if("spiders") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","SL") + new /datum/event/spider_infestation + message_admins("[key_name_admin(usr)] has spawned spiders", 1) + if("comms_blackout") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","CB") + var/answer = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No") + if(answer == "Yes") + communications_blackout(0) + else + communications_blackout(1) + message_admins("[key_name_admin(usr)] triggered a communications blackout.", 1) + if("spaceninja") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","SN") + if(toggle_space_ninja) + if(space_ninja_arrival())//If the ninja is actually spawned. They may not be depending on a few factors. + message_admins("[key_name_admin(usr)] has sent in a space ninja", 1) + if("carp") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","C") + var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel") + if(choice == "Badmin") + message_admins("[key_name_admin(usr)] has spawned carp.", 1) + new /datum/event/carp_migration + if("radiation") + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","R") + message_admins("[key_name_admin(usr)] has has irradiated the station", 1) + new /datum/event/radiation_storm if("immovable") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","IR") @@ -2125,13 +2210,13 @@ if("spacevines") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","K") - //new /datum/event/spacevine + new /datum/event/spacevine message_admins("[key_name_admin(usr)] has spawned spacevines", 1) if("onlyone") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","OO") usr.client.only_one() -// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)") + message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)") if(usr) log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]") if (ok) From 9cb0b79d7849aeb67e64fc2e973ebb5296893226 Mon Sep 17 00:00:00 2001 From: "Mark Aherne (Faerdan)" Date: Wed, 28 Aug 2013 22:20:13 +0100 Subject: [PATCH 092/226] Fixed issue with links/buttons not working until first update. --- code/modules/nano/nanoui.dm | 4 +- nano/js/nano_update.js | 88 +++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 15dc1feec9c..3ea42ae45ac 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -185,13 +185,11 @@ /datum/nanoui/Topic(href, href_list) update_status(0) // update the status if (status != STATUS_INTERACTIVE || user != usr) // If UI is not interactive or usr calling Topic is not the UI user + //usr << "Not interaction or wrong usr" return if (src_object.Topic(href, href_list)) - usr << "Update after Topic" nanomanager.update_uis(src_object) // update all UIs attached to src_object - else - usr << "Don't update after Topic" /datum/nanoui/proc/get_footer() var/scriptsContent = "" diff --git a/nano/js/nano_update.js b/nano/js/nano_update.js index ff8bf7b27b2..cd24d20eefd 100644 --- a/nano/js/nano_update.js +++ b/nano/js/nano_update.js @@ -13,6 +13,49 @@ NanoUpdate = function () var init = function () { + NanoUpdate.addAfterUpdateCallback(function (updateData) { + var uiStatusClass; + if (updateData['ui']['status'] == 2) + { + uiStatusClass = 'icon24 uiStatusGood'; + $('.linkActive').removeClass('inactive'); + } + else if (updateData['ui']['status'] == 1) + { + uiStatusClass = 'icon24 uiStatusAverage'; + $('.linkActive').addClass('inactive'); + } + else + { + uiStatusClass = 'icon24 uiStatusBad' + $('.linkActive').addClass('inactive'); + } + $('#uiStatusIcon').attr('class', uiStatusClass); + + $('.linkActive').stopTime('linkPending'); + $('.linkActive').removeClass('linkPending'); + + $('.linkActive').off('click'); + $('.linkActive').on('click', function (event) { + event.preventDefault(); + var href = $(this).data('href'); + if (href != null && _canClick) + { + _canClick = false; + $('body').oneTime(300, 'enableClick', function () { + _canClick = true; + }); + if (updateData['ui']['status'] == 2) + { + $(this).oneTime(300, 'linkPending', function () { + $(this).addClass('linkPending'); + }); + } + window.location.href = href; + } + }); + }); + var body = $('body'); // We store data in the body tag, it's as good a place as any _data = body.data('initialData'); @@ -57,6 +100,8 @@ NanoUpdate = function () { observedDataUpdateRecursive(_earlyUpdateData, _data); } + + executeCallbacks(_afterUpdateCallbacks, _data); //alert($("#mainTemplate").html()); } @@ -68,49 +113,6 @@ NanoUpdate = function () }); } } - - NanoUpdate.addAfterUpdateCallback(function (updateData) { - var uiStatusClass; - if (updateData['ui']['status'] == 2) - { - uiStatusClass = 'icon24 uiStatusGood'; - $('.linkActive').removeClass('inactive'); - } - else if (updateData['ui']['status'] == 1) - { - uiStatusClass = 'icon24 uiStatusAverage'; - $('.linkActive').addClass('inactive'); - } - else - { - uiStatusClass = 'icon24 uiStatusBad' - $('.linkActive').addClass('inactive'); - } - $('#uiStatusIcon').attr('class', uiStatusClass); - - $('.linkActive').stopTime('linkPending'); - $('.linkActive').removeClass('linkPending'); - - $('.linkActive').off('click'); - $('.linkActive').on('click', function (event) { - event.preventDefault(); - var href = $(this).data('href'); - if (href != null && _canClick) - { - _canClick = false; - $('body').oneTime(300, 'enableClick', function () { - _canClick = true; - }); - if (updateData['ui']['status'] == 2) - { - $(this).oneTime(300, 'linkPending', function () { - $(this).addClass('linkPending'); - }); - } - window.location.href = href; - } - }); - }); }; // Receive update data from the server From 8d1fdd87b3cd04903a361e043b4d3be1aa1a62d4 Mon Sep 17 00:00:00 2001 From: Segrain Date: Thu, 29 Aug 2013 02:24:40 +0300 Subject: [PATCH 093/226] Typecheck fix. --- code/game/mecha/mecha.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 63f4151779b..96789249fdf 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1574,7 +1574,7 @@ return if(href_list["dna_lock"]) if(usr != src.occupant) return - if(istype(src, /obj/item/device/mmi)) + if(istype(occupant, /mob/living/carbon/brain)) occupant_message("You are a brain. No.") return if(src.occupant) From f6f9f34ed75ffbce6977ef34b623608e61d93032 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 28 Aug 2013 21:12:07 -0700 Subject: [PATCH 094/226] CubeJackal's resprites and additional sprites. --- icons/mob/head.dmi | Bin 139075 -> 141077 bytes icons/mob/suit.dmi | Bin 290233 -> 288856 bytes icons/mob/uniform.dmi | Bin 251799 -> 254981 bytes icons/obj/clothing/hats.dmi | Bin 49545 -> 50250 bytes icons/obj/clothing/suits.dmi | Bin 71929 -> 72469 bytes icons/obj/clothing/uniforms.dmi | Bin 50015 -> 50743 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index a8161ebddd9d7ee379f4f1422d251aa123d71d40..214f5b766656d7c1de1f0c6be65b44a1faa65a26 100644 GIT binary patch delta 122462 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